rubyx/test/ruby/test_ruby_block_statement.rb

50 lines
1.2 KiB
Ruby
Raw Normal View History

2018-06-26 19:28:27 +02:00
require_relative "helper"
module Ruby
class TestBlockStatement < MiniTest::Test
include RubyTests
2018-06-26 19:28:27 +02:00
def setup()
input = "plus_one{|arg1| arg1 + 1 } "
@lst = compile( input )
2018-06-26 19:28:27 +02:00
end
def test_block
assert_equal RubyBlockStatement , @lst.class
end
def test_send
assert_equal SendStatement , @lst.send.class
2018-06-26 19:28:27 +02:00
end
def test_method_name
assert_equal :plus_one , @lst.send.name
2018-06-26 19:28:27 +02:00
end
def test_block_args
assert_equal [:arg1] , @lst.args
2018-06-26 19:28:27 +02:00
end
def test_block_body
assert_equal SendStatement , @lst.body.class
assert_equal 1 , @lst.body.arguments.length
2018-06-26 19:28:27 +02:00
end
end
class TestBlockStatementVool < MiniTest::Test
include RubyTests
def setup()
input = "plus_one{|arg1| arg1 + 1 } "
@lst = compile( input ).to_vool
end
def test_block
assert_equal Vool::SendStatement , @lst.class
end
def test_send_name
assert_equal :plus_one , @lst.name
end
def test_send_block_arg
assert_equal 1 , @lst.arguments.length
assert_equal Vool::LambdaExpression , @lst.arguments.first.class
end
def test_block_args
assert_equal [:arg1] , @lst.arguments.first.args
end
end
2018-06-26 19:28:27 +02:00
end