rubyx/test/vool/ruby_compiler/test_if_statement.rb

92 lines
2.5 KiB
Ruby
Raw Normal View History

2017-04-02 18:12:42 +02:00
require_relative 'helper'
module Vool
class TestIfStatement < MiniTest::Test
def basic_if
"if(10 < 12) ; true ; end"
end
def test_if_basic
lst = RubyCompiler.compile( basic_if )
2017-04-02 18:12:42 +02:00
assert_equal IfStatement , lst.class
end
def test_if_basic_cond
lst = RubyCompiler.compile( basic_if )
2018-03-16 15:09:35 +01:00
assert_equal ScopeStatement , lst.condition.class
2017-04-02 18:12:42 +02:00
end
def test_if_basic_branches
lst = RubyCompiler.compile( basic_if )
assert_equal TrueConstant , lst.if_true.class
2017-04-02 18:12:42 +02:00
assert_nil lst.if_false
end
2017-04-02 21:52:31 +02:00
def double_if
"if(false) ; true ; else ; false; end"
end
def test_if_double
lst = RubyCompiler.compile( double_if )
2017-04-02 21:52:31 +02:00
assert_equal IfStatement , lst.class
end
def test_if_double_cond
lst = RubyCompiler.compile( double_if )
2018-03-16 15:09:35 +01:00
assert_equal ScopeStatement , lst.condition.class
2017-04-02 21:52:31 +02:00
end
def test_if_double_branches
lst = RubyCompiler.compile( double_if )
assert_equal TrueConstant , lst.if_true.class
assert_equal FalseConstant, lst.if_false.class
2017-04-02 21:52:31 +02:00
end
def reverse_if
"true if(false)"
end
def test_if_reverse
lst = RubyCompiler.compile( reverse_if )
2017-04-02 21:52:31 +02:00
assert_equal IfStatement , lst.class
end
def test_if_reverse_cond
lst = RubyCompiler.compile( reverse_if )
assert_equal FalseConstant , lst.condition.class
2017-04-02 21:52:31 +02:00
end
def test_if_reverse_branches
lst = RubyCompiler.compile( reverse_if )
assert_equal TrueConstant , lst.if_true.class
2017-04-02 21:52:31 +02:00
assert_nil lst.if_false
end
def reverse_unless
"true unless(false)"
end
def test_if_reverse
lst = RubyCompiler.compile( reverse_unless )
assert_equal IfStatement , lst.class
2017-04-02 18:12:42 +02:00
end
2017-04-02 21:52:31 +02:00
def test_if_reverse_cond
lst = RubyCompiler.compile( reverse_unless )
2018-03-16 15:09:35 +01:00
assert_equal ScopeStatement , lst.condition.class
2017-04-02 21:52:31 +02:00
end
def test_if_reverse_branches
lst = RubyCompiler.compile( reverse_unless )
2017-04-02 21:52:31 +02:00
assert_nil lst.if_true
assert_equal TrueConstant ,lst.if_false.class
2017-04-02 21:52:31 +02:00
end
2017-04-02 18:12:42 +02:00
2017-04-02 21:52:31 +02:00
def ternary
"false ? true : false"
end
def test_if_ternary
lst = RubyCompiler.compile( ternary )
2017-04-02 21:52:31 +02:00
assert_equal IfStatement , lst.class
end
def test_if_ternary_cond
lst = RubyCompiler.compile( ternary )
assert_equal FalseConstant , lst.condition.class
2017-04-02 21:52:31 +02:00
end
def test_if_ternary_branches
lst = RubyCompiler.compile( ternary )
assert_equal TrueConstant , lst.if_true.class
assert_equal FalseConstant, lst.if_false.class
2017-04-02 21:52:31 +02:00
end
2017-04-02 18:12:42 +02:00
end
end