[pypy-svn] rev 985 - in pypy/trunk/src/pypy/objspace/std: . test
tismer at codespeak.net
tismer at codespeak.net
Mon Jun 23 13:43:07 CEST 2003
Author: tismer
Date: Mon Jun 23 13:43:06 2003
New Revision: 985
Modified:
pypy/trunk/src/pypy/objspace/std/dictobject.py
pypy/trunk/src/pypy/objspace/std/dictobject_app.py
pypy/trunk/src/pypy/objspace/std/dicttype.py
pypy/trunk/src/pypy/objspace/std/test/test_dictobject.py
Log:
added tests and missing methods, tested, complete (despite order comparison)
Modified: pypy/trunk/src/pypy/objspace/std/dictobject.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/dictobject.py (original)
+++ pypy/trunk/src/pypy/objspace/std/dictobject.py Mon Jun 23 13:43:06 2003
@@ -1,3 +1,10 @@
+"""
+Reviewed 03-06-22
+All common dictionary methods are correctly implemented,
+tested, and complete. The only missing feature is support
+for order comparisons.
+"""
+
from pypy.objspace.std.objspace import *
from dicttype import W_DictType, _no_object
from stringobject import W_StringObject
@@ -185,6 +192,17 @@
else:
w_value = w_self.space.gethelper(applicationfile).call("dict_pop", [w_self, w_key, w_default])
return w_value
-
+
+def dict_iteritems__Dict(space, w_self):
+ w_item = w_self.space.gethelper(applicationfile).call("dict_iteritems", [w_self])
+ return w_item
+
+def dict_iterkeys__Dict(space, w_self):
+ w_item = w_self.space.gethelper(applicationfile).call("dict_iterkeys", [w_self])
+ return w_item
+
+def dict_itervalues__Dict(space, w_self):
+ w_item = w_self.space.gethelper(applicationfile).call("dict_itervalues", [w_self])
+ return w_item
register_all(vars(), W_DictType)
Modified: pypy/trunk/src/pypy/objspace/std/dictobject_app.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/dictobject_app.py (original)
+++ pypy/trunk/src/pypy/objspace/std/dictobject_app.py Mon Jun 23 13:43:06 2003
@@ -1,4 +1,4 @@
-#empty
+
def dict_update(d,o):
for k in o.keys():
@@ -30,3 +30,13 @@
if v is __unique:
raise KeyError, k
return v
+
+def dict_iteritems(d):
+ return iter(d.items())
+
+def dict_iterkeys(d):
+ return iter(d.keys())
+
+def dict_itervalues(d):
+ return iter(d.values())
+
Modified: pypy/trunk/src/pypy/objspace/std/dicttype.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/dicttype.py (original)
+++ pypy/trunk/src/pypy/objspace/std/dicttype.py Mon Jun 23 13:43:06 2003
@@ -1,3 +1,7 @@
+"""
+Reviewed 03-06-22
+"""
+
from pypy.objspace.std.objspace import *
from typeobject import W_TypeObject
Modified: pypy/trunk/src/pypy/objspace/std/test/test_dictobject.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/std/test/test_dictobject.py (original)
+++ pypy/trunk/src/pypy/objspace/std/test/test_dictobject.py Mon Jun 23 13:43:06 2003
@@ -83,30 +83,30 @@
def test_clear(self):
- self.d = {1:2, 3:4}
- self.d.clear()
- self.assertEqual(len(self.d), 0)
+ d = {1:2, 3:4}
+ d.clear()
+ self.assertEqual(len(d), 0)
def test_copy(self):
- self.d = {1:2, 3:4}
- dd = self.d.copy()
- self.assertEqual(self.d, dd)
- self.failIf(self.d is dd)
+ d = {1:2, 3:4}
+ dd = d.copy()
+ self.assertEqual(d, dd)
+ self.failIf(d is dd)
def test_get(self):
- self.d = {1:2, 3:4}
- self.assertEqual(self.d.get(1), 2)
- self.assertEqual(self.d.get(1,44), 2)
- self.assertEqual(self.d.get(33), None)
- self.assertEqual(self.d.get(33,44), 44)
+ d = {1:2, 3:4}
+ self.assertEqual(d.get(1), 2)
+ self.assertEqual(d.get(1,44), 2)
+ self.assertEqual(d.get(33), None)
+ self.assertEqual(d.get(33,44), 44)
def test_pop(self):
- self.d = {1:2, 3:4}
- dd = self.d.copy()
+ d = {1:2, 3:4}
+ dd = d.copy()
result = dd.pop(1)
self.assertEqual(result, 2)
self.assertEqual(len(dd), 1)
- dd = self.d.copy()
+ dd = d.copy()
result = dd.pop(1, 44)
self.assertEqual(result, 2)
self.assertEqual(len(dd), 1)
@@ -116,68 +116,77 @@
self.assertRaises(KeyError, dd.pop, 33)
def test_has_key(self):
- self.d = {1:2, 3:4}
- self.failUnless(self.d.has_key(1))
- self.failIf(self.d.has_key(33))
+ d = {1:2, 3:4}
+ self.failUnless(d.has_key(1))
+ self.failIf(d.has_key(33))
def test_items(self):
- self.d = {1:2, 3:4}
- its = self.d.items()
+ d = {1:2, 3:4}
+ its = d.items()
its.sort()
self.assertEqual(its, [(1,2),(3,4)])
- def notyet_test_iteritems(self):
- pass
-
- def notyet_test_iterkeys(self):
- pass
-
- def notyet_test_itervalues(self):
- pass
+ def test_iteritems(self):
+ d = {1:2, 3:4}
+ dd = d.copy()
+ for k, v in d.iteritems():
+ self.assertEqual(v, dd[k])
+ del dd[k]
+ self.failIf(dd)
+
+ def test_iterkeys(self):
+ d = {1:2, 3:4}
+ dd = d.copy()
+ for k in d.iterkeys():
+ del dd[k]
+ self.failIf(dd)
+
+ def test_itervalues(self):
+ d = {1:2, 3:4}
+ values = []
+ for k in d.itervalues():
+ values.append(k)
+ self.assertEqual(values, d.values())
def test_keys(self):
- self.d = {1:2, 3:4}
- kys = self.d.keys()
+ d = {1:2, 3:4}
+ kys = d.keys()
kys.sort()
self.assertEqual(kys, [1,3])
def test_popitem(self):
- self.d = {1:2, 3:4}
- it = self.d.popitem()
- self.assertEqual(len(self.d), 1)
+ d = {1:2, 3:4}
+ it = d.popitem()
+ self.assertEqual(len(d), 1)
self.failUnless(it==(1,2) or it==(3,4))
- it1 = self.d.popitem()
- self.assertEqual(len(self.d), 0)
+ it1 = d.popitem()
+ self.assertEqual(len(d), 0)
self.failUnless((it!=it1) and (it1==(1,2) or it1==(3,4)))
def test_setdefault(self):
- self.d = {1:2, 3:4}
- dd = self.d.copy()
+ d = {1:2, 3:4}
+ dd = d.copy()
x = dd.setdefault(1, 99)
- self.assertEqual(self.d, dd)
+ self.assertEqual(d, dd)
self.assertEqual(x, 2)
x = dd.setdefault(33, 99)
- self.d[33] = 99
- self.assertEqual(self.d, dd)
+ d[33] = 99
+ self.assertEqual(d, dd)
self.assertEqual(x, 99)
def test_update(self):
- self.d = {1:2, 3:4}
- dd = self.d.copy()
- self.d.update({})
- self.assertEqual(self.d, dd)
- self.d.update({3:5, 6:7})
- self.assertEqual(self.d, {1:2, 3:5, 6:7})
+ d = {1:2, 3:4}
+ dd = d.copy()
+ d.update({})
+ self.assertEqual(d, dd)
+ d.update({3:5, 6:7})
+ self.assertEqual(d, {1:2, 3:5, 6:7})
def test_values(self):
- self.d = {1:2, 3:4}
- vals = self.d.values()
+ d = {1:2, 3:4}
+ vals = d.values()
vals.sort()
self.assertEqual(vals, [2,4])
-
-
-
-
if __name__ == '__main__':
test.main()
More information about the Pypy-commit
mailing list