(self)
| 563 | F.from_float, nan) |
| 564 | |
| 565 | def testFromDecimal(self): |
| 566 | self.assertRaises(TypeError, F.from_decimal, 3+4j) |
| 567 | self.assertEqual(F(10, 1), F.from_decimal(10)) |
| 568 | self.assertEqual(F(0), F.from_decimal(Decimal("-0"))) |
| 569 | self.assertEqual(F(5, 10), F.from_decimal(Decimal("0.5"))) |
| 570 | self.assertEqual(F(5, 1000), F.from_decimal(Decimal("5e-3"))) |
| 571 | self.assertEqual(F(5000), F.from_decimal(Decimal("5e3"))) |
| 572 | self.assertEqual(1 - F(1, 10**30), |
| 573 | F.from_decimal(Decimal("0." + "9" * 30))) |
| 574 | |
| 575 | # bug 16469: error types should be consistent with decimal -> int |
| 576 | self.assertRaisesMessage( |
| 577 | OverflowError, "cannot convert Infinity to integer ratio", |
| 578 | F.from_decimal, Decimal("inf")) |
| 579 | self.assertRaisesMessage( |
| 580 | OverflowError, "cannot convert Infinity to integer ratio", |
| 581 | F.from_decimal, Decimal("-inf")) |
| 582 | self.assertRaisesMessage( |
| 583 | ValueError, "cannot convert NaN to integer ratio", |
| 584 | F.from_decimal, Decimal("nan")) |
| 585 | self.assertRaisesMessage( |
| 586 | ValueError, "cannot convert NaN to integer ratio", |
| 587 | F.from_decimal, Decimal("snan")) |
| 588 | |
| 589 | def testFromNumber(self, cls=F): |
| 590 | def check(arg, numerator, denominator): |
nothing calls this directly
no test coverage detected