rubyx/test/vool/ruby_compiler/test_method_statement.rb
Torsten Ruger 3702411043 first propper hoisting test
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?)
2018-03-15 12:46:56 +05:30

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