diff options
author | Sergey B Kirpichev <skirpichev@gmail.com> | 2024-06-03 12:06:31 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-03 12:06:31 (GMT) |
commit | 61d3ab32da92e70bb97a544d76ef2b837501024f (patch) | |
tree | 46a12c70cc83c83e4e6942f0b7a7aa63191addb5 /Lib/test/test_capi/test_long.py | |
parent | 367adc91fb9834eb35b168048fd54705621c3f21 (diff) | |
download | cpython-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.py | 16 |
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() |