3702411043
had to change course, normalising and object creation is not possible in one go have to now generate random tmp vars that will have to be picked up later (sorted by tmp_ prefix?)
41 lines
1.0 KiB
Ruby
41 lines
1.0 KiB
Ruby
require_relative "helper"
|
|
|
|
module Vool
|
|
class TestMethodStatement < MiniTest::Test
|
|
|
|
def basic_setup()
|
|
input = "def tryout(arg1, arg2) ; true ; false ; end "
|
|
@lst = RubyCompiler.compile( input )
|
|
end
|
|
def test_method
|
|
basic_setup
|
|
assert_equal MethodStatement , @lst.class
|
|
end
|
|
|
|
def test_method_name
|
|
basic_setup
|
|
assert_equal :tryout , @lst.name
|
|
end
|
|
|
|
def test_method_args
|
|
basic_setup
|
|
assert_equal [:arg1, :arg2] , @lst.args
|
|
end
|
|
def test_basic_body
|
|
basic_setup
|
|
assert_equal ScopeStatement , @lst.body.class
|
|
assert_equal 2 , @lst.body.length
|
|
end
|
|
def test_body_is_scope_one_statement
|
|
input = "def tryout(arg1, arg2) ; a = true ; end "
|
|
lst = RubyCompiler.compile( input )
|
|
assert_equal LocalAssignment , lst.body.class
|
|
end
|
|
def test_body_is_scope_zero_statement
|
|
input = "def tryout(arg1, arg2) ; ; end "
|
|
lst = RubyCompiler.compile( input )
|
|
assert_equal ScopeStatement , lst.body.class
|
|
end
|
|
end
|
|
end
|