Skip to content

Commit

Permalink
address review:
Browse files Browse the repository at this point in the history
* Add test for [1, 2] and PY_SSIZE_T_MAX//2 + 1 (test_multiply)
* test with floats for unary
* test_float/index with strings
* 42 is too large. What about 3? // tobase
* test with float & string // tobase
* complex test for absolute
  • Loading branch information
skirpichev committed Nov 16, 2023
1 parent b86d2eb commit 0fbbba9
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion Lib/test/test_capi/test_number.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ def test_multiply(self):
self.assertRaises(TypeError, multiply, 2, ndarray([1], (1,)))
self.assertRaises(TypeError, multiply, [1], 3.14)
self.assertRaises(OverflowError, multiply, [1], PY_SSIZE_T_MAX + 1)
self.assertRaises(MemoryError, multiply, [1, 2], PY_SSIZE_T_MAX//2 + 1)

# CRASHES multiply(NULL, 42)
# CRASHES multiply(42, NULL)
Expand Down Expand Up @@ -233,6 +234,7 @@ def test_negative(self):
negative = _testcapi.number_negative

self.assertEqual(negative(42), -42)
self.assertEqual(negative(1.25), -1.25)

self.assertRaises(TypeError, negative, BadAdd())
self.assertRaises(TypeError, negative, object())
Expand All @@ -243,6 +245,7 @@ def test_positive(self):
positive = _testcapi.number_positive

self.assertEqual(positive(-1), +(-1))
self.assertEqual(positive(1.25), 1.25)

self.assertRaises(TypeError, positive, BadAdd())
self.assertRaises(TypeError, positive, object())
Expand All @@ -253,6 +256,8 @@ def test_absolute(self):
absolute = _testcapi.number_absolute

self.assertEqual(absolute(-1), abs(-1))
self.assertEqual(absolute(-1.25), 1.25)
self.assertEqual(absolute(1j), 1.0)

self.assertRaises(TypeError, absolute, BadAdd())
self.assertRaises(TypeError, absolute, object())
Expand All @@ -264,6 +269,7 @@ def test_invert(self):

self.assertEqual(invert(123), ~123)

self.assertRaises(TypeError, invert, 1.25)
self.assertRaises(TypeError, invert, BadAdd())
self.assertRaises(TypeError, invert, object())
self.assertRaises(SystemError, invert, NULL)
Expand Down Expand Up @@ -548,6 +554,7 @@ def test_float(self):

self.assertEqual(float_(1.25), 1.25)
self.assertEqual(float_(123), 123.)
self.assertEqual(float_("1.25"), 1.25)

self.assertEqual(float_(Float()), 4.25)
self.assertEqual(float_(IndexLike(99)), 99.0)
Expand Down Expand Up @@ -577,6 +584,8 @@ def test_index(self):
self.assertRaises(DeprecationWarning, index, BadIndex2())
with self.assertWarns(DeprecationWarning):
self.assertEqual(index(BadIndex2()), 1)
self.assertRaises(TypeError, index, 1.25)
self.assertRaises(TypeError, index, "42")
self.assertRaises(TypeError, index, BadIndex())
self.assertRaises(TypeError, index, object())
self.assertRaises(SystemError, index, NULL)
Expand All @@ -592,7 +601,9 @@ def test_tobase(self):
self.assertEqual(tobase(13, 16), hex(13))

self.assertRaises(SystemError, tobase, NULL, 2)
self.assertRaises(SystemError, tobase, 2, 42)
self.assertRaises(SystemError, tobase, 2, 3)
self.assertRaises(TypeError, tobase, 1.25, 2)
self.assertRaises(TypeError, tobase, "42", 2)

def test_asssizet(self):
# Test PyNumber_AsSsize_t()
Expand Down

0 comments on commit 0fbbba9

Please sign in to comment.