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

Method test_floatasratio

Lib/test/test_float.py:322–353  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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)

Callers

nothing calls this directly

Calls 7

randintMethod · 0.80
RFunction · 0.70
assertEqualMethod · 0.45
as_integer_ratioMethod · 0.45
randomMethod · 0.45
__truediv__Method · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected