Lines Matching +full:1 +full:f
16 F = fractions.Fraction variable
29 return op(F.from_float(self.value), other)
114 self.assertEqual((0, 1), _components(F()))
115 self.assertEqual((7, 1), _components(F(7)))
116 self.assertEqual((7, 3), _components(F(F(7, 3))))
118 self.assertEqual((-1, 1), _components(F(-1, 1)))
119 self.assertEqual((-1, 1), _components(F(1, -1)))
120 self.assertEqual((1, 1), _components(F(-2, -2)))
121 self.assertEqual((1, 2), _components(F(5, 10)))
122 self.assertEqual((7, 15), _components(F(7, 15)))
123 self.assertEqual((10**23, 1), _components(F(10**23)))
125 self.assertEqual((3, 77), _components(F(F(3, 7), 11)))
126 self.assertEqual((-9, 5), _components(F(2, F(-10, 9))))
127 self.assertEqual((2486, 2485), _components(F(F(22, 7), F(355, 113))))
130 F, 12, 0)
131 self.assertRaises(TypeError, F, 1.5 + 3j)
133 self.assertRaises(TypeError, F, "3/2", 3)
134 self.assertRaises(TypeError, F, 3, 0j)
135 self.assertRaises(TypeError, F, 3, 1j)
136 self.assertRaises(TypeError, F, 1, 2, 3)
140 self.assertEqual((5, 2), _components(F(2.5)))
141 self.assertEqual((0, 1), _components(F(-0.0)))
143 _components(F(0.1)))
145 self.assertRaises(ValueError, F, float('nan'))
146 self.assertRaises(OverflowError, F, float('inf'))
147 self.assertRaises(OverflowError, F, float('-inf'))
151 _components(F(Decimal('1.1'))))
153 _components(F(Decimal('3.5e-2'))))
154 self.assertEqual((0, 1),
155 _components(F(Decimal('.000e20'))))
157 self.assertRaises(ValueError, F, Decimal('nan'))
158 self.assertRaises(ValueError, F, Decimal('snan'))
159 self.assertRaises(OverflowError, F, Decimal('inf'))
160 self.assertRaises(OverflowError, F, Decimal('-inf'))
163 self.assertEqual((5, 1), _components(F("5")))
164 self.assertEqual((3, 2), _components(F("3/2")))
165 self.assertEqual((3, 2), _components(F(" \n +3/2")))
166 self.assertEqual((-3, 2), _components(F("-3/2 ")))
167 self.assertEqual((13, 2), _components(F(" 013/02 \n ")))
168 self.assertEqual((16, 5), _components(F(" 3.2 ")))
169 self.assertEqual((-16, 5), _components(F(" -3.2 ")))
170 self.assertEqual((-3, 1), _components(F(" -3. ")))
171 self.assertEqual((3, 5), _components(F(" .6 ")))
172 self.assertEqual((1, 3125), _components(F("32.e-5")))
173 self.assertEqual((1000000, 1), _components(F("1E+06")))
174 self.assertEqual((-12300, 1), _components(F("-1.23e4")))
175 self.assertEqual((0, 1), _components(F(" .0e+0\t")))
176 self.assertEqual((0, 1), _components(F("-0.000e0")))
177 self.assertEqual((123, 1), _components(F("1_2_3")))
178 self.assertEqual((41, 107), _components(F("1_2_3/3_2_1")))
179 self.assertEqual((6283, 2000), _components(F("3.14_15")))
180 self.assertEqual((6283, 2*10**13), _components(F("3.14_15e-1_0")))
181 self.assertEqual((101, 100), _components(F("1.01")))
182 self.assertEqual((101, 100), _components(F("1.0_1")))
186 F, "3/0")
189 F, "3/")
192 F, "/2")
195 F, "3 /2")
199 F, "3/+2")
203 F, "+ 3/2")
207 F, "3a2")
211 F, "3/7.2")
215 F, "3.2/7")
219 F, ".")
222 F, "_")
225 F, "_1")
227 ValueError, "Invalid literal for Fraction: '1__2'",
228 F, "1__2")
231 F, "/_")
233 ValueError, "Invalid literal for Fraction: '1_/'",
234 F, "1_/")
237 F, "_1/")
239 ValueError, "Invalid literal for Fraction: '1__2/'",
240 F, "1__2/")
242 ValueError, "Invalid literal for Fraction: '1/_'",
243 F, "1/_")
245 ValueError, "Invalid literal for Fraction: '1/_1'",
246 F, "1/_1")
248 ValueError, "Invalid literal for Fraction: '1/1__2'",
249 F, "1/1__2")
251 ValueError, "Invalid literal for Fraction: '1._111'",
252 F, "1._111")
255 F, "1.1__1")
258 F, "1.1e+_1")
260 ValueError, "Invalid literal for Fraction: '1.1e+1__1'",
261 F, "1.1e+1__1")
266 F, val)
268 ValueError, "Invalid literal for Fraction: '1/" + val + "'",
269 F, "1/" + val)
271 ValueError, "Invalid literal for Fraction: '1." + val + "'",
272 F, "1." + val)
275 F, "1.1+e" + val)
278 r = F(7, 3)
291 self.assertNotEqual(F(4, 2), r)
294 self.assertRaises(TypeError, F.from_float, 3+4j)
295 self.assertEqual((10, 1), _components(F.from_float(10)))
297 self.assertEqual((bigint, 1), _components(F.from_float(bigint)))
298 self.assertEqual((0, 1), _components(F.from_float(-0.0)))
299 self.assertEqual((10, 1), _components(F.from_float(10.0)))
300 self.assertEqual((-5, 2), _components(F.from_float(-2.5)))
301 self.assertEqual((99999999999999991611392, 1),
302 _components(F.from_float(1e23)))
303 self.assertEqual(float(10**23), float(F.from_float(1e23)))
305 _components(F.from_float(3.2)))
306 self.assertEqual(3.2, float(F.from_float(3.2)))
308 inf = 1e1000
313 F.from_float, inf)
316 F.from_float, -inf)
319 F.from_float, nan)
322 self.assertRaises(TypeError, F.from_decimal, 3+4j)
323 self.assertEqual(F(10, 1), F.from_decimal(10))
324 self.assertEqual(F(0), F.from_decimal(Decimal("-0")))
325 self.assertEqual(F(5, 10), F.from_decimal(Decimal("0.5")))
326 self.assertEqual(F(5, 1000), F.from_decimal(Decimal("5e-3")))
327 self.assertEqual(F(5000), F.from_decimal(Decimal("5e3")))
328 self.assertEqual(1 - F(1, 10**30),
329 F.from_decimal(Decimal("0." + "9" * 30)))
334 F.from_decimal, Decimal("inf"))
337 F.from_decimal, Decimal("-inf"))
340 F.from_decimal, Decimal("nan"))
343 F.from_decimal, Decimal("snan"))
346 self.assertEqual(F(4, 6).as_integer_ratio(), (2, 3))
347 self.assertEqual(F(-4, 6).as_integer_ratio(), (-2, 3))
348 self.assertEqual(F(4, -6).as_integer_ratio(), (-2, 3))
349 self.assertEqual(F(0, 6).as_integer_ratio(), (0, 1))
352 rpi = F('3.1415926535897932')
353 self.assertEqual(rpi.limit_denominator(10000), F(355, 113))
354 self.assertEqual(-rpi.limit_denominator(10000), F(-355, 113))
355 self.assertEqual(rpi.limit_denominator(113), F(355, 113))
356 self.assertEqual(rpi.limit_denominator(112), F(333, 106))
357 self.assertEqual(F(201, 200).limit_denominator(100), F(1))
358 self.assertEqual(F(201, 200).limit_denominator(101), F(102, 101))
359 self.assertEqual(F(0).limit_denominator(10000), F(0))
360 for i in (0, -1):
362 ValueError, "max_denominator should be at least 1",
363 F(1).limit_denominator, i)
366 self.assertTypedEquals(-1, math.trunc(F(-11, 10)))
367 self.assertTypedEquals(1, math.trunc(F(11, 10)))
368 self.assertTypedEquals(-2, math.floor(F(-11, 10)))
369 self.assertTypedEquals(-1, math.ceil(F(-11, 10)))
370 self.assertTypedEquals(-1, math.ceil(F(-10, 10)))
371 self.assertTypedEquals(-1, int(F(-11, 10)))
372 self.assertTypedEquals(0, round(F(-1, 10)))
373 self.assertTypedEquals(0, round(F(-5, 10)))
374 self.assertTypedEquals(-2, round(F(-15, 10)))
375 self.assertTypedEquals(-1, round(F(-7, 10)))
377 self.assertEqual(False, bool(F(0, 1)))
378 self.assertEqual(True, bool(F(3, 2)))
379 self.assertTypedEquals(0.1, float(F(1, 10)))
385 float(F(int('2'*400+'7'), int('3'*400+'1'))))
387 self.assertTypedEquals(0.1+0j, complex(F(1,10)))
391 f = F(3, 2)
392 self.assertIsInstance(f, typing.SupportsInt)
393 self.assertEqual(int(f), 1)
394 self.assertEqual(type(int(f)), int)
414 return CustomInt(1)
422 f = F(CustomInt(13), CustomInt(5))
424 self.assertIsInstance(f.numerator, CustomInt)
425 self.assertIsInstance(f.denominator, CustomInt)
426 self.assertIsInstance(f, typing.SupportsInt)
427 self.assertEqual(int(f), 2)
428 self.assertEqual(type(int(f)), int)
435 denominator = 1
456 numerator = CustomValue(1)
457 r = F(numerator)
463 r = F(numerator)
467 self.assertTypedEquals(F(-200), round(F(-150), -2))
468 self.assertTypedEquals(F(-200), round(F(-250), -2))
469 self.assertTypedEquals(F(30), round(F(26), -1))
470 self.assertTypedEquals(F(-2, 10), round(F(-15, 100), 1))
471 self.assertTypedEquals(F(-2, 10), round(F(-25, 100), 1))
474 self.assertEqual(F(1, 2), F(1, 10) + F(2, 5))
475 self.assertEqual(F(-3, 10), F(1, 10) - F(2, 5))
476 self.assertEqual(F(1, 25), F(1, 10) * F(2, 5))
477 self.assertEqual(F(5, 6), F(2, 3) * F(5, 4))
478 self.assertEqual(F(1, 4), F(1, 10) / F(2, 5))
479 self.assertEqual(F(-15, 8), F(3, 4) / F(-2, 5))
480 self.assertTypedEquals(2, F(9, 10) // F(2, 5))
481 self.assertTypedEquals(10**23, F(10**23, 1) // F(1))
482 self.assertEqual(F(5, 6), F(7, 3) % F(3, 2))
483 self.assertEqual(F(2, 3), F(-7, 3) % F(3, 2))
484 self.assertEqual((F(1), F(5, 6)), divmod(F(7, 3), F(3, 2)))
485 self.assertEqual((F(-2), F(2, 3)), divmod(F(-7, 3), F(3, 2)))
486 self.assertEqual(F(8, 27), F(2, 3) ** F(3))
487 self.assertEqual(F(27, 8), F(2, 3) ** F(-3))
488 self.assertTypedEquals(2.0, F(4) ** F(1, 2))
489 self.assertEqual(F(1, 1), +F(1, 1))
490 z = pow(F(-1), F(1, 2))
492 self.assertEqual(z.imag, 1)
494 p = F(-1, 2) ** 0
495 self.assertEqual(p, F(1, 1))
496 self.assertEqual(p.numerator, 1)
497 self.assertEqual(p.denominator, 1)
498 p = F(-1, 2) ** -1
499 self.assertEqual(p, F(-2, 1))
501 self.assertEqual(p.denominator, 1)
502 p = F(-1, 2) ** -2
503 self.assertEqual(p, F(4, 1))
505 self.assertEqual(p.denominator, 1)
509 F(10101010100808080808080808101010101010000000000000000,
511 F(10**35+1, 10**27+1) % F(10**27+1, 10**35-1)
514 F(7, 1901475900342344102245054808064),
515 F(-2**100, 3) % F(5, 2**100)
519 F(10101010100808080808080808101010101010000000000000000,
521 divmod(F(10**35+1, 10**27+1), F(10**27+1, 10**35-1))
525 F(-2**100, 3) // F(5, 2**100)
528 1,
529 F(5, 2**100) // F(3, 2**100)
532 (1, F(2, 2**100)),
533 divmod(F(5, 2**100), F(3, 2**100))
537 F(7, 1901475900342344102245054808064)),
538 divmod(F(-2**100, 3), F(5, 2**100))
542 self.assertTypedEquals(F(11, 10), F(1, 10) + 1)
543 self.assertTypedEquals(1.1, F(1, 10) + 1.0)
544 self.assertTypedEquals(1.1 + 0j, F(1, 10) + (1.0 + 0j))
545 self.assertTypedEquals(F(11, 10), 1 + F(1, 10))
546 self.assertTypedEquals(1.1, 1.0 + F(1, 10))
547 self.assertTypedEquals(1.1 + 0j, (1.0 + 0j) + F(1, 10))
549 self.assertTypedEquals(F(-9, 10), F(1, 10) - 1)
550 self.assertTypedEquals(-0.9, F(1, 10) - 1.0)
551 self.assertTypedEquals(-0.9 + 0j, F(1, 10) - (1.0 + 0j))
552 self.assertTypedEquals(F(9, 10), 1 - F(1, 10))
553 self.assertTypedEquals(0.9, 1.0 - F(1, 10))
554 self.assertTypedEquals(0.9 + 0j, (1.0 + 0j) - F(1, 10))
556 self.assertTypedEquals(F(1, 10), F(1, 10) * 1)
557 self.assertTypedEquals(0.1, F(1, 10) * 1.0)
558 self.assertTypedEquals(0.1 + 0j, F(1, 10) * (1.0 + 0j))
559 self.assertTypedEquals(F(1, 10), 1 * F(1, 10))
560 self.assertTypedEquals(0.1, 1.0 * F(1, 10))
561 self.assertTypedEquals(0.1 + 0j, (1.0 + 0j) * F(1, 10))
563 self.assertTypedEquals(F(1, 10), F(1, 10) / 1)
564 self.assertTypedEquals(0.1, F(1, 10) / 1.0)
565 self.assertTypedEquals(0.1 + 0j, F(1, 10) / (1.0 + 0j))
566 self.assertTypedEquals(F(10, 1), 1 / F(1, 10))
567 self.assertTypedEquals(10.0, 1.0 / F(1, 10))
568 self.assertTypedEquals(10.0 + 0j, (1.0 + 0j) / F(1, 10))
570 self.assertTypedEquals(0, F(1, 10) // 1)
571 self.assertTypedEquals(0.0, F(1, 10) // 1.0)
572 self.assertTypedEquals(10, 1 // F(1, 10))
573 self.assertTypedEquals(10**23, 10**22 // F(1, 10))
574 self.assertTypedEquals(1.0 // 0.1, 1.0 // F(1, 10))
576 self.assertTypedEquals(F(1, 10), F(1, 10) % 1)
577 self.assertTypedEquals(0.1, F(1, 10) % 1.0)
578 self.assertTypedEquals(F(0, 1), 1 % F(1, 10))
579 self.assertTypedEquals(1.0 % 0.1, 1.0 % F(1, 10))
580 self.assertTypedEquals(0.1, F(1, 10) % float('inf'))
581 self.assertTypedEquals(float('-inf'), F(1, 10) % float('-inf'))
582 self.assertTypedEquals(float('inf'), F(-1, 10) % float('inf'))
583 self.assertTypedEquals(-0.1, F(-1, 10) % float('-inf'))
585 self.assertTypedTupleEquals((0, F(1, 10)), divmod(F(1, 10), 1))
586 self.assertTypedTupleEquals(divmod(0.1, 1.0), divmod(F(1, 10), 1.0))
587 self.assertTypedTupleEquals((10, F(0)), divmod(1, F(1, 10)))
588 self.assertTypedTupleEquals(divmod(1.0, 0.1), divmod(1.0, F(1, 10)))
589 self.assertTypedTupleEquals(divmod(0.1, float('inf')), divmod(F(1, 10), float('inf')))
590 self.assertTypedTupleEquals(divmod(0.1, float('-inf')), divmod(F(1, 10), float('-inf')))
591 self.assertTypedTupleEquals(divmod(-0.1, float('inf')), divmod(F(-1, 10), float('inf')))
592 self.assertTypedTupleEquals(divmod(-0.1, float('-inf')), divmod(F(-1, 10), float('-inf')))
595 self.assertTypedEquals(F(100, 1), F(1, 10) ** -2)
596 self.assertTypedEquals(F(100, 1), F(10, 1) ** 2)
597 self.assertTypedEquals(0.1, F(1, 10) ** 1.0)
598 self.assertTypedEquals(0.1 + 0j, F(1, 10) ** (1.0 + 0j))
599 self.assertTypedEquals(4 , 2 ** F(2, 1))
600 z = pow(-1, F(1, 2))
602 self.assertEqual(1, z.imag)
603 self.assertTypedEquals(F(1, 4) , 2 ** F(-2, 1))
604 self.assertTypedEquals(2.0 , 4 ** F(1, 2))
605 self.assertTypedEquals(0.25, 2.0 ** F(-2, 1))
606 self.assertTypedEquals(1.0 + 0j, (1.0 + 0j) ** F(1, 10))
608 F(0, 1), -2)
613 F(3,11), Decimal('3.1415926'))
615 Decimal('3.1415926'), F(3,11))
618 self.assertTrue(F(1, 2) < F(2, 3))
619 self.assertFalse(F(1, 2) < F(1, 2))
620 self.assertTrue(F(1, 2) <= F(2, 3))
621 self.assertTrue(F(1, 2) <= F(1, 2))
622 self.assertFalse(F(2, 3) <= F(1, 2))
623 self.assertTrue(F(1, 2) == F(1, 2))
624 self.assertFalse(F(1, 2) == F(1, 3))
625 self.assertFalse(F(1, 2) != F(1, 2))
626 self.assertTrue(F(1, 2) != F(1, 3))
629 self.assertTrue(F(1, 2) == DummyRational(1, 2))
630 self.assertTrue(DummyRational(1, 2) == F(1, 2))
631 self.assertFalse(F(1, 2) == DummyRational(3, 4))
632 self.assertFalse(DummyRational(3, 4) == F(1, 2))
634 self.assertTrue(F(1, 2) < DummyRational(3, 4))
635 self.assertFalse(F(1, 2) < DummyRational(1, 2))
636 self.assertFalse(F(1, 2) < DummyRational(1, 7))
637 self.assertFalse(F(1, 2) > DummyRational(3, 4))
638 self.assertFalse(F(1, 2) > DummyRational(1, 2))
639 self.assertTrue(F(1, 2) > DummyRational(1, 7))
640 self.assertTrue(F(1, 2) <= DummyRational(3, 4))
641 self.assertTrue(F(1, 2) <= DummyRational(1, 2))
642 self.assertFalse(F(1, 2) <= DummyRational(1, 7))
643 self.assertFalse(F(1, 2) >= DummyRational(3, 4))
644 self.assertTrue(F(1, 2) >= DummyRational(1, 2))
645 self.assertTrue(F(1, 2) >= DummyRational(1, 7))
647 self.assertTrue(DummyRational(1, 2) < F(3, 4))
648 self.assertFalse(DummyRational(1, 2) < F(1, 2))
649 self.assertFalse(DummyRational(1, 2) < F(1, 7))
650 self.assertFalse(DummyRational(1, 2) > F(3, 4))
651 self.assertFalse(DummyRational(1, 2) > F(1, 2))
652 self.assertTrue(DummyRational(1, 2) > F(1, 7))
653 self.assertTrue(DummyRational(1, 2) <= F(3, 4))
654 self.assertTrue(DummyRational(1, 2) <= F(1, 2))
655 self.assertFalse(DummyRational(1, 2) <= F(1, 7))
656 self.assertFalse(DummyRational(1, 2) >= F(3, 4))
657 self.assertTrue(DummyRational(1, 2) >= F(1, 2))
658 self.assertTrue(DummyRational(1, 2) >= F(1, 7))
661 x = DummyFloat(1./3.)
662 y = F(1, 3)
673 self.assertTrue(2 < F(5, 2))
674 self.assertFalse(2 < F(4, 2))
675 self.assertTrue(F(5, 2) < 3)
676 self.assertFalse(F(4, 2) < 2)
678 self.assertTrue(F(1, 2) < 0.6)
679 self.assertFalse(F(1, 2) < 0.4)
680 self.assertTrue(0.4 < F(1, 2))
681 self.assertFalse(0.5 < F(1, 2))
683 self.assertFalse(float('inf') < F(1, 2))
684 self.assertTrue(float('-inf') < F(0, 10))
685 self.assertFalse(float('nan') < F(-3, 7))
686 self.assertTrue(F(1, 2) < float('inf'))
687 self.assertFalse(F(17, 12) < float('-inf'))
688 self.assertFalse(F(144, -89) < float('nan'))
691 self.assertTrue(0.5 <= F(1, 2))
692 self.assertFalse(0.6 <= F(1, 2))
693 self.assertTrue(F(1, 2) <= 0.5)
694 self.assertFalse(F(1, 2) <= 0.4)
695 self.assertTrue(2 <= F(4, 2))
696 self.assertFalse(2 <= F(3, 2))
697 self.assertTrue(F(4, 2) <= 2)
698 self.assertFalse(F(5, 2) <= 2)
700 self.assertFalse(float('inf') <= F(1, 2))
701 self.assertTrue(float('-inf') <= F(0, 10))
702 self.assertFalse(float('nan') <= F(-3, 7))
703 self.assertTrue(F(1, 2) <= float('inf'))
704 self.assertFalse(F(17, 12) <= float('-inf'))
705 self.assertFalse(F(144, -89) <= float('nan'))
709 self.assertFalse(F(10**23) == float(10**23))
711 self.assertFalse(1e23 < float(F(math.trunc(1e23) + 1)))
712 self.assertTrue(1e23 < F(math.trunc(1e23) + 1))
713 self.assertFalse(1e23 <= F(math.trunc(1e23) - 1))
714 self.assertTrue(1e23 > F(math.trunc(1e23) - 1))
715 self.assertFalse(1e23 >= F(math.trunc(1e23) + 1))
718 self.assertFalse(F(10**23) == complex(10**23))
719 self.assertRaises(TypeError, operator.gt, F(10**23), complex(10**23))
720 self.assertRaises(TypeError, operator.le, F(10**23), complex(10**23))
722 x = F(3, 8)
736 self.assertTrue(0.5 == F(1, 2))
737 self.assertFalse(0.6 == F(1, 2))
738 self.assertTrue(F(1, 2) == 0.5)
739 self.assertFalse(F(1, 2) == 0.4)
740 self.assertTrue(2 == F(4, 2))
741 self.assertFalse(2 == F(3, 2))
742 self.assertTrue(F(4, 2) == 2)
743 self.assertFalse(F(5, 2) == 2)
744 self.assertFalse(F(5, 2) == float('nan'))
745 self.assertFalse(float('nan') == F(3, 7))
746 self.assertFalse(F(5, 2) == float('inf'))
747 self.assertFalse(float('-inf') == F(2, 5))
750 self.assertEqual("Fraction(7, 3)", repr(F(7, 3)))
752 repr(F('3.1415926535')))
753 self.assertEqual("Fraction(-1, 100000000000000000000)",
754 repr(F(1, -10**20)))
755 self.assertEqual("7/3", str(F(7, 3)))
756 self.assertEqual("7", str(F(7, 1)))
761 self.assertEqual(hash(2.5), hash(F(5, 2)))
762 self.assertEqual(hash(10**50), hash(F(10**50)))
763 self.assertNotEqual(hash(float(10**23)), hash(F(10**23)))
764 self.assertEqual(hinf, hash(F(1, hmod)))
767 self.assertEqual(hash(F(-1)), F(-1).__hash__())
772 three = F(3)
773 lasts, t, s, n, na, d, da = 0, three, 3, 1, 0, 0, 24
774 while abs(s - lasts) > F(1, 10**9):
785 x = F(1)
786 i, lasts, s, fact, num, sign = 0, 0, F(1), 1, 1, 1
787 while abs(s - lasts) > F(1, 10**9):
790 fact *= i * (i-1)
792 sign *= -1
794 self.assertAlmostEqual(math.cos(1), s)
797 r = F(13, 7)
799 for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
810 r = F(13, 7)
827 return type(self)(1)
829 f = fractions.Fraction(myint(1 * 3), myint(2 * 3))
830 self.assertEqual(f.numerator, 1)
831 self.assertEqual(f.denominator, 2)
832 self.assertEqual(type(f.numerator), myint)
833 self.assertEqual(type(f.denominator), myint)