[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

AltStyle によって変換されたページ (->オリジナル) /