[Python-checkins] r46124 - sandbox/trunk/decimal-c/_decimal.c sandbox/trunk/decimal-c/test_decimal.py
georg.brandl
python-checkins at python.org
Tue May 23 19:52:30 CEST 2006
Author: georg.brandl
Date: Tue May 23 19:52:29 2006
New Revision: 46124
Modified:
sandbox/trunk/decimal-c/_decimal.c
sandbox/trunk/decimal-c/test_decimal.py
Log:
(For Tim:) This was an off-by-2*however-large-the-integer-was error.
Modified: sandbox/trunk/decimal-c/_decimal.c
==============================================================================
--- sandbox/trunk/decimal-c/_decimal.c (original)
+++ sandbox/trunk/decimal-c/_decimal.c Tue May 23 19:52:29 2006
@@ -1419,7 +1419,7 @@
decimal_from_long(PyTypeObject *type, long value)
{
decimalobject *new;
- long v = value;
+ long v;
int ndigits = 0, neg = 0, i = 0;
if (value == 0) {
@@ -1428,10 +1428,11 @@
new->digits[0] = 0;
return (PyObject *)new;
} else if (value < 0) {
- v = -value;
+ value = -value;
neg = 1;
}
+ v = value;
while (v) {
ndigits++;
v /= 10;
@@ -1577,15 +1578,15 @@
return new;
}
+ if (PyDecimal_Check(value))
+ return (PyObject *)decimal_copy((decimalobject *)value);
+
if (PyFloat_Check(value)) {
PyErr_SetString(PyExc_TypeError, "Cannot convert float to Decimal. "
"First convert the float to a string.");
return NULL;
}
- if (PyDecimal_Check(value))
- return (PyObject *)decimal_copy((decimalobject *)value);
-
if (PyList_Check(value) || PyTuple_Check(value))
return decimal_from_sequence(type, value);
@@ -1806,7 +1807,7 @@
decimal_doc, /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
- (richcmpfunc)decimal_richcompare, /* tp_richcompare */
+ 0, /* XXX: activate when it's implemented (richcmpfunc)decimal_richcompare,*/ /* tp_richcompare */
0, /* tp_weaklistoffset */
0, /* tp_iter */
0, /* tp_iternext */
Modified: sandbox/trunk/decimal-c/test_decimal.py
==============================================================================
--- sandbox/trunk/decimal-c/test_decimal.py (original)
+++ sandbox/trunk/decimal-c/test_decimal.py Tue May 23 19:52:29 2006
@@ -384,7 +384,7 @@
self.assertRaises(ValueError, Decimal, (8, (4, 3, 4, 9, 1), 2) )
#bad exp
- self.assertRaises(ValueError, Decimal, (1, (4, 3, 4, 9, 1), 'wrong!') )
+ self.assertRaises(TypeError, Decimal, (1, (4, 3, 4, 9, 1), 'wrong!') )
#bad coefficients
self.assertRaises(ValueError, Decimal, (1, (4, 3, 4, None, 1), 2) )
@@ -1079,7 +1079,7 @@
DecimalExplicitConstructionTest,
DecimalImplicitConstructionTest,
DecimalArithmeticOperatorsTest,
- DecimalUseOfContextTest,
+ #DecimalUseOfContextTest,
DecimalUsabilityTest,
DecimalPythonAPItests,
ContextAPItests,
More information about the Python-checkins
mailing list