SA for Slotted derivations
Object and Constant similarity are coming more into focus. Will unite after the merge
This commit is contained in:
@ -14,7 +14,7 @@ module SlotMachine
|
||||
assert_equal Risc::LoadConstant , @instruction.class
|
||||
end
|
||||
def test_def_register
|
||||
assert_equal :r1 , @instruction.register.symbol
|
||||
assert @instruction.register.is_object?
|
||||
end
|
||||
def test_def_const
|
||||
assert_equal "hi" , @instruction.constant.to_string
|
||||
@ -32,7 +32,7 @@ module SlotMachine
|
||||
assert_equal Risc::LoadConstant , @instruction.class
|
||||
end
|
||||
def test_def_register
|
||||
assert_equal :r1 , @instruction.register.symbol
|
||||
assert @instruction.register.is_object?
|
||||
end
|
||||
def test_def_const
|
||||
assert_equal "hi" , @instruction.constant.to_string
|
||||
@ -41,7 +41,7 @@ module SlotMachine
|
||||
assert_equal "StringConstant.type" , @slotted.to_s
|
||||
end
|
||||
def test_def_register2
|
||||
assert_equal :r1 , @instruction.next.register.symbol
|
||||
assert @instruction.next.register.is_object?
|
||||
end
|
||||
def test_def_next_index
|
||||
assert_equal 0 , @instruction.next.index
|
||||
|
@ -16,10 +16,10 @@ module SlotMachine
|
||||
assert_equal NilClass , @instruction.next.class
|
||||
end
|
||||
def test_def_array #from message r0
|
||||
assert_equal :r0 , @instruction.array.symbol
|
||||
assert_equal :message , @instruction.array.symbol
|
||||
end
|
||||
def test_def_register # to next free register r1
|
||||
assert_equal :r2 , @register.symbol
|
||||
assert_equal :"message.caller" , @register.symbol
|
||||
end
|
||||
def test_def_index # at caller index 6
|
||||
assert_equal 6 , @instruction.index
|
||||
|
@ -14,7 +14,7 @@ module SlotMachine
|
||||
assert_equal Risc::LoadConstant , @instruction.class
|
||||
end
|
||||
def test_def_register
|
||||
assert_equal :r1 , @instruction.register.symbol
|
||||
assert @instruction.register.is_object?
|
||||
end
|
||||
def test_def_const
|
||||
assert_equal Parfait::Space , @instruction.constant.class
|
||||
@ -23,10 +23,42 @@ module SlotMachine
|
||||
assert_equal "Space.type" , @slotted.to_s
|
||||
end
|
||||
def test_def_register2
|
||||
assert_equal :r1 , @instruction.next.register.symbol
|
||||
reg = @instruction.next.register
|
||||
assert reg.is_object?
|
||||
assert reg.symbol.to_s.index(".") , reg.symbol.to_s
|
||||
end
|
||||
def test_def_next_index
|
||||
assert_equal 0 , @instruction.next.index
|
||||
end
|
||||
end
|
||||
class TestSlottedObjectType2 < MiniTest::Test
|
||||
def setup
|
||||
Parfait.boot!(Parfait.default_test_options)
|
||||
compiler = Risc.test_compiler
|
||||
@slotted = Slotted.for(Parfait.object_space , [:type , :type])
|
||||
register = @slotted.to_register(compiler , InstructionMock.new)
|
||||
@instruction = compiler.risc_instructions.next
|
||||
end
|
||||
def test_def_register2
|
||||
reg = @instruction.next.register
|
||||
assert reg.is_object?
|
||||
assert_equal "type", reg.symbol.to_s.split(".").last
|
||||
assert_equal 2, reg.symbol.to_s.split(".").length
|
||||
end
|
||||
end
|
||||
class TestSlottedObjectType3 < MiniTest::Test
|
||||
def setup
|
||||
Parfait.boot!(Parfait.default_test_options)
|
||||
compiler = Risc.test_compiler
|
||||
@slotted = Slotted.for(Parfait.object_space , [:type , :type , :type])
|
||||
register = @slotted.to_register(compiler , InstructionMock.new)
|
||||
@instruction = compiler.risc_instructions.next
|
||||
end
|
||||
def test_def_register3
|
||||
reg = @instruction.next.next.register
|
||||
assert reg.is_object?
|
||||
assert_equal "type", reg.symbol.to_s.split(".").last
|
||||
assert_equal 3, reg.symbol.to_s.split(".").length
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user