[pypy-svn] r45037 - in pypy/dist/pypy/lang/scheme: . test
jlg at codespeak.net
jlg at codespeak.net
Fri Jul 13 18:19:49 CEST 2007
Author: jlg
Date: Fri Jul 13 18:19:49 2007
New Revision: 45037
Modified:
pypy/dist/pypy/lang/scheme/object.py
pypy/dist/pypy/lang/scheme/ssparser.py
pypy/dist/pypy/lang/scheme/test/test_eval.py
pypy/dist/pypy/lang/scheme/test/test_object.py
pypy/dist/pypy/lang/scheme/test/test_parser.py
Log:
s/W_Float/W_Real/; s/W_Fixnum/W_Integer -> r5rs
Modified: pypy/dist/pypy/lang/scheme/object.py
==============================================================================
--- pypy/dist/pypy/lang/scheme/object.py (original)
+++ pypy/dist/pypy/lang/scheme/object.py Fri Jul 13 18:19:49 2007
@@ -93,7 +93,7 @@
class W_Number(W_Root):
pass
-class W_Float(W_Number):
+class W_Real(W_Number):
def __init__(self, val):
self.exact = False
self.floatval = val
@@ -124,7 +124,7 @@
return int_part
-class W_Fixnum(W_Float):
+class W_Integer(W_Real):
def __init__(self, val):
self.fixnumval = val
self.exact = True
@@ -277,16 +277,16 @@
return acc
def unary_oper(self, x):
- if isinstance(x, W_Fixnum):
- return W_Fixnum(self.do_unary_oper(x.to_fixnum()))
+ if isinstance(x, W_Integer):
+ return W_Integer(self.do_unary_oper(x.to_fixnum()))
else:
- return W_Float(self.do_unary_oper(x.to_float()))
+ return W_Real(self.do_unary_oper(x.to_float()))
def oper(self, x, y):
- if isinstance(x, W_Fixnum) and isinstance(y, W_Fixnum):
- return W_Fixnum(self.do_oper(x.to_fixnum(), y.to_fixnum()))
+ if isinstance(x, W_Integer) and isinstance(y, W_Integer):
+ return W_Integer(self.do_oper(x.to_fixnum(), y.to_fixnum()))
else:
- return W_Float(self.do_oper(x.to_float(), y.to_float()))
+ return W_Real(self.do_oper(x.to_float(), y.to_float()))
def create_op_class(oper, unary_oper, title, default_result=None):
class Op(ListOper):
@@ -317,7 +317,7 @@
if default_result is None:
Op.default_result = None
else:
- Op.default_result = W_Fixnum(default_result)
+ Op.default_result = W_Integer(default_result)
Op.__name__ = "Op" + title
return Op
@@ -367,7 +367,7 @@
class RealP(PredicateNumber):
def predicate(self, w_obj):
- return isinstance(w_obj, W_Float)
+ return isinstance(w_obj, W_Real)
class NumberP(PredicateNumber):
def predicate(self, w_obj):
Modified: pypy/dist/pypy/lang/scheme/ssparser.py
==============================================================================
--- pypy/dist/pypy/lang/scheme/ssparser.py (original)
+++ pypy/dist/pypy/lang/scheme/ssparser.py Fri Jul 13 18:19:49 2007
@@ -1,8 +1,8 @@
import autopath
from pypy.rlib.parsing.pypackrat import PackratParser
from pypy.rlib.parsing.makepackrat import BacktrackException, Status
-from pypy.lang.scheme.object import W_Pair, W_Fixnum, W_String, W_Identifier, \
- W_Nil, W_Boolean, W_Float, Literal
+from pypy.lang.scheme.object import W_Pair, W_Integer, W_String, W_Identifier, \
+ W_Nil, W_Boolean, W_Real, Literal
def unquote(s):
str_lst = []
@@ -32,12 +32,12 @@
FIXNUM:
c = `\-?(0|([1-9][0-9]*))`
IGNORE*
- return {W_Fixnum(int(c))};
+ return {W_Integer(int(c))};
FLOAT:
c = `\-?[0-9]*\.[0-9]*`
IGNORE*
- return {W_Float(float(c))};
+ return {W_Real(float(c))};
BOOLEAN:
c = `#(t|f)`
Modified: pypy/dist/pypy/lang/scheme/test/test_eval.py
==============================================================================
--- pypy/dist/pypy/lang/scheme/test/test_eval.py (original)
+++ pypy/dist/pypy/lang/scheme/test/test_eval.py Fri Jul 13 18:19:49 2007
@@ -4,7 +4,7 @@
def test_eval_obj():
w_num = W_Pair(W_Identifier("+"),
- W_Pair(W_Fixnum(4), W_Pair(W_Fixnum(5), W_Nil())))
+ W_Pair(W_Integer(4), W_Pair(W_Integer(5), W_Nil())))
assert w_num.eval(None).to_number() == 9
def eval_expr(ctx, expr):
@@ -54,13 +54,13 @@
def test_ctx_simple():
ctx = ExecutionContext()
- ctx.put("v1", W_Fixnum(4))
- ctx.put("v2", W_Fixnum(5))
+ ctx.put("v1", W_Integer(4))
+ ctx.put("v2", W_Integer(5))
w_num = eval_expr(ctx, "(+ 1 v1 v2)")
assert w_num.to_number() == 10
- ctx.put("v2", W_Float(3.2))
+ ctx.put("v2", W_Real(3.2))
w_num = eval_expr(ctx, "(+ 1 v1 v2)")
assert w_num.to_number() == 8.2
@@ -199,7 +199,7 @@
ctx.put("f1", w_lambda)
w_result = eval_expr(ctx, "(f1)")
- assert isinstance(w_result, W_Fixnum)
+ assert isinstance(w_result, W_Integer)
assert w_result.to_number() == 12
def test_lambda_args():
@@ -207,11 +207,11 @@
eval_expr(ctx, "(define f1 (lambda (n) n))")
w_result = eval_expr(ctx, "(f1 42)")
- assert isinstance(w_result, W_Fixnum)
+ assert isinstance(w_result, W_Integer)
assert w_result.to_number() == 42
w_result = eval_expr(ctx, "((lambda (n m) (+ n m)) 42 -42)")
- assert isinstance(w_result, W_Fixnum)
+ assert isinstance(w_result, W_Integer)
assert w_result.to_number() == 0
def test_lambda_top_ctx():
@@ -219,12 +219,12 @@
eval_expr(ctx, "(define n 42)")
eval_expr(ctx, "(define f1 (lambda (m) (+ n m)))")
w_result = eval_expr(ctx, "(f1 -42)")
- assert isinstance(w_result, W_Fixnum)
+ assert isinstance(w_result, W_Integer)
assert w_result.to_number() == 0
eval_expr(ctx, "(define n 84)")
w_result = eval_expr(ctx, "(f1 -42)")
- assert isinstance(w_result, W_Fixnum)
+ assert isinstance(w_result, W_Integer)
assert w_result.to_number() == 42
def test_lambda_fac():
@@ -250,11 +250,11 @@
eval_expr(ctx, """(define add6 (adder 6))""")
w_result = eval_expr(ctx, "(add6 5)")
- assert isinstance(w_result, W_Fixnum)
+ assert isinstance(w_result, W_Integer)
assert w_result.to_number() == 11
w_result = eval_expr(ctx, "((adder 6) 5)")
- assert isinstance(w_result, W_Fixnum)
+ assert isinstance(w_result, W_Integer)
assert w_result.to_number() == 11
def test_lambda_long_body():
@@ -285,7 +285,7 @@
def test_quote():
w_fnum = eval_noctx("(quote 42)")
- assert isinstance(w_fnum, W_Fixnum)
+ assert isinstance(w_fnum, W_Integer)
assert w_fnum.to_number() == 42
w_sym = eval_noctx("(quote symbol)")
@@ -313,7 +313,7 @@
def test_quote_parse():
w_fnum = eval_noctx("'42")
- assert isinstance(w_fnum, W_Fixnum)
+ assert isinstance(w_fnum, W_Integer)
assert w_fnum.to_number() == 42
w_sym = eval_noctx("'symbol")
@@ -341,7 +341,7 @@
def test_list():
ctx = ExecutionContext()
- ctx.put("var", W_Fixnum(42))
+ ctx.put("var", W_Integer(42))
w_lst = eval_expr(ctx, "(list 1 var (+ 2 1) 'a)")
assert isinstance(w_lst, W_Pair)
assert w_lst.car.to_number() == 1
@@ -352,7 +352,7 @@
def test_let():
ctx = ExecutionContext()
- w_global = W_Fixnum(0)
+ w_global = W_Integer(0)
ctx.put("var", w_global)
w_result = eval_expr(ctx, "(let ((var 42) (x (+ 2 var))) (+ var x))")
assert w_result.to_number() == 44
Modified: pypy/dist/pypy/lang/scheme/test/test_object.py
==============================================================================
--- pypy/dist/pypy/lang/scheme/test/test_object.py (original)
+++ pypy/dist/pypy/lang/scheme/test/test_object.py Fri Jul 13 18:19:49 2007
@@ -17,22 +17,22 @@
def test_fixnum():
num = 12345
- w_num = W_Fixnum(num)
+ w_num = W_Integer(num)
assert num == w_num.to_fixnum()
assert float(num) == w_num.to_float()
assert w_num.to_boolean() is True
def test_float():
num = 12345.567
- w_num = W_Float(num)
+ w_num = W_Real(num)
assert num == w_num.to_float()
assert int(num) == w_num.to_fixnum()
assert w_num.to_boolean() is True
def test_pair():
- c1 = W_Fixnum(1)
+ c1 = W_Integer(1)
c2 = W_String("c2")
- c3 = W_Float(0.3)
+ c3 = W_Real(0.3)
c4 = W_Nil()
p2 = W_Pair(c3, c4)
p1 = W_Pair(c2, p2)
@@ -55,7 +55,7 @@
assert w_id.to_boolean() is True
def test_ctx():
- w_fnum = W_Fixnum(12)
+ w_fnum = W_Integer(12)
w_symb = W_Symbol("symb")
ctx = ExecutionContext({})
@@ -67,15 +67,15 @@
assert ctx.get("no_such_key") is None
def test_location():
- w_fnum = W_Fixnum(42)
+ w_fnum = W_Integer(42)
loc = Location(w_fnum)
assert isinstance(loc, Location)
assert loc.obj is w_fnum
def test_ctx_sets():
- w_fnum = W_Fixnum(42)
- w_fnum2 = W_Fixnum(43)
- w_fnum3 = W_Fixnum(44)
+ w_fnum = W_Integer(42)
+ w_fnum2 = W_Integer(43)
+ w_fnum3 = W_Integer(44)
ctx = ExecutionContext({})
ctx.put("v1", w_fnum)
Modified: pypy/dist/pypy/lang/scheme/test/test_parser.py
==============================================================================
--- pypy/dist/pypy/lang/scheme/test/test_parser.py (original)
+++ pypy/dist/pypy/lang/scheme/test/test_parser.py Fri Jul 13 18:19:49 2007
@@ -1,6 +1,6 @@
import py
from pypy.lang.scheme.ssparser import parse
-from pypy.lang.scheme.object import W_Boolean, W_Float, W_Fixnum, W_String
+from pypy.lang.scheme.object import W_Boolean, W_Real, W_Integer, W_String
from pypy.lang.scheme.object import W_Pair, W_Nil, W_Symbol, W_Identifier
def parse_sexpr(expr):
@@ -8,9 +8,9 @@
def unwrap(w_obj):
"""for testing purposes: unwrap a scheme object into a python object"""
- if isinstance(w_obj, W_Float):
+ if isinstance(w_obj, W_Real):
return w_obj.to_number()
- elif isinstance(w_obj, W_Fixnum):
+ elif isinstance(w_obj, W_Integer):
return w_obj.to_number()
elif isinstance(w_obj, W_String):
return w_obj.strval
@@ -30,14 +30,14 @@
def test_simple():
w_fixnum = parse_sexpr('1')
- assert isinstance(w_fixnum, W_Fixnum)
+ assert isinstance(w_fixnum, W_Integer)
assert unwrap(w_fixnum) == 1
w_fixnum = parse_sexpr('0')
assert unwrap(w_fixnum) == 0
- assert isinstance(w_fixnum, W_Fixnum)
+ assert isinstance(w_fixnum, W_Integer)
w_fixnum = parse_sexpr('1123')
assert unwrap(w_fixnum) == 1123
- assert isinstance(w_fixnum, W_Fixnum)
+ assert isinstance(w_fixnum, W_Integer)
w_fixnum = parse_sexpr('abfa__')
assert isinstance(w_fixnum, W_Identifier)
t = parse_sexpr(r'''"don't believe \"them\""''')
@@ -46,20 +46,20 @@
def test_objects():
w_fixnum = parse_sexpr('-12345')
- assert isinstance(w_fixnum, W_Fixnum)
+ assert isinstance(w_fixnum, W_Integer)
assert unwrap(w_fixnum) == -12345
w_float = parse_sexpr('123456.1234')
- assert isinstance(w_float, W_Float)
+ assert isinstance(w_float, W_Real)
assert unwrap(w_float) == 123456.1234
w_float = parse_sexpr('-123456.1234')
- assert isinstance(w_float, W_Float)
+ assert isinstance(w_float, W_Real)
assert unwrap(w_float) == -123456.1234
def test_sexpr():
w_list = parse_sexpr('( 1 )')
assert isinstance(w_list, W_Pair)
- assert isinstance(w_list.car, W_Fixnum)
+ assert isinstance(w_list.car, W_Integer)
assert isinstance(w_list.cdr, W_Nil)
#w_list = parse_sexpr('()')
@@ -69,8 +69,8 @@
assert isinstance(w_list, W_Pair)
assert isinstance(w_list.car, W_Identifier)
assert isinstance(w_list.cdr, W_Pair)
- assert isinstance(w_list.cdr.car, W_Fixnum)
- assert isinstance(w_list.cdr.cdr.car, W_Fixnum)
+ assert isinstance(w_list.cdr.car, W_Integer)
+ assert isinstance(w_list.cdr.cdr.car, W_Integer)
assert isinstance(w_list.cdr.cdr.cdr, W_Nil)
def test_complex_sexpr():
More information about the Pypy-commit
mailing list