Torsten Rüger
d1f8733623
Simple is really the descriptive name for the layer Sure, it is "virtual" but that is not as important as the fact that it is simple (or simplified) Also objct (based really) is better, since orientated implies it is a little like that, but only orientated, not really it. Sol only has objects, nothing else Just cause i was renaming anyway
71 lines
2.2 KiB
Ruby
71 lines
2.2 KiB
Ruby
require_relative "helper"
|
|
|
|
module Ruby
|
|
module LastBar
|
|
include RubyTests
|
|
def test_last_class
|
|
assert_equal Sol::SendStatement , @lst.last.class
|
|
end
|
|
def test_last_name
|
|
assert_equal :last , @lst.last.name
|
|
end
|
|
def test_last_arg
|
|
assert_equal Sol::LocalVariable , @lst.last.arguments.first.class
|
|
end
|
|
def test_lst_class
|
|
assert_equal Sol::Statements , @lst.class
|
|
end
|
|
def test_lst_no_statements
|
|
@lst.statements.each{|st| assert( ! st.is_a?(Sol::Statements) , st.class)}
|
|
end
|
|
end
|
|
class TestSendSendArgSol < MiniTest::Test
|
|
include LastBar
|
|
def setup
|
|
@lst = compile( "last(foo(1))").to_sol
|
|
end
|
|
def test_classes
|
|
assert_equal Sol::Statements , @lst.class
|
|
assert_equal Sol::LocalAssignment , @lst.first.class
|
|
assert_equal Sol::SendStatement , @lst.last.class
|
|
end
|
|
def test_foo1
|
|
assert_equal Sol::SendStatement , @lst.first.value.class
|
|
assert_equal :foo , @lst.first.value.name
|
|
assert_equal Sol::IntegerConstant , @lst.first.value.arguments.first.class
|
|
end
|
|
end
|
|
class Test3SendSol < MiniTest::Test
|
|
include LastBar
|
|
def setup
|
|
@lst = compile( "last(foo(more(1)))").to_sol
|
|
end
|
|
def test_classes
|
|
assert_equal Sol::Statements , @lst.class
|
|
assert_equal Sol::LocalAssignment , @lst.first.class
|
|
assert_equal Sol::SendStatement , @lst.last.class
|
|
end
|
|
def test_foo
|
|
assert_equal Sol::SendStatement , @lst.first.value.class
|
|
assert_equal :more , @lst.first.value.name
|
|
assert_equal Sol::IntegerConstant , @lst.first.value.arguments.first.class
|
|
end
|
|
end
|
|
class Test5SendSol < MiniTest::Test
|
|
include LastBar
|
|
def setup
|
|
@lst = compile( "last(foo(more(even_more(1),and_more(with_more))))").to_sol
|
|
end
|
|
def test_classes
|
|
assert_equal Sol::Statements , @lst.class
|
|
assert_equal Sol::LocalAssignment , @lst.first.class
|
|
assert_equal Sol::SendStatement , @lst.last.class
|
|
end
|
|
def test_foo
|
|
assert_equal Sol::SendStatement , @lst.first.value.class
|
|
assert_equal :even_more , @lst.first.value.name
|
|
assert_equal Sol::IntegerConstant , @lst.first.value.arguments.first.class
|
|
end
|
|
end
|
|
end
|