catacomb/__init__.py, mp.c: Use implicit-conversion rules for rationals.
[catacomb-python] / t / t-rat.py
index 9fd15d4..a2198bd 100644 (file)
@@ -68,11 +68,20 @@ class TestRat (U.TestCase):
     me.assertFalse(b/a > c/a)
     me.assertTrue(c/a > b/a)
 
+    ## Conversions from string.
+    me.assertRaises(TypeError, T.add, f, "3")
+
   def test_intrat(me):
     me.check_rat(C.IntRat)
 
-    ## Check string conversions.
+    ## Check interaction with floating point.
     u = C.MP(5)/C.MP(4)
+    me.assertEqual(type(u + 0.0), float)
+    me.assertEqual(u, 1.25)
+    me.assertTrue(u < 1.26)
+    me.assertTrue(u > 1.24)
+
+    ## Check string conversions.
     me.assertEqual(str(u), "5/4")
     me.assertEqual(repr(u), "IntRat(5, 4)")
 
@@ -81,6 +90,7 @@ class TestRat (U.TestCase):
 
     ## Check string conversions.
     u = C.GF(5)/C.GF(4)
+    me.assertRaises(TypeError, T.add, u, 0.0)
     me.assertEqual(str(u), "0x5/0x4")
     me.assertEqual(repr(u), "GFRat(0x5, 0x4)")