Commit 82cb9a23 authored by Raymond Hettinger's avatar Raymond Hettinger

Add test for hash commutativity.

parent 2dfc168b
...@@ -5,6 +5,7 @@ import operator ...@@ -5,6 +5,7 @@ import operator
import copy import copy
import pickle import pickle
import os import os
from random import randrange, shuffle
class PassThru(Exception): class PassThru(Exception):
pass pass
...@@ -399,6 +400,15 @@ class TestFrozenSet(TestJointOps): ...@@ -399,6 +400,15 @@ class TestFrozenSet(TestJointOps):
self.assertEqual(hash(self.thetype('abcdeb')), self.assertEqual(hash(self.thetype('abcdeb')),
hash(self.thetype('ebecda'))) hash(self.thetype('ebecda')))
# make sure that all permutations give the same hash value
n = 100
seq = [randrange(n) for i in xrange(n)]
results = set()
for i in xrange(200):
shuffle(seq)
results.add(hash(self.thetype(seq)))
self.assertEqual(len(results), 1)
def test_copy(self): def test_copy(self):
dup = self.s.copy() dup = self.s.copy()
self.assertEqual(id(self.s), id(dup)) self.assertEqual(id(self.s), id(dup))
......
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