56 lines
1.3 KiB
Ruby
56 lines
1.3 KiB
Ruby
require_relative "helper"
|
|
|
|
module Mom
|
|
class TestConstToIvarAssignemnt < MiniTest::Test
|
|
include MomCompile
|
|
|
|
def setup
|
|
Risc.machine.boot
|
|
@stats = compile_first_method_flat( "@a = 5")
|
|
end
|
|
|
|
def test_if_compiles
|
|
assert_equal SlotConstant , @stats.class , @stats
|
|
end
|
|
def test_length
|
|
assert_equal 1 , @stats.length
|
|
end
|
|
def test_assigns_class
|
|
assert_equal Mom::IntegerConstant , @stats.right.class , @stats.inspect
|
|
end
|
|
def test_assigns_value
|
|
assert_equal 5 , @stats.right.value , @stats.inspect
|
|
end
|
|
|
|
end
|
|
class TestConstToLocalAssignemnt < MiniTest::Test
|
|
include MomCompile
|
|
def setup
|
|
Risc.machine.boot
|
|
@stats = compile_first_method_flat( "a = 5")
|
|
end
|
|
def test_if_compiles
|
|
assert_equal SlotConstant , @stats.class , @stats
|
|
end
|
|
def test_length
|
|
assert_equal 1 , @stats.length
|
|
end
|
|
end
|
|
class TestIvarToLocalAssignemnt < MiniTest::Test
|
|
include MomCompile
|
|
def setup
|
|
Risc.machine.boot
|
|
@stats = compile_first_method_flat( "a = @a")
|
|
end
|
|
def test_if_compiles
|
|
assert_equal SlotMove , @stats.class , @stats
|
|
end
|
|
def test_length
|
|
assert_equal 1 , @stats.length
|
|
end
|
|
def test_assigns_class
|
|
assert_equal Mom::SlotDefinition , @stats.right.class , @stats.inspect
|
|
end
|
|
end
|
|
end
|