MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_floatasratio

Method test_floatasratio

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

Source from the content-addressed store, hash-verified

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