mp.c: Use implicit-conversion rules in `coerce'.
[catacomb-python] / t / t-convert.py
index cadf7b5..a5f7ff0 100644 (file)
@@ -51,7 +51,7 @@ class TestConvert (U.TestCase):
     me.assertEqual(pow(C.MP(5), 2, 7), 4)
     me.assertEqual(pow(5, C.MP(2), 7), 4)
     me.assertEqual(pow(5, 2, C.MP(7)), 4)
-    for bad in [lambda x: [x]]:
+    for bad in [C.GF, k, kk, float, lambda x: [x]]:
       me.assertRaises(TypeError, pow, C.MP(5), bad(2))
       me.assertRaises(TypeError, pow, C.MP(5), bad(2), 7)
       if not (T.PY2 and T.DEBUGP):
@@ -76,10 +76,10 @@ class TestConvert (U.TestCase):
     me.assertEqual(pow(C.GF(0x5), 2), C.GF(0x11))
     me.assertEqual(pow(C.GF(0x5), C.MP(2)), C.GF(0x11))
     me.assertEqual(pow(C.GF(5), 2, C.GF(0x13)), C.GF(0x2))
-    for bad in [lambda x: [x]]:
+    for bad in [k, kk, float, lambda x: [x]]:
       me.assertRaises(TypeError, pow, C.GF(5), bad(2))
       me.assertRaises(TypeError, T.lsl, C.GF(5), bad(2))
-    for bad in [lambda x: [x]]:
+    for bad in [C.MP, k, kk, float, lambda x: [x]]:
       me.assertRaises(TypeError, pow, bad(5), C.GF(2))
       me.assertRaises(TypeError, pow, bad(5), C.GF(2), bad(7))
       me.assertRaises(TypeError, pow, bad(5), bad(2), C.GF(7))
@@ -91,6 +91,8 @@ class TestConvert (U.TestCase):
     ## `MP' and `GF'.
     me.assertEqual(C.MP(5), 5)
     me.assertEqual(5, C.MP(5))
+    me.assertNotEqual(C.MP(5), C.GF(5))
+    me.assertNotEqual(C.GF(5), C.MP(5))
 
     me.assertEqual(C.MP(5) + 3, 8)
     me.assertEqual(3 + C.MP(5), 8)
@@ -106,8 +108,14 @@ class TestConvert (U.TestCase):
     me.assertEqual(C.GF(7) + kk(3), C.GF(4))
     me.assertEqual(kk(3) + C.GF(7), C.GF(4))
 
+    me.assertRaises(TypeError, T.add, k(3), 3.0)
     me.assertRaises(TypeError, T.add, k(3), kk(3))
     me.assertRaises(TypeError, T.add, kk(3), k(3))
+    me.assertRaises(TypeError, T.add, k(3), C.GF(7))
+    me.assertRaises(TypeError, T.add, C.GF(7), k(3))
+    me.assertRaises(TypeError, T.add, kk(3), 7.0)
+    me.assertRaises(TypeError, T.add, kk(3), C.MP(7))
+    me.assertRaises(TypeError, T.add, C.MP(7), kk(3))
 
 ###----- That's all, folks --------------------------------------------------