diff options
| author | Serhiy Storchaka <storchaka@gmail.com> | 2018-10-20 00:46:31 +0300 |
|---|---|---|
| committer | Victor Stinner <vstinner@redhat.com> | 2018-10-19 23:46:31 +0200 |
| commit | b2e2025941f6a4fdb716bd141d31acf720353d21 (patch) | |
| tree | 3c372b7dc98aec792be04617f3b7626904190351 /Lib/test/test_long.py | |
| parent | b981fec8d63697e8265d016582ce84944f272d55 (diff) | |
| download | cpython-git-b2e2025941f6a4fdb716bd141d31acf720353d21.tar.gz | |
bpo-33073: Rework int.as_integer_ratio() implementation (GH-9303)
* Simplify the C code.
* Simplify tests and make them more strict and robust.
* Add references in the documentation.
Diffstat (limited to 'Lib/test/test_long.py')
| -rw-r--r-- | Lib/test/test_long.py | 34 |
1 files changed, 6 insertions, 28 deletions
diff --git a/Lib/test/test_long.py b/Lib/test/test_long.py index 5b860dd36b..53101b3bad 100644 --- a/Lib/test/test_long.py +++ b/Lib/test/test_long.py @@ -3,7 +3,6 @@ from test import support import sys -import enum import random import math import array @@ -1354,35 +1353,14 @@ class LongTest(unittest.TestCase): self.assertEqual(type(value >> shift), int) def test_as_integer_ratio(self): - tests = [10, 0, -10, 1] + class myint(int): + pass + tests = [10, 0, -10, 1, sys.maxsize + 1, True, False, myint(42)] for value in tests: numerator, denominator = value.as_integer_ratio() - self.assertEqual((numerator, denominator), (value, 1)) - self.assertIsInstance(numerator, int) - self.assertIsInstance(denominator, int) - - def test_as_integer_ratio_maxint(self): - x = sys.maxsize + 1 - self.assertEqual(x.as_integer_ratio()[0], x) - - def test_as_integer_ratio_bool(self): - self.assertEqual(True.as_integer_ratio(), (1, 1)) - self.assertEqual(False.as_integer_ratio(), (0, 1)) - self.assertEqual(type(True.as_integer_ratio()[0]), int) - self.assertEqual(type(False.as_integer_ratio()[0]), int) - - def test_as_integer_ratio_int_enum(self): - class Foo(enum.IntEnum): - X = 42 - self.assertEqual(Foo.X.as_integer_ratio(), (42, 1)) - self.assertEqual(type(Foo.X.as_integer_ratio()[0]), int) - - def test_as_integer_ratio_int_flag(self): - class Foo(enum.IntFlag): - R = 1 << 2 - self.assertEqual(Foo.R.as_integer_ratio(), (4, 1)) - self.assertEqual(type(Foo.R.as_integer_ratio()[0]), int) - + self.assertEqual((numerator, denominator), (int(value), 1)) + self.assertEqual(type(numerator), int) + self.assertEqual(type(denominator), int) if __name__ == "__main__": |
