mirror of
https://github.com/python/cpython.git
synced 2025-09-26 10:19:53 +00:00
Fix some set algebra methods of WeakSet objects.
This commit is contained in:
parent
de89d4b097
commit
9c47ac05d1
2 changed files with 30 additions and 33 deletions
|
@ -71,6 +71,11 @@ class TestWeakSet(unittest.TestCase):
|
|||
x = WeakSet(self.items + self.items2)
|
||||
c = C(self.items2)
|
||||
self.assertEqual(self.s.union(c), x)
|
||||
del c
|
||||
self.assertEqual(len(u), len(self.items) + len(self.items2))
|
||||
self.items2.pop()
|
||||
gc.collect()
|
||||
self.assertEqual(len(u), len(self.items) + len(self.items2))
|
||||
|
||||
def test_or(self):
|
||||
i = self.s.union(self.items2)
|
||||
|
@ -78,14 +83,19 @@ class TestWeakSet(unittest.TestCase):
|
|||
self.assertEqual(self.s | frozenset(self.items2), i)
|
||||
|
||||
def test_intersection(self):
|
||||
i = self.s.intersection(self.items2)
|
||||
s = WeakSet(self.letters)
|
||||
i = s.intersection(self.items2)
|
||||
for c in self.letters:
|
||||
self.assertEqual(c in i, c in self.d and c in self.items2)
|
||||
self.assertEqual(self.s, WeakSet(self.items))
|
||||
self.assertEqual(c in i, c in self.items2 and c in self.letters)
|
||||
self.assertEqual(s, WeakSet(self.letters))
|
||||
self.assertEqual(type(i), WeakSet)
|
||||
for C in set, frozenset, dict.fromkeys, list, tuple:
|
||||
x = WeakSet([])
|
||||
self.assertEqual(self.s.intersection(C(self.items2)), x)
|
||||
self.assertEqual(i.intersection(C(self.items)), x)
|
||||
self.assertEqual(len(i), len(self.items2))
|
||||
self.items2.pop()
|
||||
gc.collect()
|
||||
self.assertEqual(len(i), len(self.items2))
|
||||
|
||||
def test_isdisjoint(self):
|
||||
self.assertTrue(self.s.isdisjoint(WeakSet(self.items2)))
|
||||
|
@ -116,6 +126,10 @@ class TestWeakSet(unittest.TestCase):
|
|||
self.assertEqual(self.s, WeakSet(self.items))
|
||||
self.assertEqual(type(i), WeakSet)
|
||||
self.assertRaises(TypeError, self.s.symmetric_difference, [[]])
|
||||
self.assertEqual(len(i), len(self.items) + len(self.items2))
|
||||
self.items2.pop()
|
||||
gc.collect()
|
||||
self.assertEqual(len(i), len(self.items) + len(self.items2))
|
||||
|
||||
def test_xor(self):
|
||||
i = self.s.symmetric_difference(self.items2)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue