38 lines
975 B
Ruby
38 lines
975 B
Ruby
require_relative 'helper'
|
|
|
|
class TestFunctions < MiniTest::Test
|
|
include Fragments
|
|
|
|
def test_functions
|
|
@string_input = <<HERE
|
|
def minus(a,b)
|
|
a - b
|
|
end
|
|
def plus(a, b)
|
|
a + b
|
|
end
|
|
def times(a, b)
|
|
if( b == 0 )
|
|
a = 0
|
|
else
|
|
m = minus(b, 1)
|
|
t = times(a, m)
|
|
a = plus(a,t)
|
|
end
|
|
end
|
|
|
|
def t_seven()
|
|
tim = times(7,6)
|
|
tim.putint()
|
|
end
|
|
|
|
t_seven()
|
|
HERE
|
|
@should = [0x0,0x40,0x2d,0xe9,0x0,0x0,0x54,0xe3,0x10,0x0,0x0,0xa,0x8,0x0,0x2d,0xe9,0x4,0x30,0xa0,0xe1,0x1,0x40,0xa0,0xe3,0xf2,0xff,0xff,0xeb,0x8,0x0,0xbd,0xe8,0x0,0x50,0xa0,0xe1,0x8,0x0,0x2d,0xe9,0x5,0x40,0xa0,0xe1,0xf3,0xff,0xff,0xeb,0x8,0x0,0xbd,0xe8,0x0,0x60,0xa0,0xe1,0x10,0x0,0x2d,0xe9,0x6,0x40,0xa0,0xe1,0xeb,0xff,0xff,0xeb,0x10,0x0,0xbd,0xe8,0x0,0x30,0xa0,0xe1,0x0,0x0,0x0,0xea,0x0,0x30,0xa0,0xe3,0x3,0x0,0xa0,0xe1,0x0,0x80,0xbd,0xe8]
|
|
@output = " 42 "
|
|
@target = [:Object , :times]
|
|
parse
|
|
write "functions"
|
|
end
|
|
end
|