Issue #6595: Allow Decimal constructor to accept non-European decimal
digits, as recommended by the specification. (Backport of r74279 from
py3k.)
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 1ce65ec..0be901a 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -431,9 +431,6 @@
self.assertEqual(str(Decimal(u'-Inf')), '-Infinity')
self.assertEqual(str(Decimal(u'NaN123')), 'NaN123')
- #but alternate unicode digits should not
- self.assertEqual(str(Decimal(u'\uff11')), 'NaN')
-
def test_explicit_from_tuples(self):
#zero
@@ -540,6 +537,15 @@
d = nc.create_decimal(prevdec)
self.assertEqual(str(d), '5.00E+8')
+ def test_unicode_digits(self):
+ test_values = {
+ u'\uff11': '1',
+ u'\u0660.\u0660\u0663\u0667\u0662e-\u0663' : '0.0000372',
+ u'-nan\u0c68\u0c6a\u0c66\u0c66' : '-NaN2400',
+ }
+ for input, expected in test_values.items():
+ self.assertEqual(str(Decimal(input)), expected)
+
class DecimalImplicitConstructionTest(unittest.TestCase):
'''Unit tests for Implicit Construction cases of Decimal.'''