def test_simple_2():
    Data.clear()
    assert Data.height() == 0

    run("2 66 swap")
    assert Data.height() == 2
    assert Data.peek() == 2
    assert Data.peek(-2) == 66
def test_word():
    Data.clear()

    run(" : fac_rec ( n -- n! ) dup 0> IF dup 1- fac_rec * ELSE drop 1 ENDIF ;"
        )
    run("6 fac_rec")
    assert Data.height() == 1
    assert Data.peek() == 720
def test_simple_3():
    Data.clear()
    assert Data.height() == 0

    run("666666666666666666666666666666666666 1 max")
    assert Data.height() == 1
    assert Data.peek() == 666666666666666666666666666666666666

    run("666666666666666666666666666666666666 1 min")
    assert Data.peek() == 1
def test_variable():
    Data.clear()

    run("variable test")
    assert Memory["test"] == None

    run("37 test !")
    assert Memory["test"] == 37

    run("370101013 test !")
    assert Memory["test"] == 370101013

    Data.clear()
    run("13")
    run("test !")
    assert Memory["test"] == 13
def test_simple():
    run("2 2 add")
    assert Data.height() == 1
    assert Data.peek() == 4

    run("2 2 add")
    run("add")  # <2> 4 4
    assert Data.height() == 1
    assert Data.peek() == 8
Beispiel #6
0
def test_swap_interpreter(x, y):
    code = f'''{x} {y} swap'''
    run(code)
    top_of_stack, just_below = Data.peek(), Data.peek(-2)
    assert top_of_stack == x
    assert just_below == y
Beispiel #7
0
def test_subtraction_interpreter(x, y):
    code = f'''{x} {y} - '''
    run(code)
    top_of_stack = Data.peek()
    assert top_of_stack == x - y
Beispiel #8
0
def test_addition_interpreter(x, y):
    code = f'''{x} {y} +'''
    run(code)
    top_of_stack = Data.peek()
    assert top_of_stack == x + y