46 lines
1.1 KiB
Ruby
46 lines
1.1 KiB
Ruby
require_relative 'helper'
|
|
|
|
module Ruby
|
|
class TestIfStatement < MiniTest::Test
|
|
include RubyTests
|
|
|
|
def basic_if
|
|
"if(10 < 12) ; true ; end"
|
|
end
|
|
def test_if_basic
|
|
lst = compile( basic_if )
|
|
assert_equal IfStatement , lst.class
|
|
end
|
|
def test_if_basic_cond
|
|
lst = compile( basic_if )
|
|
assert_equal ScopeStatement , lst.condition.class
|
|
end
|
|
def test_if_basic_branches
|
|
lst = compile( basic_if )
|
|
assert_equal TrueConstant , lst.if_true.class
|
|
assert_nil lst.if_false
|
|
end
|
|
|
|
def double_if
|
|
"if(false) ; true ; else ; false; end"
|
|
end
|
|
def test_if_double
|
|
lst = compile( double_if )
|
|
assert_equal IfStatement , lst.class
|
|
end
|
|
def test_if_double_cond
|
|
lst = compile( double_if )
|
|
assert_equal ScopeStatement , lst.condition.class
|
|
end
|
|
def test_if_double_branches
|
|
lst = compile( double_if )
|
|
assert_equal TrueConstant , lst.if_true.class
|
|
assert_equal FalseConstant, lst.if_false.class
|
|
end
|
|
def test_to_s
|
|
lst = compile( double_if )
|
|
assert_equal "if(false); true;else; false;end" , lst.to_s.gsub("\n",";")
|
|
end
|
|
end
|
|
end
|