MCPcopy Index your code
hub / github.com/python/cpython / testFromNumber

Method testFromNumber

Lib/test/test_fractions.py:589–614  ·  view source on GitHub ↗
(self, cls=F)

Source from the content-addressed store, hash-verified

587 F.from_decimal, Decimal("snan"))
588
589 def testFromNumber(self, cls=F):
590 def check(arg, numerator, denominator):
591 f = cls.from_number(arg)
592 self.assertIs(type(f), cls)
593 self.assertEqual(f.numerator, numerator)
594 self.assertEqual(f.denominator, denominator)
595
596 check(10, 10, 1)
597 check(2.5, 5, 2)
598 check(Decimal('2.5'), 5, 2)
599 check(F(22, 7), 22, 7)
600 check(DummyFraction(22, 7), 22, 7)
601 check(Rat(22, 7), 22, 7)
602 check(Ratio((22, 7)), 22, 7)
603 self.assertRaises(TypeError, cls.from_number, 3+4j)
604 self.assertRaises(TypeError, cls.from_number, '5/2')
605 self.assertRaises(TypeError, cls.from_number, [])
606 self.assertRaises(OverflowError, cls.from_number, float('inf'))
607 self.assertRaises(OverflowError, cls.from_number, Decimal('inf'))
608
609 # as_integer_ratio not defined in a class
610 class A:
611 pass
612 a = A()
613 a.as_integer_ratio = lambda: (9, 5)
614 check(a, 9, 5)
615
616 def testFromNumber_subclass(self):
617 self.testFromNumber(DummyFraction)

Callers 1

Calls 8

DecimalClass · 0.90
DummyFractionClass · 0.85
checkFunction · 0.70
FClass · 0.70
RatClass · 0.70
RatioClass · 0.70
AClass · 0.70
assertRaisesMethod · 0.45

Tested by

no test coverage detected