Lines Matching refs:F
14 F = fractions.Fraction variable
27 return op(F.from_float(self.value), other)
105 self.assertEqual(gcd(F(120), F(84)), F(12))
106 self.assertEqual(gcd(F(120, 77), F(84, 55)), F(12, 385))
136 self.assertEqual((0, 1), _components(F()))
137 self.assertEqual((7, 1), _components(F(7)))
138 self.assertEqual((7, 3), _components(F(F(7, 3))))
140 self.assertEqual((-1, 1), _components(F(-1, 1)))
141 self.assertEqual((-1, 1), _components(F(1, -1)))
142 self.assertEqual((1, 1), _components(F(-2, -2)))
143 self.assertEqual((1, 2), _components(F(5, 10)))
144 self.assertEqual((7, 15), _components(F(7, 15)))
145 self.assertEqual((10**23, 1), _components(F(10**23)))
147 self.assertEqual((3, 77), _components(F(F(3, 7), 11)))
148 self.assertEqual((-9, 5), _components(F(2, F(-10, 9))))
149 self.assertEqual((2486, 2485), _components(F(F(22, 7), F(355, 113))))
152 F, 12, 0)
153 self.assertRaises(TypeError, F, 1.5 + 3j)
155 self.assertRaises(TypeError, F, "3/2", 3)
156 self.assertRaises(TypeError, F, 3, 0j)
157 self.assertRaises(TypeError, F, 3, 1j)
158 self.assertRaises(TypeError, F, 1, 2, 3)
162 self.assertEqual((5, 2), _components(F(2.5)))
163 self.assertEqual((0, 1), _components(F(-0.0)))
165 _components(F(0.1)))
167 self.assertRaises(ValueError, F, float('nan'))
168 self.assertRaises(OverflowError, F, float('inf'))
169 self.assertRaises(OverflowError, F, float('-inf'))
173 _components(F(Decimal('1.1'))))
175 _components(F(Decimal('3.5e-2'))))
177 _components(F(Decimal('.000e20'))))
179 self.assertRaises(ValueError, F, Decimal('nan'))
180 self.assertRaises(ValueError, F, Decimal('snan'))
181 self.assertRaises(OverflowError, F, Decimal('inf'))
182 self.assertRaises(OverflowError, F, Decimal('-inf'))
185 self.assertEqual((5, 1), _components(F("5")))
186 self.assertEqual((3, 2), _components(F("3/2")))
187 self.assertEqual((3, 2), _components(F(" \n +3/2")))
188 self.assertEqual((-3, 2), _components(F("-3/2 ")))
189 self.assertEqual((13, 2), _components(F(" 013/02 \n ")))
190 self.assertEqual((16, 5), _components(F(" 3.2 ")))
191 self.assertEqual((-16, 5), _components(F(" -3.2 ")))
192 self.assertEqual((-3, 1), _components(F(" -3. ")))
193 self.assertEqual((3, 5), _components(F(" .6 ")))
194 self.assertEqual((1, 3125), _components(F("32.e-5")))
195 self.assertEqual((1000000, 1), _components(F("1E+06")))
196 self.assertEqual((-12300, 1), _components(F("-1.23e4")))
197 self.assertEqual((0, 1), _components(F(" .0e+0\t")))
198 self.assertEqual((0, 1), _components(F("-0.000e0")))
202 F, "3/0")
205 F, "3/")
208 F, "/2")
211 F, "3 /2")
215 F, "3/+2")
219 F, "+ 3/2")
223 F, "3a2")
227 F, "3/7.2")
231 F, "3.2/7")
235 F, ".")
238 r = F(7, 3)
251 self.assertNotEqual(F(4, 2), r)
254 self.assertRaises(TypeError, F.from_float, 3+4j)
255 self.assertEqual((10, 1), _components(F.from_float(10)))
257 self.assertEqual((bigint, 1), _components(F.from_float(bigint)))
258 self.assertEqual((0, 1), _components(F.from_float(-0.0)))
259 self.assertEqual((10, 1), _components(F.from_float(10.0)))
260 self.assertEqual((-5, 2), _components(F.from_float(-2.5)))
262 _components(F.from_float(1e23)))
263 self.assertEqual(float(10**23), float(F.from_float(1e23)))
265 _components(F.from_float(3.2)))
266 self.assertEqual(3.2, float(F.from_float(3.2)))
273 F.from_float, inf)
276 F.from_float, -inf)
279 F.from_float, nan)
282 self.assertRaises(TypeError, F.from_decimal, 3+4j)
283 self.assertEqual(F(10, 1), F.from_decimal(10))
284 self.assertEqual(F(0), F.from_decimal(Decimal("-0")))
285 self.assertEqual(F(5, 10), F.from_decimal(Decimal("0.5")))
286 self.assertEqual(F(5, 1000), F.from_decimal(Decimal("5e-3")))
287 self.assertEqual(F(5000), F.from_decimal(Decimal("5e3")))
288 self.assertEqual(1 - F(1, 10**30),
289 F.from_decimal(Decimal("0." + "9" * 30)))
294 F.from_decimal, Decimal("inf"))
297 F.from_decimal, Decimal("-inf"))
300 F.from_decimal, Decimal("nan"))
303 F.from_decimal, Decimal("snan"))
306 self.assertEqual(F(4, 6).as_integer_ratio(), (2, 3))
307 self.assertEqual(F(-4, 6).as_integer_ratio(), (-2, 3))
308 self.assertEqual(F(4, -6).as_integer_ratio(), (-2, 3))
309 self.assertEqual(F(0, 6).as_integer_ratio(), (0, 1))
312 rpi = F('3.1415926535897932')
313 self.assertEqual(rpi.limit_denominator(10000), F(355, 113))
314 self.assertEqual(-rpi.limit_denominator(10000), F(-355, 113))
315 self.assertEqual(rpi.limit_denominator(113), F(355, 113))
316 self.assertEqual(rpi.limit_denominator(112), F(333, 106))
317 self.assertEqual(F(201, 200).limit_denominator(100), F(1))
318 self.assertEqual(F(201, 200).limit_denominator(101), F(102, 101))
319 self.assertEqual(F(0).limit_denominator(10000), F(0))
323 F(1).limit_denominator, i)
326 self.assertTypedEquals(-1, math.trunc(F(-11, 10)))
327 self.assertTypedEquals(1, math.trunc(F(11, 10)))
328 self.assertTypedEquals(-2, math.floor(F(-11, 10)))
329 self.assertTypedEquals(-1, math.ceil(F(-11, 10)))
330 self.assertTypedEquals(-1, math.ceil(F(-10, 10)))
331 self.assertTypedEquals(-1, int(F(-11, 10)))
332 self.assertTypedEquals(0, round(F(-1, 10)))
333 self.assertTypedEquals(0, round(F(-5, 10)))
334 self.assertTypedEquals(-2, round(F(-15, 10)))
335 self.assertTypedEquals(-1, round(F(-7, 10)))
337 self.assertEqual(False, bool(F(0, 1)))
338 self.assertEqual(True, bool(F(3, 2)))
339 self.assertTypedEquals(0.1, float(F(1, 10)))
345 float(F(int('2'*400+'7'), int('3'*400+'1'))))
347 self.assertTypedEquals(0.1+0j, complex(F(1,10)))
350 self.assertTypedEquals(F(-200), round(F(-150), -2))
351 self.assertTypedEquals(F(-200), round(F(-250), -2))
352 self.assertTypedEquals(F(30), round(F(26), -1))
353 self.assertTypedEquals(F(-2, 10), round(F(-15, 100), 1))
354 self.assertTypedEquals(F(-2, 10), round(F(-25, 100), 1))
357 self.assertEqual(F(1, 2), F(1, 10) + F(2, 5))
358 self.assertEqual(F(-3, 10), F(1, 10) - F(2, 5))
359 self.assertEqual(F(1, 25), F(1, 10) * F(2, 5))
360 self.assertEqual(F(1, 4), F(1, 10) / F(2, 5))
361 self.assertTypedEquals(2, F(9, 10) // F(2, 5))
362 self.assertTypedEquals(10**23, F(10**23, 1) // F(1))
363 self.assertEqual(F(5, 6), F(7, 3) % F(3, 2))
364 self.assertEqual(F(2, 3), F(-7, 3) % F(3, 2))
365 self.assertEqual((F(1), F(5, 6)), divmod(F(7, 3), F(3, 2)))
366 self.assertEqual((F(-2), F(2, 3)), divmod(F(-7, 3), F(3, 2)))
367 self.assertEqual(F(8, 27), F(2, 3) ** F(3))
368 self.assertEqual(F(27, 8), F(2, 3) ** F(-3))
369 self.assertTypedEquals(2.0, F(4) ** F(1, 2))
370 self.assertEqual(F(1, 1), +F(1, 1))
371 z = pow(F(-1), F(1, 2))
375 p = F(-1, 2) ** 0
376 self.assertEqual(p, F(1, 1))
379 p = F(-1, 2) ** -1
380 self.assertEqual(p, F(-2, 1))
383 p = F(-1, 2) ** -2
384 self.assertEqual(p, F(4, 1))
390 F(10101010100808080808080808101010101010000000000000000,
392 F(10**35+1, 10**27+1) % F(10**27+1, 10**35-1)
395 F(7, 1901475900342344102245054808064),
396 F(-2**100, 3) % F(5, 2**100)
400 F(10101010100808080808080808101010101010000000000000000,
402 divmod(F(10**35+1, 10**27+1), F(10**27+1, 10**35-1))
406 F(-2**100, 3) // F(5, 2**100)
410 F(5, 2**100) // F(3, 2**100)
413 (1, F(2, 2**100)),
414 divmod(F(5, 2**100), F(3, 2**100))
418 F(7, 1901475900342344102245054808064)),
419 divmod(F(-2**100, 3), F(5, 2**100))
423 self.assertTypedEquals(F(11, 10), F(1, 10) + 1)
424 self.assertTypedEquals(1.1, F(1, 10) + 1.0)
425 self.assertTypedEquals(1.1 + 0j, F(1, 10) + (1.0 + 0j))
426 self.assertTypedEquals(F(11, 10), 1 + F(1, 10))
427 self.assertTypedEquals(1.1, 1.0 + F(1, 10))
428 self.assertTypedEquals(1.1 + 0j, (1.0 + 0j) + F(1, 10))
430 self.assertTypedEquals(F(-9, 10), F(1, 10) - 1)
431 self.assertTypedEquals(-0.9, F(1, 10) - 1.0)
432 self.assertTypedEquals(-0.9 + 0j, F(1, 10) - (1.0 + 0j))
433 self.assertTypedEquals(F(9, 10), 1 - F(1, 10))
434 self.assertTypedEquals(0.9, 1.0 - F(1, 10))
435 self.assertTypedEquals(0.9 + 0j, (1.0 + 0j) - F(1, 10))
437 self.assertTypedEquals(F(1, 10), F(1, 10) * 1)
438 self.assertTypedEquals(0.1, F(1, 10) * 1.0)
439 self.assertTypedEquals(0.1 + 0j, F(1, 10) * (1.0 + 0j))
440 self.assertTypedEquals(F(1, 10), 1 * F(1, 10))
441 self.assertTypedEquals(0.1, 1.0 * F(1, 10))
442 self.assertTypedEquals(0.1 + 0j, (1.0 + 0j) * F(1, 10))
444 self.assertTypedEquals(F(1, 10), F(1, 10) / 1)
445 self.assertTypedEquals(0.1, F(1, 10) / 1.0)
446 self.assertTypedEquals(0.1 + 0j, F(1, 10) / (1.0 + 0j))
447 self.assertTypedEquals(F(10, 1), 1 / F(1, 10))
448 self.assertTypedEquals(10.0, 1.0 / F(1, 10))
449 self.assertTypedEquals(10.0 + 0j, (1.0 + 0j) / F(1, 10))
451 self.assertTypedEquals(0, F(1, 10) // 1)
452 self.assertTypedEquals(0.0, F(1, 10) // 1.0)
453 self.assertTypedEquals(10, 1 // F(1, 10))
454 self.assertTypedEquals(10**23, 10**22 // F(1, 10))
455 self.assertTypedEquals(1.0 // 0.1, 1.0 // F(1, 10))
457 self.assertTypedEquals(F(1, 10), F(1, 10) % 1)
458 self.assertTypedEquals(0.1, F(1, 10) % 1.0)
459 self.assertTypedEquals(F(0, 1), 1 % F(1, 10))
460 self.assertTypedEquals(1.0 % 0.1, 1.0 % F(1, 10))
461 self.assertTypedEquals(0.1, F(1, 10) % float('inf'))
462 self.assertTypedEquals(float('-inf'), F(1, 10) % float('-inf'))
463 self.assertTypedEquals(float('inf'), F(-1, 10) % float('inf'))
464 self.assertTypedEquals(-0.1, F(-1, 10) % float('-inf'))
466 self.assertTypedTupleEquals((0, F(1, 10)), divmod(F(1, 10), 1))
467 self.assertTypedTupleEquals(divmod(0.1, 1.0), divmod(F(1, 10), 1.0))
468 self.assertTypedTupleEquals((10, F(0)), divmod(1, F(1, 10)))
469 self.assertTypedTupleEquals(divmod(1.0, 0.1), divmod(1.0, F(1, 10)))
470 self.assertTypedTupleEquals(divmod(0.1, float('inf')), divmod(F(1, 10), float('inf')))
471 self.assertTypedTupleEquals(divmod(0.1, float('-inf')), divmod(F(1, 10), float('-inf')))
472 self.assertTypedTupleEquals(divmod(-0.1, float('inf')), divmod(F(-1, 10), float('inf')))
473 self.assertTypedTupleEquals(divmod(-0.1, float('-inf')), divmod(F(-1, 10), float('-inf')))
476 self.assertTypedEquals(F(100, 1), F(1, 10) ** -2)
477 self.assertTypedEquals(F(100, 1), F(10, 1) ** 2)
478 self.assertTypedEquals(0.1, F(1, 10) ** 1.0)
479 self.assertTypedEquals(0.1 + 0j, F(1, 10) ** (1.0 + 0j))
480 self.assertTypedEquals(4 , 2 ** F(2, 1))
481 z = pow(-1, F(1, 2))
484 self.assertTypedEquals(F(1, 4) , 2 ** F(-2, 1))
485 self.assertTypedEquals(2.0 , 4 ** F(1, 2))
486 self.assertTypedEquals(0.25, 2.0 ** F(-2, 1))
487 self.assertTypedEquals(1.0 + 0j, (1.0 + 0j) ** F(1, 10))
489 F(0, 1), -2)
494 F(3,11), Decimal('3.1415926'))
496 Decimal('3.1415926'), F(3,11))
499 self.assertTrue(F(1, 2) < F(2, 3))
500 self.assertFalse(F(1, 2) < F(1, 2))
501 self.assertTrue(F(1, 2) <= F(2, 3))
502 self.assertTrue(F(1, 2) <= F(1, 2))
503 self.assertFalse(F(2, 3) <= F(1, 2))
504 self.assertTrue(F(1, 2) == F(1, 2))
505 self.assertFalse(F(1, 2) == F(1, 3))
506 self.assertFalse(F(1, 2) != F(1, 2))
507 self.assertTrue(F(1, 2) != F(1, 3))
510 self.assertTrue(F(1, 2) == DummyRational(1, 2))
511 self.assertTrue(DummyRational(1, 2) == F(1, 2))
512 self.assertFalse(F(1, 2) == DummyRational(3, 4))
513 self.assertFalse(DummyRational(3, 4) == F(1, 2))
515 self.assertTrue(F(1, 2) < DummyRational(3, 4))
516 self.assertFalse(F(1, 2) < DummyRational(1, 2))
517 self.assertFalse(F(1, 2) < DummyRational(1, 7))
518 self.assertFalse(F(1, 2) > DummyRational(3, 4))
519 self.assertFalse(F(1, 2) > DummyRational(1, 2))
520 self.assertTrue(F(1, 2) > DummyRational(1, 7))
521 self.assertTrue(F(1, 2) <= DummyRational(3, 4))
522 self.assertTrue(F(1, 2) <= DummyRational(1, 2))
523 self.assertFalse(F(1, 2) <= DummyRational(1, 7))
524 self.assertFalse(F(1, 2) >= DummyRational(3, 4))
525 self.assertTrue(F(1, 2) >= DummyRational(1, 2))
526 self.assertTrue(F(1, 2) >= DummyRational(1, 7))
528 self.assertTrue(DummyRational(1, 2) < F(3, 4))
529 self.assertFalse(DummyRational(1, 2) < F(1, 2))
530 self.assertFalse(DummyRational(1, 2) < F(1, 7))
531 self.assertFalse(DummyRational(1, 2) > F(3, 4))
532 self.assertFalse(DummyRational(1, 2) > F(1, 2))
533 self.assertTrue(DummyRational(1, 2) > F(1, 7))
534 self.assertTrue(DummyRational(1, 2) <= F(3, 4))
535 self.assertTrue(DummyRational(1, 2) <= F(1, 2))
536 self.assertFalse(DummyRational(1, 2) <= F(1, 7))
537 self.assertFalse(DummyRational(1, 2) >= F(3, 4))
538 self.assertTrue(DummyRational(1, 2) >= F(1, 2))
539 self.assertTrue(DummyRational(1, 2) >= F(1, 7))
543 y = F(1, 3)
554 self.assertTrue(2 < F(5, 2))
555 self.assertFalse(2 < F(4, 2))
556 self.assertTrue(F(5, 2) < 3)
557 self.assertFalse(F(4, 2) < 2)
559 self.assertTrue(F(1, 2) < 0.6)
560 self.assertFalse(F(1, 2) < 0.4)
561 self.assertTrue(0.4 < F(1, 2))
562 self.assertFalse(0.5 < F(1, 2))
564 self.assertFalse(float('inf') < F(1, 2))
565 self.assertTrue(float('-inf') < F(0, 10))
566 self.assertFalse(float('nan') < F(-3, 7))
567 self.assertTrue(F(1, 2) < float('inf'))
568 self.assertFalse(F(17, 12) < float('-inf'))
569 self.assertFalse(F(144, -89) < float('nan'))
572 self.assertTrue(0.5 <= F(1, 2))
573 self.assertFalse(0.6 <= F(1, 2))
574 self.assertTrue(F(1, 2) <= 0.5)
575 self.assertFalse(F(1, 2) <= 0.4)
576 self.assertTrue(2 <= F(4, 2))
577 self.assertFalse(2 <= F(3, 2))
578 self.assertTrue(F(4, 2) <= 2)
579 self.assertFalse(F(5, 2) <= 2)
581 self.assertFalse(float('inf') <= F(1, 2))
582 self.assertTrue(float('-inf') <= F(0, 10))
583 self.assertFalse(float('nan') <= F(-3, 7))
584 self.assertTrue(F(1, 2) <= float('inf'))
585 self.assertFalse(F(17, 12) <= float('-inf'))
586 self.assertFalse(F(144, -89) <= float('nan'))
590 self.assertFalse(F(10**23) == float(10**23))
592 self.assertFalse(1e23 < float(F(math.trunc(1e23) + 1)))
593 self.assertTrue(1e23 < F(math.trunc(1e23) + 1))
594 self.assertFalse(1e23 <= F(math.trunc(1e23) - 1))
595 self.assertTrue(1e23 > F(math.trunc(1e23) - 1))
596 self.assertFalse(1e23 >= F(math.trunc(1e23) + 1))
599 self.assertFalse(F(10**23) == complex(10**23))
600 self.assertRaises(TypeError, operator.gt, F(10**23), complex(10**23))
601 self.assertRaises(TypeError, operator.le, F(10**23), complex(10**23))
603 x = F(3, 8)
617 self.assertTrue(0.5 == F(1, 2))
618 self.assertFalse(0.6 == F(1, 2))
619 self.assertTrue(F(1, 2) == 0.5)
620 self.assertFalse(F(1, 2) == 0.4)
621 self.assertTrue(2 == F(4, 2))
622 self.assertFalse(2 == F(3, 2))
623 self.assertTrue(F(4, 2) == 2)
624 self.assertFalse(F(5, 2) == 2)
625 self.assertFalse(F(5, 2) == float('nan'))
626 self.assertFalse(float('nan') == F(3, 7))
627 self.assertFalse(F(5, 2) == float('inf'))
628 self.assertFalse(float('-inf') == F(2, 5))
631 self.assertEqual("Fraction(7, 3)", repr(F(7, 3)))
633 repr(F('3.1415926535')))
635 repr(F(1, -10**20)))
636 self.assertEqual("7/3", str(F(7, 3)))
637 self.assertEqual("7", str(F(7, 1)))
642 self.assertEqual(hash(2.5), hash(F(5, 2)))
643 self.assertEqual(hash(10**50), hash(F(10**50)))
644 self.assertNotEqual(hash(float(10**23)), hash(F(10**23)))
645 self.assertEqual(hinf, hash(F(1, hmod)))
648 self.assertEqual(hash(F(-1)), F(-1).__hash__())
653 three = F(3)
655 while abs(s - lasts) > F(1, 10**9):
666 x = F(1)
667 i, lasts, s, fact, num, sign = 0, 0, F(1), 1, 1, 1
668 while abs(s - lasts) > F(1, 10**9):
678 r = F(13, 7)
690 r = F(13, 7)