summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorSergey B Kirpichev <2155800+skirpichev@users.noreply.github.com>2021-03-22 02:30:55 (GMT)
committerGitHub <noreply@github.com>2021-03-22 02:30:55 (GMT)
commit690aca781152a498f5117682524d2cd9aa4d7657 (patch)
tree5b25204630ca11818548c21d1badad433a84f819 /Lib/test
parent9a50ef43e42ee32450a81ce13ed5a0729d3b84e8 (diff)
downloadcpython-690aca781152a498f5117682524d2cd9aa4d7657.zip
cpython-690aca781152a498f5117682524d2cd9aa4d7657.tar.gz
cpython-690aca781152a498f5117682524d2cd9aa4d7657.tar.bz2
bpo-43420: Simple optimizations for Fraction's arithmetics (GH-24779)
bpo-43420: Implement standard transformations in + - * / that can often reduce the size of intermediate integers needed. For rationals with large components, this can yield dramatic speed improvements, but for small rationals can run 10-20% slower, due to increased fixed overheads in the longer-winded code. If those slowdowns turn out to be a problem, see the PR discussion for low-level implementation tricks that could cut other fixed overheads. Co-authored-by: Tim Peters <tim.peters@gmail.com> Co-authored-by: Mark Dickinson <dickinsm@gmail.com>
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_fractions.py2
1 files changed, 2 insertions, 0 deletions
diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py
index 0845f79..b925525 100644
--- a/Lib/test/test_fractions.py
+++ b/Lib/test/test_fractions.py
@@ -369,7 +369,9 @@ class FractionTest(unittest.TestCase):
self.assertEqual(F(1, 2), F(1, 10) + F(2, 5))
self.assertEqual(F(-3, 10), F(1, 10) - F(2, 5))
self.assertEqual(F(1, 25), F(1, 10) * F(2, 5))
+ self.assertEqual(F(5, 6), F(2, 3) * F(5, 4))
self.assertEqual(F(1, 4), F(1, 10) / F(2, 5))
+ self.assertEqual(F(-15, 8), F(3, 4) / F(-2, 5))
self.assertTypedEquals(2, F(9, 10) // F(2, 5))
self.assertTypedEquals(10**23, F(10**23, 1) // F(1))
self.assertEqual(F(5, 6), F(7, 3) % F(3, 2))