aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_capi/test_long.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_capi/test_long.py')
-rw-r--r--Lib/test/test_capi/test_long.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/Lib/test/test_capi/test_long.py b/Lib/test/test_capi/test_long.py
index 925fccd660b..a77094588a0 100644
--- a/Lib/test/test_capi/test_long.py
+++ b/Lib/test/test_capi/test_long.py
@@ -643,6 +643,51 @@ class LongTests(unittest.TestCase):
# CRASHES getsign(NULL)
+ def test_long_ispositive(self):
+ # Test PyLong_IsPositive()
+ ispositive = _testcapi.pylong_ispositive
+ self.assertEqual(ispositive(1), 1)
+ self.assertEqual(ispositive(123), 1)
+ self.assertEqual(ispositive(-1), 0)
+ self.assertEqual(ispositive(0), 0)
+ self.assertEqual(ispositive(True), 1)
+ self.assertEqual(ispositive(False), 0)
+ self.assertEqual(ispositive(IntSubclass(-1)), 0)
+ self.assertRaises(TypeError, ispositive, 1.0)
+ self.assertRaises(TypeError, ispositive, Index(123))
+
+ # CRASHES ispositive(NULL)
+
+ def test_long_isnegative(self):
+ # Test PyLong_IsNegative()
+ isnegative = _testcapi.pylong_isnegative
+ self.assertEqual(isnegative(1), 0)
+ self.assertEqual(isnegative(123), 0)
+ self.assertEqual(isnegative(-1), 1)
+ self.assertEqual(isnegative(0), 0)
+ self.assertEqual(isnegative(True), 0)
+ self.assertEqual(isnegative(False), 0)
+ self.assertEqual(isnegative(IntSubclass(-1)), 1)
+ self.assertRaises(TypeError, isnegative, 1.0)
+ self.assertRaises(TypeError, isnegative, Index(123))
+
+ # CRASHES isnegative(NULL)
+
+ def test_long_iszero(self):
+ # Test PyLong_IsZero()
+ iszero = _testcapi.pylong_iszero
+ self.assertEqual(iszero(1), 0)
+ self.assertEqual(iszero(-1), 0)
+ self.assertEqual(iszero(0), 1)
+ self.assertEqual(iszero(True), 0)
+ self.assertEqual(iszero(False), 1)
+ self.assertEqual(iszero(IntSubclass(-1)), 0)
+ self.assertEqual(iszero(IntSubclass(0)), 1)
+ self.assertRaises(TypeError, iszero, 1.0)
+ self.assertRaises(TypeError, iszero, Index(123))
+
+ # CRASHES iszero(NULL)
+
def test_long_asint32(self):
# Test PyLong_AsInt32() and PyLong_FromInt32()
to_int32 = _testlimitedcapi.pylong_asint32