[pypy-commit] pypy set-strategies: added tests for intersection_multiple order
l.diekmann
noreply at buildbot.pypy.org
Thu Nov 10 13:52:38 CET 2011
Author: Lukas Diekmann <lukas.diekmann at uni-duesseldorf.de>
Branch: set-strategies
Changeset: r49268:0bf8d5082b03
Date: 2011-11-07 16:24 +0100
http://bitbucket.org/pypy/pypy/changeset/0bf8d5082b03/
Log: added tests for intersection_multiple order
diff --git a/pypy/objspace/std/test/test_setobject.py b/pypy/objspace/std/test/test_setobject.py
--- a/pypy/objspace/std/test/test_setobject.py
+++ b/pypy/objspace/std/test/test_setobject.py
@@ -15,6 +15,7 @@
from pypy.objspace.std.setobject import set_intersection__Set
from pypy.objspace.std.setobject import eq__Set_Set
from pypy.conftest import gettestobjspace
+from pypy.objspace.std.listobject import W_ListObject
letters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
@@ -54,6 +55,31 @@
s = self.space.newset()
assert self.space.str_w(self.space.repr(s)) == 'set([])'
+ def test_intersection_order(self):
+ # theses tests make sure that intersection is done in the correct order
+ # (smallest first)
+ space = self.space
+ a = W_SetObject(self.space)
+ _initialize_set(self.space, a, self.space.wrap("abcdefg"))
+ a.intersect = None
+
+ b = W_SetObject(self.space)
+ _initialize_set(self.space, b, self.space.wrap("abc"))
+
+ result = set_intersection__Set(space, a, [b])
+ assert space.is_true(self.space.eq(result, W_SetObject(space, self.space.wrap("abc"))))
+
+ c = W_SetObject(self.space)
+ _initialize_set(self.space, c, self.space.wrap("e"))
+
+ d = W_SetObject(self.space)
+ _initialize_set(self.space, d, self.space.wrap("ab"))
+ d.intersect = None
+
+ result = set_intersection__Set(space, a, [d,c,b])
+ assert space.is_true(self.space.eq(result, W_SetObject(space, self.space.wrap(""))))
+
+
class AppTestAppSetTest:
def setup_class(self):
More information about the pypy-commit
mailing list