Torsten Rüger
0725f02e9a
start at Object get_interna_word using the pattern to replace the whole risc method with a single mom instruction. Copying the original risc code into the instrucitons to_risc also adding some very basic tests
60 lines
1.8 KiB
Ruby
60 lines
1.8 KiB
Ruby
require_relative "helper"
|
|
|
|
# TODO move these to interpreter dir
|
|
module Risc
|
|
module Builtin
|
|
class IntCmp < BuiltinTest
|
|
|
|
def test_smaller_true
|
|
run_main_return "4 < 5"
|
|
assert_equal Parfait::TrueClass , get_message_return.class
|
|
end
|
|
def test_smaller_false
|
|
run_main_return "6 < 5"
|
|
assert_equal Parfait::FalseClass , get_message_return.class
|
|
end
|
|
def test_smaller_false_same
|
|
run_main_return "5 < 5"
|
|
assert_equal Parfait::FalseClass , get_message_return.class
|
|
end
|
|
def test_larger_true
|
|
run_main_return "5 > 4"
|
|
assert_equal Parfait::TrueClass , get_message_return.class
|
|
end
|
|
def test_larger_false
|
|
run_main_return "5 > 6"
|
|
assert_equal Parfait::FalseClass , get_message_return.class
|
|
end
|
|
def test_larger_false_same
|
|
run_main_return "5 > 5"
|
|
assert_equal Parfait::FalseClass , get_message_return.class
|
|
end
|
|
|
|
def test_smaller_or_true
|
|
run_main_return "4 <= 5"
|
|
assert_equal Parfait::TrueClass , get_message_return.class
|
|
end
|
|
def test_smaller_or_false
|
|
run_main_return "6 <= 5"
|
|
assert_equal Parfait::FalseClass , get_message_return.class
|
|
end
|
|
def test_smaller_or_same
|
|
run_main_return "5 <= 5"
|
|
assert_equal Parfait::TrueClass , get_message_return.class
|
|
end
|
|
def test_larger_or_true
|
|
run_main_return "5 >= 4"
|
|
assert_equal Parfait::TrueClass , get_message_return.class
|
|
end
|
|
def test_larger_or_false
|
|
run_main_return "5 >= 6"
|
|
assert_equal Parfait::FalseClass , get_message_return.class
|
|
end
|
|
def test_larger_or_same
|
|
run_main_return "5 >= 5"
|
|
assert_equal Parfait::TrueClass , get_message_return.class
|
|
end
|
|
end
|
|
end
|
|
end
|