summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBob Halley <halley@dnspython.org>2022-01-24 12:54:20 -0800
committerBob Halley <halley@dnspython.org>2022-01-24 12:54:20 -0800
commit2b16bffb0539bd23dd900b66af2c407a1a4e8083 (patch)
tree97fcf93f556d87900951043dafecd02477720bbf /tests
parentfa3c1bd9e6e1399cbca3be6e4950ce5514619fdc (diff)
downloaddnspython-2b16bffb0539bd23dd900b66af2c407a1a4e8083.tar.gz
add a few other missing things from the current python set API
Diffstat (limited to 'tests')
-rw-r--r--tests/test_set.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/test_set.py b/tests/test_set.py
index 6fd0860..103a6e9 100644
--- a/tests/test_set.py
+++ b/tests/test_set.py
@@ -133,6 +133,19 @@ class SetTestCase(unittest.TestCase):
e = S([])
self.assertEqual(s1 ^ s2, e)
+ def testSymmetricDifference5(self):
+ s1 = S([1, 2, 3])
+ s2 = S([2, 4])
+ s1 ^= s2
+ e = S([1, 3, 4])
+ self.assertEqual(s1, e)
+
+ def testSymmetricDifference6(self):
+ s1 = S([1, 2, 3])
+ s1 ^= s1
+ e = S([])
+ self.assertEqual(s1, e)
+
def testSubset1(self):
s1 = S([1, 2, 3])
s2 = S([3, 2, 1])
@@ -191,6 +204,35 @@ class SetTestCase(unittest.TestCase):
s2 = S([1, 4])
self.assertTrue(not s1.issuperset(s2))
+ def testDisjoint1(self):
+ s1 = S([1, 2, 3])
+ s2 = S([4])
+ self.assertTrue(s1.isdisjoint(s2))
+
+ def testDisjoint2(self):
+ s1 = S([1, 2, 3])
+ s2 = S([2, 4])
+ self.assertTrue(not s1.isdisjoint(s2))
+
+ def testDisjoint3(self):
+ s1 = S([1, 2, 3])
+ s2 = S([])
+ self.assertTrue(s1.isdisjoint(s2))
+
+ def testPop(self):
+ original = S([1, 2, 3])
+ s1 = original.copy()
+ item = s1.pop()
+ self.assertTrue(len(s1) == 2)
+ self.assertTrue(item in original)
+ item = s1.pop()
+ self.assertTrue(len(s1) == 1)
+ self.assertTrue(item in original)
+ item = s1.pop()
+ self.assertTrue(len(s1) == 0)
+ self.assertTrue(item in original)
+ self.assertRaises(KeyError, lambda: s1.pop())
+
def testUpdate1(self):
s1 = S([1, 2, 3])
u = (4, 5, 6)
@@ -259,6 +301,8 @@ class SetTestCase(unittest.TestCase):
s = S([1, 2, 3])
self.assertRaises(ValueError, lambda: s.union_update(1))
self.assertRaises(ValueError, lambda: s.intersection_update(1))
+ self.assertRaises(ValueError, lambda: s.difference_update(1))
+ self.assertRaises(ValueError, lambda: s.symmetric_difference_update(1))
def testSelfUpdates(self):
expected = S([1, 2, 3])
@@ -275,6 +319,10 @@ class SetTestCase(unittest.TestCase):
self.assertRaises(ValueError, lambda: s.issubset(123))
self.assertRaises(ValueError, lambda: s.issuperset(123))
+ def testBadDisjoint(self):
+ s = S([1, 2, 3])
+ self.assertRaises(ValueError, lambda: s.isdisjoint(123))
+
def testIncrementalOperators(self):
s = S([1, 2, 3])
s += S([5, 4])