Author: Antonio Cuni <[email protected]>
Branch: py3k
Changeset: r57771:2ea52932a24a
Date: 2012-10-03 15:00 +0200
http://bitbucket.org/pypy/pypy/changeset/2ea52932a24a/
Log: fix != between dict.{keys,items} and {set,frozenset}
diff --git a/pypy/objspace/std/dictmultiobject.py
b/pypy/objspace/std/dictmultiobject.py
--- a/pypy/objspace/std/dictmultiobject.py
+++ b/pypy/objspace/std/dictmultiobject.py
@@ -982,6 +982,13 @@
eq__DictViewItems_settypedef = eq__DictViewItems_DictViewItems
eq__DictViewItems_frozensettypedef = eq__DictViewItems_DictViewItems
+def ne__DictViewKeys_settypedef(space, w_dict, w_set):
+ return space.not_(eq__DictViewItems_settypedef(space, w_dict, w_set))
+ne__DictViewKeys_frozensettypedef = ne__DictViewKeys_settypedef
+
+def ne__DictViewItems_settypedef(space, w_dict, w_set):
+ return space.not_(eq__DictViewItems_settypedef(space, w_dict, w_set))
+ne__DictViewItems_frozensettypedef = ne__DictViewItems_settypedef
def repr__DictViewKeys(space, w_dictview):
w_seq = space.call_function(space.w_list, w_dictview)
diff --git a/pypy/objspace/std/test/test_dictmultiobject.py
b/pypy/objspace/std/test/test_dictmultiobject.py
--- a/pypy/objspace/std/test/test_dictmultiobject.py
+++ b/pypy/objspace/std/test/test_dictmultiobject.py
@@ -784,7 +784,7 @@
assert d1.items() - d2.items() == set([('a', 1)])
assert d1.items() - d3.items() == set([('a', 1), ('b', 2)])
- def test_keys_items_set_operations_any_type(self):
+ def test_keys_set_operations_any_type(self):
d = {1: 'a', 2: 'b', 3: 'c'}
assert d.keys() & {1} == {1}
assert d.keys() & {1: 'foo'} == {1}
@@ -799,9 +799,35 @@
#
assert d.keys() == {1, 2, 3}
assert {1, 2, 3} == d.keys()
+ assert d.keys() == frozenset({1, 2, 3})
+ assert frozenset({1, 2, 3}) == d.keys()
assert not d.keys() != {1, 2, 3}
assert not {1, 2, 3} != d.keys()
-
+ assert not d.keys() != frozenset({1, 2, 3})
+ assert not frozenset({1, 2, 3}) != d.keys()
+
+ def test_items_set_operations_any_type(self):
+ d = {1: 'a', 2: 'b', 3: 'c'}
+ assert d.items() & {(1, 'a')} == {(1, 'a')}
+ assert d.items() & {(1, 'a'): 'foo'} == {(1, 'a')}
+ assert d.items() & [(1, 'a'), (2, 'b')] == {(1, 'a'), (2, 'b')}
+ #
+ assert {(1, 'a')} & d.items() == {(1, 'a')}
+ assert {(1, 'a'): 'foo'} & d.items() == {(1, 'a')}
+ assert [(1, 'a'), (2, 'b')] & d.items() == {(1, 'a'), (2, 'b')}
+ #
+ assert d.items() - {(1, 'a')} == {(2, 'b'), (3, 'c')}
+ assert {(1, 'a'), 4} - d.items() == {4}
+ #
+ assert d.items() == {(1, 'a'), (2, 'b'), (3, 'c')}
+ assert {(1, 'a'), (2, 'b'), (3, 'c')} == d.items()
+ assert d.items() == frozenset({(1, 'a'), (2, 'b'), (3, 'c')})
+ assert frozenset({(1, 'a'), (2, 'b'), (3, 'c')}) == d.items()
+ assert not d.items() != {(1, 'a'), (2, 'b'), (3, 'c')}
+ assert not {(1, 'a'), (2, 'b'), (3, 'c')} != d.items()
+ assert not d.items() != frozenset({(1, 'a'), (2, 'b'), (3, 'c')})
+ assert not frozenset({(1, 'a'), (2, 'b'), (3, 'c')}) != d.items()
+
def test_keys_items_contained(self):
def helper(fn):
empty = fn(dict())
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit