diff options
-rw-r--r-- | Lib/test/test_collections.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py index a2a66a7..92520b0 100644 --- a/Lib/test/test_collections.py +++ b/Lib/test/test_collections.py @@ -2064,6 +2064,29 @@ class TestCounter(unittest.TestCase): set_result = setop(set(p.elements()), set(q.elements())) self.assertEqual(counter_result, dict.fromkeys(set_result, 1)) + def test_subset_superset_not_implemented(self): + # Verify that multiset comparison operations are not implemented. + + # These operations were intentionally omitted because multiset + # comparison semantics conflict with existing dict equality semantics. + + # For multisets, we would expect that if p<=q and p>=q are both true, + # then p==q. However, dict equality semantics require that p!=q when + # one of sets contains an element with a zero count and the other + # doesn't. + + p = Counter(a=1, b=0) + q = Counter(a=1, c=0) + self.assertNotEqual(p, q) + with self.assertRaises(TypeError): + p < q + with self.assertRaises(TypeError): + p <= q + with self.assertRaises(TypeError): + p > q + with self.assertRaises(TypeError): + p >= q + def test_inplace_operations(self): elements = 'abcd' for i in range(1000): |