Skip to content

Commit ebe9aaa

Browse files
authored
Minor test_math cleanup (#731)
1 parent a8ecab0 commit ebe9aaa

File tree

1 file changed

+94
-92
lines changed

1 file changed

+94
-92
lines changed

Tests/modules/misc/test_math.py

Lines changed: 94 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
if is_cli:
1313
from System import Int64, Byte, Int16
14+
else:
15+
long = type(sys.maxsize + 1)
1416

1517
class MathTest(IronPythonTestCase):
1618

@@ -310,104 +312,101 @@ def assertEqualAndCheckType(self, actual, expected, expectedType):
310312
self.assertIsInstance(actual, expectedType, msg="Type: {0}".format(type(actual)))
311313

312314
def test_rounding(self):
313-
self.assertTrue(round(-5.5489) == (-6))
314-
self.assertTrue(round(5.5519) == (6))
315-
self.assertTrue(round(-5.5) == (-6))
316-
self.assertTrue(round(-5.0) == (-5))
317-
318-
self.assertTrue(round(-4.5) == (-4))
319-
self.assertTrue(round(-2.5) == (-2))
320-
self.assertTrue(round(-0.5) == (-0))
321-
self.assertTrue(round(0.5) == (0))
322-
self.assertTrue(round(2.5) == (2))
323-
self.assertTrue(round(4.5) == (4))
324-
325-
self.assertTrue(round(-4.0) == (-4))
326-
self.assertTrue(round(-3.5) == (-4))
327-
self.assertTrue(round(-3.0) == (-3))
328-
self.assertTrue(round(-2.0) == (-2))
329-
self.assertTrue(round(-1.5) == (-2))
330-
self.assertTrue(round(-1.0) == (-1))
331-
self.assertTrue(round(0.0) == (0))
332-
self.assertTrue(round(1.0) == (1))
333-
self.assertTrue(round(1.5) == (2))
334-
self.assertTrue(round(2.0) == (2))
335-
self.assertTrue(round(3.0) == (3))
336-
self.assertTrue(round(3.5) == (4))
337-
self.assertTrue(round(4.0) == (4))
338-
self.assertTrue(round(5.0) == (5))
315+
self.assertEqual(round(-5.5489), -6)
316+
self.assertEqual(round(5.5519), 6)
317+
self.assertEqual(round(-5.5), -6)
318+
self.assertEqual(round(-5.0), -5)
319+
320+
self.assertEqual(round(-4.5), -4)
321+
self.assertEqual(round(-2.5), -2)
322+
self.assertEqual(round(-0.5), -0)
323+
self.assertEqual(round(0.5), 0)
324+
self.assertEqual(round(2.5), 2)
325+
self.assertEqual(round(4.5), 4)
326+
327+
self.assertEqual(round(-4.0), -4)
328+
self.assertEqual(round(-3.5), -4)
329+
self.assertEqual(round(-3.0), -3)
330+
self.assertEqual(round(-2.0), -2)
331+
self.assertEqual(round(-1.5), -2)
332+
self.assertEqual(round(-1.0), -1)
333+
self.assertEqual(round(0.0), 0)
334+
self.assertEqual(round(1.0), 1)
335+
self.assertEqual(round(1.5), 2)
336+
self.assertEqual(round(2.0), 2)
337+
self.assertEqual(round(3.0), 3)
338+
self.assertEqual(round(3.5), 4)
339+
self.assertEqual(round(4.0), 4)
340+
self.assertEqual(round(5.0), 5)
339341

340342
# two parameter round overload
341-
self.assertTrue(round(-4.0, 0) == (-4.0))
342-
self.assertTrue(round(-3.5, 0) == (-4.0))
343-
self.assertTrue(round(-3.0, 0) == (-3.0))
344-
self.assertTrue(round(-2.0, 0) == (-2.0))
345-
self.assertTrue(round(-1.5, 0) == (-2.0))
346-
self.assertTrue(round(-1.0, 0) == (-1.0))
347-
self.assertTrue(round(0.0, 0) == (0.0))
348-
self.assertTrue(round(1.0, 0) == (1.0))
349-
self.assertTrue(round(1.5, 0) == (2.0))
350-
self.assertTrue(round(2.0, 0) == (2.0))
351-
self.assertTrue(round(3.0, 0) == (3.0))
352-
self.assertTrue(round(3.5, 0) == (4.0))
353-
self.assertTrue(round(4.0, 0) == (4.0))
354-
self.assertTrue(round(5.0, 0) == (5.0))
355-
self.assertTrue(round(123.41526375, 1) == 123.4)
356-
self.assertTrue(round(123.41526375, 2) == 123.42)
357-
self.assertTrue(round(123.41526375, 3) == 123.415)
358-
self.assertTrue(round(123.41526375, 4) == 123.4153)
359-
self.assertTrue(round(123.41526375, 5) == 123.41526)
360-
self.assertTrue(round(123.41526375, 6) == 123.415264)
361-
if not is_cli: # https://github.com/IronLanguages/main/issues/856
362-
self.assertTrue(round(123.41526375, 7) == 123.4152637)
343+
self.assertEqual(round(-4.0, 0), -4.0)
344+
self.assertEqual(round(-3.5, 0), -4.0)
345+
self.assertEqual(round(-3.0, 0), -3.0)
346+
self.assertEqual(round(-2.0, 0), -2.0)
347+
self.assertEqual(round(-1.5, 0), -2.0)
348+
self.assertEqual(round(-1.0, 0), -1.0)
349+
self.assertEqual(round(0.0, 0), 0.0)
350+
self.assertEqual(round(1.0, 0), 1.0)
351+
self.assertEqual(round(1.5, 0), 2.0)
352+
self.assertEqual(round(2.0, 0), 2.0)
353+
self.assertEqual(round(3.0, 0), 3.0)
354+
self.assertEqual(round(3.5, 0), 4.0)
355+
self.assertEqual(round(4.0, 0), 4.0)
356+
self.assertEqual(round(5.0, 0), 5.0)
357+
self.assertEqual(round(123.41526375, 1), 123.4)
358+
self.assertEqual(round(123.41526375, 2), 123.42)
359+
self.assertEqual(round(123.41526375, 3), 123.415)
360+
self.assertEqual(round(123.41526375, 4), 123.4153)
361+
self.assertEqual(round(123.41526375, 5), 123.41526)
362+
self.assertEqual(round(123.41526375, 6), 123.415264)
363+
if is_cli: # https://github.com/IronLanguages/main/issues/856
364+
self.assertEqual(round(123.41526375, 7), 123.4152638)
363365
else:
364-
self.assertTrue(round(123.41526375, 7) == 123.4152638)
365-
self.assertTrue(round(-123.41526375, 1) == -123.4)
366-
self.assertTrue(round(-123.41526375, 2) == -123.42)
367-
self.assertTrue(round(-123.41526375, 3) == -123.415)
368-
self.assertTrue(round(-123.41526375, 4) == -123.4153)
369-
self.assertTrue(round(-123.41526375, 5) == -123.41526)
370-
self.assertTrue(round(-123.41526375, 6) == -123.415264)
371-
if not is_cli: # https://github.com/IronLanguages/main/issues/856
372-
self.assertTrue(round(-123.41526375, 7) == -123.4152637)
366+
self.assertEqual(round(123.41526375, 7), 123.4152637)
367+
self.assertEqual(round(-123.41526375, 1), -123.4)
368+
self.assertEqual(round(-123.41526375, 2), -123.42)
369+
self.assertEqual(round(-123.41526375, 3), -123.415)
370+
self.assertEqual(round(-123.41526375, 4), -123.4153)
371+
self.assertEqual(round(-123.41526375, 5), -123.41526)
372+
self.assertEqual(round(-123.41526375, 6), -123.415264)
373+
if is_cli: # https://github.com/IronLanguages/main/issues/856
374+
self.assertEqual(round(-123.41526375, 7), -123.4152638)
373375
else:
374-
self.assertTrue(round(-123.41526375, 7) == -123.4152638)
376+
self.assertEqual(round(-123.41526375, 7), -123.4152637)
375377
for i in range(8, 307):
376-
# Note: We can't do exact equality here due to the inexact nature of IEEE
377-
# double precision floats when multiplied and later divided by huge powers of 10.
378-
# Neither CPython nor IronPython mantain exact equality for precisions >= 17
379-
if i < 17:
380-
self.assertTrue(round(123.41526375, i) == 123.41526375)
381-
self.assertTrue(round(-123.41526375, i) == -123.41526375)
378+
if is_cli and i >= 17: # https://github.com/IronLanguages/ironpython2/issues/517
379+
self.assertAlmostEqual(round(123.41526375, i), 123.41526375, 10)
380+
self.assertAlmostEqual(round(-123.41526375, i), -123.41526375, 10)
382381
else:
383-
self.assertTrue(abs(round(123.41526375, i) - 123.41526375) < 0.0000000001)
384-
self.assertTrue(abs(round(-123.41526375, i) - -123.41526375) < 0.0000000001)
385-
386-
self.assertTrue(round(7182930456.0, -1) == 7182930460.0)
387-
self.assertTrue(round(7182930456.0, -2) == 7182930500.0)
388-
self.assertTrue(round(7182930456.0, -3) == 7182930000.0)
389-
self.assertTrue(round(7182930456.0, -4) == 7182930000.0)
390-
self.assertTrue(round(7182930456.0, -5) == 7182900000.0)
391-
self.assertTrue(round(7182930456.0, -6) == 7183000000.0)
392-
self.assertTrue(round(7182930456.0, -7) == 7180000000.0)
393-
self.assertTrue(round(7182930456.0, -8) == 7200000000.0)
394-
self.assertTrue(round(7182930456.0, -9) == 7000000000.0)
395-
self.assertTrue(round(7182930456.0, -10) == 10000000000.0)
396-
self.assertTrue(round(7182930456.0, -11) == 0.0)
397-
self.assertTrue(round(-7182930456.0, -1) == -7182930460.0)
398-
self.assertTrue(round(-7182930456.0, -2) == -7182930500.0)
399-
self.assertTrue(round(-7182930456.0, -3) == -7182930000.0)
400-
self.assertTrue(round(-7182930456.0, -4) == -7182930000.0)
401-
self.assertTrue(round(-7182930456.0, -5) == -7182900000.0)
402-
self.assertTrue(round(-7182930456.0, -6) == -7183000000.0)
403-
self.assertTrue(round(-7182930456.0, -7) == -7180000000.0)
404-
self.assertTrue(round(-7182930456.0, -8) == -7200000000.0)
405-
self.assertTrue(round(-7182930456.0, -9) == -7000000000.0)
406-
self.assertTrue(round(-7182930456.0, -10) == -10000000000.0)
407-
self.assertTrue(round(-7182930456.0, -11) == 0.0)
382+
self.assertEqual(round(123.41526375, i), 123.41526375)
383+
self.assertEqual(round(-123.41526375, i), -123.41526375)
384+
385+
self.assertEqual(round(7182930456.0, -1), 7182930460.0)
386+
self.assertEqual(round(7182930456.0, -2), 7182930500.0)
387+
self.assertEqual(round(7182930456.0, -3), 7182930000.0)
388+
self.assertEqual(round(7182930456.0, -4), 7182930000.0)
389+
self.assertEqual(round(7182930456.0, -5), 7182900000.0)
390+
self.assertEqual(round(7182930456.0, -6), 7183000000.0)
391+
self.assertEqual(round(7182930456.0, -7), 7180000000.0)
392+
self.assertEqual(round(7182930456.0, -8), 7200000000.0)
393+
self.assertEqual(round(7182930456.0, -9), 7000000000.0)
394+
self.assertEqual(round(7182930456.0, -10), 10000000000.0)
395+
self.assertEqual(round(7182930456.0, -11), 0.0)
396+
self.assertEqual(round(-7182930456.0, -1), -7182930460.0)
397+
self.assertEqual(round(-7182930456.0, -2), -7182930500.0)
398+
self.assertEqual(round(-7182930456.0, -3), -7182930000.0)
399+
self.assertEqual(round(-7182930456.0, -4), -7182930000.0)
400+
self.assertEqual(round(-7182930456.0, -5), -7182900000.0)
401+
self.assertEqual(round(-7182930456.0, -6), -7183000000.0)
402+
self.assertEqual(round(-7182930456.0, -7), -7180000000.0)
403+
self.assertEqual(round(-7182930456.0, -8), -7200000000.0)
404+
self.assertEqual(round(-7182930456.0, -9), -7000000000.0)
405+
self.assertEqual(round(-7182930456.0, -10), -10000000000.0)
406+
self.assertEqual(round(-7182930456.0, -11), 0.0)
408407
for i in range(-12, -309, -1):
409-
self.assertTrue(round(7182930456.0, i) == 0.0)
410-
self.assertTrue(round(-7182930456.0, i) == 0.0)
408+
self.assertEqual(round(7182930456.0, i), 0.0)
409+
self.assertEqual(round(-7182930456.0, i), 0.0)
411410

412411
self.assertEqualAndCheckType((2.4).__round__(), 2, int)
413412
self.assertEqualAndCheckType((2.5).__round__(), 2, int)
@@ -423,7 +422,10 @@ def test_rounding(self):
423422
self.assertEqualAndCheckType(round(-2.1123E25), -21122999999999999263899648, long)
424423

425424
self.assertEqualAndCheckType((2.54).__round__(1), 2.5, float)
426-
self.assertEqualAndCheckType((2.55).__round__(1), 2.6, float)
425+
if is_cli: # https://github.com/IronLanguages/ironpython2/issues/517
426+
self.assertEqualAndCheckType((2.55).__round__(1), 2.6, float)
427+
else:
428+
self.assertEqualAndCheckType((2.55).__round__(1), 2.5, float)
427429
self.assertEqualAndCheckType((2.56).__round__(1), 2.6, float)
428430
self.assertEqualAndCheckType((24.0).__round__(-1), 20.0, float)
429431
self.assertEqualAndCheckType((25.0).__round__(-1), 20.0, float)

0 commit comments

Comments
 (0)