summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_collections.py
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2009-01-21 20:31:50 (GMT)
committerRaymond Hettinger <python@rcn.com>2009-01-21 20:31:50 (GMT)
commit4571f347f94a969a21a94d29b40a18a7b4dcd21f (patch)
treec3f86d162dc8fbb104c511da6083c9ff251edb13 /Lib/test/test_collections.py
parent42ffbdb9038facbff1db28042a639611c2618ad0 (diff)
downloadcpython-4571f347f94a969a21a94d29b40a18a7b4dcd21f.zip
cpython-4571f347f94a969a21a94d29b40a18a7b4dcd21f.tar.gz
cpython-4571f347f94a969a21a94d29b40a18a7b4dcd21f.tar.bz2
Simplify explanation of multiset operations by removing restrictions on negative inputs.
Diffstat (limited to 'Lib/test/test_collections.py')
-rw-r--r--Lib/test/test_collections.py17
1 files changed, 9 insertions, 8 deletions
diff --git a/Lib/test/test_collections.py b/Lib/test/test_collections.py
index ddf8398..47b093e 100644
--- a/Lib/test/test_collections.py
+++ b/Lib/test/test_collections.py
@@ -457,18 +457,19 @@ class TestCounter(unittest.TestCase):
for i in range(1000):
# test random pairs of multisets
p = Counter(dict((elem, randrange(-2,4)) for elem in elements))
+ p.update(e=1, f=-1, g=0)
q = Counter(dict((elem, randrange(-2,4)) for elem in elements))
- for counterop, numberop, defneg in [
- (Counter.__add__, lambda x, y: x+y if x+y>0 else 0, True),
- (Counter.__sub__, lambda x, y: x-y if x-y>0 else 0, False),
- (Counter.__or__, max, False),
- (Counter.__and__, min, False),
+ q.update(h=1, i=-1, j=0)
+ for counterop, numberop in [
+ (Counter.__add__, lambda x, y: max(0, x+y)),
+ (Counter.__sub__, lambda x, y: max(0, x-y)),
+ (Counter.__or__, lambda x, y: max(0,x,y)),
+ (Counter.__and__, lambda x, y: max(0, min(x,y))),
]:
result = counterop(p, q)
for x in elements:
- # all except __add__ are undefined for negative inputs
- if defneg or (p[x] >= 0 and q[x] >= 0):
- self.assertEqual(numberop(p[x], q[x]), result[x])
+ self.assertEqual(numberop(p[x], q[x]), result[x],
+ (counterop, x, p, q))
# verify that results exclude non-positive counts
self.assert_(x>0 for x in result.values())