.. versionadded:: 3.8
+ .. method:: is_integer()
+
+ Return ``True`` if the Fraction is an integer.
+
+ .. versionadded:: 3.12
+
.. classmethod:: from_float(flt)
Alternative constructor which only accepts instances of
(cls.__name__, dec, type(dec).__name__))
return cls(*dec.as_integer_ratio())
+ def is_integer(self):
+ """Return True if the Fraction is an integer."""
+ return self._denominator == 1
+
def as_integer_ratio(self):
"""Return the integer ratio as a tuple.
ValueError, "cannot convert NaN to integer ratio",
F.from_decimal, Decimal("snan"))
+ def test_is_integer(self):
+ self.assertTrue(F(1, 1).is_integer())
+ self.assertTrue(F(-1, 1).is_integer())
+ self.assertTrue(F(1, -1).is_integer())
+ self.assertTrue(F(2, 2).is_integer())
+ self.assertTrue(F(-2, 2).is_integer())
+ self.assertTrue(F(2, -2).is_integer())
+
+ self.assertFalse(F(1, 2).is_integer())
+ self.assertFalse(F(-1, 2).is_integer())
+ self.assertFalse(F(1, -2).is_integer())
+ self.assertFalse(F(-1, -2).is_integer())
+
def test_as_integer_ratio(self):
self.assertEqual(F(4, 6).as_integer_ratio(), (2, 3))
self.assertEqual(F(-4, 6).as_integer_ratio(), (-2, 3))