diff options
Diffstat (limited to 'Lib/test')
| -rw-r--r-- | Lib/test/test_collections.py | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py index 76c7139..87c6978 100644 --- a/Lib/test/test_collections.py +++ b/Lib/test/test_collections.py @@ -1309,20 +1309,29 @@ class TestCollectionABCs(ABCTestCase): class CustomEqualObject: def __eq__(self, other): return False - class CustomSequence(list): - def __contains__(self, value): - return Sequence.__contains__(self, value) + class CustomSequence(Sequence): + def __init__(self, seq): + self._seq = seq + def __getitem__(self, index): + return self._seq[index] + def __len__(self): + return len(self._seq) nan = float('nan') obj = CustomEqualObject() + seq = CustomSequence([nan, obj, nan]) containers = [ - CustomSequence([nan, obj]), + seq, ItemsView({1: nan, 2: obj}), ValuesView({1: nan, 2: obj}) ] for container in containers: for elem in container: self.assertIn(elem, container) + self.assertEqual(seq.index(nan), 0) + self.assertEqual(seq.index(obj), 1) + self.assertEqual(seq.count(nan), 2) + self.assertEqual(seq.count(obj), 1) def assertSameSet(self, s1, s2): # coerce both to a real set then check equality |
