summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_float.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_float.py')
-rw-r--r--Lib/test/test_float.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py
index ff4f387..f0ed40f 100644
--- a/Lib/test/test_float.py
+++ b/Lib/test/test_float.py
@@ -564,6 +564,25 @@ class GeneralFloatCases(unittest.TestCase):
#self.assertTrue(0.0 < pow_op(2.0, -1047) < 1e-315)
#self.assertTrue(0.0 > pow_op(-2.0, -1047) > -1e-315)
+ def test_hash(self):
+ for x in range(-30, 30):
+ self.assertEqual(hash(float(x)), hash(x))
+ self.assertEqual(hash(float(sys.float_info.max)),
+ hash(int(sys.float_info.max)))
+ self.assertEqual(hash(float('inf')), sys.hash_info.inf)
+ self.assertEqual(hash(float('-inf')), -sys.hash_info.inf)
+
+ def test_hash_nan(self):
+ value = float('nan')
+ self.assertEqual(hash(value), object.__hash__(value))
+ class H:
+ def __hash__(self):
+ return 42
+ class F(float, H):
+ pass
+ value = F('nan')
+ self.assertEqual(hash(value), object.__hash__(value))
+
@requires_setformat
class FormatFunctionsTestCase(unittest.TestCase):