mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-21 04:13:22 +08:00
[0.3.x] fixed : division for python3
git-svn-id: https://pykd.svn.codeplex.com/svn@90965 9b283d60-5439-405e-af05-b73fd8c4d996
This commit is contained in:
parent
6b90cf1c99
commit
0df2fba54f
@ -508,8 +508,15 @@ BOOST_PYTHON_MODULE( pykd )
|
|||||||
.def( "__rsub__", &NumVariantAdaptor::rsub )
|
.def( "__rsub__", &NumVariantAdaptor::rsub )
|
||||||
.def( "__mul__", &NumVariantAdaptor::mul )
|
.def( "__mul__", &NumVariantAdaptor::mul )
|
||||||
.def( "__rmul__", &NumVariantAdaptor::mul )
|
.def( "__rmul__", &NumVariantAdaptor::mul )
|
||||||
|
#if PY_VERSION_HEX < 0x03000000
|
||||||
.def( "__div__", &NumVariantAdaptor::div )
|
.def( "__div__", &NumVariantAdaptor::div )
|
||||||
.def( "__rdiv__", &NumVariantAdaptor::rdiv )
|
.def( "__rdiv__", &NumVariantAdaptor::rdiv )
|
||||||
|
#else
|
||||||
|
.def("__truediv__", &NumVariantAdaptor::truediv)
|
||||||
|
.def("__rtruediv__", &NumVariantAdaptor::rtruediv)
|
||||||
|
#endif
|
||||||
|
.def("__floordiv__", &NumVariantAdaptor::div)
|
||||||
|
.def("__rfloordiv__", &NumVariantAdaptor::rdiv)
|
||||||
.def( "__mod__", &NumVariantAdaptor::mod )
|
.def( "__mod__", &NumVariantAdaptor::mod )
|
||||||
.def( "__rmod__", &NumVariantAdaptor::rmod )
|
.def( "__rmod__", &NumVariantAdaptor::rmod )
|
||||||
.def( "__rshift__", &NumVariantAdaptor::rshift )
|
.def( "__rshift__", &NumVariantAdaptor::rshift )
|
||||||
|
@ -169,6 +169,14 @@ public:
|
|||||||
return convertToPython(var) / obj;
|
return convertToPython(var) / obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static python::object truediv(kdlib::NumBehavior& var, python::object& obj) {
|
||||||
|
return convertToPython(var) / obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
static python::object rtruediv(kdlib::NumBehavior& var, python::object& obj) {
|
||||||
|
return obj / convertToPython(var);
|
||||||
|
}
|
||||||
|
|
||||||
static python::object rdiv( kdlib::NumBehavior& var, python::object& obj ) {
|
static python::object rdiv( kdlib::NumBehavior& var, python::object& obj ) {
|
||||||
return obj / convertToPython(var);
|
return obj / convertToPython(var);
|
||||||
}
|
}
|
||||||
|
@ -109,23 +109,13 @@ class IntBaseTest( unittest.TestCase ):
|
|||||||
self.assertEqual( 1, -2 / numVariant(-2) )
|
self.assertEqual( 1, -2 / numVariant(-2) )
|
||||||
self.assertEqual( 3, numVariant(7)/numVariant(2) )
|
self.assertEqual( 3, numVariant(7)/numVariant(2) )
|
||||||
|
|
||||||
try:
|
self.assertRaises(ZeroDivisionError, lambda x: -2 / numVariant(0), 0 )
|
||||||
-2 / numVariant(0)
|
self.assertRaises(ZeroDivisionError, lambda x: numVariant(2)/0, 0 )
|
||||||
self.assertTrue( False )
|
self.assertRaises(ZeroDivisionError, lambda x: numVariant(0)/numVariant(0), 0 )
|
||||||
except ZeroDivisionError:
|
|
||||||
self.assertTrue( True )
|
|
||||||
|
|
||||||
try:
|
def testDivFloor(self):
|
||||||
numVariant(2)/0
|
self.assertEqual(0, numVariant(1) // 2 )
|
||||||
self.assertTrue( False )
|
self.assertEqual(numVariant(1) // 2, 0 )
|
||||||
except ZeroDivisionError:
|
|
||||||
self.assertTrue( True )
|
|
||||||
|
|
||||||
try:
|
|
||||||
numVariant(0)/numVariant(0)
|
|
||||||
self.assertTrue( False )
|
|
||||||
except ZeroDivisionError:
|
|
||||||
self.assertTrue( True )
|
|
||||||
|
|
||||||
def testMod( self ):
|
def testMod( self ):
|
||||||
self.assertEqual( 1, numVariant(3) % 2 )
|
self.assertEqual( 1, numVariant(3) % 2 )
|
||||||
|
@ -222,7 +222,7 @@ class TypeInfoTest( unittest.TestCase ):
|
|||||||
def testEnumSubscribe(self):
|
def testEnumSubscribe(self):
|
||||||
ti = pykd.typeInfo( "enumType" )
|
ti = pykd.typeInfo( "enumType" )
|
||||||
self.assertEqual( 3, len(ti) )
|
self.assertEqual( 3, len(ti) )
|
||||||
self.assertEqual( [ 1, 2, 3], [ long(field) for field in ti ] )
|
self.assertEqual( [ 1, 2, 3], [ int(field) for field in ti ] )
|
||||||
self.assertEqual( [ ( "ONE", 1), ("TWO", 2), ("THREE", 3) ], ti.fields() )
|
self.assertEqual( [ ( "ONE", 1), ("TWO", 2), ("THREE", 3) ], ti.fields() )
|
||||||
|
|
||||||
def testStructNullSize(self):
|
def testStructNullSize(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user