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

Sergey Ostanevich sergos at tarantool.org
Thu Jul 29 14:52:49 MSK 2021


Hi! Thanks for the patch, my 2 cents below. 

Otherwise - LGTM.

Regards,
Sergos


> On 28 Jul 2021, at 00:24, Vladislav Shpilevoy <v.shpilevoy at tarantool.org> wrote:
> 
> It saves decimal as a string into an externally passed buffer.

Please mention decimal_to_string() introduction.

> 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);

Why? The decToString() doesn't touch original string pointer, working on
a local copy.

> +	(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