require_relative "helper" module SlotMachine class TestMacroMakerLoad < MiniTest::Test include SlotHelper def check_mini(maker) assert_equal MacroMaker , maker.class assert_equal SlotMachine::Label , maker.instructions.class end def mini_file File.read(File.expand_path( "../codes/mini.slot" , __FILE__)) end def test_mini_string check_mini MacroMaker.load_string( mini_file ) end def test_mini_source check_mini MacroMaker.new( SlotCompiler.compile(mini_file)) end end class TestMacroMakerLoad2 < MiniTest::Test def setup @macro = MacroMaker.load_string( mini_file ) @instructions = @macro.instructions end def test_label assert_equal SlotMachine::Label , @macro.instructions.class end def test_assign assert_equal SlotMachine::SlotLoad , @instructions.next.class assert_equal "message.receiver.a" , @instructions.next.left.to_s assert_equal "message.b" , @instructions.next.right.to_s end def test_length assert @instructions.next assert_nil @instructions.next.next end def mini_file File.read(File.expand_path( "../codes/mini.slot" , __FILE__)) end end end