Commit 6e70acca authored by Raymond Hettinger's avatar Raymond Hettinger

Strengthen the test for hash effectiveness

parent ed54d91e
...@@ -389,12 +389,12 @@ class TestFrozenSet(TestJointOps): ...@@ -389,12 +389,12 @@ class TestFrozenSet(TestJointOps):
def test_hash_effectiveness(self): def test_hash_effectiveness(self):
n = 13 n = 13
rng = range(n)
hashvalues = set() hashvalues = set()
addhashvalue = hashvalues.add
elemmasks = [(i+1, 1<<i) for i in range(n)]
for i in xrange(2**n): for i in xrange(2**n):
combination = [j for j in rng if (1<<j)&i] addhashvalue(hash(frozenset([e for e, m in elemmasks if m&i])))
hashvalues.add(hash(self.thetype(combination))) self.assertEqual(len(hashvalues), 2**n)
self.assert_(len(hashvalues) >= 2**(n-2))
class FrozenSetSubclass(frozenset): class FrozenSetSubclass(frozenset):
pass pass
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment