393ac873c9
as it was before blocks (thought blocks would make reuse of messages impossible, but was wrong, this only appilies to lambdas) (too) many tests affected
54 lines
2.0 KiB
Ruby
54 lines
2.0 KiB
Ruby
require_relative "../helper"
|
|
|
|
module Risc
|
|
class InterpreterMinusTest < MiniTest::Test
|
|
include Ticker
|
|
|
|
def setup
|
|
@string_input = as_main("return 6 - 5")
|
|
super
|
|
end
|
|
|
|
def test_minus
|
|
#show_main_ticks # get output of what is
|
|
check_main_chain [LoadConstant, LoadConstant, SlotToReg, RegToSlot, RegToSlot,
|
|
SlotToReg, SlotToReg, RegToSlot, SlotToReg, SlotToReg,
|
|
RegToSlot, RegToSlot, SlotToReg, Branch, RegToSlot,
|
|
LoadConstant, SlotToReg, RegToSlot, LoadConstant, SlotToReg,
|
|
SlotToReg, RegToSlot, LoadConstant, SlotToReg, RegToSlot,
|
|
SlotToReg, FunctionCall, SlotToReg, SlotToReg, SlotToReg,
|
|
SlotToReg, SlotToReg, OperatorInstruction, LoadConstant, SlotToReg,
|
|
SlotToReg, RegToSlot, RegToSlot, RegToSlot, SlotToReg,
|
|
Branch, SlotToReg, RegToSlot, LoadConstant, SlotToReg,
|
|
RegToSlot, RegToSlot, SlotToReg, SlotToReg, SlotToReg,
|
|
FunctionReturn, SlotToReg, SlotToReg, RegToSlot, SlotToReg,
|
|
SlotToReg, RegToSlot, Branch, SlotToReg, SlotToReg,
|
|
RegToSlot, LoadConstant, SlotToReg, RegToSlot, Branch,
|
|
RegToSlot, SlotToReg, SlotToReg, SlotToReg, FunctionReturn,
|
|
Transfer, SlotToReg, SlotToReg, Branch, Syscall,
|
|
NilClass]
|
|
assert_equal 1 , get_return
|
|
end
|
|
def test_load_5
|
|
lod = main_ticks( 19 )
|
|
assert_equal LoadConstant , lod.class
|
|
assert_equal Parfait::Integer , lod.constant.class
|
|
assert_equal 5 , lod.constant.value
|
|
end
|
|
def test_op
|
|
op = main_ticks(33)
|
|
assert_equal OperatorInstruction , op.class
|
|
assert_equal :r1 , op.left.symbol
|
|
assert_equal :r2 , op.right.symbol
|
|
assert_equal 1 , @interpreter.get_register(:r1)
|
|
assert_equal 5 , @interpreter.get_register(:r2)
|
|
end
|
|
def test_return
|
|
ret = main_ticks(70)
|
|
assert_equal FunctionReturn , ret.class
|
|
assert_equal :r1 , ret.register.symbol
|
|
assert_equal 26016 , @interpreter.get_register(ret.register)
|
|
end
|
|
end
|
|
end
|