# -*- coding: utf-8 -*-
require 'spec_helper'
require_relative 'shared/block_examples'
# rubocop:disable EmptyLines, LineLength
describe RubyToBlock::Block, 'Smalrubot blocks', to_blocks: true do
%w(s1 v3).each do |smalrubot_version|
describe smalrubot_version do
parts = <<-EOS
require "smalruby"
init_hardware
car1 = Character.new(costume: "car1.png", x: 0, y: 0, angle: 0)
car1.on(:start) do
smalrubot_#{smalrubot_version}.forward
smalrubot_#{smalrubot_version}.backward
smalrubot_#{smalrubot_version}.turn_left
smalrubot_#{smalrubot_version}.turn_right
smalrubot_#{smalrubot_version}.stop
smalrubot_#{smalrubot_version}.forward(sec: 0.5)
smalrubot_#{smalrubot_version}.backward(sec: 0.4)
smalrubot_#{smalrubot_version}.turn_left(sec: 0.3)
smalrubot_#{smalrubot_version}.turn_right(sec: 0.2)
smalrubot_#{smalrubot_version}.stop(sec: 0.1)
p(smalrubot_#{smalrubot_version}.left_sensor_value)
p(smalrubot_#{smalrubot_version}.right_sensor_value)
smalrubot_#{smalrubot_version}.turn_on_left_led
smalrubot_#{smalrubot_version}.turn_off_right_led
p(smalrubot_#{smalrubot_version}.left_dc_motor_power_ratio)
p(smalrubot_#{smalrubot_version}.right_dc_motor_power_ratio)
smalrubot_#{smalrubot_version}.left_dc_motor_power_ratio = 10
smalrubot_#{smalrubot_version}.right_dc_motor_power_ratio = 90
end
car1.smalrubot_#{smalrubot_version}.forward
car1.smalrubot_#{smalrubot_version}.backward
car1.smalrubot_#{smalrubot_version}.turn_left
car1.smalrubot_#{smalrubot_version}.turn_right
car1.smalrubot_#{smalrubot_version}.stop
car1.smalrubot_#{smalrubot_version}.forward(sec: 0.5)
car1.smalrubot_#{smalrubot_version}.backward(sec: 0.4)
car1.smalrubot_#{smalrubot_version}.turn_left(sec: 0.3)
car1.smalrubot_#{smalrubot_version}.turn_right(sec: 0.2)
car1.smalrubot_#{smalrubot_version}.stop(sec: 0.1)
p(car1.smalrubot_#{smalrubot_version}.left_sensor_value)
p(car1.smalrubot_#{smalrubot_version}.right_sensor_value)
car1.smalrubot_#{smalrubot_version}.turn_on_left_led
car1.smalrubot_#{smalrubot_version}.turn_off_right_led
p(car1.smalrubot_#{smalrubot_version}.left_dc_motor_power_ratio)
p(car1.smalrubot_#{smalrubot_version}.right_dc_motor_power_ratio)
car1.smalrubot_#{smalrubot_version}.left_dc_motor_power_ratio = 10
car1.smalrubot_#{smalrubot_version}.right_dc_motor_power_ratio = 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
right
left
turn_on
right
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
right
left
turn_on
right
turn_off
left
right
left
10
right
90
XML
end
end
end
end
end