[Python-checkins] python/dist/src/Lib/test test_set.py,1.6,1.7

rhettinger at users.sourceforge.net rhettinger at users.sourceforge.net
Sun Nov 23 21:57:35 EST 2003


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv19524/Lib/test

Modified Files:
	test_set.py 
Log Message:
* Checkin remaining documentation
* Add more tests
* Refactor and neaten the code a bit.
* Rename union_update() to update().
* Improve the algorithms (making them a closer to sets.py).



Index: test_set.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_set.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** test_set.py	23 Nov 2003 02:49:05 -0000	1.6
--- test_set.py	24 Nov 2003 02:57:33 -0000	1.7
***************
*** 47,50 ****
--- 47,55 ----
          self.assertRaises(PassThru, self.s.union, check_pass_thru())
          self.assertRaises(TypeError, self.s.union, [[]])
+         for C in set, frozenset, dict.fromkeys, str, unicode, list, tuple:
+             self.assertEqual(self.thetype('abcba').union(C('cdc')), set('abcd'))
+             self.assertEqual(self.thetype('abcba').union(C('efgfe')), set('abcefg'))
+             self.assertEqual(self.thetype('abcba').union(C('ccb')), set('abc'))
+             self.assertEqual(self.thetype('abcba').union(C('ef')), set('abcef'))
  
      def test_or(self):
***************
*** 66,69 ****
--- 71,79 ----
          self.assertEqual(type(i), self.thetype)
          self.assertRaises(PassThru, self.s.intersection, check_pass_thru())
+         for C in set, frozenset, dict.fromkeys, str, unicode, list, tuple:
+             self.assertEqual(self.thetype('abcba').intersection(C('cdc')), set('cc'))
+             self.assertEqual(self.thetype('abcba').intersection(C('efgfe')), set(''))
+             self.assertEqual(self.thetype('abcba').intersection(C('ccb')), set('bc'))
+             self.assertEqual(self.thetype('abcba').intersection(C('ef')), set(''))
  
      def test_and(self):
***************
*** 86,89 ****
--- 96,104 ----
          self.assertRaises(PassThru, self.s.difference, check_pass_thru())
          self.assertRaises(TypeError, self.s.difference, [[]])
+         for C in set, frozenset, dict.fromkeys, str, unicode, list, tuple:
+             self.assertEqual(self.thetype('abcba').difference(C('cdc')), set('ab'))
+             self.assertEqual(self.thetype('abcba').difference(C('efgfe')), set('abc'))
+             self.assertEqual(self.thetype('abcba').difference(C('ccb')), set('a'))
+             self.assertEqual(self.thetype('abcba').difference(C('ef')), set('abc'))
  
      def test_sub(self):
***************
*** 106,109 ****
--- 121,129 ----
          self.assertRaises(PassThru, self.s.symmetric_difference, check_pass_thru())
          self.assertRaises(TypeError, self.s.symmetric_difference, [[]])
+         for C in set, frozenset, dict.fromkeys, str, unicode, list, tuple:
+             self.assertEqual(self.thetype('abcba').symmetric_difference(C('cdc')), set('abd'))
+             self.assertEqual(self.thetype('abcba').symmetric_difference(C('efgfe')), set('abcefg'))
+             self.assertEqual(self.thetype('abcba').symmetric_difference(C('ccb')), set('a'))
+             self.assertEqual(self.thetype('abcba').symmetric_difference(C('ef')), set('abcef'))
  
      def test_xor(self):
***************
*** 192,196 ****
      def test_clear(self):
          self.s.clear()
!         self.assertEqual(self.s, set([]))
  
      def test_copy(self):
--- 212,217 ----
      def test_clear(self):
          self.s.clear()
!         self.assertEqual(self.s, set())
!         self.assertEqual(len(self.s), 0)
  
      def test_copy(self):
***************
*** 202,205 ****
--- 223,229 ----
          self.s.add('Q')
          self.assert_('Q' in self.s)
+         dup = self.s.copy()
+         self.s.add('Q')
+         self.assertEqual(self.s, dup)
          self.assertRaises(TypeError, self.s.add, [])
  
***************
*** 232,242 ****
          self.assertRaises(KeyError, self.s.pop)
  
!     def test_union_update(self):
!         retval = self.s.union_update(self.otherword)
          self.assertEqual(retval, None)
          for c in (self.word + self.otherword):
              self.assert_(c in self.s)
!         self.assertRaises(PassThru, self.s.union_update, check_pass_thru())
!         self.assertRaises(TypeError, self.s.union_update, [[]])
  
      def test_ior(self):
--- 256,271 ----
          self.assertRaises(KeyError, self.s.pop)
  
!     def test_update(self):
!         retval = self.s.update(self.otherword)
          self.assertEqual(retval, None)
          for c in (self.word + self.otherword):
              self.assert_(c in self.s)
!         self.assertRaises(PassThru, self.s.update, check_pass_thru())
!         self.assertRaises(TypeError, self.s.update, [[]])
!         for p, q in (('cdc', 'abcd'), ('efgfe', 'abcefg'), ('ccb', 'abc'), ('ef', 'abcef')):
!             for C in set, frozenset, dict.fromkeys, str, unicode, list, tuple:
!                 s = self.thetype('abcba')
!                 self.assertEqual(s.update(C(p)), None)
!                 self.assertEqual(s, set(q))
  
      def test_ior(self):
***************
*** 255,258 ****
--- 284,292 ----
          self.assertRaises(PassThru, self.s.intersection_update, check_pass_thru())
          self.assertRaises(TypeError, self.s.intersection_update, [[]])
+         for p, q in (('cdc', 'c'), ('efgfe', ''), ('ccb', 'bc'), ('ef', '')):
+             for C in set, frozenset, dict.fromkeys, str, unicode, list, tuple:
+                 s = self.thetype('abcba')
+                 self.assertEqual(s.intersection_update(C(p)), None)
+                 self.assertEqual(s, set(q))
  
      def test_iand(self):
***************
*** 274,277 ****
--- 308,317 ----
          self.assertRaises(PassThru, self.s.difference_update, check_pass_thru())
          self.assertRaises(TypeError, self.s.difference_update, [[]])
+         self.assertRaises(TypeError, self.s.symmetric_difference_update, [[]])
+         for p, q in (('cdc', 'ab'), ('efgfe', 'abc'), ('ccb', 'a'), ('ef', 'abc')):
+             for C in set, frozenset, dict.fromkeys, str, unicode, list, tuple:
+                 s = self.thetype('abcba')
+                 self.assertEqual(s.difference_update(C(p)), None)
+                 self.assertEqual(s, set(q))
  
      def test_isub(self):
***************
*** 293,296 ****
--- 333,341 ----
          self.assertRaises(PassThru, self.s.symmetric_difference_update, check_pass_thru())
          self.assertRaises(TypeError, self.s.symmetric_difference_update, [[]])
+         for p, q in (('cdc', 'abd'), ('efgfe', 'abcefg'), ('ccb', 'a'), ('ef', 'abcef')):
+             for C in set, frozenset, dict.fromkeys, str, unicode, list, tuple:
+                 s = self.thetype('abcba')
+                 self.assertEqual(s.symmetric_difference_update(C(p)), None)
+                 self.assertEqual(s, set(q))
  
      def test_ixor(self):
***************
*** 636,640 ****
  
      def test_union_method_call(self):
!         self.set.union_update(set([3, 4, 5]))
          self.assertEqual(self.set, set([2, 3, 4, 5, 6]))
  
--- 681,685 ----
  
      def test_union_method_call(self):
!         self.set.update(set([3, 4, 5]))
          self.assertEqual(self.set, set([2, 3, 4, 5, 6]))
  
***************
*** 762,774 ****
  
      def test_update_empty_tuple(self):
!         self.set.union_update(())
          self.assertEqual(self.set, set(self.values))
  
      def test_update_unit_tuple_overlap(self):
!         self.set.union_update(("a",))
          self.assertEqual(self.set, set(self.values))
  
      def test_update_unit_tuple_non_overlap(self):
!         self.set.union_update(("a", "z"))
          self.assertEqual(self.set, set(self.values + ["z"]))
  
--- 807,819 ----
  
      def test_update_empty_tuple(self):
!         self.set.update(())
          self.assertEqual(self.set, set(self.values))
  
      def test_update_unit_tuple_overlap(self):
!         self.set.update(("a",))
          self.assertEqual(self.set, set(self.values))
  
      def test_update_unit_tuple_non_overlap(self):
!         self.set.update(("a", "z"))
          self.assertEqual(self.set, set(self.values + ["z"]))
  
***************
*** 873,877 ****
          self.assertRaises(TypeError, lambda: self.other >= self.set)
  
!     def test_union_update_operator(self):
          try:
              self.set |= self.other
--- 918,922 ----
          self.assertRaises(TypeError, lambda: self.other >= self.set)
  
!     def test_update_operator(self):
          try:
              self.set |= self.other
***************
*** 881,889 ****
              self.fail("expected TypeError")
  
!     def test_union_update(self):
          if self.otherIsIterable:
!             self.set.union_update(self.other)
          else:
!             self.assertRaises(TypeError, self.set.union_update, self.other)
  
      def test_union(self):
--- 926,934 ----
              self.fail("expected TypeError")
  
!     def test_update(self):
          if self.otherIsIterable:
!             self.set.update(self.other)
          else:
!             self.assertRaises(TypeError, self.set.update, self.other)
  
      def test_union(self):
***************
*** 1216,1220 ****
      def test_inplace_methods(self):
          for data in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5), 'december'):
!             for methname in ('union_update', 'intersection_update',
                               'difference_update', 'symmetric_difference_update'):
                  for g in (G, I, Ig, S, L, R):
--- 1261,1265 ----
      def test_inplace_methods(self):
          for data in ("123", "", range(1000), ('do', 1.2), xrange(2000,2200,5), 'december'):
!             for methname in ('update', 'intersection_update',
                               'difference_update', 'symmetric_difference_update'):
                  for g in (G, I, Ig, S, L, R):





More information about the Python-checkins mailing list