]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] gh-136599: Add tests for long_hash (GH-138335) (#138390)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Wed, 10 Sep 2025 20:54:07 +0000 (22:54 +0200)
committerGitHub <noreply@github.com>
Wed, 10 Sep 2025 20:54:07 +0000 (23:54 +0300)
gh-136599: Add tests for long_hash (GH-138335)
(cherry picked from commit 2d3711dc06657e072a83b580636cbb0009658636)

Co-authored-by: Pieter Eendebak <pieter.eendebak@gmail.com>
Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
Lib/test/test_long.py

index f336d49fa4f00863fa71c5d70498e422b8895d28..d63bc19ed9c9a2436a1c8dfcf31ccf87c5decfd1 100644 (file)
@@ -1693,5 +1693,21 @@ class LongTest(unittest.TestCase):
         # GH-117195 -- This shouldn't crash
         object.__sizeof__(1)
 
+    def test_hash(self):
+        # gh-136599
+        self.assertEqual(hash(-1), -2)
+        self.assertEqual(hash(0), 0)
+        self.assertEqual(hash(10), 10)
+
+        self.assertEqual(hash(sys.hash_info.modulus - 2), sys.hash_info.modulus - 2)
+        self.assertEqual(hash(sys.hash_info.modulus - 1), sys.hash_info.modulus - 1)
+        self.assertEqual(hash(sys.hash_info.modulus), 0)
+        self.assertEqual(hash(sys.hash_info.modulus + 1), 1)
+
+        self.assertEqual(hash(-sys.hash_info.modulus - 2), -2)
+        self.assertEqual(hash(-sys.hash_info.modulus - 1), -2)
+        self.assertEqual(hash(-sys.hash_info.modulus), 0)
+        self.assertEqual(hash(-sys.hash_info.modulus + 1), -sys.hash_info.modulus + 1)
+
 if __name__ == "__main__":
     unittest.main()