33# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
44# 2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved
55#
6- # Based on the "test/test_fractions" module in CPython 3.4.
6+ # Based on the "test/test_fractions" module in CPython 3.4 and later .
77# https://hg.python.org/cpython/file/b18288f24501/Lib/test/test_fractions.py
88
99"""Tests for Lib/fractions.py, slightly adapted for quicktions."""
@@ -523,16 +523,14 @@ def testLimitDenominator(self):
523523 def testConversions (self ):
524524 self .assertTypedEquals (- 1 , math .trunc (F (- 11 , 10 )))
525525 self .assertTypedEquals (1 , math .trunc (F (11 , 10 )))
526- if sys .version_info [0 ] >= 3 :
527- self .assertTypedEquals (- 2 , math .floor (F (- 11 , 10 )))
528- self .assertTypedEquals (- 1 , math .ceil (F (- 11 , 10 )))
529- self .assertTypedEquals (- 1 , math .ceil (F (- 10 , 10 )))
526+ self .assertTypedEquals (- 2 , math .floor (F (- 11 , 10 )))
527+ self .assertTypedEquals (- 1 , math .ceil (F (- 11 , 10 )))
528+ self .assertTypedEquals (- 1 , math .ceil (F (- 10 , 10 )))
530529 self .assertTypedEquals (- 1 , int (F (- 11 , 10 )))
531- if sys .version_info [0 ] >= 3 :
532- self .assertTypedEquals (0 , round (F (- 1 , 10 )))
533- self .assertTypedEquals (0 , round (F (- 5 , 10 )))
534- self .assertTypedEquals (- 2 , round (F (- 15 , 10 )))
535- self .assertTypedEquals (- 1 , round (F (- 7 , 10 )))
530+ self .assertTypedEquals (0 , round (F (- 1 , 10 )))
531+ self .assertTypedEquals (0 , round (F (- 5 , 10 )))
532+ self .assertTypedEquals (- 2 , round (F (- 15 , 10 )))
533+ self .assertTypedEquals (- 1 , round (F (- 7 , 10 )))
536534
537535 self .assertEqual (False , bool (F (0 , 1 )))
538536 self .assertEqual (True , bool (F (3 , 2 )))
@@ -627,16 +625,14 @@ def __eq__(self, other):
627625 numerator = CustomValue (0 )
628626 r = F (numerator )
629627 self .assertEqual (bool (r ), False )
630- if sys .version_info >= (3 ,):
631- self .assertIs (bool (r ), False )
628+ self .assertIs (bool (r ), False )
632629
633630 def testRound (self ):
634- if sys .version_info [0 ] >= 3 :
635- self .assertTypedEquals (F (- 200 ), round (F (- 150 ), - 2 ))
636- self .assertTypedEquals (F (- 200 ), round (F (- 250 ), - 2 ))
637- self .assertTypedEquals (F (30 ), round (F (26 ), - 1 ))
638- self .assertTypedEquals (F (- 2 , 10 ), round (F (- 15 , 100 ), 1 ))
639- self .assertTypedEquals (F (- 2 , 10 ), round (F (- 25 , 100 ), 1 ))
631+ self .assertTypedEquals (F (- 200 ), round (F (- 150 ), - 2 ))
632+ self .assertTypedEquals (F (- 200 ), round (F (- 250 ), - 2 ))
633+ self .assertTypedEquals (F (30 ), round (F (26 ), - 1 ))
634+ self .assertTypedEquals (F (- 2 , 10 ), round (F (- 15 , 100 ), 1 ))
635+ self .assertTypedEquals (F (- 2 , 10 ), round (F (- 25 , 100 ), 1 ))
640636
641637 def testArithmetic (self ):
642638 self .assertEqual (F (1 , 2 ), F (1 , 10 ) + F (2 , 5 ))
@@ -656,13 +652,9 @@ def testArithmetic(self):
656652 self .assertEqual (F (27 , 8 ), F (2 , 3 ) ** F (- 3 ))
657653 self .assertTypedEquals (2.0 , F (4 ) ** F (1 , 2 ))
658654 self .assertEqual (F (1 , 1 ), + F (1 , 1 ))
659- try :
660- z = pow (F (- 1 ), F (1 , 2 ))
661- except ValueError :
662- self .assertEqual (2 , sys .version_info [0 ])
663- else :
664- self .assertAlmostEqual (z .real , 0 )
665- self .assertEqual (z .imag , 1 )
655+ z = pow (F (- 1 ), F (1 , 2 ))
656+ self .assertAlmostEqual (z .real , 0 )
657+ self .assertEqual (z .imag , 1 )
666658
667659 # Regression test for #27539.
668660 p = F (- 1 , 2 ) ** 0
@@ -773,13 +765,9 @@ def testMixedArithmetic(self):
773765 self .assertTypedEquals (0.1 , F (1 , 10 ) ** 1.0 )
774766 self .assertTypedEquals (0.1 + 0j , F (1 , 10 ) ** (1.0 + 0j ))
775767 self .assertTypedEquals (4 , 2 ** F (2 , 1 ))
776- try :
777- z = pow (- 1 , F (1 , 2 ))
778- except ValueError :
779- self .assertEqual (2 , sys .version_info [0 ])
780- else :
781- self .assertAlmostEqual (0 , z .real )
782- self .assertEqual (1 , z .imag )
768+ z = pow (- 1 , F (1 , 2 ))
769+ self .assertAlmostEqual (0 , z .real )
770+ self .assertEqual (1 , z .imag )
783771 self .assertTypedEquals (F (1 , 4 ) , 2 ** F (- 2 , 1 ))
784772 self .assertTypedEquals (2.0 , 4 ** F (1 , 2 ))
785773 self .assertTypedEquals (0.25 , 2.0 ** F (- 2 , 1 ))
@@ -936,13 +924,12 @@ def testStringification(self):
936924 self .assertEqual ("7" , str (F (7 , 1 )))
937925
938926 def testHash (self ):
939- if sys .version_info >= (3 ,2 ):
940- hmod = sys .hash_info .modulus
941- hinf = sys .hash_info .inf
942- self .assertEqual (hash (2.5 ), hash (F (5 , 2 )))
943- self .assertEqual (hash (10 ** 50 ), hash (F (10 ** 50 )))
944- self .assertNotEqual (hash (float (10 ** 23 )), hash (F (10 ** 23 )))
945- self .assertEqual (hinf , hash (F (1 , hmod )))
927+ hmod = sys .hash_info .modulus
928+ hinf = sys .hash_info .inf
929+ self .assertEqual (hash (2.5 ), hash (F (5 , 2 )))
930+ self .assertEqual (hash (10 ** 50 ), hash (F (10 ** 50 )))
931+ self .assertNotEqual (hash (float (10 ** 23 )), hash (F (10 ** 23 )))
932+ self .assertEqual (hinf , hash (F (1 , hmod )))
946933 # Check that __hash__ produces the same value as hash(), for
947934 # consistency with int and Decimal. (See issue #10356.)
948935 self .assertEqual (hash (F (- 1 )), F (- 1 ).__hash__ ())
@@ -955,9 +942,8 @@ def testHash_compare(self):
955942 self .assertEqual (hash (fractions .Fraction (10 , 1 )), hash (F (10 , 1 )))
956943 self .assertEqual (hash (fractions .Fraction (- 1 , 1 )), hash (F (- 1 , 1 )))
957944 self .assertEqual (hash (fractions .Fraction (- 1 , 10 )), hash (F (- 1 , 10 )))
958- if sys .version_info >= (2 , 7 ):
959- self .assertEqual (hash (fractions .Fraction (1.2 )), hash (F (1.2 )))
960- self .assertEqual (hash (fractions .Fraction (1.5 )), hash (F (1.5 )))
945+ self .assertEqual (hash (fractions .Fraction (1.2 )), hash (F (1.2 )))
946+ self .assertEqual (hash (fractions .Fraction (1.5 )), hash (F (1.5 )))
961947
962948 def testApproximatePi (self ):
963949 # Algorithm borrowed from
0 commit comments