more condition tests

This commit is contained in:
Torsten Ruger 2017-04-02 22:52:31 +03:00
parent ffbe39d571
commit 5335d08408

View File

@ -20,10 +20,72 @@ module Vool
assert_nil lst.if_false
end
def double_if
"if(false) ; true ; else ; false; end"
end
def test_if_double
lst = Compiler.compile( "if(false) ; true ; else ; false; end" )
lst = Compiler.compile( double_if )
assert_equal IfStatement , lst.class
end
def test_if_double_cond
lst = Compiler.compile( double_if )
assert_equal FalseStatement , lst.condition.class
end
def test_if_double_branches
lst = Compiler.compile( double_if )
assert_equal TrueStatement , lst.if_true.class
assert_equal FalseStatement, lst.if_false.class
end
def reverse_if
"true if(false)"
end
def test_if_reverse
lst = Compiler.compile( reverse_if )
assert_equal IfStatement , lst.class
end
def test_if_reverse_cond
lst = Compiler.compile( reverse_if )
assert_equal FalseStatement , lst.condition.class
end
def test_if_reverse_branches
lst = Compiler.compile( reverse_if )
assert_equal TrueStatement , lst.if_true.class
assert_nil lst.if_false
end
def reverse_unless
"true unless(false)"
end
def test_if_reverse
lst = Compiler.compile( reverse_unless )
assert_equal IfStatement , lst.class
end
def test_if_reverse_cond
lst = Compiler.compile( reverse_unless )
assert_equal FalseStatement , lst.condition.class
end
def test_if_reverse_branches
lst = Compiler.compile( reverse_unless )
assert_nil lst.if_true
assert_equal TrueStatement ,lst.if_false.class
end
def ternary
"false ? true : false"
end
def test_if_ternary
lst = Compiler.compile( ternary )
assert_equal IfStatement , lst.class
end
def test_if_ternary_cond
lst = Compiler.compile( ternary )
assert_equal FalseStatement , lst.condition.class
end
def test_if_ternary_branches
lst = Compiler.compile( ternary )
assert_equal TrueStatement , lst.if_true.class
assert_equal FalseStatement, lst.if_false.class
end
end
end