[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