# -*- coding: utf-8 -*- require 'spec_helper' require_relative 'shared/block_examples' # rubocop:disable EmptyLines, LineLength describe RubyToBlock::Block, 'Smalrubot v3 blocks', to_blocks: true do parts = <<-EOS require "smalruby" init_hardware car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0) car1.on(:start) do smalrubot_v3.forward smalrubot_v3.backward smalrubot_v3.turn_left smalrubot_v3.turn_right smalrubot_v3.stop smalrubot_v3.forward(sec: 0.5) smalrubot_v3.backward(sec: 0.4) smalrubot_v3.turn_left(sec: 0.3) smalrubot_v3.turn_right(sec: 0.2) smalrubot_v3.stop(sec: 0.1) p(smalrubot_v3.left_touch_sensor.pressed?) p(smalrubot_v3.left_touch_sensor.released?) p(smalrubot_v3.right_touch_sensor.pressed?) p(smalrubot_v3.right_touch_sensor.released?) p(smalrubot_v3.light_sensor.value) smalrubot_v3.red_led.turn_on smalrubot_v3.green_led.turn_off p(smalrubot_v3.left_motor_speed) p(smalrubot_v3.right_motor_speed) smalrubot_v3.left_motor_speed = 10 smalrubot_v3.right_motor_speed = 90 end car1.smalrubot_v3.forward car1.smalrubot_v3.backward car1.smalrubot_v3.turn_left car1.smalrubot_v3.turn_right car1.smalrubot_v3.stop car1.smalrubot_v3.forward(sec: 0.5) car1.smalrubot_v3.backward(sec: 0.4) car1.smalrubot_v3.turn_left(sec: 0.3) car1.smalrubot_v3.turn_right(sec: 0.2) car1.smalrubot_v3.stop(sec: 0.1) p(car1.smalrubot_v3.left_touch_sensor.pressed?) p(car1.smalrubot_v3.left_touch_sensor.released?) p(car1.smalrubot_v3.right_touch_sensor.pressed?) p(car1.smalrubot_v3.right_touch_sensor.released?) p(car1.smalrubot_v3.light_sensor.value) car1.smalrubot_v3.red_led.turn_on car1.smalrubot_v3.green_led.turn_off p(car1.smalrubot_v3.left_motor_speed) p(car1.smalrubot_v3.right_motor_speed) car1.smalrubot_v3.left_motor_speed = 10 car1.smalrubot_v3.right_motor_speed = 90 EOS describe compact_source_code(parts) do _parts = parts let(:data) { _parts } it '結果が正しいこと' do should eq_block_xml(<<-XML) car1 forward backward turn_left turn_right stop forward 0.5 backward 0.4 turn_left 0.3 turn_right 0.2 stop 0.1 left pressed left released right pressed right released red turn_on green turn_off left right left 10 right 90 forward backward turn_left turn_right stop forward 0.5 backward 0.4 turn_left 0.3 turn_right 0.2 stop 0.1 left pressed left released right pressed right released red turn_on green turn_off left right left 10 right 90 XML end end end