home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 June / PCWorld_2005-06_cd.bin / software / vyzkuste / firewally / firewally.exe / framework-2.3.exe / test_hash.py < prev    next >
Text File  |  2003-12-30  |  942b  |  37 lines

  1. # test the invariant that
  2. #   iff a==b then hash(a)==hash(b)
  3. #
  4.  
  5. import unittest
  6. from test import test_support
  7.  
  8.  
  9. class HashEqualityTestCase(unittest.TestCase):
  10.  
  11.     def same_hash(self, *objlist):
  12.         # Hash each object given and fail if
  13.         # the hash values are not all the same.
  14.         hashed = map(hash, objlist)
  15.         for h in hashed[1:]:
  16.             if h != hashed[0]:
  17.                 self.fail("hashed values differ: %s" % `objlist`)
  18.  
  19.     def test_numeric_literals(self):
  20.         self.same_hash(1, 1L, 1.0, 1.0+0.0j)
  21.  
  22.     def test_coerced_integers(self):
  23.         self.same_hash(int(1), long(1), float(1), complex(1),
  24.                        int('1'), float('1.0'))
  25.  
  26.     def test_coerced_floats(self):
  27.         self.same_hash(long(1.23e300), float(1.23e300))
  28.         self.same_hash(float(0.5), complex(0.5, 0.0))
  29.  
  30.  
  31. def test_main():
  32.     test_support.run_unittest(HashEqualityTestCase)
  33.  
  34.  
  35. if __name__ == "__main__":
  36.     test_main()
  37.