mp *x;
size_t sz;
TEXT_PTRLEN(o, sc.buf, sz); sc.lim = sc.buf + sz;
+ if (sc.buf + 2 < sc.lim && sc.buf[0] == '0' &&
+ (radix == 16 ? (sc.buf[1] == 'x' || sc.buf[1] == 'X') :
+ radix == 8 ? (sc.buf[1] == 'o' || sc.buf[1] == 'O') :
+ radix == 2 ? (sc.buf[1] == 'b' || sc.buf[1] == 'B') :
+ 0))
+ sc.buf += 2;
x = mp_read(MP_NEW, radix, &mptext_stringops, &sc);
if (!x) return (0);
if (sc.buf < sc.lim) { MP_DROP(x); return (0); }
me.assertEqual(C.MP(str(big)), big)
me.assertEqual(C.MP('0x4eeb684a0954ec4ceb255e3e9778d41'), big)
me.assertEqual(C.MP('4eeb684a0954ec4ceb255e3e9778d41', 16), big)
+ me.assertEqual(C.MP('0x4eeb684a0954ec4ceb255e3e9778d41', 16), big)
me.assertEqual(C.MP('0b0', 16), 176) # not 0
me.assertEqual(C.MP('047353320450112516611472622536175135706501'), big)
me.assertEqual(C.MP('0o47353320450112516611472622536175135706501'), big)
me.assertEqual(C.MP('047353320450112516611472622536175135706501', 8), big)
+ me.assertEqual(C.MP('0o47353320450112516611472622536175135706501', 8), big)
me.assertEqual(C.MP('47353320450112516611472622536175135706501', 8), big)
me.assertEqual(C.MP('0b100111011011001100000010001011'), 661438603)
+ me.assertEqual(C.MP('0b100111011011001100000010001011', 2), 661438603)
me.assertEqual(C.MP('100111011011001100000010001011', 2), 661438603)
def test_string(me):
me.assertEqual(C.GF('0x4eeb684a0954ec4ceb255e3e9778d41'), y)
me.assertEqual(C.GF('4eeb684a0954ec4ceb255e3e9778d41', 16), y)
+ me.assertEqual(C.GF('0x4eeb684a0954ec4ceb255e3e9778d41', 16), y)
me.assertEqual(C.GF('0b0', 16), C.GF(176)) # not 0
me.assertEqual(C.GF('047353320450112516611472622536175135706501'), y)
me.assertEqual(C.GF('0o47353320450112516611472622536175135706501'), y)
me.assertEqual(C.GF('047353320450112516611472622536175135706501', 8), y)
+ me.assertEqual(C.GF('0o47353320450112516611472622536175135706501', 8), y)
me.assertEqual(C.GF('47353320450112516611472622536175135706501', 8), y)
t = C.GF(661438603)
me.assertEqual(C.GF('0b100111011011001100000010001011'), t)
+ me.assertEqual(C.GF('0b100111011011001100000010001011', 2), t)
me.assertEqual(C.GF('100111011011001100000010001011', 2), t)
def test_string(me):