We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 3d12e40 commit f10e073Copy full SHA for f10e073
src/quicktions.pyx
@@ -509,6 +509,10 @@ cdef class Fraction:
509
else:
510
return cls(digits, pow10(-exp))
511
512
+ def is_integer(self):
513
+ """Return True if the Fraction is an integer."""
514
+ return self._denominator == 1
515
+
516
def as_integer_ratio(self):
517
"""Return the integer ratio as a tuple.
518
src/test_fractions.py
@@ -468,6 +468,19 @@ def testFromDecimal(self):
468
ValueError, "Cannot convert sNaN to Fraction.",
469
F.from_decimal, Decimal("snan"))
470
471
+ def test_is_integer(self):
472
+ self.assertTrue(F(1, 1).is_integer())
473
+ self.assertTrue(F(-1, 1).is_integer())
474
+ self.assertTrue(F(1, -1).is_integer())
475
+ self.assertTrue(F(2, 2).is_integer())
476
+ self.assertTrue(F(-2, 2).is_integer())
477
+ self.assertTrue(F(2, -2).is_integer())
478
479
+ self.assertFalse(F(1, 2).is_integer())
480
+ self.assertFalse(F(-1, 2).is_integer())
481
+ self.assertFalse(F(1, -2).is_integer())
482
+ self.assertFalse(F(-1, -2).is_integer())
483
484
def test_as_integer_ratio(self):
485
self.assertEqual(F(4, 6).as_integer_ratio(), (2, 3))
486
self.assertEqual(F(-4, 6).as_integer_ratio(), (-2, 3))
0 commit comments