(self)
| 759 | self.assertTypedEquals(F(-2, 10), round(F(-25, 100), 1)) |
| 760 | |
| 761 | def testArithmetic(self): |
| 762 | self.assertEqual(F(1, 2), F(1, 10) + F(2, 5)) |
| 763 | self.assertEqual(F(-3, 10), F(1, 10) - F(2, 5)) |
| 764 | self.assertEqual(F(1, 25), F(1, 10) * F(2, 5)) |
| 765 | self.assertEqual(F(5, 6), F(2, 3) * F(5, 4)) |
| 766 | self.assertEqual(F(1, 4), F(1, 10) / F(2, 5)) |
| 767 | self.assertEqual(F(-15, 8), F(3, 4) / F(-2, 5)) |
| 768 | self.assertRaises(ZeroDivisionError, operator.truediv, F(1), F(0)) |
| 769 | self.assertTypedEquals(2, F(9, 10) // F(2, 5)) |
| 770 | self.assertTypedEquals(10**23, F(10**23, 1) // F(1)) |
| 771 | self.assertEqual(F(5, 6), F(7, 3) % F(3, 2)) |
| 772 | self.assertEqual(F(2, 3), F(-7, 3) % F(3, 2)) |
| 773 | self.assertEqual((F(1), F(5, 6)), divmod(F(7, 3), F(3, 2))) |
| 774 | self.assertEqual((F(-2), F(2, 3)), divmod(F(-7, 3), F(3, 2))) |
| 775 | self.assertEqual(F(8, 27), F(2, 3) ** F(3)) |
| 776 | self.assertEqual(F(27, 8), F(2, 3) ** F(-3)) |
| 777 | self.assertTypedEquals(2.0, F(4) ** F(1, 2)) |
| 778 | self.assertEqual(F(1, 1), +F(1, 1)) |
| 779 | z = pow(F(-1), F(1, 2)) |
| 780 | self.assertAlmostEqual(z.real, 0) |
| 781 | self.assertEqual(z.imag, 1) |
| 782 | # Regression test for #27539. |
| 783 | p = F(-1, 2) ** 0 |
| 784 | self.assertEqual(p, F(1, 1)) |
| 785 | self.assertEqual(p.numerator, 1) |
| 786 | self.assertEqual(p.denominator, 1) |
| 787 | p = F(-1, 2) ** -1 |
| 788 | self.assertEqual(p, F(-2, 1)) |
| 789 | self.assertEqual(p.numerator, -2) |
| 790 | self.assertEqual(p.denominator, 1) |
| 791 | p = F(-1, 2) ** -2 |
| 792 | self.assertEqual(p, F(4, 1)) |
| 793 | self.assertEqual(p.numerator, 4) |
| 794 | self.assertEqual(p.denominator, 1) |
| 795 | |
| 796 | def testLargeArithmetic(self): |
| 797 | self.assertTypedEquals( |
nothing calls this directly
no test coverage detected