(self)
| 320 | self.assertFalse(float("inf").is_integer()) |
| 321 | |
| 322 | def test_floatasratio(self): |
| 323 | for f, ratio in [ |
| 324 | (0.875, (7, 8)), |
| 325 | (-0.875, (-7, 8)), |
| 326 | (0.0, (0, 1)), |
| 327 | (11.5, (23, 2)), |
| 328 | ]: |
| 329 | self.assertEqual(f.as_integer_ratio(), ratio) |
| 330 | |
| 331 | for i in range(10000): |
| 332 | f = random.random() |
| 333 | f *= 10 ** random.randint(-100, 100) |
| 334 | n, d = f.as_integer_ratio() |
| 335 | self.assertEqual(float(n).__truediv__(d), f) |
| 336 | |
| 337 | R = fractions.Fraction |
| 338 | self.assertEqual(R(0, 1), |
| 339 | R(*float(0.0).as_integer_ratio())) |
| 340 | self.assertEqual(R(5, 2), |
| 341 | R(*float(2.5).as_integer_ratio())) |
| 342 | self.assertEqual(R(1, 2), |
| 343 | R(*float(0.5).as_integer_ratio())) |
| 344 | self.assertEqual(R(4728779608739021, 2251799813685248), |
| 345 | R(*float(2.1).as_integer_ratio())) |
| 346 | self.assertEqual(R(-4728779608739021, 2251799813685248), |
| 347 | R(*float(-2.1).as_integer_ratio())) |
| 348 | self.assertEqual(R(-2100, 1), |
| 349 | R(*float(-2100.0).as_integer_ratio())) |
| 350 | |
| 351 | self.assertRaises(OverflowError, float('inf').as_integer_ratio) |
| 352 | self.assertRaises(OverflowError, float('-inf').as_integer_ratio) |
| 353 | self.assertRaises(ValueError, float('nan').as_integer_ratio) |
| 354 | |
| 355 | def test_float_containment(self): |
| 356 | floats = (INF, -INF, 0.0, 1.0, NAN) |
nothing calls this directly
no test coverage detected