diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2010-04-02 10:35:12 +0000 |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2010-04-02 10:35:12 +0000 |
commit | f3eeca16cbadd7da5836ed781572343863b1a074 (patch) | |
tree | 14fc31b72773122d3c13f7e72cbdb57b28365e05 /Lib/test/test_decimal.py | |
parent | e096e82e827f6092706c7349fd4944c275382eb5 (diff) | |
download | cpython-git-f3eeca16cbadd7da5836ed781572343863b1a074.tar.gz |
Issue #7279: Make Decimal('nan') hashable. Decimal('snan') remains unhashable.
Also rewrite the Decimal __hash__ method so that it doesn't rely on
float('inf') being valid: float('inf') could raise an exception on
platforms not using IEEE 754 arithmetic.
Diffstat (limited to 'Lib/test/test_decimal.py')
-rw-r--r-- | Lib/test/test_decimal.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index c2a6b0e007..19fb9dadc4 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -1274,6 +1274,10 @@ class DecimalUsabilityTest(unittest.TestCase): def test_hash_method(self): #just that it's hashable hash(Decimal(23)) + hash(Decimal('Infinity')) + hash(Decimal('-Infinity')) + hash(Decimal('nan123')) + hash(Decimal('-NaN')) test_values = [Decimal(sign*(2**m + n)) for m in [0, 14, 15, 16, 17, 30, 31, @@ -1308,7 +1312,7 @@ class DecimalUsabilityTest(unittest.TestCase): #the same hash that to an int self.assertEqual(hash(Decimal(23)), hash(23)) - self.assertRaises(TypeError, hash, Decimal('NaN')) + self.assertRaises(TypeError, hash, Decimal('sNaN')) self.assertTrue(hash(Decimal('Inf'))) self.assertTrue(hash(Decimal('-Inf'))) |