def test_4(): def k(a, b="b0", *arg_list, k0="default k0", **arg_dict): return [ a, b, arg_list, k0, arg_dict, ] jojo_4 = JOJO([ "aaa", "bbb", ["k1", "k2", "k3"], { "1": "k1", "2": "k2", "3": "k3" }, k, ]) vm = VM([], [RP((jojo_4))]) vm = vm.exe() ds1 = [[ 'aaa', 'bbb', ('k1', 'k2', 'k3'), 'default k0', { '1': 'k1', '2': 'k2', '3': 'k3' } ]] assert vm.ds == ds1
def test_6(): code = '''\ (+jojo t :body! [:body [:body]]) ''' sexp_vect = parse_sexp_vect(code_scan(code)) module = compile_module(__name__ + 'test_6', sexp_vect) vm = VM([1], [RP(module.t)]) vm = vm.exe() assert vm.ds == [1, 1]
def test_5(): code = '''\ (+jojo t null 1 swap cons 2 swap cons cdr car) ''' sexp_vect = parse_sexp_vect(code_scan(code)) module = compile_module(__name__ + 'test_5', sexp_vect) vm = VM([], [RP(module.t)]) vm = vm.exe() assert vm.ds == [1]
def test_4(): code = '''\ (+jojo t (if [1 2 eq?] ["true"] ["false"])) ''' sexp_vect = parse_sexp_vect(code_scan(code)) module = compile_module(__name__ + 'test_4', sexp_vect) vm = VM([], [RP(module.t)]) vm = vm.exe() assert vm.ds == ["false"]
def test_3(): code = '''\ (+jojo t 1 2 eq? {"true"} {"false"} ifte) ''' sexp_vect = parse_sexp_vect(code_scan(code)) module = compile_module(__name__ + 'test_3', sexp_vect) vm = VM([], [RP(module.t)]) vm = vm.exe() assert vm.ds == ["false"]
def test_1(): code = '''\ (+jojo six 1 2 add 3 add) ''' sexp_vect = parse_sexp_vect(code_scan(code)) module = compile_module(__name__ + 'test_1', sexp_vect) vm = VM([], [RP(module.six)]) vm = vm.exe() assert vm.ds == [6]
def test_2(): code = '''\ (import os) (+jojo times os .times) ''' sexp_vect = parse_sexp_vect(code_scan(code)) module = compile_module(__name__ + 'test_2', sexp_vect) vm = VM([], [RP(module.times)]) vm = vm.exe() assert type(vm.ds.pop()) == posix.times_result
def test_7(): code = '''\ (+jojo t '(a b (((c)))) dup car swap dup cdr car swap dup cdr cdr car car car car swap drop) ''' sexp_vect = parse_sexp_vect(code_scan(code)) module = compile_module(__name__ + 'test_7', sexp_vect) vm = VM([], [RP(module.t)]) vm = vm.exe() assert vm.ds == ["a", "b", "c"]
def test_2(): vm = VM([], [RP(jojo_2)]) vm = vm.exe() assert vm.ds == [205]
def test_1(): vm = VM([], [RP(jojo_1)]) vm = vm.exe() assert vm.ds == ["xieyuheng"]
def test_0(): vm = VM([1, 2], [RP(JOJO([add, 3, add, 1, 2, swap, dup, dup, drop]))]) vm = vm.exe() assert vm.ds == [6, 2, 1, 1]
def test_5(): vm = VM([], [RP((jojo_5))]) vm = vm.exe() assert vm.ds == [20]
def test_3(): vm = VM([], [RP(jojo_3)]) vm = vm.exe() assert vm.ds == ["false"]