Starting to rework slot instructions that create risc
have to go through all and all macros and all thems tests. What did the wise man say: one step at a time
This commit is contained in:
@ -11,25 +11,25 @@ module SlotMachine
|
||||
assert_equal 8 , all.length , all_str
|
||||
end
|
||||
def test_1_slot
|
||||
assert_slot_to_reg risc(1) ,:r0 , 9 , :r2
|
||||
assert_slot_to_reg risc(1) ,:message , 9 , :"message.arg1"
|
||||
end
|
||||
def test_2_slot
|
||||
assert_slot_to_reg risc(2) ,:r0 , 1 , :r3
|
||||
assert_slot_to_reg risc(2) ,:message , 1 , :"message.next_message"
|
||||
end
|
||||
def test_3_reg
|
||||
assert_reg_to_slot risc(3) , :r2 , :r3 , 2
|
||||
assert_reg_to_slot risc(3) , :"message.arg1" , :"message.next_message" , 2
|
||||
end
|
||||
def test_4_slot
|
||||
assert_slot_to_reg risc(4) ,:r0 , 2 , :r2
|
||||
assert_slot_to_reg risc(4) ,:message , 2 , :"message.receiver"
|
||||
end
|
||||
def test_5
|
||||
assert_slot_to_reg risc(5) ,:r2 , 0 , :r2
|
||||
assert_slot_to_reg risc(5) ,:"message.receiver" , 0 , :"message.receiver.type"
|
||||
end
|
||||
def test_6
|
||||
assert_slot_to_reg risc(6) ,:r0 , 1 , :r3
|
||||
assert_slot_to_reg risc(6) ,:message , 1 , :"message.next_message"
|
||||
end
|
||||
def test_7
|
||||
assert_reg_to_slot risc(7) , :r2 , :r3 , 9
|
||||
assert_reg_to_slot risc(7) , :"message.receiver.type" , :"message.next_message" , 9
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -4,19 +4,20 @@ module SlotMachine
|
||||
class TestNotSameCheck < SlotMachineInstructionTest
|
||||
def instruction
|
||||
target = Slotted.for(:message , [:caller])
|
||||
NotSameCheck.new(target , target , Label.new("ok" , "target"))
|
||||
target2 = Slotted.for(:message , [:next_message])
|
||||
NotSameCheck.new(target , target2 , Label.new("ok" , "target"))
|
||||
end
|
||||
def test_len
|
||||
assert_equal 5 , all.length , all_str
|
||||
end
|
||||
def test_1_slot
|
||||
assert_slot_to_reg risc(1) ,:r0 , 6 , :r2
|
||||
assert_slot_to_reg risc(1) ,:message , 6 , :"message.caller"
|
||||
end
|
||||
def test_2_slot
|
||||
assert_slot_to_reg risc(2) ,:r0 , 6 , :r4
|
||||
assert_slot_to_reg risc(2) ,:message , 1 , :"message.next_message"
|
||||
end
|
||||
def test_3_op
|
||||
assert_operator risc(3) , :-, :r2 , :r4
|
||||
assert_operator risc(3) , :-, :"message.caller" , :"message.next_message"
|
||||
end
|
||||
def test_4_zero
|
||||
assert_zero risc(4) , "target"
|
||||
|
@ -18,19 +18,19 @@ module SlotMachine
|
||||
assert_equal Risc::RegToSlot , @instructions.next.class
|
||||
end
|
||||
def test_ins_arr
|
||||
assert_equal :r0 , @instructions.array.symbol
|
||||
assert_equal :message , @instructions.array.symbol
|
||||
end
|
||||
def test_ins_reg
|
||||
assert_equal :r2 , @instructions.register.symbol
|
||||
assert_equal :"message.type" , @instructions.register.symbol
|
||||
end
|
||||
def test_ins_index
|
||||
assert_equal 0 , @instructions.index
|
||||
end
|
||||
def test_ins_next_reg
|
||||
assert_equal :r2 , @instructions.next.register.symbol
|
||||
assert_equal :"message.type" , @instructions.next.register.symbol
|
||||
end
|
||||
def test_ins_next_arr
|
||||
assert_equal :r0 , @instructions.next.array.symbol
|
||||
assert_equal :message , @instructions.next.array.symbol
|
||||
end
|
||||
def test_ins_next_index
|
||||
assert_equal 6 , @instructions.next.index
|
||||
|
@ -21,28 +21,28 @@ module SlotMachine
|
||||
assert_equal NilClass , @instructions.next(4).class
|
||||
end
|
||||
def test_ins_next_reg
|
||||
assert_equal :r2 , @instructions.next.register.symbol
|
||||
assert_equal :"message.caller.type" , @instructions.next.register.symbol
|
||||
end
|
||||
def test_ins_next_arr
|
||||
assert_equal :r2 , @instructions.next.array.symbol
|
||||
assert_equal :"message.caller" , @instructions.next.array.symbol
|
||||
end
|
||||
def test_ins_next_index
|
||||
assert_equal 0 , @instructions.next.index
|
||||
end
|
||||
def test_ins_next_2_reg
|
||||
assert_equal :r3 , @instructions.next(2).register.symbol
|
||||
assert_equal :"message.caller" , @instructions.next(2).register.symbol
|
||||
end
|
||||
def test_ins_next_2_arr
|
||||
assert_equal :r0 , @instructions.next(2).array.symbol
|
||||
assert_equal :"message" , @instructions.next(2).array.symbol
|
||||
end
|
||||
def test_ins_next_2_index
|
||||
assert_equal 6 , @instructions.next(2).index
|
||||
end
|
||||
def test_ins_next_3_reg
|
||||
assert_equal :r2 , @instructions.next(3).register.symbol
|
||||
assert_equal :"message.caller.type" , @instructions.next(3).register.symbol
|
||||
end
|
||||
def test_ins_next_3_arr
|
||||
assert_equal :r3 , @instructions.next(3).array.symbol
|
||||
assert_equal :"message.caller" , @instructions.next(3).array.symbol
|
||||
end
|
||||
def test_ins_next_3_index
|
||||
assert_equal 0 , @instructions.next(3).index
|
||||
|
@ -23,25 +23,25 @@ module SlotMachine
|
||||
assert_equal NilClass , @instructions.next(3).class
|
||||
end
|
||||
def test_ins_load
|
||||
assert_equal :r3 , @instructions.next.register.symbol
|
||||
assert @instructions.next.register.is_object?
|
||||
assert_equal Parfait::CacheEntry , @instructions.next.constant.class
|
||||
end
|
||||
|
||||
def test_ins_next_reg
|
||||
assert_equal :r2 , @instructions.register.symbol
|
||||
assert_equal :"message.type" , @instructions.register.symbol
|
||||
end
|
||||
def test_ins_next_arr
|
||||
assert_equal :r0 , @instructions.array.symbol
|
||||
assert_equal :message , @instructions.array.symbol
|
||||
end
|
||||
def test_ins_next_index
|
||||
assert_equal 0 , @instructions.index
|
||||
end
|
||||
|
||||
def test_ins_next_2_reg
|
||||
assert_equal :r2 , @instructions.next(2).register.symbol
|
||||
assert_equal :"message.type" , @instructions.next(2).register.symbol
|
||||
end
|
||||
def test_ins_next_2_arr
|
||||
assert_equal :r3 , @instructions.next(2).array.symbol
|
||||
assert @instructions.next(2).array.is_object?
|
||||
end
|
||||
def test_ins_next_2_index
|
||||
assert_equal 1 , @instructions.next(2).index
|
||||
|
Reference in New Issue
Block a user