CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
printf2.test214 linesDownload Raw Back to test
1# 2013-12-172#3# The author disclaims copyright to this source code.  In place of4# a legal notice, here is a blessing:5#6#    May you do good and not evil.7#    May you find forgiveness for yourself and forgive others.8#    May you share freely, never taking more than you give.9#10#***********************************************************************11# This file implements regression tests for SQLite library.  The12# focus of this file is testing the printf() SQL function.13#14#15# EVIDENCE-OF: R-32560-14372 The format(FORMAT,...) SQL function works16# like the sqlite3_mprintf() C-language function and the printf()17# function from the standard C library.18#19# EVIDENCE-OF: R-64900-53159 The printf() SQL function is an alias for20# the format() SQL function.21#22 23set testdir [file dirname $argv0]24source $testdir/tester.tcl25 26# EVIDENCE-OF: R-40086-60101 If the FORMAT argument is missing or NULL27# then the result is NULL.28#29do_execsql_test printf2-1.1 {30  SELECT quote(format()), quote(format(NULL,1,2,3));31} {NULL NULL}32 33 34do_execsql_test printf2-1.2 {35  SELECT printf('hello');36} {hello}37do_execsql_test printf2-1.3 {38  SELECT format('%d,%d,%d',55,-11,3421);39} {55,-11,3421}40do_execsql_test printf2-1.4 {41  SELECT printf('%d,%d,%d',55,'-11',3421);42} {55,-11,3421}43do_execsql_test printf2-1.5 {44  SELECT format('%d,%d,%d,%d',55,'-11',3421);45} {55,-11,3421,0}46do_execsql_test printf2-1.6 {47  SELECT printf('%.2f',3.141592653);48} {3.14}49do_execsql_test printf2-1.7 {50  SELECT format('%.*f',2,3.141592653);51} {3.14}52do_execsql_test printf2-1.8 {53  SELECT printf('%*.*f',5,2,3.141592653);54} {{ 3.14}}55do_execsql_test printf2-1.9 {56  SELECT format('%d',314159.2653);57} {314159}58do_execsql_test printf2-1.10 {59  SELECT printf('%lld',314159.2653);60} {314159}61do_execsql_test printf2-1.11 {62  SELECT format('%lld%n',314159.2653,'hi');63} {314159}64do_execsql_test printf2-1.12 {65  SELECT printf('%n',0);66} {{}}67 68# EVIDENCE-OF: R-17002-27534 The %z format is interchangeable with %s.69#70do_execsql_test printf2-1.12 {71  SELECT format('%.*z',5,'abcdefghijklmnop');72} {abcde}73do_execsql_test printf2-1.13 {74  SELECT printf('%c','abcdefghijklmnop');75} {a}76 77# EVIDENCE-OF: R-02347-27622 The %n format is silently ignored and does78# not consume an argument.79#80do_execsql_test printf2-2.1 {81  CREATE TABLE t1(a,b,c);82  INSERT INTO t1 VALUES(1,2,3);83  INSERT INTO t1 VALUES(-1,-2,-3);84  INSERT INTO t1 VALUES('abc','def','ghi');85  INSERT INTO t1 VALUES(1.5,2.25,3.125);86  SELECT printf('(%s)-%n-(%s)',a,b,c) FROM t1 ORDER BY rowid;87} {(1)--(2) (-1)--(-2) (abc)--(def) (1.5)--(2.25)}88 89# EVIDENCE-OF: R-56064-04001 The %p format is an alias for %X.90#91do_execsql_test printf2-2.2 {92  SELECT printf('%s=(%p)',a,a) FROM t1 ORDER BY a;93} {-1=(FFFFFFFFFFFFFFFF) 1=(1) 1.5=(1) abc=(0)}94 95# EVIDENCE-OF: R-29410-53018 If there are too few arguments in the96# argument list, missing arguments are assumed to have a NULL value,97# which is translated into 0 or 0.0 for numeric formats or an empty98# string for %s.99#100do_execsql_test printf2-2.3 {101  SELECT printf('%s=(%d/%g/%s)',a) FROM t1 ORDER BY a;102} {-1=(0/0/) 1=(0/0/) 1.5=(0/0/) abc=(0/0/)}103 104# The precision of the %c conversion causes the character to repeat.105#106do_execsql_test printf2-3.1 {107  SELECT printf('|%110.100c|','*');108} {{|          ****************************************************************************************************|}}109do_execsql_test printf2-3.2 {110  SELECT printf('|%-110.100c|','*');111} {{|****************************************************************************************************          |}}112do_execsql_test printf2-3.3 {113  SELECT printf('|%9.8c|%-9.8c|','*','*');114} {{| ********|******** |}}115do_execsql_test printf2-3.4 {116  SELECT printf('|%8.8c|%-8.8c|','*','*');117} {|********|********|}118do_execsql_test printf2-3.5 {119  SELECT printf('|%7.8c|%-7.8c|','*','*');120} {|********|********|}121 122# The "," separator123do_execsql_test printf2-4.1 {124  SELECT printf('|%,d|%,d|',0,-1);125} {|0|-1|}126do_execsql_test printf2-4.2 {127  SELECT printf('|%,d|%,d|',12,-12);128} {|12|-12|}129do_execsql_test printf2-4.3 {130  SELECT printf('|%,d|%,d|',123,-123);131} {|123|-123|}132do_execsql_test printf2-4.4 {133  SELECT printf('|%,d|%,d|',1234,-1234);134} {|1,234|-1,234|}135do_execsql_test printf2-4.5 {136  SELECT printf('|%,d|%,d|',12345,-12345);137} {|12,345|-12,345|}138do_execsql_test printf2-4.6 {139  SELECT printf('|%,d|%,d|',123456,-123456);140} {|123,456|-123,456|}141do_execsql_test printf2-4.7 {142  SELECT printf('|%,d|%,d|',1234567,-1234567);143} {|1,234,567|-1,234,567|}144do_execsql_test printf2-4.8 {145  SELECT printf('|%,d|%,d|',12345678,-12345678);146} {|12,345,678|-12,345,678|}147do_execsql_test printf2-4.9 {148  SELECT printf('|%,d|%,d|',123456789,-123456789);149} {|123,456,789|-123,456,789|}150do_execsql_test printf2-4.10 {151  SELECT printf('|%,d|%,d|',1234567890,-1234567890);152} {|1,234,567,890|-1,234,567,890|}153 154# 2018-02-19.  Unicode characters with %c155do_execsql_test printf2-5.100 {156  SELECT printf('(%8c)',char(11106));157} {{(       ⭢)}}158do_execsql_test printf2-5.101 {159  SELECT printf('(%-8c)',char(11106));160} {{(⭢       )}}161do_execsql_test printf2-5.102 {162  SELECT printf('(%5.3c)',char(1492));163} {{(  ההה)}}164do_execsql_test printf2-5.103 {165  SELECT printf('(%-5.3c)',char(1492));166} {{(ההה  )}}167do_execsql_test printf2-5.104 {168  SELECT printf('(%3.3c)',char(1492));169} {{(ההה)}}170do_execsql_test printf2-5.105 {171  SELECT printf('(%-3.3c)',char(1492));172} {{(ההה)}}173do_execsql_test printf2-5.104 {174  SELECT printf('(%2c)',char(1513));175} {{( ש)}}176do_execsql_test printf2-5.106 {177  SELECT printf('(%-2c)',char(1513));178} {{(ש )}}179 180# 2018-02-19.  Unicode characters with the "!" flag in %s and friends.181do_execsql_test printf2-6.100 {182  SELECT printf('(%!.3s)','הנה מה־טוב ומה־נעים שבת אחים גם־יחד');183} {(הנה)}184do_execsql_test printf2-6.101 {185  SELECT printf('(%.6s)','הנה מה־טוב ומה־נעים שבת אחים גם־יחד');186} {(הנה)}187do_execsql_test printf2-6.102 {188  SELECT printf('(%!5.3s)','הנה מה־טוב ומה־נעים שבת אחים גם־יחד');189} {{(  הנה)}}190do_execsql_test printf2-6.103 {191  SELECT printf('(%8.6s)','הנה מה־טוב ומה־נעים שבת אחים גם־יחד');192} {{(  הנה)}}193do_execsql_test printf2-6.104 {194  SELECT printf('(%!-5.3s)','הנה מה־טוב ומה־נעים שבת אחים גם־יחד');195} {{(הנה  )}}196do_execsql_test printf2-6.105 {197  SELECT printf('(%-8.6s)','הנה מה־טוב ומה־נעים שבת אחים גם־יחד');198} {{(הנה  )}}199do_execsql_test printf2-6.106 {200  SELECT printf('(%!.3Q)','הנה מה־טוב ומה־נעים שבת אחים גם־יחד');201} {('הנה')}202do_execsql_test printf2-6.107 {203  SELECT printf('(%.6Q)','הנה מה־טוב ומה־נעים שבת אחים גם־יחד');204} {('הנה')}205do_execsql_test printf2-6.108 {206  SELECT printf('(%!7.3Q)','הנה מה־טוב ומה־נעים שבת אחים גם־יחד');207} {{(  'הנה')}}208do_execsql_test printf2-6.109 {209  SELECT printf('(%10.6Q)','הנה מה־טוב ומה־נעים שבת אחים גם־יחד');210} {{(  'הנה')}}211 212 213finish_test214