rubyx/test/vool/test_macro_expression.rb

36 lines
747 B
Ruby
Raw Normal View History

require_relative "helper"
module Mom
class PlusEquals < Instruction
attr_reader :a , :b
def initialize(source , arg , b)
super(source)
@a = arg
@b = b
end
end
end
module Vool
class TestMacroMom < MiniTest::Test
include VoolCompile
def setup
@compiler = compile_first_method( "X.plus_equals(arg,1)")
@ins = @compiler.mom_instructions.next
end
def test_class_compiles
assert_equal Mom::PlusEquals , @ins.class , @ins
end
def test_arg1
assert_equal Vool::LocalVariable , @ins.a.class
assert_equal :arg , @ins.a.name
end
def test_arg2
assert_equal Vool::IntegerConstant , @ins.b.class
assert_equal 1 , @ins.b.value
end
end
end