summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_capi/test_long.py
diff options
context:
space:
mode:
authorSergey B Kirpichev <skirpichev@gmail.com>2024-06-03 12:06:31 (GMT)
committerGitHub <noreply@github.com>2024-06-03 12:06:31 (GMT)
commit61d3ab32da92e70bb97a544d76ef2b837501024f (patch)
tree46a12c70cc83c83e4e6942f0b7a7aa63191addb5 /Lib/test/test_capi/test_long.py
parent367adc91fb9834eb35b168048fd54705621c3f21 (diff)
downloadcpython-61d3ab32da92e70bb97a544d76ef2b837501024f.zip
cpython-61d3ab32da92e70bb97a544d76ef2b837501024f.tar.gz
cpython-61d3ab32da92e70bb97a544d76ef2b837501024f.tar.bz2
gh-116560: Add PyLong_GetSign() public function (#116561)
Co-authored-by: Victor Stinner <vstinner@python.org>
Diffstat (limited to 'Lib/test/test_capi/test_long.py')
-rw-r--r--Lib/test/test_capi/test_long.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/Lib/test/test_capi/test_long.py b/Lib/test/test_capi/test_long.py
index 83f894e..06a29b5 100644
--- a/Lib/test/test_capi/test_long.py
+++ b/Lib/test/test_capi/test_long.py
@@ -721,6 +721,22 @@ class LongTests(unittest.TestCase):
self.assertEqual(expect_u, fromnativebytes(v_be, n, 4, 1),
f"PyLong_FromNativeBytes(buffer, {n}, <big|unsigned>)")
+ def test_long_getsign(self):
+ # Test PyLong_GetSign()
+ getsign = _testcapi.pylong_getsign
+ self.assertEqual(getsign(1), 1)
+ self.assertEqual(getsign(123456), 1)
+ self.assertEqual(getsign(-2), -1)
+ self.assertEqual(getsign(0), 0)
+ self.assertEqual(getsign(True), 1)
+ self.assertEqual(getsign(IntSubclass(-11)), -1)
+ self.assertEqual(getsign(False), 0)
+
+ self.assertRaises(TypeError, getsign, 1.0)
+ self.assertRaises(TypeError, getsign, Index(123))
+
+ # CRASHES getsign(NULL)
+
if __name__ == "__main__":
unittest.main()