start larger tests
This commit is contained in:
parent
1907574c60
commit
ef5854c4df
@ -1,26 +0,0 @@
|
|||||||
#require_relative 'helper'
|
|
||||||
|
|
||||||
module Rubyx
|
|
||||||
class TestRubyAdds < MiniTest::Test
|
|
||||||
# include RubyxTests
|
|
||||||
|
|
||||||
def pest_ruby_adds
|
|
||||||
@string_input = <<HERE
|
|
||||||
def fibo( n)
|
|
||||||
a = 0
|
|
||||||
b = 1
|
|
||||||
i = 1
|
|
||||||
while( i < n ) do
|
|
||||||
result = a + b
|
|
||||||
a = b
|
|
||||||
b = result
|
|
||||||
i+= 1
|
|
||||||
end
|
|
||||||
return result
|
|
||||||
end
|
|
||||||
HERE
|
|
||||||
@stdout = "Hello there"
|
|
||||||
check
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@ -5,52 +5,52 @@ module Risc
|
|||||||
class SimpleInt < BuiltinTest
|
class SimpleInt < BuiltinTest
|
||||||
|
|
||||||
def test_add
|
def test_add
|
||||||
run_all "5 + 5"
|
run_input "5 + 5"
|
||||||
assert_equal Parfait::Integer , get_return.class
|
assert_equal Parfait::Integer , get_return.class
|
||||||
assert_equal 10 , get_return.value
|
assert_equal 10 , get_return.value
|
||||||
end
|
end
|
||||||
def test_minus
|
def test_minus
|
||||||
run_all "5 - 5"
|
run_input "5 - 5"
|
||||||
assert_equal 0 , get_return.value
|
assert_equal 0 , get_return.value
|
||||||
end
|
end
|
||||||
def test_minus_neg
|
def test_minus_neg
|
||||||
run_all "5 - 15"
|
run_input "5 - 15"
|
||||||
assert_equal -10 , get_return.value
|
assert_equal -10 , get_return.value
|
||||||
end
|
end
|
||||||
def test_rshift
|
def test_rshift
|
||||||
run_all "#{2**8} >> 3"
|
run_input "#{2**8} >> 3"
|
||||||
assert_equal 2**5 , get_return.value
|
assert_equal 2**5 , get_return.value
|
||||||
end
|
end
|
||||||
def test_lshift
|
def test_lshift
|
||||||
run_all "#{2**8} << 3"
|
run_input "#{2**8} << 3"
|
||||||
assert_equal 2**11 , get_return.value
|
assert_equal 2**11 , get_return.value
|
||||||
end
|
end
|
||||||
def test_div10
|
def test_div10
|
||||||
run_all "45.div10"
|
run_input "45.div10"
|
||||||
assert_equal 4 , get_return.value
|
assert_equal 4 , get_return.value
|
||||||
end
|
end
|
||||||
def test_div4
|
def test_div4
|
||||||
run_all "45.div4"
|
run_input "45.div4"
|
||||||
assert_equal 11 , get_return.value
|
assert_equal 11 , get_return.value
|
||||||
end
|
end
|
||||||
def test_mult
|
def test_mult
|
||||||
run_all "4 * 4"
|
run_input "4 * 4"
|
||||||
assert_equal 16 , get_return.value
|
assert_equal 16 , get_return.value
|
||||||
end
|
end
|
||||||
def test_smaller_true
|
def test_smaller_true
|
||||||
run_all "4 < 5"
|
run_input "4 < 5"
|
||||||
assert_equal Parfait::TrueClass , get_return.class
|
assert_equal Parfait::TrueClass , get_return.class
|
||||||
end
|
end
|
||||||
def test_smaller_false
|
def test_smaller_false
|
||||||
run_all "6 < 5"
|
run_input "6 < 5"
|
||||||
assert_equal Parfait::FalseClass , get_return.class
|
assert_equal Parfait::FalseClass , get_return.class
|
||||||
end
|
end
|
||||||
def test_larger_true
|
def test_larger_true
|
||||||
run_all "5 > 4"
|
run_input "5 > 4"
|
||||||
assert_equal Parfait::TrueClass , get_return.class
|
assert_equal Parfait::TrueClass , get_return.class
|
||||||
end
|
end
|
||||||
def test_larger_false
|
def test_larger_false
|
||||||
run_all "5 > 6"
|
run_input "5 > 6"
|
||||||
assert_equal Parfait::FalseClass , get_return.class
|
assert_equal Parfait::FalseClass , get_return.class
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
50
test/risc/mains/test_adds.rb
Normal file
50
test/risc/mains/test_adds.rb
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
require_relative '../helper'
|
||||||
|
|
||||||
|
module Mains
|
||||||
|
class TestLargerWhile < MiniTest::Test
|
||||||
|
include Risc::Ticker
|
||||||
|
def setup;end
|
||||||
|
|
||||||
|
def test_ruby_adds
|
||||||
|
run_input <<HERE
|
||||||
|
a = 0
|
||||||
|
b = 20
|
||||||
|
while( a < b )
|
||||||
|
a = a + 1
|
||||||
|
b = b - 1
|
||||||
|
end
|
||||||
|
return a
|
||||||
|
HERE
|
||||||
|
assert_equal Parfait::Integer , get_return.class
|
||||||
|
assert_equal 10 , get_return.value
|
||||||
|
end
|
||||||
|
def pest_ruby_subs
|
||||||
|
run_input <<HERE
|
||||||
|
b = 10
|
||||||
|
while( b > 0 )
|
||||||
|
b = b - 1
|
||||||
|
end
|
||||||
|
return b
|
||||||
|
HERE
|
||||||
|
assert_equal Parfait::Integer , get_return.class
|
||||||
|
assert_equal 0 , get_return.value
|
||||||
|
end
|
||||||
|
def test_ruby_adds_fibo
|
||||||
|
run_input <<HERE
|
||||||
|
n=12
|
||||||
|
a = 0
|
||||||
|
b = 1
|
||||||
|
i = 1
|
||||||
|
while( i < n )
|
||||||
|
result = a + b
|
||||||
|
a = b
|
||||||
|
b = result
|
||||||
|
i = i + 1
|
||||||
|
end
|
||||||
|
return result
|
||||||
|
HERE
|
||||||
|
assert_equal Parfait::Integer , get_return.class
|
||||||
|
assert_equal 144 , get_return.value
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
@ -61,11 +61,11 @@ module Risc
|
|||||||
end
|
end
|
||||||
|
|
||||||
# collect the classes of all executed istructions
|
# collect the classes of all executed istructions
|
||||||
def all_classes
|
def all_classes(max = 300)
|
||||||
classes = []
|
classes = []
|
||||||
tick = 1
|
tick = 1
|
||||||
begin
|
begin
|
||||||
while true and (classes.length < 300)
|
while true and (classes.length < max)
|
||||||
cl = ticks(1).class
|
cl = ticks(1).class
|
||||||
tick += 1
|
tick += 1
|
||||||
classes << cl
|
classes << cl
|
||||||
@ -80,11 +80,15 @@ module Risc
|
|||||||
end
|
end
|
||||||
|
|
||||||
# do the setup, compile and run the input to the end
|
# do the setup, compile and run the input to the end
|
||||||
def run_all(input)
|
def run_input(input)
|
||||||
@string_input = as_main(input)
|
@string_input = as_main(input)
|
||||||
do_setup
|
do_setup
|
||||||
all_classes
|
run_all
|
||||||
end
|
end
|
||||||
|
def run_all
|
||||||
|
@interpreter.tick while(@interpreter.instruction)
|
||||||
|
end
|
||||||
|
|
||||||
# for chaning the tests quickly output all instructions that are executed
|
# for chaning the tests quickly output all instructions that are executed
|
||||||
def show_ticks
|
def show_ticks
|
||||||
classes = all_classes
|
classes = all_classes
|
||||||
|
Loading…
Reference in New Issue
Block a user