[Tarantool-patches] [PATCH 4/5] decimal: introduce decimal_to_string

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Wed Jul 28 00:24:14 MSK 2021


It saves decimal as a string into an externally passed buffer.
This will be used by places which can not use the static buffer
returned by decimal_str().

Part of #6259
---
 src/lib/core/decimal.c   |   8 +
 src/lib/core/decimal.h   |  12 ++
 test/unit/decimal.c      |   5 +-
 test/unit/decimal.result | 394 ++++++++++++++++++++-------------------
 4 files changed, 230 insertions(+), 189 deletions(-)

diff --git a/src/lib/core/decimal.c b/src/lib/core/decimal.c
index 4befbda37..6d2ccb96f 100644
--- a/src/lib/core/decimal.c
+++ b/src/lib/core/decimal.c
@@ -175,6 +175,14 @@ decimal_str(const decimal_t *dec)
 	return buf;
 }
 
+void
+decimal_to_string(const decimal_t *dec, char *str)
+{
+	char *tmp = decNumberToString(dec, str);
+	assert(str == tmp);
+	(void)tmp;
+}
+
 static decimal_t *
 decimal_to_integer(decimal_t *dec)
 {
diff --git a/src/lib/core/decimal.h b/src/lib/core/decimal.h
index d2f2dfbdb..aeafd2c68 100644
--- a/src/lib/core/decimal.h
+++ b/src/lib/core/decimal.h
@@ -42,6 +42,14 @@
 extern "C" {
 #endif /* defined(__cplusplus) */
 
+enum {
+	/*
+	 * The documentation in the decnumber sources says the string needs to
+	 * be >= digit count + 14.
+	 */
+	DECIMAL_MAX_STR_LEN = DECIMAL_MAX_DIGITS + 14,
+};
+
 typedef decNumber decimal_t;
 
 /**
@@ -128,6 +136,10 @@ decimal_from_uint64(decimal_t *dec, uint64_t num);
 const char *
 decimal_str(const decimal_t *dec);
 
+/** Write the decimal as a string into the passed buffer. */
+void
+decimal_to_string(const decimal_t *dec, char *str);
+
 /**
  * Convert a given decimal to int64_t
  * \param[out] num - the result
diff --git a/test/unit/decimal.c b/test/unit/decimal.c
index 756c68518..aea646e15 100644
--- a/test/unit/decimal.c
+++ b/test/unit/decimal.c
@@ -108,6 +108,9 @@ char buf[32];
 	is(decimal_compare(&dec, &d2), 0, "mp_decode(mp_encode("str")) value");\
 	is(decimal_scale(&dec), decimal_scale(&d2), "mp_decode(mp_encode("str")) scale");\
 	is(strcmp(decimal_str(&d2), str), 0, "str(mp_decode(mp_encode("str"))) == "str);\
+	char strbuf[DECIMAL_MAX_STR_LEN + 1];\
+	decimal_to_string(&dec, strbuf);\
+	is(strcmp(strbuf, decimal_str(&dec)), 0, "stack str == static str for "str);\
 	b2 = buf;\
 	int8_t type;\
 	uint32_t l2 = mp_decode_extl(&b2, &type);\
@@ -194,7 +197,7 @@ test_pack_unpack(void)
 static int
 test_mp_decimal(void)
 {
-	plan(198);
+	plan(216);
 
 	test_mpdec("0");
 	test_mpdec("-0");
diff --git a/test/unit/decimal.result b/test/unit/decimal.result
index 8f6de61a7..b7da2d2ce 100644
--- a/test/unit/decimal.result
+++ b/test/unit/decimal.result
@@ -498,7 +498,7 @@ ok 279 - subtests
     ok 150 - unpack malformed decimal fails
     ok 151 - decode malformed decimal preserves buffer position
 ok 280 - subtests
-    1..198
+    1..216
     ok 1 - mp_sizeof_decimal(0)
     ok 2 - mp_sizeof_decimal(0) == len(mp_encode_decimal(0))
     ok 3 - mp_next(mp_encode(0))
@@ -506,197 +506,215 @@ ok 280 - subtests
     ok 5 - mp_decode(mp_encode(0)) value
     ok 6 - mp_decode(mp_encode(0)) scale
     ok 7 - str(mp_decode(mp_encode(0))) == 0
-    ok 8 - mp_ext_type is MP_DECIMAL
-    ok 9 - decimal_unpack() after mp_decode_extl()
-    ok 10 - decimal_unpack() after mp_decode_extl() value
-    ok 11 - decimal_unpack() after mp_decode_extl() len
-    ok 12 - mp_sizeof_decimal(-0)
-    ok 13 - mp_sizeof_decimal(-0) == len(mp_encode_decimal(-0))
-    ok 14 - mp_next(mp_encode(-0))
-    ok 15 - mp_decode(mp_encode(-0) len
-    ok 16 - mp_decode(mp_encode(-0)) value
-    ok 17 - mp_decode(mp_encode(-0)) scale
-    ok 18 - str(mp_decode(mp_encode(-0))) == -0
-    ok 19 - mp_ext_type is MP_DECIMAL
-    ok 20 - decimal_unpack() after mp_decode_extl()
-    ok 21 - decimal_unpack() after mp_decode_extl() value
-    ok 22 - decimal_unpack() after mp_decode_extl() len
-    ok 23 - mp_sizeof_decimal(1)
-    ok 24 - mp_sizeof_decimal(1) == len(mp_encode_decimal(1))
-    ok 25 - mp_next(mp_encode(1))
-    ok 26 - mp_decode(mp_encode(1) len
-    ok 27 - mp_decode(mp_encode(1)) value
-    ok 28 - mp_decode(mp_encode(1)) scale
-    ok 29 - str(mp_decode(mp_encode(1))) == 1
-    ok 30 - mp_ext_type is MP_DECIMAL
-    ok 31 - decimal_unpack() after mp_decode_extl()
-    ok 32 - decimal_unpack() after mp_decode_extl() value
-    ok 33 - decimal_unpack() after mp_decode_extl() len
-    ok 34 - mp_sizeof_decimal(-1)
-    ok 35 - mp_sizeof_decimal(-1) == len(mp_encode_decimal(-1))
-    ok 36 - mp_next(mp_encode(-1))
-    ok 37 - mp_decode(mp_encode(-1) len
-    ok 38 - mp_decode(mp_encode(-1)) value
-    ok 39 - mp_decode(mp_encode(-1)) scale
-    ok 40 - str(mp_decode(mp_encode(-1))) == -1
-    ok 41 - mp_ext_type is MP_DECIMAL
-    ok 42 - decimal_unpack() after mp_decode_extl()
-    ok 43 - decimal_unpack() after mp_decode_extl() value
-    ok 44 - decimal_unpack() after mp_decode_extl() len
-    ok 45 - mp_sizeof_decimal(0.1)
-    ok 46 - mp_sizeof_decimal(0.1) == len(mp_encode_decimal(0.1))
-    ok 47 - mp_next(mp_encode(0.1))
-    ok 48 - mp_decode(mp_encode(0.1) len
-    ok 49 - mp_decode(mp_encode(0.1)) value
-    ok 50 - mp_decode(mp_encode(0.1)) scale
-    ok 51 - str(mp_decode(mp_encode(0.1))) == 0.1
-    ok 52 - mp_ext_type is MP_DECIMAL
-    ok 53 - decimal_unpack() after mp_decode_extl()
-    ok 54 - decimal_unpack() after mp_decode_extl() value
-    ok 55 - decimal_unpack() after mp_decode_extl() len
-    ok 56 - mp_sizeof_decimal(-0.1)
-    ok 57 - mp_sizeof_decimal(-0.1) == len(mp_encode_decimal(-0.1))
-    ok 58 - mp_next(mp_encode(-0.1))
-    ok 59 - mp_decode(mp_encode(-0.1) len
-    ok 60 - mp_decode(mp_encode(-0.1)) value
-    ok 61 - mp_decode(mp_encode(-0.1)) scale
-    ok 62 - str(mp_decode(mp_encode(-0.1))) == -0.1
-    ok 63 - mp_ext_type is MP_DECIMAL
-    ok 64 - decimal_unpack() after mp_decode_extl()
-    ok 65 - decimal_unpack() after mp_decode_extl() value
-    ok 66 - decimal_unpack() after mp_decode_extl() len
-    ok 67 - mp_sizeof_decimal(2.718281828459045)
-    ok 68 - mp_sizeof_decimal(2.718281828459045) == len(mp_encode_decimal(2.718281828459045))
-    ok 69 - mp_next(mp_encode(2.718281828459045))
-    ok 70 - mp_decode(mp_encode(2.718281828459045) len
-    ok 71 - mp_decode(mp_encode(2.718281828459045)) value
-    ok 72 - mp_decode(mp_encode(2.718281828459045)) scale
-    ok 73 - str(mp_decode(mp_encode(2.718281828459045))) == 2.718281828459045
-    ok 74 - mp_ext_type is MP_DECIMAL
-    ok 75 - decimal_unpack() after mp_decode_extl()
-    ok 76 - decimal_unpack() after mp_decode_extl() value
-    ok 77 - decimal_unpack() after mp_decode_extl() len
-    ok 78 - mp_sizeof_decimal(-2.718281828459045)
-    ok 79 - mp_sizeof_decimal(-2.718281828459045) == len(mp_encode_decimal(-2.718281828459045))
-    ok 80 - mp_next(mp_encode(-2.718281828459045))
-    ok 81 - mp_decode(mp_encode(-2.718281828459045) len
-    ok 82 - mp_decode(mp_encode(-2.718281828459045)) value
-    ok 83 - mp_decode(mp_encode(-2.718281828459045)) scale
-    ok 84 - str(mp_decode(mp_encode(-2.718281828459045))) == -2.718281828459045
-    ok 85 - mp_ext_type is MP_DECIMAL
-    ok 86 - decimal_unpack() after mp_decode_extl()
-    ok 87 - decimal_unpack() after mp_decode_extl() value
-    ok 88 - decimal_unpack() after mp_decode_extl() len
-    ok 89 - mp_sizeof_decimal(3.141592653589793)
-    ok 90 - mp_sizeof_decimal(3.141592653589793) == len(mp_encode_decimal(3.141592653589793))
-    ok 91 - mp_next(mp_encode(3.141592653589793))
-    ok 92 - mp_decode(mp_encode(3.141592653589793) len
-    ok 93 - mp_decode(mp_encode(3.141592653589793)) value
-    ok 94 - mp_decode(mp_encode(3.141592653589793)) scale
-    ok 95 - str(mp_decode(mp_encode(3.141592653589793))) == 3.141592653589793
-    ok 96 - mp_ext_type is MP_DECIMAL
-    ok 97 - decimal_unpack() after mp_decode_extl()
-    ok 98 - decimal_unpack() after mp_decode_extl() value
-    ok 99 - decimal_unpack() after mp_decode_extl() len
-    ok 100 - mp_sizeof_decimal(-3.141592653589793)
-    ok 101 - mp_sizeof_decimal(-3.141592653589793) == len(mp_encode_decimal(-3.141592653589793))
-    ok 102 - mp_next(mp_encode(-3.141592653589793))
-    ok 103 - mp_decode(mp_encode(-3.141592653589793) len
-    ok 104 - mp_decode(mp_encode(-3.141592653589793)) value
-    ok 105 - mp_decode(mp_encode(-3.141592653589793)) scale
-    ok 106 - str(mp_decode(mp_encode(-3.141592653589793))) == -3.141592653589793
-    ok 107 - mp_ext_type is MP_DECIMAL
-    ok 108 - decimal_unpack() after mp_decode_extl()
-    ok 109 - decimal_unpack() after mp_decode_extl() value
-    ok 110 - decimal_unpack() after mp_decode_extl() len
-    ok 111 - mp_sizeof_decimal(1234567891234567890.0987654321987654321)
-    ok 112 - mp_sizeof_decimal(1234567891234567890.0987654321987654321) == len(mp_encode_decimal(1234567891234567890.0987654321987654321))
-    ok 113 - mp_next(mp_encode(1234567891234567890.0987654321987654321))
-    ok 114 - mp_decode(mp_encode(1234567891234567890.0987654321987654321) len
-    ok 115 - mp_decode(mp_encode(1234567891234567890.0987654321987654321)) value
-    ok 116 - mp_decode(mp_encode(1234567891234567890.0987654321987654321)) scale
-    ok 117 - str(mp_decode(mp_encode(1234567891234567890.0987654321987654321))) == 1234567891234567890.0987654321987654321
-    ok 118 - mp_ext_type is MP_DECIMAL
-    ok 119 - decimal_unpack() after mp_decode_extl()
-    ok 120 - decimal_unpack() after mp_decode_extl() value
-    ok 121 - decimal_unpack() after mp_decode_extl() len
-    ok 122 - mp_sizeof_decimal(-1234567891234567890.0987654321987654321)
-    ok 123 - mp_sizeof_decimal(-1234567891234567890.0987654321987654321) == len(mp_encode_decimal(-1234567891234567890.0987654321987654321))
-    ok 124 - mp_next(mp_encode(-1234567891234567890.0987654321987654321))
-    ok 125 - mp_decode(mp_encode(-1234567891234567890.0987654321987654321) len
-    ok 126 - mp_decode(mp_encode(-1234567891234567890.0987654321987654321)) value
-    ok 127 - mp_decode(mp_encode(-1234567891234567890.0987654321987654321)) scale
-    ok 128 - str(mp_decode(mp_encode(-1234567891234567890.0987654321987654321))) == -1234567891234567890.0987654321987654321
+    ok 8 - stack str == static str for 0
+    ok 9 - mp_ext_type is MP_DECIMAL
+    ok 10 - decimal_unpack() after mp_decode_extl()
+    ok 11 - decimal_unpack() after mp_decode_extl() value
+    ok 12 - decimal_unpack() after mp_decode_extl() len
+    ok 13 - mp_sizeof_decimal(-0)
+    ok 14 - mp_sizeof_decimal(-0) == len(mp_encode_decimal(-0))
+    ok 15 - mp_next(mp_encode(-0))
+    ok 16 - mp_decode(mp_encode(-0) len
+    ok 17 - mp_decode(mp_encode(-0)) value
+    ok 18 - mp_decode(mp_encode(-0)) scale
+    ok 19 - str(mp_decode(mp_encode(-0))) == -0
+    ok 20 - stack str == static str for -0
+    ok 21 - mp_ext_type is MP_DECIMAL
+    ok 22 - decimal_unpack() after mp_decode_extl()
+    ok 23 - decimal_unpack() after mp_decode_extl() value
+    ok 24 - decimal_unpack() after mp_decode_extl() len
+    ok 25 - mp_sizeof_decimal(1)
+    ok 26 - mp_sizeof_decimal(1) == len(mp_encode_decimal(1))
+    ok 27 - mp_next(mp_encode(1))
+    ok 28 - mp_decode(mp_encode(1) len
+    ok 29 - mp_decode(mp_encode(1)) value
+    ok 30 - mp_decode(mp_encode(1)) scale
+    ok 31 - str(mp_decode(mp_encode(1))) == 1
+    ok 32 - stack str == static str for 1
+    ok 33 - mp_ext_type is MP_DECIMAL
+    ok 34 - decimal_unpack() after mp_decode_extl()
+    ok 35 - decimal_unpack() after mp_decode_extl() value
+    ok 36 - decimal_unpack() after mp_decode_extl() len
+    ok 37 - mp_sizeof_decimal(-1)
+    ok 38 - mp_sizeof_decimal(-1) == len(mp_encode_decimal(-1))
+    ok 39 - mp_next(mp_encode(-1))
+    ok 40 - mp_decode(mp_encode(-1) len
+    ok 41 - mp_decode(mp_encode(-1)) value
+    ok 42 - mp_decode(mp_encode(-1)) scale
+    ok 43 - str(mp_decode(mp_encode(-1))) == -1
+    ok 44 - stack str == static str for -1
+    ok 45 - mp_ext_type is MP_DECIMAL
+    ok 46 - decimal_unpack() after mp_decode_extl()
+    ok 47 - decimal_unpack() after mp_decode_extl() value
+    ok 48 - decimal_unpack() after mp_decode_extl() len
+    ok 49 - mp_sizeof_decimal(0.1)
+    ok 50 - mp_sizeof_decimal(0.1) == len(mp_encode_decimal(0.1))
+    ok 51 - mp_next(mp_encode(0.1))
+    ok 52 - mp_decode(mp_encode(0.1) len
+    ok 53 - mp_decode(mp_encode(0.1)) value
+    ok 54 - mp_decode(mp_encode(0.1)) scale
+    ok 55 - str(mp_decode(mp_encode(0.1))) == 0.1
+    ok 56 - stack str == static str for 0.1
+    ok 57 - mp_ext_type is MP_DECIMAL
+    ok 58 - decimal_unpack() after mp_decode_extl()
+    ok 59 - decimal_unpack() after mp_decode_extl() value
+    ok 60 - decimal_unpack() after mp_decode_extl() len
+    ok 61 - mp_sizeof_decimal(-0.1)
+    ok 62 - mp_sizeof_decimal(-0.1) == len(mp_encode_decimal(-0.1))
+    ok 63 - mp_next(mp_encode(-0.1))
+    ok 64 - mp_decode(mp_encode(-0.1) len
+    ok 65 - mp_decode(mp_encode(-0.1)) value
+    ok 66 - mp_decode(mp_encode(-0.1)) scale
+    ok 67 - str(mp_decode(mp_encode(-0.1))) == -0.1
+    ok 68 - stack str == static str for -0.1
+    ok 69 - mp_ext_type is MP_DECIMAL
+    ok 70 - decimal_unpack() after mp_decode_extl()
+    ok 71 - decimal_unpack() after mp_decode_extl() value
+    ok 72 - decimal_unpack() after mp_decode_extl() len
+    ok 73 - mp_sizeof_decimal(2.718281828459045)
+    ok 74 - mp_sizeof_decimal(2.718281828459045) == len(mp_encode_decimal(2.718281828459045))
+    ok 75 - mp_next(mp_encode(2.718281828459045))
+    ok 76 - mp_decode(mp_encode(2.718281828459045) len
+    ok 77 - mp_decode(mp_encode(2.718281828459045)) value
+    ok 78 - mp_decode(mp_encode(2.718281828459045)) scale
+    ok 79 - str(mp_decode(mp_encode(2.718281828459045))) == 2.718281828459045
+    ok 80 - stack str == static str for 2.718281828459045
+    ok 81 - mp_ext_type is MP_DECIMAL
+    ok 82 - decimal_unpack() after mp_decode_extl()
+    ok 83 - decimal_unpack() after mp_decode_extl() value
+    ok 84 - decimal_unpack() after mp_decode_extl() len
+    ok 85 - mp_sizeof_decimal(-2.718281828459045)
+    ok 86 - mp_sizeof_decimal(-2.718281828459045) == len(mp_encode_decimal(-2.718281828459045))
+    ok 87 - mp_next(mp_encode(-2.718281828459045))
+    ok 88 - mp_decode(mp_encode(-2.718281828459045) len
+    ok 89 - mp_decode(mp_encode(-2.718281828459045)) value
+    ok 90 - mp_decode(mp_encode(-2.718281828459045)) scale
+    ok 91 - str(mp_decode(mp_encode(-2.718281828459045))) == -2.718281828459045
+    ok 92 - stack str == static str for -2.718281828459045
+    ok 93 - mp_ext_type is MP_DECIMAL
+    ok 94 - decimal_unpack() after mp_decode_extl()
+    ok 95 - decimal_unpack() after mp_decode_extl() value
+    ok 96 - decimal_unpack() after mp_decode_extl() len
+    ok 97 - mp_sizeof_decimal(3.141592653589793)
+    ok 98 - mp_sizeof_decimal(3.141592653589793) == len(mp_encode_decimal(3.141592653589793))
+    ok 99 - mp_next(mp_encode(3.141592653589793))
+    ok 100 - mp_decode(mp_encode(3.141592653589793) len
+    ok 101 - mp_decode(mp_encode(3.141592653589793)) value
+    ok 102 - mp_decode(mp_encode(3.141592653589793)) scale
+    ok 103 - str(mp_decode(mp_encode(3.141592653589793))) == 3.141592653589793
+    ok 104 - stack str == static str for 3.141592653589793
+    ok 105 - mp_ext_type is MP_DECIMAL
+    ok 106 - decimal_unpack() after mp_decode_extl()
+    ok 107 - decimal_unpack() after mp_decode_extl() value
+    ok 108 - decimal_unpack() after mp_decode_extl() len
+    ok 109 - mp_sizeof_decimal(-3.141592653589793)
+    ok 110 - mp_sizeof_decimal(-3.141592653589793) == len(mp_encode_decimal(-3.141592653589793))
+    ok 111 - mp_next(mp_encode(-3.141592653589793))
+    ok 112 - mp_decode(mp_encode(-3.141592653589793) len
+    ok 113 - mp_decode(mp_encode(-3.141592653589793)) value
+    ok 114 - mp_decode(mp_encode(-3.141592653589793)) scale
+    ok 115 - str(mp_decode(mp_encode(-3.141592653589793))) == -3.141592653589793
+    ok 116 - stack str == static str for -3.141592653589793
+    ok 117 - mp_ext_type is MP_DECIMAL
+    ok 118 - decimal_unpack() after mp_decode_extl()
+    ok 119 - decimal_unpack() after mp_decode_extl() value
+    ok 120 - decimal_unpack() after mp_decode_extl() len
+    ok 121 - mp_sizeof_decimal(1234567891234567890.0987654321987654321)
+    ok 122 - mp_sizeof_decimal(1234567891234567890.0987654321987654321) == len(mp_encode_decimal(1234567891234567890.0987654321987654321))
+    ok 123 - mp_next(mp_encode(1234567891234567890.0987654321987654321))
+    ok 124 - mp_decode(mp_encode(1234567891234567890.0987654321987654321) len
+    ok 125 - mp_decode(mp_encode(1234567891234567890.0987654321987654321)) value
+    ok 126 - mp_decode(mp_encode(1234567891234567890.0987654321987654321)) scale
+    ok 127 - str(mp_decode(mp_encode(1234567891234567890.0987654321987654321))) == 1234567891234567890.0987654321987654321
+    ok 128 - stack str == static str for 1234567891234567890.0987654321987654321
     ok 129 - mp_ext_type is MP_DECIMAL
     ok 130 - decimal_unpack() after mp_decode_extl()
     ok 131 - decimal_unpack() after mp_decode_extl() value
     ok 132 - decimal_unpack() after mp_decode_extl() len
-    ok 133 - mp_sizeof_decimal(0.0000000000000000000000000000000000001)
-    ok 134 - mp_sizeof_decimal(0.0000000000000000000000000000000000001) == len(mp_encode_decimal(0.0000000000000000000000000000000000001))
-    ok 135 - mp_next(mp_encode(0.0000000000000000000000000000000000001))
-    ok 136 - mp_decode(mp_encode(0.0000000000000000000000000000000000001) len
-    ok 137 - mp_decode(mp_encode(0.0000000000000000000000000000000000001)) value
-    ok 138 - mp_decode(mp_encode(0.0000000000000000000000000000000000001)) scale
-    ok 139 - str(mp_decode(mp_encode(0.0000000000000000000000000000000000001))) == 0.0000000000000000000000000000000000001
-    ok 140 - mp_ext_type is MP_DECIMAL
-    ok 141 - decimal_unpack() after mp_decode_extl()
-    ok 142 - decimal_unpack() after mp_decode_extl() value
-    ok 143 - decimal_unpack() after mp_decode_extl() len
-    ok 144 - mp_sizeof_decimal(-0.0000000000000000000000000000000000001)
-    ok 145 - mp_sizeof_decimal(-0.0000000000000000000000000000000000001) == len(mp_encode_decimal(-0.0000000000000000000000000000000000001))
-    ok 146 - mp_next(mp_encode(-0.0000000000000000000000000000000000001))
-    ok 147 - mp_decode(mp_encode(-0.0000000000000000000000000000000000001) len
-    ok 148 - mp_decode(mp_encode(-0.0000000000000000000000000000000000001)) value
-    ok 149 - mp_decode(mp_encode(-0.0000000000000000000000000000000000001)) scale
-    ok 150 - str(mp_decode(mp_encode(-0.0000000000000000000000000000000000001))) == -0.0000000000000000000000000000000000001
-    ok 151 - mp_ext_type is MP_DECIMAL
-    ok 152 - decimal_unpack() after mp_decode_extl()
-    ok 153 - decimal_unpack() after mp_decode_extl() value
-    ok 154 - decimal_unpack() after mp_decode_extl() len
-    ok 155 - mp_sizeof_decimal(0.00000000000000000000000000000000000001)
-    ok 156 - mp_sizeof_decimal(0.00000000000000000000000000000000000001) == len(mp_encode_decimal(0.00000000000000000000000000000000000001))
-    ok 157 - mp_next(mp_encode(0.00000000000000000000000000000000000001))
-    ok 158 - mp_decode(mp_encode(0.00000000000000000000000000000000000001) len
-    ok 159 - mp_decode(mp_encode(0.00000000000000000000000000000000000001)) value
-    ok 160 - mp_decode(mp_encode(0.00000000000000000000000000000000000001)) scale
-    ok 161 - str(mp_decode(mp_encode(0.00000000000000000000000000000000000001))) == 0.00000000000000000000000000000000000001
-    ok 162 - mp_ext_type is MP_DECIMAL
-    ok 163 - decimal_unpack() after mp_decode_extl()
-    ok 164 - decimal_unpack() after mp_decode_extl() value
-    ok 165 - decimal_unpack() after mp_decode_extl() len
-    ok 166 - mp_sizeof_decimal(-0.00000000000000000000000000000000000001)
-    ok 167 - mp_sizeof_decimal(-0.00000000000000000000000000000000000001) == len(mp_encode_decimal(-0.00000000000000000000000000000000000001))
-    ok 168 - mp_next(mp_encode(-0.00000000000000000000000000000000000001))
-    ok 169 - mp_decode(mp_encode(-0.00000000000000000000000000000000000001) len
-    ok 170 - mp_decode(mp_encode(-0.00000000000000000000000000000000000001)) value
-    ok 171 - mp_decode(mp_encode(-0.00000000000000000000000000000000000001)) scale
-    ok 172 - str(mp_decode(mp_encode(-0.00000000000000000000000000000000000001))) == -0.00000000000000000000000000000000000001
-    ok 173 - mp_ext_type is MP_DECIMAL
-    ok 174 - decimal_unpack() after mp_decode_extl()
-    ok 175 - decimal_unpack() after mp_decode_extl() value
-    ok 176 - decimal_unpack() after mp_decode_extl() len
-    ok 177 - mp_sizeof_decimal(99999999999999999999999999999999999999)
-    ok 178 - mp_sizeof_decimal(99999999999999999999999999999999999999) == len(mp_encode_decimal(99999999999999999999999999999999999999))
-    ok 179 - mp_next(mp_encode(99999999999999999999999999999999999999))
-    ok 180 - mp_decode(mp_encode(99999999999999999999999999999999999999) len
-    ok 181 - mp_decode(mp_encode(99999999999999999999999999999999999999)) value
-    ok 182 - mp_decode(mp_encode(99999999999999999999999999999999999999)) scale
-    ok 183 - str(mp_decode(mp_encode(99999999999999999999999999999999999999))) == 99999999999999999999999999999999999999
-    ok 184 - mp_ext_type is MP_DECIMAL
-    ok 185 - decimal_unpack() after mp_decode_extl()
-    ok 186 - decimal_unpack() after mp_decode_extl() value
-    ok 187 - decimal_unpack() after mp_decode_extl() len
-    ok 188 - mp_sizeof_decimal(-99999999999999999999999999999999999999)
-    ok 189 - mp_sizeof_decimal(-99999999999999999999999999999999999999) == len(mp_encode_decimal(-99999999999999999999999999999999999999))
-    ok 190 - mp_next(mp_encode(-99999999999999999999999999999999999999))
-    ok 191 - mp_decode(mp_encode(-99999999999999999999999999999999999999) len
-    ok 192 - mp_decode(mp_encode(-99999999999999999999999999999999999999)) value
-    ok 193 - mp_decode(mp_encode(-99999999999999999999999999999999999999)) scale
-    ok 194 - str(mp_decode(mp_encode(-99999999999999999999999999999999999999))) == -99999999999999999999999999999999999999
-    ok 195 - mp_ext_type is MP_DECIMAL
-    ok 196 - decimal_unpack() after mp_decode_extl()
-    ok 197 - decimal_unpack() after mp_decode_extl() value
-    ok 198 - decimal_unpack() after mp_decode_extl() len
+    ok 133 - mp_sizeof_decimal(-1234567891234567890.0987654321987654321)
+    ok 134 - mp_sizeof_decimal(-1234567891234567890.0987654321987654321) == len(mp_encode_decimal(-1234567891234567890.0987654321987654321))
+    ok 135 - mp_next(mp_encode(-1234567891234567890.0987654321987654321))
+    ok 136 - mp_decode(mp_encode(-1234567891234567890.0987654321987654321) len
+    ok 137 - mp_decode(mp_encode(-1234567891234567890.0987654321987654321)) value
+    ok 138 - mp_decode(mp_encode(-1234567891234567890.0987654321987654321)) scale
+    ok 139 - str(mp_decode(mp_encode(-1234567891234567890.0987654321987654321))) == -1234567891234567890.0987654321987654321
+    ok 140 - stack str == static str for -1234567891234567890.0987654321987654321
+    ok 141 - mp_ext_type is MP_DECIMAL
+    ok 142 - decimal_unpack() after mp_decode_extl()
+    ok 143 - decimal_unpack() after mp_decode_extl() value
+    ok 144 - decimal_unpack() after mp_decode_extl() len
+    ok 145 - mp_sizeof_decimal(0.0000000000000000000000000000000000001)
+    ok 146 - mp_sizeof_decimal(0.0000000000000000000000000000000000001) == len(mp_encode_decimal(0.0000000000000000000000000000000000001))
+    ok 147 - mp_next(mp_encode(0.0000000000000000000000000000000000001))
+    ok 148 - mp_decode(mp_encode(0.0000000000000000000000000000000000001) len
+    ok 149 - mp_decode(mp_encode(0.0000000000000000000000000000000000001)) value
+    ok 150 - mp_decode(mp_encode(0.0000000000000000000000000000000000001)) scale
+    ok 151 - str(mp_decode(mp_encode(0.0000000000000000000000000000000000001))) == 0.0000000000000000000000000000000000001
+    ok 152 - stack str == static str for 0.0000000000000000000000000000000000001
+    ok 153 - mp_ext_type is MP_DECIMAL
+    ok 154 - decimal_unpack() after mp_decode_extl()
+    ok 155 - decimal_unpack() after mp_decode_extl() value
+    ok 156 - decimal_unpack() after mp_decode_extl() len
+    ok 157 - mp_sizeof_decimal(-0.0000000000000000000000000000000000001)
+    ok 158 - mp_sizeof_decimal(-0.0000000000000000000000000000000000001) == len(mp_encode_decimal(-0.0000000000000000000000000000000000001))
+    ok 159 - mp_next(mp_encode(-0.0000000000000000000000000000000000001))
+    ok 160 - mp_decode(mp_encode(-0.0000000000000000000000000000000000001) len
+    ok 161 - mp_decode(mp_encode(-0.0000000000000000000000000000000000001)) value
+    ok 162 - mp_decode(mp_encode(-0.0000000000000000000000000000000000001)) scale
+    ok 163 - str(mp_decode(mp_encode(-0.0000000000000000000000000000000000001))) == -0.0000000000000000000000000000000000001
+    ok 164 - stack str == static str for -0.0000000000000000000000000000000000001
+    ok 165 - mp_ext_type is MP_DECIMAL
+    ok 166 - decimal_unpack() after mp_decode_extl()
+    ok 167 - decimal_unpack() after mp_decode_extl() value
+    ok 168 - decimal_unpack() after mp_decode_extl() len
+    ok 169 - mp_sizeof_decimal(0.00000000000000000000000000000000000001)
+    ok 170 - mp_sizeof_decimal(0.00000000000000000000000000000000000001) == len(mp_encode_decimal(0.00000000000000000000000000000000000001))
+    ok 171 - mp_next(mp_encode(0.00000000000000000000000000000000000001))
+    ok 172 - mp_decode(mp_encode(0.00000000000000000000000000000000000001) len
+    ok 173 - mp_decode(mp_encode(0.00000000000000000000000000000000000001)) value
+    ok 174 - mp_decode(mp_encode(0.00000000000000000000000000000000000001)) scale
+    ok 175 - str(mp_decode(mp_encode(0.00000000000000000000000000000000000001))) == 0.00000000000000000000000000000000000001
+    ok 176 - stack str == static str for 0.00000000000000000000000000000000000001
+    ok 177 - mp_ext_type is MP_DECIMAL
+    ok 178 - decimal_unpack() after mp_decode_extl()
+    ok 179 - decimal_unpack() after mp_decode_extl() value
+    ok 180 - decimal_unpack() after mp_decode_extl() len
+    ok 181 - mp_sizeof_decimal(-0.00000000000000000000000000000000000001)
+    ok 182 - mp_sizeof_decimal(-0.00000000000000000000000000000000000001) == len(mp_encode_decimal(-0.00000000000000000000000000000000000001))
+    ok 183 - mp_next(mp_encode(-0.00000000000000000000000000000000000001))
+    ok 184 - mp_decode(mp_encode(-0.00000000000000000000000000000000000001) len
+    ok 185 - mp_decode(mp_encode(-0.00000000000000000000000000000000000001)) value
+    ok 186 - mp_decode(mp_encode(-0.00000000000000000000000000000000000001)) scale
+    ok 187 - str(mp_decode(mp_encode(-0.00000000000000000000000000000000000001))) == -0.00000000000000000000000000000000000001
+    ok 188 - stack str == static str for -0.00000000000000000000000000000000000001
+    ok 189 - mp_ext_type is MP_DECIMAL
+    ok 190 - decimal_unpack() after mp_decode_extl()
+    ok 191 - decimal_unpack() after mp_decode_extl() value
+    ok 192 - decimal_unpack() after mp_decode_extl() len
+    ok 193 - mp_sizeof_decimal(99999999999999999999999999999999999999)
+    ok 194 - mp_sizeof_decimal(99999999999999999999999999999999999999) == len(mp_encode_decimal(99999999999999999999999999999999999999))
+    ok 195 - mp_next(mp_encode(99999999999999999999999999999999999999))
+    ok 196 - mp_decode(mp_encode(99999999999999999999999999999999999999) len
+    ok 197 - mp_decode(mp_encode(99999999999999999999999999999999999999)) value
+    ok 198 - mp_decode(mp_encode(99999999999999999999999999999999999999)) scale
+    ok 199 - str(mp_decode(mp_encode(99999999999999999999999999999999999999))) == 99999999999999999999999999999999999999
+    ok 200 - stack str == static str for 99999999999999999999999999999999999999
+    ok 201 - mp_ext_type is MP_DECIMAL
+    ok 202 - decimal_unpack() after mp_decode_extl()
+    ok 203 - decimal_unpack() after mp_decode_extl() value
+    ok 204 - decimal_unpack() after mp_decode_extl() len
+    ok 205 - mp_sizeof_decimal(-99999999999999999999999999999999999999)
+    ok 206 - mp_sizeof_decimal(-99999999999999999999999999999999999999) == len(mp_encode_decimal(-99999999999999999999999999999999999999))
+    ok 207 - mp_next(mp_encode(-99999999999999999999999999999999999999))
+    ok 208 - mp_decode(mp_encode(-99999999999999999999999999999999999999) len
+    ok 209 - mp_decode(mp_encode(-99999999999999999999999999999999999999)) value
+    ok 210 - mp_decode(mp_encode(-99999999999999999999999999999999999999)) scale
+    ok 211 - str(mp_decode(mp_encode(-99999999999999999999999999999999999999))) == -99999999999999999999999999999999999999
+    ok 212 - stack str == static str for -99999999999999999999999999999999999999
+    ok 213 - mp_ext_type is MP_DECIMAL
+    ok 214 - decimal_unpack() after mp_decode_extl()
+    ok 215 - decimal_unpack() after mp_decode_extl() value
+    ok 216 - decimal_unpack() after mp_decode_extl() len
 ok 281 - subtests
     1..5
 	*** test_mp_print ***
-- 
2.24.3 (Apple Git-128)



More information about the Tarantool-patches mailing list