Issue #13093: Fix error handling on PyUnicode_EncodeDecimal()

Add tests for PyUnicode_EncodeDecimal()
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 5ce879d..8225e82 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -5160,11 +5160,10 @@
         }
         /* All other characters are considered unencodable */
         collstart = p;
-        collend = p+1;
-        while (collend < end) {
+        for (collend = p+1; collend < end; collend++) {
             if ((0 < *collend && *collend < 256) ||
-                !Py_UNICODE_ISSPACE(*collend) ||
-                Py_UNICODE_TODECIMAL(*collend))
+                Py_UNICODE_ISSPACE(*collend) ||
+                0 <= Py_UNICODE_TODECIMAL(*collend))
                 break;
         }
         /* cache callback name lookup