From afce1977974bc49ecfbf872c3bf0f4bc4316e751 Mon Sep 17 00:00:00 2001 From: Torsten Ruger Date: Tue, 29 Apr 2014 16:47:33 +0300 Subject: [PATCH] move conditional and expression test to new model --- test/parser/test_conditional.rb | 24 ++++++++++++++++++ test/parser/test_expressions.rb | 38 +++++++++++++++++++++++++++++ test/test_ast.rb | 40 ------------------------------ test/test_parser.rb | 43 --------------------------------- test/test_transform.rb | 10 -------- 5 files changed, 62 insertions(+), 93 deletions(-) create mode 100644 test/parser/test_conditional.rb create mode 100644 test/parser/test_expressions.rb diff --git a/test/parser/test_conditional.rb b/test/parser/test_conditional.rb new file mode 100644 index 00000000..a9226f81 --- /dev/null +++ b/test/parser/test_conditional.rb @@ -0,0 +1,24 @@ +require_relative "helper" + +class TestBasic < MiniTest::Test + # include the magic (setup and parse -> test method translation), see there + include ParserHelper + + def test_conditional + @string_input = < { :integer => "0"}, + :if_true => { :expressions => [ { :integer => "42" } ] } , + :if_false => { :expressions => [ { :integer => "667" } ] } } + @transform_output = Parser::ConditionalExpression.new( Parser::IntegerExpression.new(0), + [Parser::IntegerExpression.new(42)], [Parser::IntegerExpression.new(667)]) + + @parser = @parser.conditional + end + +end \ No newline at end of file diff --git a/test/parser/test_expressions.rb b/test/parser/test_expressions.rb new file mode 100644 index 00000000..21121683 --- /dev/null +++ b/test/parser/test_expressions.rb @@ -0,0 +1,38 @@ +require_relative "helper" + +class TestBasic < MiniTest::Test + # include the magic (setup and parse -> test method translation), see there + include ParserHelper + + def test_expression_else + @string_input = <[{:integer=>"4"}, {:integer=>"5"}]} + @transform_output = {:expressions=>[ Parser::IntegerExpression.new(4), Parser::IntegerExpression.new(5)]} + @parser = @parser.expressions_else + end + + def test_expression_end + @string_input = < [ { :integer => "5" }, + { :name => "name" }, + { :function_call => { :name => "call" } , + :argument_list => [ {:argument => { :integer => "4" } } , + {:argument => { :integer => "6" } } ] } ]} + args = [ Parser::IntegerExpression.new(4) , Parser::IntegerExpression.new(6) ] + @transform_output = {:expressions=>[ Parser::IntegerExpression.new(5), + Parser::NameExpression.new("name") , + Parser::FuncallExpression.new("call", args ) ] } + + @parser = @parser.expressions_end + end + +end \ No newline at end of file diff --git a/test/test_ast.rb b/test/test_ast.rb index 013edb2f..a260469e 100644 --- a/test/test_ast.rb +++ b/test/test_ast.rb @@ -17,47 +17,7 @@ class TestAst < MiniTest::Test # puts tree.inspect assert_equal @transform_output , tree end - - def test_expression_else - @string_input = <[ Parser::IntegerExpression.new(4), Parser::IntegerExpression.new(5)]} - @parser = @parser.expressions_else - check - end - - def test_expression_end - @string_input = < [Parser::IntegerExpression.new(5), Parser::NameExpression.new("name"), - Parser::FuncallExpression.new("call", [Parser::IntegerExpression.new(4), Parser::IntegerExpression.new(6) ]) ] } - @parser = @parser.expressions_end - check - end - - def test_conditional - @string_input = <[{:integer=>"4"}, {:integer=>"5"}]} - - @parser = @parser.expressions_else - check - end - - def test_expression_end - @string_input = < [ { :integer => "5" }, - { :name => "name" }, - { :function_call => { :name => "call" } , - :argument_list => [ {:argument => { :integer => "4" } } , - {:argument => { :integer => "6" } } ] } ]} - @parser = @parser.expressions_end - check - end - - def test_conditional - @string_input = < { :integer => "0"}, - :if_true => { :expressions => [ { :integer => "42" } ] } , - :if_false => { :expressions => [ { :integer => "667" } ] } } - @parser = @parser.conditional - check - end - def test_function_definition @string_input = < { :integer => "0"}, - :if_true => { :expressions => [ { :integer => "42" } ] } , - :if_false => { :expressions => [ { :integer => "667" } ] } } - @transform_output = Parser::ConditionalExpression.new( Parser::IntegerExpression.new(0), - [Parser::IntegerExpression.new(42)], - [Parser::IntegerExpression.new(667)]) - check - end def test_function_definition @input = {:function_definition => {:name => 'foo'},