[pypy-svn] r44091 - pypy/branch/prolog-bytecode/pypy/lang/prolog/interpreter/test

cfbolz at codespeak.net cfbolz at codespeak.net
Thu Jun 7 14:59:21 CEST 2007


Author: cfbolz
Date: Thu Jun  7 14:59:19 2007
New Revision: 44091

Modified:
   pypy/branch/prolog-bytecode/pypy/lang/prolog/interpreter/test/test_compiler.py
Log:
another compiler test, mostly there for the XXX


Modified: pypy/branch/prolog-bytecode/pypy/lang/prolog/interpreter/test/test_compiler.py
==============================================================================
--- pypy/branch/prolog-bytecode/pypy/lang/prolog/interpreter/test/test_compiler.py	(original)
+++ pypy/branch/prolog-bytecode/pypy/lang/prolog/interpreter/test/test_compiler.py	Thu Jun  7 14:59:19 2007
@@ -1,5 +1,5 @@
 from pypy.lang.prolog.interpreter.compiler import compile
-from pypy.lang.prolog.interpreter.term import Atom, Var, Term
+from pypy.lang.prolog.interpreter.term import Atom, Var, Term, Number
 from pypy.lang.prolog.interpreter.parsing import get_engine, get_query_and_vars
 
 def test_simple():
@@ -78,4 +78,16 @@
     assert code.term_info == [("f", 2, "f/2")]
     assert code.can_contain_cut
 
-
+def test_arithmetic():
+    # XXX compile is
+    e = get_engine("")
+    head, body = get_query_and_vars("f(X) :- Y is X - 1, f(Y).")[0].args
+    code = compile(head, body, e)
+    assert code.opcode_head == "l\x00\x00t\x00\x00"
+    assert code.opcode.startswith(
+        "l\x00\x01l\x00\x00c\x00\x00t\x00\x01t\x00\x02b")
+    assert code.constants == [Number(1)]
+    assert code.term_info == [("f", 1, "f/1"), ("-", 2, "-/2"),
+                              ("is", 2, "is/2")]
+    assert not code.can_contain_cut
+ 



More information about the Pypy-commit mailing list