rubyx/test/mom/test_assignment.rb
2018-03-13 12:30:51 +05:30

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