From f4b4b3cc3548caaa5b78696b006326079849e642 Mon Sep 17 00:00:00 2001 From: maxvostrikov Date: Wed, 18 Sep 2024 17:22:36 +0200 Subject: [PATCH] added some edge cases for printf tests added some edge cases for printf tests --- .../03203_function_printf.reference | 52 +++++++++++-------- .../0_stateless/03203_function_printf.sql | 50 ++++++++++-------- 2 files changed, 60 insertions(+), 42 deletions(-) diff --git a/tests/queries/0_stateless/03203_function_printf.reference b/tests/queries/0_stateless/03203_function_printf.reference index 338ecb0183d..953cbbdb175 100644 --- a/tests/queries/0_stateless/03203_function_printf.reference +++ b/tests/queries/0_stateless/03203_function_printf.reference @@ -1,21 +1,31 @@ -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 +%d: 123 +%d: -123 +%d: 0 +%d: 9223372036854775807 +%i: 123 +%u: 123 +%o: 173 +%x: 7b +%X: 7B +%f: 0.000000 +%f: 123.456000 +%f: -123.456000 +%F: 123.456000 +%e: 1.234560e+02 +%E: 1.234560E+02 +%g: 123.456 +%G: 123.456 +%a: 0x1.edd2f1a9fbe77p+6 +%A: 0X1.EDD2F1A9FBE77P+6 +%s: abc + ┌─printf('%%s: %s', '\n\t')─┐ +1. │ %s: + │ + └───────────────────────────┘ +%s: +%%: % +%.5d: 00123 +%.2f: 123.46 +%.2e: 1.23e+02 +%.2g: 1.2e+02 +%.2s: ab diff --git a/tests/queries/0_stateless/03203_function_printf.sql b/tests/queries/0_stateless/03203_function_printf.sql index 6ff4699c8a7..3151b37da2d 100644 --- a/tests/queries/0_stateless/03203_function_printf.sql +++ b/tests/queries/0_stateless/03203_function_printf.sql @@ -1,39 +1,47 @@ -- Testing integer formats -select printf('%%d: %d', 123) = '%d: 123'; -select printf('%%i: %i', 123) = '%i: 123'; -select printf('%%u: %u', 123) = '%u: 123'; -select printf('%%o: %o', 123) = '%o: 173'; -select printf('%%x: %x', 123) = '%x: 7b'; -select printf('%%X: %X', 123) = '%X: 7B'; +select printf('%%d: %d', 123); +select printf('%%d: %d', -123); +select printf('%%d: %d', 0); +select printf('%%d: %d', 9223372036854775807); +select printf('%%i: %i', 123); +select printf('%%u: %u', 123); +select printf('%%o: %o', 123); +select printf('%%x: %x', 123); +select printf('%%X: %X', 123); -- Testing floating point formats -select printf('%%f: %f', 123.456) = '%f: 123.456000'; -select printf('%%F: %F', 123.456) = '%F: 123.456000'; -select printf('%%e: %e', 123.456) = '%e: 1.234560e+02'; -select printf('%%E: %E', 123.456) = '%E: 1.234560E+02'; -select printf('%%g: %g', 123.456) = '%g: 123.456'; -select printf('%%G: %G', 123.456) = '%G: 123.456'; -select printf('%%a: %a', 123.456) = '%a: 0x1.edd2f1a9fbe77p+6'; -select printf('%%A: %A', 123.456) = '%A: 0X1.EDD2F1A9FBE77P+6'; +select printf('%%f: %f', 0.0); +select printf('%%f: %f', 123.456); +select printf('%%f: %f', -123.456); +select printf('%%F: %F', 123.456); +select printf('%%e: %e', 123.456); +select printf('%%E: %E', 123.456); +select printf('%%g: %g', 123.456); +select printf('%%G: %G', 123.456); +select printf('%%a: %a', 123.456); +select printf('%%A: %A', 123.456); -- Testing character formats -select printf('%%s: %s', 'abc') = '%s: abc'; +select printf('%%s: %s', 'abc'); +SELECT printf('%%s: %s', '\n\t') FORMAT PrettyCompact; +select printf('%%s: %s', ''); -- Testing the %% specifier -select printf('%%%%: %%') = '%%: %'; +select printf('%%%%: %%'); -- Testing integer formats with precision -select printf('%%.5d: %.5d', 123) = '%.5d: 00123'; +select printf('%%.5d: %.5d', 123); -- Testing floating point formats with precision -select printf('%%.2f: %.2f', 123.456) = '%.2f: 123.46'; -select printf('%%.2e: %.2e', 123.456) = '%.2e: 1.23e+02'; -select printf('%%.2g: %.2g', 123.456) = '%.2g: 1.2e+02'; +select printf('%%.2f: %.2f', 123.456); +select printf('%%.2e: %.2e', 123.456); +select printf('%%.2g: %.2g', 123.456); -- Testing character formats with precision -select printf('%%.2s: %.2s', 'abc') = '%.2s: ab'; +select printf('%%.2s: %.2s', 'abc'); select printf('%%X: %X', 123.123); -- { serverError BAD_ARGUMENTS } select printf('%%A: %A', 'abc'); -- { serverError BAD_ARGUMENTS } select printf('%%s: %s', 100); -- { serverError BAD_ARGUMENTS } select printf('%%n: %n', 100); -- { serverError BAD_ARGUMENTS } +select printf('%%f: %f', 0); -- { serverError BAD_ARGUMENTS }