diff options
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_hash.py | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/Lib/test/test_hash.py b/Lib/test/test_hash.py index d5ac026..befde74 100644 --- a/Lib/test/test_hash.py +++ b/Lib/test/test_hash.py @@ -3,21 +3,29 @@ # import test_support +import unittest -def same_hash(*objlist): - # hash each object given an raise TestFailed if - # the hash values are not all the same - hashed = map(hash, objlist) - for h in hashed[1:]: - if h != hashed[0]: - raise TestFailed, "hashed values differ: %s" % `objlist` +class HashEqualityTestCase(unittest.TestCase): + def same_hash(self, *objlist): + # hash each object given an raise TestFailed if + # the hash values are not all the same + hashed = map(hash, objlist) + for h in hashed[1:]: + if h != hashed[0]: + self.fail("hashed values differ: %s" % `objlist`) + def test_numeric_literals(self): + self.same_hash(1, 1L, 1.0, 1.0+0.0j) -same_hash(1, 1L, 1.0, 1.0+0.0j) -same_hash(int(1), long(1), float(1), complex(1)) + def test_coerced_integers(self): + self.same_hash(int(1), long(1), float(1), complex(1), + int('1'), float('1.0')) -same_hash(long(1.23e300), float(1.23e300)) + def test_coerced_floats(self): + self.same_hash(long(1.23e300), float(1.23e300)) + self.same_hash(float(0.5), complex(0.5, 0.0)) -same_hash(float(0.5), complex(0.5, 0.0)) + +test_support.run_unittest(HashEqualityTestCase) |