This is Yet Another Integer Conversion added in 2.5, for the purpose of
/implicit/ conversions (since strings and other strange things will
convert explicitly to integers).
It's significant because the `bin' builtin (conversion to base-2 string,
added in 2.6) works by applying the `index' conversion rather than
having a special-purpose method like `hex' and `oct'. (Indeed, Python 3
abolishes these methods, and `hex' and `oct' convert via `index' too.)
So add conversions somewhat judiciously.
fe_pydiv, /* @nb_true_divide@ */
0, /* @nb_inplace_floor_divide@ */
0, /* @nb_inplace_true_divide@ */
fe_pydiv, /* @nb_true_divide@ */
0, /* @nb_inplace_floor_divide@ */
0, /* @nb_inplace_true_divide@ */
+
+ fe_pyint, /* @nb_index@ */
};
static const PyTypeObject fe_pytype_skel = {
};
static const PyTypeObject fe_pytype_skel = {
0, /* @nb_true_divide@ */
0, /* @nb_inplace_floor_divide@ */
0, /* @nb_inplace_true_divide@ */
0, /* @nb_true_divide@ */
0, /* @nb_inplace_floor_divide@ */
0, /* @nb_inplace_true_divide@ */
+
+ mp_pyint, /* @nb_index@ */
};
static const PyTypeObject mp_pytype_skel = {
};
static const PyTypeObject mp_pytype_skel = {
0, /* @nb_true_divide@ */
0, /* @nb_inplace_floor_divide@ */
0, /* @nb_inplace_true_divide@ */
0, /* @nb_true_divide@ */
0, /* @nb_inplace_floor_divide@ */
0, /* @nb_inplace_true_divide@ */
+
+ mp_pyint, /* @nb_index@ */
};
static const PyTypeObject gf_pytype_skel = {
};
static const PyTypeObject gf_pytype_skel = {
me.assertEqual(repr(y), 'MP(6556380541834372447694561492436749633)')
me.assertEqual(hex(y), '0x4eeb684a0954ec4ceb255e3e9778d41')
me.assertEqual(oct(y), '047353320450112516611472622536175135706501')
me.assertEqual(repr(y), 'MP(6556380541834372447694561492436749633)')
me.assertEqual(hex(y), '0x4eeb684a0954ec4ceb255e3e9778d41')
me.assertEqual(oct(y), '047353320450112516611472622536175135706501')
+ try: bin
+ except NameError: pass
+ else: me.assertEqual(bin(C.MP(661438603)),
+ '0b100111011011001100000010001011')
def test_number(me):
x, y, m, zero = C.MP(169), C.MP(24), C.MP(205), C.MP(0)
def test_number(me):
x, y, m, zero = C.MP(169), C.MP(24), C.MP(205), C.MP(0)
me.assertEqual(repr(y), 'GF(0x4eeb684a0954ec4ceb255e3e9778d41)')
me.assertEqual(hex(y), '0x4eeb684a0954ec4ceb255e3e9778d41')
me.assertEqual(oct(y), '047353320450112516611472622536175135706501')
me.assertEqual(repr(y), 'GF(0x4eeb684a0954ec4ceb255e3e9778d41)')
me.assertEqual(hex(y), '0x4eeb684a0954ec4ceb255e3e9778d41')
me.assertEqual(oct(y), '047353320450112516611472622536175135706501')
+ try: bin
+ except NameError: pass
+ else: me.assertEqual(bin(C.GF(661438603)),
+ '0b100111011011001100000010001011')
def test_number(me):
x, y, m, zero = C.GF(0xa9), C.GF(0x18), C.GF(0x11b), C.GF(0)
def test_number(me):
x, y, m, zero = C.GF(0xa9), C.GF(0x18), C.GF(0x11b), C.GF(0)