+ def test_float(me):
+ x, y = C.MP(169), 24.0
+ for fn in [T.add, T.sub, T.mul, T.div]:
+ me.assertEqual(type(fn(x, y)), float)
+ me.assertEqual(type(fn(y, x)), float)
+ me.assertEqual(x, 169.0)
+ me.assertNotEqual(x, 169.1)
+ me.assertNotEqual(x, 168.9)
+ me.assertTrue(x > 168.9)
+ me.assertTrue(x < 169.1)
+ z = 1.0
+ while z == z + 1: z *= 2.0
+ me.assertNotEqual(C.MP(int(z)) + 1, z)
+
+ def test_strconv(me):
+ x, y = C.MP(169), "24"
+ for fn in [T.add, T.sub]:
+ me.assertRaises(TypeError, fn, x, y)
+ me.assertRaises(TypeError, fn, y, x)
+ me.assertEqual(x*y, 169*"24")
+ me.assertEqual(y*x, 169*"24")
+