rubyx/test/test_nodes.rb

41 lines
931 B
Ruby
Raw Normal View History

2014-04-24 16:38:06 +02:00
require_relative "helper"
2014-04-24 14:43:20 +02:00
2014-04-24 18:45:22 +02:00
#testing that parsing strings that we know to be correct returns the nodes we expect
# in a way the combination of test_parser and test_transform
2014-04-27 14:56:22 +02:00
class TestNodes < MiniTest::Test
2014-04-24 16:38:06 +02:00
2014-04-24 18:45:22 +02:00
def setup
2014-04-27 15:30:32 +02:00
@parser = Parser::Composed.new
@transform = Parser::Transform.new
end
2014-04-24 18:45:22 +02:00
def parse string
syntax = @parser.parse(string)
tree = @transform.apply(syntax)
tree
end
2014-04-24 18:45:22 +02:00
def test_number
tree = parse "42"
2014-04-27 15:09:22 +02:00
assert_kind_of Vm::NumberExpression , tree
2014-04-24 18:45:22 +02:00
assert_equal 42 , tree.value
end
2014-04-24 18:45:22 +02:00
def test_args
tree = parse "( 42 )"
2014-04-27 15:09:22 +02:00
assert_kind_of Hash , tree
assert_kind_of Vm::NumberExpression , tree[:args]
2014-04-24 18:45:22 +02:00
assert_equal 42 , tree[:args].value
end
def test_arg_list
@parser = @parser.args
tree = parse "(42, foo)"
2014-04-27 15:09:22 +02:00
assert_instance_of Array , tree
assert_equal 42 , tree.first.value
assert_equal "foo" , tree.last.name
end
end
2014-04-24 14:43:20 +02:00