mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	Issue 15246: Improve test coverage for collections.abc.Set. (Contributed by James King).
This commit is contained in:
		
							parent
							
								
									62f4dad816
								
							
						
					
					
						commit
						2d452ee166
					
				
					 2 changed files with 54 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -640,6 +640,59 @@ class TestCollectionABCs(ABCTestCase):
 | 
			
		|||
        a, b = OneTwoThreeSet(), OneTwoThreeSet()
 | 
			
		||||
        self.assertTrue(hash(a) == hash(b))
 | 
			
		||||
 | 
			
		||||
    def test_isdisjoint_Set(self):
 | 
			
		||||
        class MySet(Set):
 | 
			
		||||
            def __init__(self, itr):
 | 
			
		||||
                self.contents = itr
 | 
			
		||||
            def __contains__(self, x):
 | 
			
		||||
                return x in self.contents
 | 
			
		||||
            def __iter__(self):
 | 
			
		||||
                return iter(self.contents)
 | 
			
		||||
            def __len__(self):
 | 
			
		||||
                return len([x for x in self.contents])
 | 
			
		||||
        s1 = MySet((1, 2, 3))
 | 
			
		||||
        s2 = MySet((4, 5, 6))
 | 
			
		||||
        s3 = MySet((1, 5, 6))
 | 
			
		||||
        self.assertTrue(s1.isdisjoint(s2))
 | 
			
		||||
        self.assertFalse(s1.isdisjoint(s3))
 | 
			
		||||
 | 
			
		||||
    def test_equality_Set(self):
 | 
			
		||||
        class MySet(Set):
 | 
			
		||||
            def __init__(self, itr):
 | 
			
		||||
                self.contents = itr
 | 
			
		||||
            def __contains__(self, x):
 | 
			
		||||
                return x in self.contents
 | 
			
		||||
            def __iter__(self):
 | 
			
		||||
                return iter(self.contents)
 | 
			
		||||
            def __len__(self):
 | 
			
		||||
                return len([x for x in self.contents])
 | 
			
		||||
        s1 = MySet((1,))
 | 
			
		||||
        s2 = MySet((1, 2))
 | 
			
		||||
        s3 = MySet((3, 4))
 | 
			
		||||
        s4 = MySet((3, 4))
 | 
			
		||||
        self.assertTrue(s2 > s1)
 | 
			
		||||
        self.assertTrue(s1 < s2)
 | 
			
		||||
        self.assertFalse(s2 <= s1)
 | 
			
		||||
        self.assertFalse(s2 <= s3)
 | 
			
		||||
        self.assertFalse(s1 >= s2)
 | 
			
		||||
        self.assertEqual(s3, s4)
 | 
			
		||||
        self.assertNotEqual(s2, s3)
 | 
			
		||||
 | 
			
		||||
    def test_arithmetic_Set(self):
 | 
			
		||||
        class MySet(Set):
 | 
			
		||||
            def __init__(self, itr):
 | 
			
		||||
                self.contents = itr
 | 
			
		||||
            def __contains__(self, x):
 | 
			
		||||
                return x in self.contents
 | 
			
		||||
            def __iter__(self):
 | 
			
		||||
                return iter(self.contents)
 | 
			
		||||
            def __len__(self):
 | 
			
		||||
                return len([x for x in self.contents])
 | 
			
		||||
        s1 = MySet((1, 2, 3))
 | 
			
		||||
        s2 = MySet((3, 4, 5))
 | 
			
		||||
        s3 = s1 & s2
 | 
			
		||||
        self.assertEqual(s3, MySet((3,)))
 | 
			
		||||
 | 
			
		||||
    def test_MutableSet(self):
 | 
			
		||||
        self.assertIsInstance(set(), MutableSet)
 | 
			
		||||
        self.assertTrue(issubclass(set, MutableSet))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -679,6 +679,7 @@ Jason Killen
 | 
			
		|||
Jan Kim
 | 
			
		||||
Taek Joo Kim
 | 
			
		||||
Sam Kimbrel
 | 
			
		||||
James King
 | 
			
		||||
W. Trevor King
 | 
			
		||||
Paul Kippes
 | 
			
		||||
Steve Kirsch
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue