[pypy-svn] rev 486 - in pypy/trunk/src/pypy/objspace/std: . test

arigo at codespeak.net arigo at codespeak.net
Mon May 26 19:41:42 CEST 2003


Author: arigo
Date: Mon May 26 19:41:42 2003
New Revision: 486

Modified:
   pypy/trunk/src/pypy/objspace/std/test/test_tupleobject.py
   pypy/trunk/src/pypy/objspace/std/tupleobject.py
Log:
equality between tuples

Modified: pypy/trunk/src/pypy/objspace/std/test/test_tupleobject.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/test/test_tupleobject.py	(original)
+++ pypy/trunk/src/pypy/objspace/std/test/test_tupleobject.py	Mon May 26 19:41:42 2003
@@ -55,5 +55,19 @@
         self.assertRaises(NoValue, self.space.next, w_iter)
         self.assertRaises(NoValue, self.space.next, w_iter)
 
+    def test_add(self):
+        w = self.space.wrap
+        w_tuple0 = tobj.W_TupleObject([])
+        w_tuple1 = tobj.W_TupleObject([w(5), w(3), w(99)])
+        w_tuple2 = tobj.W_TupleObject([w(-7)] * 111)
+        self.assertEqual_w(self.space.add(w_tuple1, w_tuple1),
+                           tobj.W_TupleObject([w(5), w(3), w(99),
+                                               w(5), w(3), w(99)]))
+        self.assertEqual_w(self.space.add(w_tuple1, w_tuple2),
+                           tobj.W_TupleObject([w(5), w(3), w(99)] +
+                                              [w(-7)] * 111))
+        self.assertEqual_w(self.space.add(w_tuple1, w_tuple0), w_tuple1)
+        self.assertEqual_w(self.space.add(w_tuple0, w_tuple2), w_tuple2)
+
 if __name__ == '__main__':
     unittest.main()

Modified: pypy/trunk/src/pypy/objspace/std/tupleobject.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/tupleobject.py	(original)
+++ pypy/trunk/src/pypy/objspace/std/tupleobject.py	Mon May 26 19:41:42 2003
@@ -53,3 +53,15 @@
     return W_TupleObject(items1 + items2)
 
 StdObjSpace.add.register(tuple_add, W_TupleObject, W_TupleObject)
+
+def tuple_eq(space, w_tuple1, w_tuple2):
+    items1 = w_tuple1.wrappeditems
+    items2 = w_tuple2.wrappeditems
+    if len(items1) != len(items2):
+        return space.w_False
+    for item1, item2 in zip(items1, items2):
+        if not space.is_true(space.eq(item1, item2)):
+            return space.w_False
+    return space.w_True
+
+StdObjSpace.eq.register(tuple_eq, W_TupleObject, W_TupleObject)


More information about the Pypy-commit mailing list