gitlab.com/CoiaPrant/sqlite3@v1.19.1/testdata/tcl/printf.test (about)

     1  # 2001 September 15
     2  #
     3  # The author disclaims copyright to this source code.  In place of
     4  # 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.  The
    12  # focus of this file is testing the sqlite_*_printf() interface.
    13  #
    14  # $Id: printf.test,v 1.31 2009/02/01 00:21:10 drh Exp $
    15  
    16  set testdir [file dirname $argv0]
    17  source $testdir/tester.tcl
    18  
    19  
    20  do_test printf-1.1.1 {
    21    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
    22         1 1 1
    23  } {abc: 1 1 1 :xyz}
    24  do_test printf-1.1.2 {
    25    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
    26         1 1 1
    27  } {abc: (     1) (     1) (     1) :xyz}
    28  do_test printf-1.1.3 {
    29    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
    30         1 1 1
    31  } {abc: (1     ) (1     ) (1     ) :xyz}
    32  do_test printf-1.1.4 {
    33    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
    34         1 1 1
    35  } {abc: (    +1) (     1) (     1) :xyz}
    36  do_test printf-1.1.5 {
    37    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
    38         1 1 1
    39  } {abc: (000001) (000001) (000001) :xyz}
    40  do_test printf-1.1.6 {
    41    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
    42         1 1 1
    43  } {abc: (     1) (     1) (     1) :xyz}
    44  do_test printf-1.1.7 {
    45    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
    46         1 1 1
    47  } {abc: (     1) (   0x1) (    01) :xyz}
    48  do_test printf-1.2.1 {
    49    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
    50         2 2 2
    51  } {abc: 2 2 2 :xyz}
    52  do_test printf-1.2.2 {
    53    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
    54         2 2 2
    55  } {abc: (     2) (     2) (     2) :xyz}
    56  do_test printf-1.2.3 {
    57    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
    58         2 2 2
    59  } {abc: (2     ) (2     ) (2     ) :xyz}
    60  do_test printf-1.2.4 {
    61    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
    62         2 2 2
    63  } {abc: (    +2) (     2) (     2) :xyz}
    64  do_test printf-1.2.5 {
    65    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
    66         2 2 2
    67  } {abc: (000002) (000002) (000002) :xyz}
    68  do_test printf-1.2.6 {
    69    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
    70         2 2 2
    71  } {abc: (     2) (     2) (     2) :xyz}
    72  do_test printf-1.2.7 {
    73    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
    74         2 2 2
    75  } {abc: (     2) (   0x2) (    02) :xyz}
    76  do_test printf-1.3.1 {
    77    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
    78         5 5 5
    79  } {abc: 5 5 5 :xyz}
    80  do_test printf-1.3.2 {
    81    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
    82         5 5 5
    83  } {abc: (     5) (     5) (     5) :xyz}
    84  do_test printf-1.3.3 {
    85    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
    86         5 5 5
    87  } {abc: (5     ) (5     ) (5     ) :xyz}
    88  do_test printf-1.3.4 {
    89    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
    90         5 5 5
    91  } {abc: (    +5) (     5) (     5) :xyz}
    92  do_test printf-1.3.5 {
    93    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
    94         5 5 5
    95  } {abc: (000005) (000005) (000005) :xyz}
    96  do_test printf-1.3.6 {
    97    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
    98         5 5 5
    99  } {abc: (     5) (     5) (     5) :xyz}
   100  do_test printf-1.3.7 {
   101    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   102         5 5 5
   103  } {abc: (     5) (   0x5) (    05) :xyz}
   104  do_test printf-1.4.1 {
   105    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   106         10 10 10
   107  } {abc: 10 a 12 :xyz}
   108  do_test printf-1.4.2 {
   109    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   110         10 10 10
   111  } {abc: (    10) (     a) (    12) :xyz}
   112  do_test printf-1.4.3 {
   113    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   114         10 10 10
   115  } {abc: (10    ) (a     ) (12    ) :xyz}
   116  do_test printf-1.4.4 {
   117    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   118         10 10 10
   119  } {abc: (   +10) (     a) (    12) :xyz}
   120  do_test printf-1.4.5 {
   121    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   122         10 10 10
   123  } {abc: (000010) (00000a) (000012) :xyz}
   124  do_test printf-1.4.6 {
   125    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   126         10 10 10
   127  } {abc: (    10) (     a) (    12) :xyz}
   128  do_test printf-1.4.7 {
   129    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   130         10 10 10
   131  } {abc: (    10) (   0xa) (   012) :xyz}
   132  do_test printf-1.5.1 {
   133    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   134         99 99 99
   135  } {abc: 99 63 143 :xyz}
   136  do_test printf-1.5.2 {
   137    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   138         99 99 99
   139  } {abc: (    99) (    63) (   143) :xyz}
   140  do_test printf-1.5.3 {
   141    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   142         99 99 99
   143  } {abc: (99    ) (63    ) (143   ) :xyz}
   144  do_test printf-1.5.4 {
   145    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   146         99 99 99
   147  } {abc: (   +99) (    63) (   143) :xyz}
   148  do_test printf-1.5.5 {
   149    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   150         99 99 99
   151  } {abc: (000099) (000063) (000143) :xyz}
   152  do_test printf-1.5.6 {
   153    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   154         99 99 99
   155  } {abc: (    99) (    63) (   143) :xyz}
   156  do_test printf-1.5.7 {
   157    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   158         99 99 99
   159  } {abc: (    99) (  0x63) (  0143) :xyz}
   160  do_test printf-1.6.1 {
   161    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   162         100 100 100
   163  } {abc: 100 64 144 :xyz}
   164  do_test printf-1.6.2 {
   165    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   166         100 100 100
   167  } {abc: (   100) (    64) (   144) :xyz}
   168  do_test printf-1.6.3 {
   169    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   170         100 100 100
   171  } {abc: (100   ) (64    ) (144   ) :xyz}
   172  do_test printf-1.6.4 {
   173    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   174         100 100 100
   175  } {abc: (  +100) (    64) (   144) :xyz}
   176  do_test printf-1.6.5 {
   177    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   178         100 100 100
   179  } {abc: (000100) (000064) (000144) :xyz}
   180  do_test printf-1.6.6 {
   181    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   182         100 100 100
   183  } {abc: (   100) (    64) (   144) :xyz}
   184  do_test printf-1.6.7 {
   185    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   186         100 100 100
   187  } {abc: (   100) (  0x64) (  0144) :xyz}
   188  do_test printf-1.7.1 {
   189    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   190         1000000 1000000 1000000
   191  } {abc: 1000000 f4240 3641100 :xyz}
   192  do_test printf-1.7.2 {
   193    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   194         1000000 1000000 1000000
   195  } {abc: (1000000) ( f4240) (3641100) :xyz}
   196  do_test printf-1.7.3 {
   197    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   198         1000000 1000000 1000000
   199  } {abc: (1000000) (f4240 ) (3641100) :xyz}
   200  do_test printf-1.7.4 {
   201    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   202         1000000 1000000 1000000
   203  } {abc: (+1000000) ( f4240) (3641100) :xyz}
   204  do_test printf-1.7.5 {
   205    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   206         1000000 1000000 1000000
   207  } {abc: (1000000) (0f4240) (3641100) :xyz}
   208  do_test printf-1.7.6 {
   209    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   210         1000000 1000000 1000000
   211  } {abc: ( 1000000) ( f4240) (3641100) :xyz}
   212  do_test printf-1.7.7 {
   213    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   214         1000000 1000000 1000000
   215  } {abc: (1000000) (0xf4240) (03641100) :xyz}
   216  do_test printf-1.8.1 {
   217    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   218         999999999 999999999 999999999
   219  } {abc: 999999999 3b9ac9ff 7346544777 :xyz}
   220  do_test printf-1.8.2 {
   221    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   222         999999999 999999999 999999999
   223  } {abc: (999999999) (3b9ac9ff) (7346544777) :xyz}
   224  do_test printf-1.8.3 {
   225    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   226         999999999 999999999 999999999
   227  } {abc: (999999999) (3b9ac9ff) (7346544777) :xyz}
   228  do_test printf-1.8.4 {
   229    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   230         999999999 999999999 999999999
   231  } {abc: (+999999999) (3b9ac9ff) (7346544777) :xyz}
   232  do_test printf-1.8.5 {
   233    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   234         999999999 999999999 999999999
   235  } {abc: (999999999) (3b9ac9ff) (7346544777) :xyz}
   236  do_test printf-1.8.6 {
   237    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   238         999999999 999999999 999999999
   239  } {abc: ( 999999999) (3b9ac9ff) (7346544777) :xyz}
   240  do_test printf-1.8.7 {
   241    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   242         999999999 999999999 999999999
   243  } {abc: (999999999) (0x3b9ac9ff) (07346544777) :xyz}
   244  do_test printf-1.9.1 {
   245    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   246         0 0 0
   247  } {abc: 0 0 0 :xyz}
   248  do_test printf-1.9.2 {
   249    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   250         0 0 0
   251  } {abc: (     0) (     0) (     0) :xyz}
   252  do_test printf-1.9.3 {
   253    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   254         0 0 0
   255  } {abc: (0     ) (0     ) (0     ) :xyz}
   256  do_test printf-1.9.4 {
   257    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   258         0 0 0
   259  } {abc: (    +0) (     0) (     0) :xyz}
   260  do_test printf-1.9.5 {
   261    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   262         0 0 0
   263  } {abc: (000000) (000000) (000000) :xyz}
   264  do_test printf-1.9.6 {
   265    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   266         0 0 0
   267  } {abc: (     0) (     0) (     0) :xyz}
   268  do_test printf-1.9.7 {
   269    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   270         0 0 0
   271  } {abc: (     0) (     0) (     0) :xyz}
   272  # 0xffffffff == -1
   273  do_test printf-1.10.1 {
   274    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   275         0xffffffff 0xffffffff 0xffffffff
   276  } {abc: -1 ffffffff 37777777777 :xyz}
   277  do_test printf-1.10.2 {
   278    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   279         0xffffffff 0xffffffff 0xffffffff
   280  } {abc: (    -1) (ffffffff) (37777777777) :xyz}
   281  do_test printf-1.10.3 {
   282    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   283         0xffffffff 0xffffffff 0xffffffff
   284  } {abc: (-1    ) (ffffffff) (37777777777) :xyz}
   285  do_test printf-1.10.4 {
   286    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   287         0xffffffff 0xffffffff 0xffffffff
   288  } {abc: (    -1) (ffffffff) (37777777777) :xyz}
   289  do_test printf-1.10.5 {
   290    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   291         0xffffffff 0xffffffff 0xffffffff
   292  } {abc: (-00001) (ffffffff) (37777777777) :xyz}
   293  do_test printf-1.10.6 {
   294    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   295         0xffffffff 0xffffffff 0xffffffff
   296  } {abc: (    -1) (ffffffff) (37777777777) :xyz}
   297  do_test printf-1.10.7 {
   298    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   299         0xffffffff 0xffffffff 0xffffffff
   300  } {abc: (    -1) (0xffffffff) (037777777777) :xyz}
   301  # 0xfffffffe == -2
   302  do_test printf-1.11.1 {
   303    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   304         0xfffffffe 0xfffffffe 0xfffffffe
   305  } {abc: -2 fffffffe 37777777776 :xyz}
   306  do_test printf-1.11.2 {
   307    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   308         0xfffffffe 0xfffffffe 0xfffffffe
   309  } {abc: (    -2) (fffffffe) (37777777776) :xyz}
   310  do_test printf-1.11.3 {
   311    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   312         0xfffffffe 0xfffffffe 0xfffffffe
   313  } {abc: (-2    ) (fffffffe) (37777777776) :xyz}
   314  do_test printf-1.11.4 {
   315    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   316         0xfffffffe 0xfffffffe 0xfffffffe
   317  } {abc: (    -2) (fffffffe) (37777777776) :xyz}
   318  do_test printf-1.11.5 {
   319    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   320         0xfffffffe 0xfffffffe 0xfffffffe
   321  } {abc: (-00002) (fffffffe) (37777777776) :xyz}
   322  do_test printf-1.11.6 {
   323    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   324         0xfffffffe 0xfffffffe 0xfffffffe
   325  } {abc: (    -2) (fffffffe) (37777777776) :xyz}
   326  do_test printf-1.11.7 {
   327    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   328         0xfffffffe 0xfffffffe 0xfffffffe
   329  } {abc: (    -2) (0xfffffffe) (037777777776) :xyz}
   330  # 0xfffffffb == -5
   331  do_test printf-1.12.1 {
   332    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   333         0xfffffffb 0xfffffffb 0xfffffffb
   334  } {abc: -5 fffffffb 37777777773 :xyz}
   335  do_test printf-1.12.2 {
   336    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   337         0xfffffffb 0xfffffffb 0xfffffffb
   338  } {abc: (    -5) (fffffffb) (37777777773) :xyz}
   339  do_test printf-1.12.3 {
   340    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   341         0xfffffffb 0xfffffffb 0xfffffffb
   342  } {abc: (-5    ) (fffffffb) (37777777773) :xyz}
   343  do_test printf-1.12.4 {
   344    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   345         0xfffffffb 0xfffffffb 0xfffffffb
   346  } {abc: (    -5) (fffffffb) (37777777773) :xyz}
   347  do_test printf-1.12.5 {
   348    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   349         0xfffffffb 0xfffffffb 0xfffffffb
   350  } {abc: (-00005) (fffffffb) (37777777773) :xyz}
   351  do_test printf-1.12.6 {
   352    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   353         0xfffffffb 0xfffffffb 0xfffffffb
   354  } {abc: (    -5) (fffffffb) (37777777773) :xyz}
   355  do_test printf-1.12.7 {
   356    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   357         0xfffffffb 0xfffffffb 0xfffffffb
   358  } {abc: (    -5) (0xfffffffb) (037777777773) :xyz}
   359  # 0xfffffff6 == -10
   360  do_test printf-1.13.1 {
   361    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   362         0xfffffff6 0xfffffff6 0xfffffff6
   363  } {abc: -10 fffffff6 37777777766 :xyz}
   364  do_test printf-1.13.2 {
   365    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   366         0xfffffff6 0xfffffff6 0xfffffff6
   367  } {abc: (   -10) (fffffff6) (37777777766) :xyz}
   368  do_test printf-1.13.3 {
   369    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   370         0xfffffff6 0xfffffff6 0xfffffff6
   371  } {abc: (-10   ) (fffffff6) (37777777766) :xyz}
   372  do_test printf-1.13.4 {
   373    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   374         0xfffffff6 0xfffffff6 0xfffffff6
   375  } {abc: (   -10) (fffffff6) (37777777766) :xyz}
   376  do_test printf-1.13.5 {
   377    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   378         0xfffffff6 0xfffffff6 0xfffffff6
   379  } {abc: (-00010) (fffffff6) (37777777766) :xyz}
   380  do_test printf-1.13.6 {
   381    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   382         0xfffffff6 0xfffffff6 0xfffffff6
   383  } {abc: (   -10) (fffffff6) (37777777766) :xyz}
   384  do_test printf-1.13.7 {
   385    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   386         0xfffffff6 0xfffffff6 0xfffffff6
   387  } {abc: (   -10) (0xfffffff6) (037777777766) :xyz}
   388  # 0xffffff9d == -99
   389  do_test printf-1.14.1 {
   390    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   391         0xffffff9d 0xffffff9d 0xffffff9d
   392  } {abc: -99 ffffff9d 37777777635 :xyz}
   393  do_test printf-1.14.2 {
   394    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   395         0xffffff9d 0xffffff9d 0xffffff9d
   396  } {abc: (   -99) (ffffff9d) (37777777635) :xyz}
   397  do_test printf-1.14.3 {
   398    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   399         0xffffff9d 0xffffff9d 0xffffff9d
   400  } {abc: (-99   ) (ffffff9d) (37777777635) :xyz}
   401  do_test printf-1.14.4 {
   402    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   403         0xffffff9d 0xffffff9d 0xffffff9d
   404  } {abc: (   -99) (ffffff9d) (37777777635) :xyz}
   405  do_test printf-1.14.5 {
   406    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   407         0xffffff9d 0xffffff9d 0xffffff9d
   408  } {abc: (-00099) (ffffff9d) (37777777635) :xyz}
   409  do_test printf-1.14.6 {
   410    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   411         0xffffff9d 0xffffff9d 0xffffff9d
   412  } {abc: (   -99) (ffffff9d) (37777777635) :xyz}
   413  do_test printf-1.14.7 {
   414    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   415         0xffffff9d 0xffffff9d 0xffffff9d
   416  } {abc: (   -99) (0xffffff9d) (037777777635) :xyz}
   417  # 0xffffff9c == -100
   418  do_test printf-1.15.1 {
   419    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   420         0xffffff9c 0xffffff9c 0xffffff9c
   421  } {abc: -100 ffffff9c 37777777634 :xyz}
   422  do_test printf-1.15.2 {
   423    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   424         0xffffff9c 0xffffff9c 0xffffff9c
   425  } {abc: (  -100) (ffffff9c) (37777777634) :xyz}
   426  do_test printf-1.15.3 {
   427    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   428         0xffffff9c 0xffffff9c 0xffffff9c
   429  } {abc: (-100  ) (ffffff9c) (37777777634) :xyz}
   430  do_test printf-1.15.4 {
   431    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   432         0xffffff9c 0xffffff9c 0xffffff9c
   433  } {abc: (  -100) (ffffff9c) (37777777634) :xyz}
   434  do_test printf-1.15.5 {
   435    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   436         0xffffff9c 0xffffff9c 0xffffff9c
   437  } {abc: (-00100) (ffffff9c) (37777777634) :xyz}
   438  do_test printf-1.15.6 {
   439    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   440         0xffffff9c 0xffffff9c 0xffffff9c
   441  } {abc: (  -100) (ffffff9c) (37777777634) :xyz}
   442  do_test printf-1.15.7 {
   443    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   444         0xffffff9c 0xffffff9c 0xffffff9c
   445  } {abc: (  -100) (0xffffff9c) (037777777634) :xyz}
   446  # 0xff676981 == -9999999
   447  do_test printf-1.16.1 {
   448    sqlite3_mprintf_int {abc: %d %x %o :xyz}\
   449         0xff676981 0xff676981 0xff676981
   450  } {abc: -9999999 ff676981 37731664601 :xyz}
   451  do_test printf-1.16.2 {
   452    sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
   453         0xff676981 0xff676981 0xff676981
   454  } {abc: (-9999999) (ff676981) (37731664601) :xyz}
   455  do_test printf-1.16.3 {
   456    sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
   457         0xff676981 0xff676981 0xff676981
   458  } {abc: (-9999999) (ff676981) (37731664601) :xyz}
   459  do_test printf-1.16.4 {
   460    sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
   461         0xff676981 0xff676981 0xff676981
   462  } {abc: (-9999999) (ff676981) (37731664601) :xyz}
   463  do_test printf-1.16.5 {
   464    sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
   465         0xff676981 0xff676981 0xff676981
   466  } {abc: (-9999999) (ff676981) (37731664601) :xyz}
   467  do_test printf-1.16.6 {
   468    sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
   469         0xff676981 0xff676981 0xff676981
   470  } {abc: (-9999999) (ff676981) (37731664601) :xyz}
   471  do_test printf-1.16.7 {
   472    sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
   473         0xff676981 0xff676981 0xff676981
   474  } {abc: (-9999999) (0xff676981) (037731664601) :xyz}
   475  do_test printf-1.17.1 {
   476    sqlite3_mprintf_int {abd: %2147483647d %2147483647x %2147483647o} 1 1 1
   477  } {}
   478  do_test printf-1.17.2 {
   479    sqlite3_mprintf_int {abd: %*d %x} 2147483647 1 1
   480  } {}
   481  do_test printf-1.17.3 {
   482    sqlite3_mprintf_int {abd: %*d %x} -2147483648 1 1
   483  } {abd: 1 1}
   484  do_test printf-1.17.4 {
   485    sqlite3_mprintf_int {abd: %.2147483648d %x %x} 1 1 1
   486  } {/.*/}
   487  do_test printf-2.1.1.1 {
   488    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 0.001
   489  } {abc: (0.0) :xyz}
   490  do_test printf-2.1.1.2 {
   491    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 0.001
   492  } {abc: (1.0e-03) :xyz}
   493  do_test printf-2.1.1.3 {
   494    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 0.001
   495  } {abc: (0.001) :xyz}
   496  do_test printf-2.1.1.4 {
   497    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 0.001
   498  } {abc: 1 1 (0.001) :xyz}
   499  do_test printf-2.1.1.5 {
   500    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 0.001
   501  } {abc: 1 1 (0.00100000) :xyz}
   502  do_test printf-2.1.1.6 {
   503    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 0.001
   504  } {abc: 1 1 (000000.001) :xyz}
   505  do_test printf-2.1.1.7 {
   506    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 0.001
   507  } {abc: 1 1 (0.0) :xyz}
   508  do_test printf-2.1.1.8 {
   509    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 0.001
   510  } {abc: 1 1 (1.0e-03) :xyz}
   511  do_test printf-2.1.1.9 {
   512    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 0.001
   513  } {abc: 1 1 (0.001) :xyz}
   514  do_test printf-2.1.2.1 {
   515    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 1.0e-20
   516  } {abc: (0.0) :xyz}
   517  do_test printf-2.1.2.2 {
   518    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 1.0e-20
   519  } {abc: (1.0e-20) :xyz}
   520  do_test printf-2.1.2.3 {
   521    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 1.0e-20
   522  } {abc: (1e-20) :xyz}
   523  do_test printf-2.1.2.4 {
   524    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 1.0e-20
   525  } {abc: 1 1 (1e-20) :xyz}
   526  do_test printf-2.1.2.5 {
   527    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 1.0e-20
   528  } {abc: 1 1 (1.00000e-20) :xyz}
   529  do_test printf-2.1.2.6 {
   530    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 1.0e-20
   531  } {abc: 1 1 (000001e-20) :xyz}
   532  do_test printf-2.1.2.7 {
   533    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 1.0e-20
   534  } {abc: 1 1 (0.0) :xyz}
   535  do_test printf-2.1.2.8 {
   536    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 1.0e-20
   537  } {abc: 1 1 (1.0e-20) :xyz}
   538  do_test printf-2.1.2.9 {
   539    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 1.0e-20
   540  } {abc: 1 1 (1e-20) :xyz}
   541  if {$SQLITE_MAX_LENGTH<=[expr 1000*1000*1000]} {
   542    do_test printf-2.1.2.10 {
   543      sqlite3_mprintf_double {abc: %*.*f}  2000000000 1000000000 1.0e-20
   544    } {}
   545  }
   546  do_test printf-2.1.3.1 {
   547    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 1.0
   548  } {abc: (1.0) :xyz}
   549  do_test printf-2.1.3.2 {
   550    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 1.0
   551  } {abc: (1.0e+00) :xyz}
   552  do_test printf-2.1.3.3 {
   553    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 1.0
   554  } {abc: (1) :xyz}
   555  do_test printf-2.1.3.4 {
   556    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 1.0
   557  } {abc: 1 1 (1) :xyz}
   558  do_test printf-2.1.3.5 {
   559    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 1.0
   560  } {abc: 1 1 (1.00000) :xyz}
   561  do_test printf-2.1.3.6 {
   562    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 1.0
   563  } {abc: 1 1 (0000000001) :xyz}
   564  do_test printf-2.1.3.7 {
   565    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 1.0
   566  } {abc: 1 1 (1.0) :xyz}
   567  do_test printf-2.1.3.8 {
   568    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 1.0
   569  } {abc: 1 1 (1.0e+00) :xyz}
   570  do_test printf-2.1.3.9 {
   571    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 1.0
   572  } {abc: 1 1 (1) :xyz}
   573  do_test printf-2.1.4.1 {
   574    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 0.0
   575  } {abc: (0.0) :xyz}
   576  do_test printf-2.1.4.2 {
   577    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 0.0
   578  } {abc: (0.0e+00) :xyz}
   579  do_test printf-2.1.4.3 {
   580    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 0.0
   581  } {abc: (0) :xyz}
   582  do_test printf-2.1.4.4 {
   583    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 0.0
   584  } {abc: 1 1 (0) :xyz}
   585  do_test printf-2.1.4.5 {
   586    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 0.0
   587  } {abc: 1 1 (0.00000) :xyz}
   588  do_test printf-2.1.4.6 {
   589    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 0.0
   590  } {abc: 1 1 (0000000000) :xyz}
   591  do_test printf-2.1.4.7 {
   592    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 0.0
   593  } {abc: 1 1 (0.0) :xyz}
   594  do_test printf-2.1.4.8 {
   595    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 0.0
   596  } {abc: 1 1 (0.0e+00) :xyz}
   597  do_test printf-2.1.4.9 {
   598    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 0.0
   599  } {abc: 1 1 (0) :xyz}
   600  do_test printf-2.1.5.1 {
   601    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 100.0
   602  } {abc: (100.0) :xyz}
   603  do_test printf-2.1.5.2 {
   604    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 100.0
   605  } {abc: (1.0e+02) :xyz}
   606  do_test printf-2.1.5.3 {
   607    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 100.0
   608  } {abc: (1e+02) :xyz}
   609  do_test printf-2.1.5.4 {
   610    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 100.0
   611  } {abc: 1 1 (100) :xyz}
   612  do_test printf-2.1.5.5 {
   613    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 100.0
   614  } {abc: 1 1 (100.000) :xyz}
   615  do_test printf-2.1.5.6 {
   616    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 100.0
   617  } {abc: 1 1 (0000000100) :xyz}
   618  do_test printf-2.1.5.7 {
   619    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 100.0
   620  } {abc: 1 1 (100.0) :xyz}
   621  do_test printf-2.1.5.8 {
   622    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 100.0
   623  } {abc: 1 1 (1.0e+02) :xyz}
   624  do_test printf-2.1.5.9 {
   625    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 100.0
   626  } {abc: 1 1 (1e+02) :xyz}
   627  do_test printf-2.1.6.1 {
   628    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 9.99999
   629  } {abc: (10.0) :xyz}
   630  do_test printf-2.1.6.2 {
   631    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 9.99999
   632  } {abc: (1.0e+01) :xyz}
   633  do_test printf-2.1.6.3 {
   634    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 9.99999
   635  } {abc: (1e+01) :xyz}
   636  do_test printf-2.1.6.4 {
   637    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 9.99999
   638  } {abc: 1 1 (9.99999) :xyz}
   639  do_test printf-2.1.6.5 {
   640    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 9.99999
   641  } {abc: 1 1 (9.99999) :xyz}
   642  do_test printf-2.1.6.6 {
   643    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 9.99999
   644  } {abc: 1 1 (0009.99999) :xyz}
   645  do_test printf-2.1.6.7 {
   646    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 9.99999
   647  } {abc: 1 1 (10.0) :xyz}
   648  do_test printf-2.1.6.8 {
   649    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 9.99999
   650  } {abc: 1 1 (1.0e+01) :xyz}
   651  do_test printf-2.1.6.9 {
   652    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 9.99999
   653  } {abc: 1 1 (1e+01) :xyz}
   654  do_test printf-2.1.7.1 {
   655    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 -0.00543
   656  } {abc: (-0.0) :xyz}
   657  do_test printf-2.1.7.2 {
   658    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 -0.00543
   659  } {abc: (-5.4e-03) :xyz}
   660  do_test printf-2.1.7.3 {
   661    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 -0.00543
   662  } {abc: (-0.005) :xyz}
   663  do_test printf-2.1.7.4 {
   664    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 -0.00543
   665  } {abc: 1 1 (-0.00543) :xyz}
   666  do_test printf-2.1.7.5 {
   667    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 -0.00543
   668  } {abc: 1 1 (-0.00543000) :xyz}
   669  do_test printf-2.1.7.6 {
   670    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 -0.00543
   671  } {abc: 1 1 (-000.00543) :xyz}
   672  do_test printf-2.1.7.7 {
   673    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 -0.00543
   674  } {abc: 1 1 (-0.0) :xyz}
   675  do_test printf-2.1.7.8 {
   676    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 -0.00543
   677  } {abc: 1 1 (-5.4e-03) :xyz}
   678  do_test printf-2.1.7.9 {
   679    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 -0.00543
   680  } {abc: 1 1 (-0.005) :xyz}
   681  do_test printf-2.1.8.1 {
   682    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 -1.0
   683  } {abc: (-1.0) :xyz}
   684  do_test printf-2.1.8.2 {
   685    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 -1.0
   686  } {abc: (-1.0e+00) :xyz}
   687  do_test printf-2.1.8.3 {
   688    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 -1.0
   689  } {abc: (-1) :xyz}
   690  do_test printf-2.1.8.4 {
   691    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 -1.0
   692  } {abc: 1 1 (-1) :xyz}
   693  do_test printf-2.1.8.5 {
   694    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 -1.0
   695  } {abc: 1 1 (-1.00000) :xyz}
   696  do_test printf-2.1.8.6 {
   697    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 -1.0
   698  } {abc: 1 1 (-000000001) :xyz}
   699  do_test printf-2.1.8.7 {
   700    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 -1.0
   701  } {abc: 1 1 (-1.0) :xyz}
   702  do_test printf-2.1.8.8 {
   703    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 -1.0
   704  } {abc: 1 1 (-1.0e+00) :xyz}
   705  do_test printf-2.1.8.9 {
   706    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 -1.0
   707  } {abc: 1 1 (-1) :xyz}
   708  do_test printf-2.1.9.1 {
   709    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 -99.99999
   710  } {abc: (-100.0) :xyz}
   711  do_test printf-2.1.9.2 {
   712    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 -99.99999
   713  } {abc: (-1.0e+02) :xyz}
   714  do_test printf-2.1.9.3 {
   715    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 -99.99999
   716  } {abc: (-1e+02) :xyz}
   717  do_test printf-2.1.9.4 {
   718    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 -99.99999
   719  } {abc: 1 1 (-100) :xyz}
   720  do_test printf-2.1.9.5 {
   721    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 -99.99999
   722  } {abc: 1 1 (-100.000) :xyz}
   723  do_test printf-2.1.9.6 {
   724    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 -99.99999
   725  } {abc: 1 1 (-000000100) :xyz}
   726  do_test printf-2.1.9.7 {
   727    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 -99.99999
   728  } {abc: 1 1 (-100.0) :xyz}
   729  do_test printf-2.1.9.8 {
   730    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 -99.99999
   731  } {abc: 1 1 (-1.0e+02) :xyz}
   732  do_test printf-2.1.9.9 {
   733    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 -99.99999
   734  } {abc: 1 1 (-1e+02) :xyz}
   735  do_test printf-2.1.10.1 {
   736    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 3.14e+9
   737  } {abc: (3140000000.0) :xyz}
   738  do_test printf-2.1.10.2 {
   739    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 3.14e+9
   740  } {abc: (3.1e+09) :xyz}
   741  do_test printf-2.1.10.3 {
   742    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 3.14e+9
   743  } {abc: (3e+09) :xyz}
   744  do_test printf-2.1.10.4 {
   745    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 3.14e+9
   746  } {abc: 1 1 (3.14e+09) :xyz}
   747  do_test printf-2.1.10.5 {
   748    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 3.14e+9
   749  } {abc: 1 1 (3.14000e+09) :xyz}
   750  do_test printf-2.1.10.6 {
   751    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 3.14e+9
   752  } {abc: 1 1 (003.14e+09) :xyz}
   753  do_test printf-2.1.10.7 {
   754    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 3.14e+9
   755  } {abc: 1 1 (3140000000.0) :xyz}
   756  do_test printf-2.1.10.8 {
   757    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 3.14e+9
   758  } {abc: 1 1 (3.1e+09) :xyz}
   759  do_test printf-2.1.10.9 {
   760    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 3.14e+9
   761  } {abc: 1 1 (3e+09) :xyz}
   762  do_test printf-2.1.11.2 {
   763    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 -4.72732e+88
   764  } {abc: (-4.7e+88) :xyz}
   765  do_test printf-2.1.11.3 {
   766    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 -4.72732e+88
   767  } {abc: (-5e+88) :xyz}
   768  do_test printf-2.1.11.4 {
   769    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 -4.72732e+88
   770  } {abc: 1 1 (-4.72732e+88) :xyz}
   771  do_test printf-2.1.11.5 {
   772    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 -4.72732e+88
   773  } {abc: 1 1 (-4.72732e+88) :xyz}
   774  do_test printf-2.1.11.6 {
   775    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 -4.72732e+88
   776  } {abc: 1 1 (-4.72732e+88) :xyz}
   777  do_test printf-2.1.11.8 {
   778    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 -4.72732e+88
   779  } {abc: 1 1 (-4.7e+88) :xyz}
   780  do_test printf-2.1.11.9 {
   781    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 -4.72732e+88
   782  } {abc: 1 1 (-5e+88) :xyz}
   783  do_test printf-2.1.12.2 {
   784    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 9.87991e+143
   785  } {abc: (9.9e+143) :xyz}
   786  do_test printf-2.1.12.3 {
   787    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 9.87991e+143
   788  } {abc: (1e+144) :xyz}
   789  do_test printf-2.1.12.4 {
   790    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 9.87991e+143
   791  } {abc: 1 1 (9.87991e+143) :xyz}
   792  do_test printf-2.1.12.5 {
   793    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 9.87991e+143
   794  } {abc: 1 1 (9.87991e+143) :xyz}
   795  do_test printf-2.1.12.6 {
   796    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 9.87991e+143
   797  } {abc: 1 1 (9.87991e+143) :xyz}
   798  do_test printf-2.1.12.8 {
   799    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 9.87991e+143
   800  } {abc: 1 1 (9.9e+143) :xyz}
   801  do_test printf-2.1.12.9 {
   802    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 9.87991e+143
   803  } {abc: 1 1 (1e+144) :xyz}
   804  do_test printf-2.1.13.1 {
   805    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 -6.287291e-9
   806  } {abc: (-0.0) :xyz}
   807  do_test printf-2.1.13.2 {
   808    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 -6.287291e-9
   809  } {abc: (-6.3e-09) :xyz}
   810  do_test printf-2.1.13.3 {
   811    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 -6.287291e-9
   812  } {abc: (-6e-09) :xyz}
   813  do_test printf-2.1.13.4 {
   814    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 -6.287291e-9
   815  } {abc: 1 1 (-6.28729e-09) :xyz}
   816  do_test printf-2.1.13.5 {
   817    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 -6.287291e-9
   818  } {abc: 1 1 (-6.28729e-09) :xyz}
   819  do_test printf-2.1.13.6 {
   820    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 -6.287291e-9
   821  } {abc: 1 1 (-6.28729e-09) :xyz}
   822  do_test printf-2.1.13.7 {
   823    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 -6.287291e-9
   824  } {abc: 1 1 (-0.0) :xyz}
   825  do_test printf-2.1.13.8 {
   826    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 -6.287291e-9
   827  } {abc: 1 1 (-6.3e-09) :xyz}
   828  do_test printf-2.1.13.9 {
   829    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 -6.287291e-9
   830  } {abc: 1 1 (-6e-09) :xyz}
   831  do_test printf-2.1.14.1 {
   832    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 3.38826392e-110
   833  } {abc: (0.0) :xyz}
   834  do_test printf-2.1.14.2 {
   835    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 3.38826392e-110
   836  } {abc: (3.4e-110) :xyz}
   837  do_test printf-2.1.14.3 {
   838    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 3.38826392e-110
   839  } {abc: (3e-110) :xyz}
   840  do_test printf-2.1.14.4 {
   841    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 3.38826392e-110
   842  } {abc: 1 1 (3.38826e-110) :xyz}
   843  do_test printf-2.1.14.5 {
   844    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 3.38826392e-110
   845  } {abc: 1 1 (3.38826e-110) :xyz}
   846  do_test printf-2.1.14.6 {
   847    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 3.38826392e-110
   848  } {abc: 1 1 (3.38826e-110) :xyz}
   849  do_test printf-2.1.14.7 {
   850    sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 3.38826392e-110
   851  } {abc: 1 1 (0.0) :xyz}
   852  do_test printf-2.1.14.8 {
   853    sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 3.38826392e-110
   854  } {abc: 1 1 (3.4e-110) :xyz}
   855  do_test printf-2.1.14.9 {
   856    sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 3.38826392e-110
   857  } {abc: 1 1 (3e-110) :xyz}
   858  do_test printf-2.2.1.1 {
   859    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 0.001
   860  } {abc: (0.00100) :xyz}
   861  do_test printf-2.2.1.2 {
   862    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 0.001
   863  } {abc: (1.00000e-03) :xyz}
   864  do_test printf-2.2.1.3 {
   865    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 0.001
   866  } {abc: (0.001) :xyz}
   867  do_test printf-2.2.1.4 {
   868    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 0.001
   869  } {abc: 5 5 (0.001) :xyz}
   870  do_test printf-2.2.1.5 {
   871    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 0.001
   872  } {abc: 5 5 (0.00100000) :xyz}
   873  do_test printf-2.2.1.6 {
   874    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 0.001
   875  } {abc: 5 5 (000000.001) :xyz}
   876  do_test printf-2.2.1.7 {
   877    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 0.001
   878  } {abc: 5 5 (0.00100) :xyz}
   879  do_test printf-2.2.1.8 {
   880    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 0.001
   881  } {abc: 5 5 (1.00000e-03) :xyz}
   882  do_test printf-2.2.1.9 {
   883    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 0.001
   884  } {abc: 5 5 (0.001) :xyz}
   885  do_test printf-2.2.2.1 {
   886    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 1.0e-20
   887  } {abc: (0.00000) :xyz}
   888  do_test printf-2.2.2.2 {
   889    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 1.0e-20
   890  } {abc: (1.00000e-20) :xyz}
   891  do_test printf-2.2.2.3 {
   892    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 1.0e-20
   893  } {abc: (1e-20) :xyz}
   894  do_test printf-2.2.2.4 {
   895    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 1.0e-20
   896  } {abc: 5 5 (1e-20) :xyz}
   897  do_test printf-2.2.2.5 {
   898    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 1.0e-20
   899  } {abc: 5 5 (1.00000e-20) :xyz}
   900  do_test printf-2.2.2.6 {
   901    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 1.0e-20
   902  } {abc: 5 5 (000001e-20) :xyz}
   903  do_test printf-2.2.2.7 {
   904    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 1.0e-20
   905  } {abc: 5 5 (0.00000) :xyz}
   906  do_test printf-2.2.2.8 {
   907    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 1.0e-20
   908  } {abc: 5 5 (1.00000e-20) :xyz}
   909  do_test printf-2.2.2.9 {
   910    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 1.0e-20
   911  } {abc: 5 5 (1e-20) :xyz}
   912  do_test printf-2.2.3.1 {
   913    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 1.0
   914  } {abc: (1.00000) :xyz}
   915  do_test printf-2.2.3.2 {
   916    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 1.0
   917  } {abc: (1.00000e+00) :xyz}
   918  do_test printf-2.2.3.3 {
   919    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 1.0
   920  } {abc: (    1) :xyz}
   921  do_test printf-2.2.3.4 {
   922    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 1.0
   923  } {abc: 5 5 (1) :xyz}
   924  do_test printf-2.2.3.5 {
   925    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 1.0
   926  } {abc: 5 5 (1.00000) :xyz}
   927  do_test printf-2.2.3.6 {
   928    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 1.0
   929  } {abc: 5 5 (0000000001) :xyz}
   930  do_test printf-2.2.3.7 {
   931    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 1.0
   932  } {abc: 5 5 (1.00000) :xyz}
   933  do_test printf-2.2.3.8 {
   934    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 1.0
   935  } {abc: 5 5 (1.00000e+00) :xyz}
   936  do_test printf-2.2.3.9 {
   937    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 1.0
   938  } {abc: 5 5 (    1) :xyz}
   939  do_test printf-2.2.4.1 {
   940    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 0.0
   941  } {abc: (0.00000) :xyz}
   942  do_test printf-2.2.4.2 {
   943    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 0.0
   944  } {abc: (0.00000e+00) :xyz}
   945  do_test printf-2.2.4.3 {
   946    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 0.0
   947  } {abc: (    0) :xyz}
   948  do_test printf-2.2.4.4 {
   949    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 0.0
   950  } {abc: 5 5 (0) :xyz}
   951  do_test printf-2.2.4.5 {
   952    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 0.0
   953  } {abc: 5 5 (0.00000) :xyz}
   954  do_test printf-2.2.4.6 {
   955    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 0.0
   956  } {abc: 5 5 (0000000000) :xyz}
   957  do_test printf-2.2.4.7 {
   958    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 0.0
   959  } {abc: 5 5 (0.00000) :xyz}
   960  do_test printf-2.2.4.8 {
   961    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 0.0
   962  } {abc: 5 5 (0.00000e+00) :xyz}
   963  do_test printf-2.2.4.9 {
   964    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 0.0
   965  } {abc: 5 5 (    0) :xyz}
   966  do_test printf-2.2.5.1 {
   967    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 100.0
   968  } {abc: (100.00000) :xyz}
   969  do_test printf-2.2.5.2 {
   970    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 100.0
   971  } {abc: (1.00000e+02) :xyz}
   972  do_test printf-2.2.5.3 {
   973    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 100.0
   974  } {abc: (  100) :xyz}
   975  do_test printf-2.2.5.4 {
   976    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 100.0
   977  } {abc: 5 5 (100) :xyz}
   978  do_test printf-2.2.5.5 {
   979    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 100.0
   980  } {abc: 5 5 (100.000) :xyz}
   981  do_test printf-2.2.5.6 {
   982    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 100.0
   983  } {abc: 5 5 (0000000100) :xyz}
   984  do_test printf-2.2.5.7 {
   985    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 100.0
   986  } {abc: 5 5 (100.00000) :xyz}
   987  do_test printf-2.2.5.8 {
   988    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 100.0
   989  } {abc: 5 5 (1.00000e+02) :xyz}
   990  do_test printf-2.2.5.9 {
   991    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 100.0
   992  } {abc: 5 5 (  100) :xyz}
   993  do_test printf-2.2.6.1 {
   994    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 9.99999
   995  } {abc: (9.99999) :xyz}
   996  do_test printf-2.2.6.2 {
   997    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 9.99999
   998  } {abc: (9.99999e+00) :xyz}
   999  do_test printf-2.2.6.3 {
  1000    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 9.99999
  1001  } {abc: (   10) :xyz}
  1002  do_test printf-2.2.6.4 {
  1003    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 9.99999
  1004  } {abc: 5 5 (9.99999) :xyz}
  1005  do_test printf-2.2.6.5 {
  1006    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 9.99999
  1007  } {abc: 5 5 (9.99999) :xyz}
  1008  do_test printf-2.2.6.6 {
  1009    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 9.99999
  1010  } {abc: 5 5 (0009.99999) :xyz}
  1011  do_test printf-2.2.6.7 {
  1012    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 9.99999
  1013  } {abc: 5 5 (9.99999) :xyz}
  1014  do_test printf-2.2.6.8 {
  1015    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 9.99999
  1016  } {abc: 5 5 (9.99999e+00) :xyz}
  1017  do_test printf-2.2.6.9 {
  1018    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 9.99999
  1019  } {abc: 5 5 (   10) :xyz}
  1020  do_test printf-2.2.7.1 {
  1021    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 -0.00543
  1022  } {abc: (-0.00543) :xyz}
  1023  do_test printf-2.2.7.2 {
  1024    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 -0.00543
  1025  } {abc: (-5.43000e-03) :xyz}
  1026  do_test printf-2.2.7.3 {
  1027    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 -0.00543
  1028  } {abc: (-0.00543) :xyz}
  1029  do_test printf-2.2.7.4 {
  1030    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 -0.00543
  1031  } {abc: 5 5 (-0.00543) :xyz}
  1032  do_test printf-2.2.7.5 {
  1033    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 -0.00543
  1034  } {abc: 5 5 (-0.00543000) :xyz}
  1035  do_test printf-2.2.7.6 {
  1036    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 -0.00543
  1037  } {abc: 5 5 (-000.00543) :xyz}
  1038  do_test printf-2.2.7.7 {
  1039    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 -0.00543
  1040  } {abc: 5 5 (-0.00543) :xyz}
  1041  do_test printf-2.2.7.8 {
  1042    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 -0.00543
  1043  } {abc: 5 5 (-5.43000e-03) :xyz}
  1044  do_test printf-2.2.7.9 {
  1045    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 -0.00543
  1046  } {abc: 5 5 (-0.00543) :xyz}
  1047  do_test printf-2.2.8.1 {
  1048    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 -1.0
  1049  } {abc: (-1.00000) :xyz}
  1050  do_test printf-2.2.8.2 {
  1051    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 -1.0
  1052  } {abc: (-1.00000e+00) :xyz}
  1053  do_test printf-2.2.8.3 {
  1054    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 -1.0
  1055  } {abc: (   -1) :xyz}
  1056  do_test printf-2.2.8.4 {
  1057    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 -1.0
  1058  } {abc: 5 5 (-1) :xyz}
  1059  do_test printf-2.2.8.5 {
  1060    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 -1.0
  1061  } {abc: 5 5 (-1.00000) :xyz}
  1062  do_test printf-2.2.8.6 {
  1063    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 -1.0
  1064  } {abc: 5 5 (-000000001) :xyz}
  1065  do_test printf-2.2.8.7 {
  1066    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 -1.0
  1067  } {abc: 5 5 (-1.00000) :xyz}
  1068  do_test printf-2.2.8.8 {
  1069    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 -1.0
  1070  } {abc: 5 5 (-1.00000e+00) :xyz}
  1071  do_test printf-2.2.8.9 {
  1072    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 -1.0
  1073  } {abc: 5 5 (   -1) :xyz}
  1074  do_test printf-2.2.9.1 {
  1075    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 -99.99999
  1076  } {abc: (-99.99999) :xyz}
  1077  do_test printf-2.2.9.2 {
  1078    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 -99.99999
  1079  } {abc: (-1.00000e+02) :xyz}
  1080  do_test printf-2.2.9.3 {
  1081    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 -99.99999
  1082  } {abc: ( -100) :xyz}
  1083  do_test printf-2.2.9.4 {
  1084    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 -99.99999
  1085  } {abc: 5 5 (-100) :xyz}
  1086  do_test printf-2.2.9.5 {
  1087    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 -99.99999
  1088  } {abc: 5 5 (-100.000) :xyz}
  1089  do_test printf-2.2.9.6 {
  1090    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 -99.99999
  1091  } {abc: 5 5 (-000000100) :xyz}
  1092  do_test printf-2.2.9.7 {
  1093    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 -99.99999
  1094  } {abc: 5 5 (-99.99999) :xyz}
  1095  do_test printf-2.2.9.8 {
  1096    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 -99.99999
  1097  } {abc: 5 5 (-1.00000e+02) :xyz}
  1098  do_test printf-2.2.9.9 {
  1099    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 -99.99999
  1100  } {abc: 5 5 ( -100) :xyz}
  1101  do_test printf-2.2.10.1 {
  1102    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 3.14e+9
  1103  } {abc: (3140000000.00000) :xyz}
  1104  do_test printf-2.2.10.2 {
  1105    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 3.14e+9
  1106  } {abc: (3.14000e+09) :xyz}
  1107  do_test printf-2.2.10.3 {
  1108    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 3.14e+9
  1109  } {abc: (3.14e+09) :xyz}
  1110  do_test printf-2.2.10.4 {
  1111    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 3.14e+9
  1112  } {abc: 5 5 (3.14e+09) :xyz}
  1113  do_test printf-2.2.10.5 {
  1114    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 3.14e+9
  1115  } {abc: 5 5 (3.14000e+09) :xyz}
  1116  do_test printf-2.2.10.6 {
  1117    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 3.14e+9
  1118  } {abc: 5 5 (003.14e+09) :xyz}
  1119  do_test printf-2.2.10.7 {
  1120    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 3.14e+9
  1121  } {abc: 5 5 (3140000000.00000) :xyz}
  1122  do_test printf-2.2.10.8 {
  1123    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 3.14e+9
  1124  } {abc: 5 5 (3.14000e+09) :xyz}
  1125  do_test printf-2.2.10.9 {
  1126    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 3.14e+9
  1127  } {abc: 5 5 (3.14e+09) :xyz}
  1128  do_test printf-2.2.11.2 {
  1129    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 -4.72732e+88
  1130  } {abc: (-4.72732e+88) :xyz}
  1131  do_test printf-2.2.11.3 {
  1132    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 -4.72732e+88
  1133  } {abc: (-4.7273e+88) :xyz}
  1134  do_test printf-2.2.11.4 {
  1135    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 -4.72732e+88
  1136  } {abc: 5 5 (-4.72732e+88) :xyz}
  1137  do_test printf-2.2.11.5 {
  1138    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 -4.72732e+88
  1139  } {abc: 5 5 (-4.72732e+88) :xyz}
  1140  do_test printf-2.2.11.6 {
  1141    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 -4.72732e+88
  1142  } {abc: 5 5 (-4.72732e+88) :xyz}
  1143  do_test printf-2.2.11.8 {
  1144    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 -4.72732e+88
  1145  } {abc: 5 5 (-4.72732e+88) :xyz}
  1146  do_test printf-2.2.11.9 {
  1147    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 -4.72732e+88
  1148  } {abc: 5 5 (-4.7273e+88) :xyz}
  1149  do_test printf-2.2.12.2 {
  1150    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 9.87991e+143
  1151  } {abc: (9.87991e+143) :xyz}
  1152  do_test printf-2.2.12.3 {
  1153    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 9.87991e+143
  1154  } {abc: (9.8799e+143) :xyz}
  1155  do_test printf-2.2.12.4 {
  1156    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 9.87991e+143
  1157  } {abc: 5 5 (9.87991e+143) :xyz}
  1158  do_test printf-2.2.12.5 {
  1159    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 9.87991e+143
  1160  } {abc: 5 5 (9.87991e+143) :xyz}
  1161  do_test printf-2.2.12.6 {
  1162    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 9.87991e+143
  1163  } {abc: 5 5 (9.87991e+143) :xyz}
  1164  do_test printf-2.2.12.8 {
  1165    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 9.87991e+143
  1166  } {abc: 5 5 (9.87991e+143) :xyz}
  1167  do_test printf-2.2.12.9 {
  1168    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 9.87991e+143
  1169  } {abc: 5 5 (9.8799e+143) :xyz}
  1170  do_test printf-2.2.13.1 {
  1171    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 -6.287291e-9
  1172  } {abc: (-0.00000) :xyz}
  1173  do_test printf-2.2.13.2 {
  1174    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 -6.287291e-9
  1175  } {abc: (-6.28729e-09) :xyz}
  1176  do_test printf-2.2.13.3 {
  1177    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 -6.287291e-9
  1178  } {abc: (-6.2873e-09) :xyz}
  1179  do_test printf-2.2.13.4 {
  1180    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 -6.287291e-9
  1181  } {abc: 5 5 (-6.28729e-09) :xyz}
  1182  do_test printf-2.2.13.5 {
  1183    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 -6.287291e-9
  1184  } {abc: 5 5 (-6.28729e-09) :xyz}
  1185  do_test printf-2.2.13.6 {
  1186    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 -6.287291e-9
  1187  } {abc: 5 5 (-6.28729e-09) :xyz}
  1188  do_test printf-2.2.13.7 {
  1189    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 -6.287291e-9
  1190  } {abc: 5 5 (-0.00000) :xyz}
  1191  do_test printf-2.2.13.8 {
  1192    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 -6.287291e-9
  1193  } {abc: 5 5 (-6.28729e-09) :xyz}
  1194  do_test printf-2.2.13.9 {
  1195    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 -6.287291e-9
  1196  } {abc: 5 5 (-6.2873e-09) :xyz}
  1197  do_test printf-2.2.14.1 {
  1198    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 3.38826392e-110
  1199  } {abc: (0.00000) :xyz}
  1200  do_test printf-2.2.14.2 {
  1201    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 3.38826392e-110
  1202  } {abc: (3.38826e-110) :xyz}
  1203  do_test printf-2.2.14.3 {
  1204    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 3.38826392e-110
  1205  } {abc: (3.3883e-110) :xyz}
  1206  do_test printf-2.2.14.4 {
  1207    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 3.38826392e-110
  1208  } {abc: 5 5 (3.38826e-110) :xyz}
  1209  do_test printf-2.2.14.5 {
  1210    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 3.38826392e-110
  1211  } {abc: 5 5 (3.38826e-110) :xyz}
  1212  do_test printf-2.2.14.6 {
  1213    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 3.38826392e-110
  1214  } {abc: 5 5 (3.38826e-110) :xyz}
  1215  do_test printf-2.2.14.7 {
  1216    sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 3.38826392e-110
  1217  } {abc: 5 5 (0.00000) :xyz}
  1218  do_test printf-2.2.14.8 {
  1219    sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 3.38826392e-110
  1220  } {abc: 5 5 (3.38826e-110) :xyz}
  1221  do_test printf-2.2.14.9 {
  1222    sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 3.38826392e-110
  1223  } {abc: 5 5 (3.3883e-110) :xyz}
  1224  do_test printf-2.3.1.1 {
  1225    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 0.001
  1226  } {abc: (0.0010000000) :xyz}
  1227  do_test printf-2.3.1.2 {
  1228    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 0.001
  1229  } {abc: (1.0000000000e-03) :xyz}
  1230  do_test printf-2.3.1.3 {
  1231    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 0.001
  1232  } {abc: (     0.001) :xyz}
  1233  do_test printf-2.3.1.4 {
  1234    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 0.001
  1235  } {abc: 10 10 (0.001) :xyz}
  1236  do_test printf-2.3.1.5 {
  1237    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 0.001
  1238  } {abc: 10 10 (0.00100000) :xyz}
  1239  do_test printf-2.3.1.6 {
  1240    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 0.001
  1241  } {abc: 10 10 (000000.001) :xyz}
  1242  do_test printf-2.3.1.7 {
  1243    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 0.001
  1244  } {abc: 10 10 (0.0010000000) :xyz}
  1245  do_test printf-2.3.1.8 {
  1246    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 0.001
  1247  } {abc: 10 10 (1.0000000000e-03) :xyz}
  1248  do_test printf-2.3.1.9 {
  1249    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 0.001
  1250  } {abc: 10 10 (     0.001) :xyz}
  1251  do_test printf-2.3.2.1 {
  1252    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 1.0e-20
  1253  } {abc: (0.0000000000) :xyz}
  1254  do_test printf-2.3.2.2 {
  1255    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 1.0e-20
  1256  } {abc: (1.0000000000e-20) :xyz}
  1257  do_test printf-2.3.2.3 {
  1258    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 1.0e-20
  1259  } {abc: (     1e-20) :xyz}
  1260  do_test printf-2.3.2.4 {
  1261    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 1.0e-20
  1262  } {abc: 10 10 (1e-20) :xyz}
  1263  do_test printf-2.3.2.5 {
  1264    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 1.0e-20
  1265  } {abc: 10 10 (1.00000e-20) :xyz}
  1266  do_test printf-2.3.2.6 {
  1267    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 1.0e-20
  1268  } {abc: 10 10 (000001e-20) :xyz}
  1269  do_test printf-2.3.2.7 {
  1270    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 1.0e-20
  1271  } {abc: 10 10 (0.0000000000) :xyz}
  1272  do_test printf-2.3.2.8 {
  1273    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 1.0e-20
  1274  } {abc: 10 10 (1.0000000000e-20) :xyz}
  1275  do_test printf-2.3.2.9 {
  1276    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 1.0e-20
  1277  } {abc: 10 10 (     1e-20) :xyz}
  1278  do_test printf-2.3.3.1 {
  1279    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 1.0
  1280  } {abc: (1.0000000000) :xyz}
  1281  do_test printf-2.3.3.2 {
  1282    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 1.0
  1283  } {abc: (1.0000000000e+00) :xyz}
  1284  do_test printf-2.3.3.3 {
  1285    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 1.0
  1286  } {abc: (         1) :xyz}
  1287  do_test printf-2.3.3.4 {
  1288    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 1.0
  1289  } {abc: 10 10 (1) :xyz}
  1290  do_test printf-2.3.3.5 {
  1291    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 1.0
  1292  } {abc: 10 10 (1.00000) :xyz}
  1293  do_test printf-2.3.3.6 {
  1294    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 1.0
  1295  } {abc: 10 10 (0000000001) :xyz}
  1296  do_test printf-2.3.3.7 {
  1297    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 1.0
  1298  } {abc: 10 10 (1.0000000000) :xyz}
  1299  do_test printf-2.3.3.8 {
  1300    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 1.0
  1301  } {abc: 10 10 (1.0000000000e+00) :xyz}
  1302  do_test printf-2.3.3.9 {
  1303    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 1.0
  1304  } {abc: 10 10 (         1) :xyz}
  1305  do_test printf-2.3.4.1 {
  1306    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 0.0
  1307  } {abc: (0.0000000000) :xyz}
  1308  do_test printf-2.3.4.2 {
  1309    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 0.0
  1310  } {abc: (0.0000000000e+00) :xyz}
  1311  do_test printf-2.3.4.3 {
  1312    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 0.0
  1313  } {abc: (         0) :xyz}
  1314  do_test printf-2.3.4.4 {
  1315    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 0.0
  1316  } {abc: 10 10 (0) :xyz}
  1317  do_test printf-2.3.4.5 {
  1318    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 0.0
  1319  } {abc: 10 10 (0.00000) :xyz}
  1320  do_test printf-2.3.4.6 {
  1321    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 0.0
  1322  } {abc: 10 10 (0000000000) :xyz}
  1323  do_test printf-2.3.4.7 {
  1324    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 0.0
  1325  } {abc: 10 10 (0.0000000000) :xyz}
  1326  do_test printf-2.3.4.8 {
  1327    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 0.0
  1328  } {abc: 10 10 (0.0000000000e+00) :xyz}
  1329  do_test printf-2.3.4.9 {
  1330    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 0.0
  1331  } {abc: 10 10 (         0) :xyz}
  1332  do_test printf-2.3.5.1 {
  1333    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 100.0
  1334  } {abc: (100.0000000000) :xyz}
  1335  do_test printf-2.3.5.2 {
  1336    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 100.0
  1337  } {abc: (1.0000000000e+02) :xyz}
  1338  do_test printf-2.3.5.3 {
  1339    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 100.0
  1340  } {abc: (       100) :xyz}
  1341  do_test printf-2.3.5.4 {
  1342    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 100.0
  1343  } {abc: 10 10 (100) :xyz}
  1344  do_test printf-2.3.5.5 {
  1345    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 100.0
  1346  } {abc: 10 10 (100.000) :xyz}
  1347  do_test printf-2.3.5.6 {
  1348    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 100.0
  1349  } {abc: 10 10 (0000000100) :xyz}
  1350  do_test printf-2.3.5.7 {
  1351    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 100.0
  1352  } {abc: 10 10 (100.0000000000) :xyz}
  1353  do_test printf-2.3.5.8 {
  1354    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 100.0
  1355  } {abc: 10 10 (1.0000000000e+02) :xyz}
  1356  do_test printf-2.3.5.9 {
  1357    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 100.0
  1358  } {abc: 10 10 (       100) :xyz}
  1359  do_test printf-2.3.6.1 {
  1360    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 9.99999
  1361  } {abc: (9.9999900000) :xyz}
  1362  do_test printf-2.3.6.2 {
  1363    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 9.99999
  1364  } {abc: (9.9999900000e+00) :xyz}
  1365  do_test printf-2.3.6.3 {
  1366    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 9.99999
  1367  } {abc: (   9.99999) :xyz}
  1368  do_test printf-2.3.6.4 {
  1369    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 9.99999
  1370  } {abc: 10 10 (9.99999) :xyz}
  1371  do_test printf-2.3.6.5 {
  1372    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 9.99999
  1373  } {abc: 10 10 (9.99999) :xyz}
  1374  do_test printf-2.3.6.6 {
  1375    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 9.99999
  1376  } {abc: 10 10 (0009.99999) :xyz}
  1377  do_test printf-2.3.6.7 {
  1378    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 9.99999
  1379  } {abc: 10 10 (9.9999900000) :xyz}
  1380  do_test printf-2.3.6.8 {
  1381    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 9.99999
  1382  } {abc: 10 10 (9.9999900000e+00) :xyz}
  1383  do_test printf-2.3.6.9 {
  1384    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 9.99999
  1385  } {abc: 10 10 (   9.99999) :xyz}
  1386  do_test printf-2.3.7.1 {
  1387    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 -0.00543
  1388  } {abc: (-0.0054300000) :xyz}
  1389  do_test printf-2.3.7.2 {
  1390    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 -0.00543
  1391  } {abc: (-5.4300000000e-03) :xyz}
  1392  do_test printf-2.3.7.3 {
  1393    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 -0.00543
  1394  } {abc: (  -0.00543) :xyz}
  1395  do_test printf-2.3.7.4 {
  1396    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 -0.00543
  1397  } {abc: 10 10 (-0.00543) :xyz}
  1398  do_test printf-2.3.7.5 {
  1399    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 -0.00543
  1400  } {abc: 10 10 (-0.00543000) :xyz}
  1401  do_test printf-2.3.7.6 {
  1402    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 -0.00543
  1403  } {abc: 10 10 (-000.00543) :xyz}
  1404  do_test printf-2.3.7.7 {
  1405    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 -0.00543
  1406  } {abc: 10 10 (-0.0054300000) :xyz}
  1407  do_test printf-2.3.7.8 {
  1408    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 -0.00543
  1409  } {abc: 10 10 (-5.4300000000e-03) :xyz}
  1410  do_test printf-2.3.7.9 {
  1411    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 -0.00543
  1412  } {abc: 10 10 (  -0.00543) :xyz}
  1413  do_test printf-2.3.8.1 {
  1414    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 -1.0
  1415  } {abc: (-1.0000000000) :xyz}
  1416  do_test printf-2.3.8.2 {
  1417    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 -1.0
  1418  } {abc: (-1.0000000000e+00) :xyz}
  1419  do_test printf-2.3.8.3 {
  1420    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 -1.0
  1421  } {abc: (        -1) :xyz}
  1422  do_test printf-2.3.8.4 {
  1423    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 -1.0
  1424  } {abc: 10 10 (-1) :xyz}
  1425  do_test printf-2.3.8.5 {
  1426    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 -1.0
  1427  } {abc: 10 10 (-1.00000) :xyz}
  1428  do_test printf-2.3.8.6 {
  1429    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 -1.0
  1430  } {abc: 10 10 (-000000001) :xyz}
  1431  do_test printf-2.3.8.7 {
  1432    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 -1.0
  1433  } {abc: 10 10 (-1.0000000000) :xyz}
  1434  do_test printf-2.3.8.8 {
  1435    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 -1.0
  1436  } {abc: 10 10 (-1.0000000000e+00) :xyz}
  1437  do_test printf-2.3.8.9 {
  1438    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 -1.0
  1439  } {abc: 10 10 (        -1) :xyz}
  1440  do_test printf-2.3.9.1 {
  1441    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 -99.99999
  1442  } {abc: (-99.9999900000) :xyz}
  1443  do_test printf-2.3.9.2 {
  1444    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 -99.99999
  1445  } {abc: (-9.9999990000e+01) :xyz}
  1446  do_test printf-2.3.9.3 {
  1447    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 -99.99999
  1448  } {abc: ( -99.99999) :xyz}
  1449  do_test printf-2.3.9.4 {
  1450    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 -99.99999
  1451  } {abc: 10 10 (-100) :xyz}
  1452  do_test printf-2.3.9.5 {
  1453    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 -99.99999
  1454  } {abc: 10 10 (-100.000) :xyz}
  1455  do_test printf-2.3.9.6 {
  1456    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 -99.99999
  1457  } {abc: 10 10 (-000000100) :xyz}
  1458  do_test printf-2.3.9.7 {
  1459    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 -99.99999
  1460  } {abc: 10 10 (-99.9999900000) :xyz}
  1461  do_test printf-2.3.9.8 {
  1462    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 -99.99999
  1463  } {abc: 10 10 (-9.9999990000e+01) :xyz}
  1464  do_test printf-2.3.9.9 {
  1465    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 -99.99999
  1466  } {abc: 10 10 ( -99.99999) :xyz}
  1467  do_test printf-2.3.10.1 {
  1468    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 3.14e+9
  1469  } {abc: (3140000000.0000000000) :xyz}
  1470  do_test printf-2.3.10.2 {
  1471    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 3.14e+9
  1472  } {abc: (3.1400000000e+09) :xyz}
  1473  do_test printf-2.3.10.3 {
  1474    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 3.14e+9
  1475  } {abc: (3140000000) :xyz}
  1476  do_test printf-2.3.10.4 {
  1477    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 3.14e+9
  1478  } {abc: 10 10 (3.14e+09) :xyz}
  1479  do_test printf-2.3.10.5 {
  1480    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 3.14e+9
  1481  } {abc: 10 10 (3.14000e+09) :xyz}
  1482  do_test printf-2.3.10.6 {
  1483    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 3.14e+9
  1484  } {abc: 10 10 (003.14e+09) :xyz}
  1485  do_test printf-2.3.10.7 {
  1486    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 3.14e+9
  1487  } {abc: 10 10 (3140000000.0000000000) :xyz}
  1488  do_test printf-2.3.10.8 {
  1489    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 3.14e+9
  1490  } {abc: 10 10 (3.1400000000e+09) :xyz}
  1491  do_test printf-2.3.10.9 {
  1492    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 3.14e+9
  1493  } {abc: 10 10 (3140000000) :xyz}
  1494  do_test printf-2.3.11.2 {
  1495    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 -4.72732e+88
  1496  } {abc: (-4.7273200000e+88) :xyz}
  1497  do_test printf-2.3.11.3 {
  1498    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 -4.72732e+88
  1499  } {abc: (-4.72732e+88) :xyz}
  1500  do_test printf-2.3.11.4 {
  1501    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 -4.72732e+88
  1502  } {abc: 10 10 (-4.72732e+88) :xyz}
  1503  do_test printf-2.3.11.5 {
  1504    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 -4.72732e+88
  1505  } {abc: 10 10 (-4.72732e+88) :xyz}
  1506  do_test printf-2.3.11.6 {
  1507    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 -4.72732e+88
  1508  } {abc: 10 10 (-4.72732e+88) :xyz}
  1509  do_test printf-2.3.11.8 {
  1510    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 -4.72732e+88
  1511  } {abc: 10 10 (-4.7273200000e+88) :xyz}
  1512  do_test printf-2.3.11.9 {
  1513    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 -4.72732e+88
  1514  } {abc: 10 10 (-4.72732e+88) :xyz}
  1515  do_test printf-2.3.12.2 {
  1516    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 9.87991e+143
  1517  } {abc: (9.8799100000e+143) :xyz}
  1518  do_test printf-2.3.12.3 {
  1519    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 9.87991e+143
  1520  } {abc: (9.87991e+143) :xyz}
  1521  do_test printf-2.3.12.4 {
  1522    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 9.87991e+143
  1523  } {abc: 10 10 (9.87991e+143) :xyz}
  1524  do_test printf-2.3.12.5 {
  1525    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 9.87991e+143
  1526  } {abc: 10 10 (9.87991e+143) :xyz}
  1527  do_test printf-2.3.12.6 {
  1528    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 9.87991e+143
  1529  } {abc: 10 10 (9.87991e+143) :xyz}
  1530  do_test printf-2.3.12.8 {
  1531    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 9.87991e+143
  1532  } {abc: 10 10 (9.8799100000e+143) :xyz}
  1533  do_test printf-2.3.12.9 {
  1534    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 9.87991e+143
  1535  } {abc: 10 10 (9.87991e+143) :xyz}
  1536  do_test printf-2.3.13.1 {
  1537    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 -6.287291e-9
  1538  } {abc: (-0.0000000063) :xyz}
  1539  do_test printf-2.3.13.2 {
  1540    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 -6.287291e-9
  1541  } {abc: (-6.2872910000e-09) :xyz}
  1542  do_test printf-2.3.13.3 {
  1543    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 -6.287291e-9
  1544  } {abc: (-6.287291e-09) :xyz}
  1545  do_test printf-2.3.13.4 {
  1546    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 -6.287291e-9
  1547  } {abc: 10 10 (-6.28729e-09) :xyz}
  1548  do_test printf-2.3.13.5 {
  1549    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 -6.287291e-9
  1550  } {abc: 10 10 (-6.28729e-09) :xyz}
  1551  do_test printf-2.3.13.6 {
  1552    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 -6.287291e-9
  1553  } {abc: 10 10 (-6.28729e-09) :xyz}
  1554  do_test printf-2.3.13.7 {
  1555    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 -6.287291e-9
  1556  } {abc: 10 10 (-0.0000000063) :xyz}
  1557  do_test printf-2.3.13.8 {
  1558    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 -6.287291e-9
  1559  } {abc: 10 10 (-6.2872910000e-09) :xyz}
  1560  do_test printf-2.3.13.9 {
  1561    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 -6.287291e-9
  1562  } {abc: 10 10 (-6.287291e-09) :xyz}
  1563  do_test printf-2.3.14.1 {
  1564    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 3.38826392e-110
  1565  } {abc: (0.0000000000) :xyz}
  1566  do_test printf-2.3.14.2 {
  1567    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 3.38826392e-110
  1568  } {abc: (3.3882639200e-110) :xyz}
  1569  do_test printf-2.3.14.3 {
  1570    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 3.38826392e-110
  1571  } {abc: (3.38826392e-110) :xyz}
  1572  do_test printf-2.3.14.4 {
  1573    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 3.38826392e-110
  1574  } {abc: 10 10 (3.38826e-110) :xyz}
  1575  do_test printf-2.3.14.5 {
  1576    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 3.38826392e-110
  1577  } {abc: 10 10 (3.38826e-110) :xyz}
  1578  do_test printf-2.3.14.6 {
  1579    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 3.38826392e-110
  1580  } {abc: 10 10 (3.38826e-110) :xyz}
  1581  do_test printf-2.3.14.7 {
  1582    sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 3.38826392e-110
  1583  } {abc: 10 10 (0.0000000000) :xyz}
  1584  do_test printf-2.3.14.8 {
  1585    sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 3.38826392e-110
  1586  } {abc: 10 10 (3.3882639200e-110) :xyz}
  1587  do_test printf-2.3.14.9 {
  1588    sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 3.38826392e-110
  1589  } {abc: 10 10 (3.38826392e-110) :xyz}
  1590  do_test printf-2.4.1.1 {
  1591    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 0.001
  1592  } {abc: (   0.00100) :xyz}
  1593  do_test printf-2.4.1.2 {
  1594    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 0.001
  1595  } {abc: (1.00000e-03) :xyz}
  1596  do_test printf-2.4.1.3 {
  1597    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 0.001
  1598  } {abc: (     0.001) :xyz}
  1599  do_test printf-2.4.1.4 {
  1600    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 0.001
  1601  } {abc: 10 5 (0.001) :xyz}
  1602  do_test printf-2.4.1.5 {
  1603    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 0.001
  1604  } {abc: 10 5 (0.00100000) :xyz}
  1605  do_test printf-2.4.1.6 {
  1606    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 0.001
  1607  } {abc: 10 5 (000000.001) :xyz}
  1608  do_test printf-2.4.1.7 {
  1609    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 0.001
  1610  } {abc: 10 5 (   0.00100) :xyz}
  1611  do_test printf-2.4.1.8 {
  1612    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 0.001
  1613  } {abc: 10 5 (1.00000e-03) :xyz}
  1614  do_test printf-2.4.1.9 {
  1615    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 0.001
  1616  } {abc: 10 5 (     0.001) :xyz}
  1617  do_test printf-2.4.2.1 {
  1618    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 1.0e-20
  1619  } {abc: (   0.00000) :xyz}
  1620  do_test printf-2.4.2.2 {
  1621    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 1.0e-20
  1622  } {abc: (1.00000e-20) :xyz}
  1623  do_test printf-2.4.2.3 {
  1624    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 1.0e-20
  1625  } {abc: (     1e-20) :xyz}
  1626  do_test printf-2.4.2.4 {
  1627    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 1.0e-20
  1628  } {abc: 10 5 (1e-20) :xyz}
  1629  do_test printf-2.4.2.5 {
  1630    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 1.0e-20
  1631  } {abc: 10 5 (1.00000e-20) :xyz}
  1632  do_test printf-2.4.2.6 {
  1633    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 1.0e-20
  1634  } {abc: 10 5 (000001e-20) :xyz}
  1635  do_test printf-2.4.2.7 {
  1636    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 1.0e-20
  1637  } {abc: 10 5 (   0.00000) :xyz}
  1638  do_test printf-2.4.2.8 {
  1639    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 1.0e-20
  1640  } {abc: 10 5 (1.00000e-20) :xyz}
  1641  do_test printf-2.4.2.9 {
  1642    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 1.0e-20
  1643  } {abc: 10 5 (     1e-20) :xyz}
  1644  do_test printf-2.4.3.1 {
  1645    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 1.0
  1646  } {abc: (   1.00000) :xyz}
  1647  do_test printf-2.4.3.2 {
  1648    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 1.0
  1649  } {abc: (1.00000e+00) :xyz}
  1650  do_test printf-2.4.3.3 {
  1651    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 1.0
  1652  } {abc: (         1) :xyz}
  1653  do_test printf-2.4.3.4 {
  1654    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 1.0
  1655  } {abc: 10 5 (1) :xyz}
  1656  do_test printf-2.4.3.5 {
  1657    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 1.0
  1658  } {abc: 10 5 (1.00000) :xyz}
  1659  do_test printf-2.4.3.6 {
  1660    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 1.0
  1661  } {abc: 10 5 (0000000001) :xyz}
  1662  do_test printf-2.4.3.7 {
  1663    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 1.0
  1664  } {abc: 10 5 (   1.00000) :xyz}
  1665  do_test printf-2.4.3.8 {
  1666    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 1.0
  1667  } {abc: 10 5 (1.00000e+00) :xyz}
  1668  do_test printf-2.4.3.9 {
  1669    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 1.0
  1670  } {abc: 10 5 (         1) :xyz}
  1671  do_test printf-2.4.4.1 {
  1672    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 0.0
  1673  } {abc: (   0.00000) :xyz}
  1674  do_test printf-2.4.4.2 {
  1675    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 0.0
  1676  } {abc: (0.00000e+00) :xyz}
  1677  do_test printf-2.4.4.3 {
  1678    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 0.0
  1679  } {abc: (         0) :xyz}
  1680  do_test printf-2.4.4.4 {
  1681    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 0.0
  1682  } {abc: 10 5 (0) :xyz}
  1683  do_test printf-2.4.4.5 {
  1684    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 0.0
  1685  } {abc: 10 5 (0.00000) :xyz}
  1686  do_test printf-2.4.4.6 {
  1687    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 0.0
  1688  } {abc: 10 5 (0000000000) :xyz}
  1689  do_test printf-2.4.4.7 {
  1690    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 0.0
  1691  } {abc: 10 5 (   0.00000) :xyz}
  1692  do_test printf-2.4.4.8 {
  1693    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 0.0
  1694  } {abc: 10 5 (0.00000e+00) :xyz}
  1695  do_test printf-2.4.4.9 {
  1696    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 0.0
  1697  } {abc: 10 5 (         0) :xyz}
  1698  do_test printf-2.4.5.1 {
  1699    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 100.0
  1700  } {abc: ( 100.00000) :xyz}
  1701  do_test printf-2.4.5.2 {
  1702    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 100.0
  1703  } {abc: (1.00000e+02) :xyz}
  1704  do_test printf-2.4.5.3 {
  1705    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 100.0
  1706  } {abc: (       100) :xyz}
  1707  do_test printf-2.4.5.4 {
  1708    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 100.0
  1709  } {abc: 10 5 (100) :xyz}
  1710  do_test printf-2.4.5.5 {
  1711    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 100.0
  1712  } {abc: 10 5 (100.000) :xyz}
  1713  do_test printf-2.4.5.6 {
  1714    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 100.0
  1715  } {abc: 10 5 (0000000100) :xyz}
  1716  do_test printf-2.4.5.7 {
  1717    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 100.0
  1718  } {abc: 10 5 ( 100.00000) :xyz}
  1719  do_test printf-2.4.5.8 {
  1720    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 100.0
  1721  } {abc: 10 5 (1.00000e+02) :xyz}
  1722  do_test printf-2.4.5.9 {
  1723    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 100.0
  1724  } {abc: 10 5 (       100) :xyz}
  1725  do_test printf-2.4.6.1 {
  1726    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 9.99999
  1727  } {abc: (   9.99999) :xyz}
  1728  do_test printf-2.4.6.2 {
  1729    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 9.99999
  1730  } {abc: (9.99999e+00) :xyz}
  1731  do_test printf-2.4.6.3 {
  1732    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 9.99999
  1733  } {abc: (        10) :xyz}
  1734  do_test printf-2.4.6.4 {
  1735    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 9.99999
  1736  } {abc: 10 5 (9.99999) :xyz}
  1737  do_test printf-2.4.6.5 {
  1738    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 9.99999
  1739  } {abc: 10 5 (9.99999) :xyz}
  1740  do_test printf-2.4.6.6 {
  1741    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 9.99999
  1742  } {abc: 10 5 (0009.99999) :xyz}
  1743  do_test printf-2.4.6.7 {
  1744    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 9.99999
  1745  } {abc: 10 5 (   9.99999) :xyz}
  1746  do_test printf-2.4.6.8 {
  1747    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 9.99999
  1748  } {abc: 10 5 (9.99999e+00) :xyz}
  1749  do_test printf-2.4.6.9 {
  1750    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 9.99999
  1751  } {abc: 10 5 (        10) :xyz}
  1752  do_test printf-2.4.7.1 {
  1753    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 -0.00543
  1754  } {abc: (  -0.00543) :xyz}
  1755  do_test printf-2.4.7.2 {
  1756    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 -0.00543
  1757  } {abc: (-5.43000e-03) :xyz}
  1758  do_test printf-2.4.7.3 {
  1759    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 -0.00543
  1760  } {abc: (  -0.00543) :xyz}
  1761  do_test printf-2.4.7.4 {
  1762    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 -0.00543
  1763  } {abc: 10 5 (-0.00543) :xyz}
  1764  do_test printf-2.4.7.5 {
  1765    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 -0.00543
  1766  } {abc: 10 5 (-0.00543000) :xyz}
  1767  do_test printf-2.4.7.6 {
  1768    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 -0.00543
  1769  } {abc: 10 5 (-000.00543) :xyz}
  1770  do_test printf-2.4.7.7 {
  1771    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 -0.00543
  1772  } {abc: 10 5 (  -0.00543) :xyz}
  1773  do_test printf-2.4.7.8 {
  1774    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 -0.00543
  1775  } {abc: 10 5 (-5.43000e-03) :xyz}
  1776  do_test printf-2.4.7.9 {
  1777    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 -0.00543
  1778  } {abc: 10 5 (  -0.00543) :xyz}
  1779  do_test printf-2.4.8.1 {
  1780    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 -1.0
  1781  } {abc: (  -1.00000) :xyz}
  1782  do_test printf-2.4.8.2 {
  1783    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 -1.0
  1784  } {abc: (-1.00000e+00) :xyz}
  1785  do_test printf-2.4.8.3 {
  1786    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 -1.0
  1787  } {abc: (        -1) :xyz}
  1788  do_test printf-2.4.8.4 {
  1789    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 -1.0
  1790  } {abc: 10 5 (-1) :xyz}
  1791  do_test printf-2.4.8.5 {
  1792    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 -1.0
  1793  } {abc: 10 5 (-1.00000) :xyz}
  1794  do_test printf-2.4.8.6 {
  1795    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 -1.0
  1796  } {abc: 10 5 (-000000001) :xyz}
  1797  do_test printf-2.4.8.7 {
  1798    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 -1.0
  1799  } {abc: 10 5 (  -1.00000) :xyz}
  1800  do_test printf-2.4.8.8 {
  1801    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 -1.0
  1802  } {abc: 10 5 (-1.00000e+00) :xyz}
  1803  do_test printf-2.4.8.9 {
  1804    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 -1.0
  1805  } {abc: 10 5 (        -1) :xyz}
  1806  do_test printf-2.4.9.1 {
  1807    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 -99.99999
  1808  } {abc: ( -99.99999) :xyz}
  1809  do_test printf-2.4.9.2 {
  1810    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 -99.99999
  1811  } {abc: (-1.00000e+02) :xyz}
  1812  do_test printf-2.4.9.3 {
  1813    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 -99.99999
  1814  } {abc: (      -100) :xyz}
  1815  do_test printf-2.4.9.4 {
  1816    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 -99.99999
  1817  } {abc: 10 5 (-100) :xyz}
  1818  do_test printf-2.4.9.5 {
  1819    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 -99.99999
  1820  } {abc: 10 5 (-100.000) :xyz}
  1821  do_test printf-2.4.9.6 {
  1822    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 -99.99999
  1823  } {abc: 10 5 (-000000100) :xyz}
  1824  do_test printf-2.4.9.7 {
  1825    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 -99.99999
  1826  } {abc: 10 5 ( -99.99999) :xyz}
  1827  do_test printf-2.4.9.8 {
  1828    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 -99.99999
  1829  } {abc: 10 5 (-1.00000e+02) :xyz}
  1830  do_test printf-2.4.9.9 {
  1831    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 -99.99999
  1832  } {abc: 10 5 (      -100) :xyz}
  1833  do_test printf-2.4.10.1 {
  1834    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 3.14e+9
  1835  } {abc: (3140000000.00000) :xyz}
  1836  do_test printf-2.4.10.2 {
  1837    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 3.14e+9
  1838  } {abc: (3.14000e+09) :xyz}
  1839  do_test printf-2.4.10.3 {
  1840    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 3.14e+9
  1841  } {abc: (  3.14e+09) :xyz}
  1842  do_test printf-2.4.10.4 {
  1843    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 3.14e+9
  1844  } {abc: 10 5 (3.14e+09) :xyz}
  1845  do_test printf-2.4.10.5 {
  1846    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 3.14e+9
  1847  } {abc: 10 5 (3.14000e+09) :xyz}
  1848  do_test printf-2.4.10.6 {
  1849    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 3.14e+9
  1850  } {abc: 10 5 (003.14e+09) :xyz}
  1851  do_test printf-2.4.10.7 {
  1852    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 3.14e+9
  1853  } {abc: 10 5 (3140000000.00000) :xyz}
  1854  do_test printf-2.4.10.8 {
  1855    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 3.14e+9
  1856  } {abc: 10 5 (3.14000e+09) :xyz}
  1857  do_test printf-2.4.10.9 {
  1858    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 3.14e+9
  1859  } {abc: 10 5 (  3.14e+09) :xyz}
  1860  do_test printf-2.4.11.2 {
  1861    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 -4.72732e+88
  1862  } {abc: (-4.72732e+88) :xyz}
  1863  do_test printf-2.4.11.3 {
  1864    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 -4.72732e+88
  1865  } {abc: (-4.7273e+88) :xyz}
  1866  do_test printf-2.4.11.4 {
  1867    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 -4.72732e+88
  1868  } {abc: 10 5 (-4.72732e+88) :xyz}
  1869  do_test printf-2.4.11.5 {
  1870    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 -4.72732e+88
  1871  } {abc: 10 5 (-4.72732e+88) :xyz}
  1872  do_test printf-2.4.11.6 {
  1873    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 -4.72732e+88
  1874  } {abc: 10 5 (-4.72732e+88) :xyz}
  1875  do_test printf-2.4.11.8 {
  1876    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 -4.72732e+88
  1877  } {abc: 10 5 (-4.72732e+88) :xyz}
  1878  do_test printf-2.4.11.9 {
  1879    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 -4.72732e+88
  1880  } {abc: 10 5 (-4.7273e+88) :xyz}
  1881  do_test printf-2.4.12.2 {
  1882    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 9.87991e+143
  1883  } {abc: (9.87991e+143) :xyz}
  1884  do_test printf-2.4.12.3 {
  1885    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 9.87991e+143
  1886  } {abc: (9.8799e+143) :xyz}
  1887  do_test printf-2.4.12.4 {
  1888    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 9.87991e+143
  1889  } {abc: 10 5 (9.87991e+143) :xyz}
  1890  do_test printf-2.4.12.5 {
  1891    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 9.87991e+143
  1892  } {abc: 10 5 (9.87991e+143) :xyz}
  1893  do_test printf-2.4.12.6 {
  1894    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 9.87991e+143
  1895  } {abc: 10 5 (9.87991e+143) :xyz}
  1896  do_test printf-2.4.12.8 {
  1897    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 9.87991e+143
  1898  } {abc: 10 5 (9.87991e+143) :xyz}
  1899  do_test printf-2.4.12.9 {
  1900    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 9.87991e+143
  1901  } {abc: 10 5 (9.8799e+143) :xyz}
  1902  do_test printf-2.4.13.1 {
  1903    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 -6.287291e-9
  1904  } {abc: (  -0.00000) :xyz}
  1905  do_test printf-2.4.13.2 {
  1906    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 -6.287291e-9
  1907  } {abc: (-6.28729e-09) :xyz}
  1908  do_test printf-2.4.13.3 {
  1909    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 -6.287291e-9
  1910  } {abc: (-6.2873e-09) :xyz}
  1911  do_test printf-2.4.13.4 {
  1912    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 -6.287291e-9
  1913  } {abc: 10 5 (-6.28729e-09) :xyz}
  1914  do_test printf-2.4.13.5 {
  1915    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 -6.287291e-9
  1916  } {abc: 10 5 (-6.28729e-09) :xyz}
  1917  do_test printf-2.4.13.6 {
  1918    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 -6.287291e-9
  1919  } {abc: 10 5 (-6.28729e-09) :xyz}
  1920  do_test printf-2.4.13.7 {
  1921    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 -6.287291e-9
  1922  } {abc: 10 5 (  -0.00000) :xyz}
  1923  do_test printf-2.4.13.8 {
  1924    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 -6.287291e-9
  1925  } {abc: 10 5 (-6.28729e-09) :xyz}
  1926  do_test printf-2.4.13.9 {
  1927    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 -6.287291e-9
  1928  } {abc: 10 5 (-6.2873e-09) :xyz}
  1929  do_test printf-2.4.14.1 {
  1930    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 3.38826392e-110
  1931  } {abc: (   0.00000) :xyz}
  1932  do_test printf-2.4.14.2 {
  1933    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 3.38826392e-110
  1934  } {abc: (3.38826e-110) :xyz}
  1935  do_test printf-2.4.14.3 {
  1936    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 3.38826392e-110
  1937  } {abc: (3.3883e-110) :xyz}
  1938  do_test printf-2.4.14.4 {
  1939    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 3.38826392e-110
  1940  } {abc: 10 5 (3.38826e-110) :xyz}
  1941  do_test printf-2.4.14.5 {
  1942    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 3.38826392e-110
  1943  } {abc: 10 5 (3.38826e-110) :xyz}
  1944  do_test printf-2.4.14.6 {
  1945    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 3.38826392e-110
  1946  } {abc: 10 5 (3.38826e-110) :xyz}
  1947  do_test printf-2.4.14.7 {
  1948    sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 3.38826392e-110
  1949  } {abc: 10 5 (   0.00000) :xyz}
  1950  do_test printf-2.4.14.8 {
  1951    sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 3.38826392e-110
  1952  } {abc: 10 5 (3.38826e-110) :xyz}
  1953  do_test printf-2.4.14.9 {
  1954    sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 3.38826392e-110
  1955  } {abc: 10 5 (3.3883e-110) :xyz}
  1956  do_test printf-2.5.1.1 {
  1957    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 0.001
  1958  } {abc: (0.00) :xyz}
  1959  do_test printf-2.5.1.2 {
  1960    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 0.001
  1961  } {abc: (1.00e-03) :xyz}
  1962  do_test printf-2.5.1.3 {
  1963    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 0.001
  1964  } {abc: (0.001) :xyz}
  1965  do_test printf-2.5.1.4 {
  1966    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 0.001
  1967  } {abc: 2 2 (0.001) :xyz}
  1968  do_test printf-2.5.1.5 {
  1969    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 0.001
  1970  } {abc: 2 2 (0.00100000) :xyz}
  1971  do_test printf-2.5.1.6 {
  1972    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 0.001
  1973  } {abc: 2 2 (000000.001) :xyz}
  1974  do_test printf-2.5.1.7 {
  1975    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 0.001
  1976  } {abc: 2 2 (0.00) :xyz}
  1977  do_test printf-2.5.1.8 {
  1978    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 0.001
  1979  } {abc: 2 2 (1.00e-03) :xyz}
  1980  do_test printf-2.5.1.9 {
  1981    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 0.001
  1982  } {abc: 2 2 (0.001) :xyz}
  1983  do_test printf-2.5.2.1 {
  1984    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 1.0e-20
  1985  } {abc: (0.00) :xyz}
  1986  do_test printf-2.5.2.2 {
  1987    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 1.0e-20
  1988  } {abc: (1.00e-20) :xyz}
  1989  do_test printf-2.5.2.3 {
  1990    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 1.0e-20
  1991  } {abc: (1e-20) :xyz}
  1992  do_test printf-2.5.2.4 {
  1993    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 1.0e-20
  1994  } {abc: 2 2 (1e-20) :xyz}
  1995  do_test printf-2.5.2.5 {
  1996    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 1.0e-20
  1997  } {abc: 2 2 (1.00000e-20) :xyz}
  1998  do_test printf-2.5.2.6 {
  1999    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 1.0e-20
  2000  } {abc: 2 2 (000001e-20) :xyz}
  2001  do_test printf-2.5.2.7 {
  2002    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 1.0e-20
  2003  } {abc: 2 2 (0.00) :xyz}
  2004  do_test printf-2.5.2.8 {
  2005    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 1.0e-20
  2006  } {abc: 2 2 (1.00e-20) :xyz}
  2007  do_test printf-2.5.2.9 {
  2008    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 1.0e-20
  2009  } {abc: 2 2 (1e-20) :xyz}
  2010  do_test printf-2.5.3.1 {
  2011    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 1.0
  2012  } {abc: (1.00) :xyz}
  2013  do_test printf-2.5.3.2 {
  2014    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 1.0
  2015  } {abc: (1.00e+00) :xyz}
  2016  do_test printf-2.5.3.3 {
  2017    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 1.0
  2018  } {abc: ( 1) :xyz}
  2019  do_test printf-2.5.3.4 {
  2020    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 1.0
  2021  } {abc: 2 2 (1) :xyz}
  2022  do_test printf-2.5.3.5 {
  2023    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 1.0
  2024  } {abc: 2 2 (1.00000) :xyz}
  2025  do_test printf-2.5.3.6 {
  2026    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 1.0
  2027  } {abc: 2 2 (0000000001) :xyz}
  2028  do_test printf-2.5.3.7 {
  2029    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 1.0
  2030  } {abc: 2 2 (1.00) :xyz}
  2031  do_test printf-2.5.3.8 {
  2032    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 1.0
  2033  } {abc: 2 2 (1.00e+00) :xyz}
  2034  do_test printf-2.5.3.9 {
  2035    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 1.0
  2036  } {abc: 2 2 ( 1) :xyz}
  2037  do_test printf-2.5.4.1 {
  2038    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 0.0
  2039  } {abc: (0.00) :xyz}
  2040  do_test printf-2.5.4.2 {
  2041    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 0.0
  2042  } {abc: (0.00e+00) :xyz}
  2043  do_test printf-2.5.4.3 {
  2044    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 0.0
  2045  } {abc: ( 0) :xyz}
  2046  do_test printf-2.5.4.4 {
  2047    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 0.0
  2048  } {abc: 2 2 (0) :xyz}
  2049  do_test printf-2.5.4.5 {
  2050    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 0.0
  2051  } {abc: 2 2 (0.00000) :xyz}
  2052  do_test printf-2.5.4.6 {
  2053    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 0.0
  2054  } {abc: 2 2 (0000000000) :xyz}
  2055  do_test printf-2.5.4.7 {
  2056    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 0.0
  2057  } {abc: 2 2 (0.00) :xyz}
  2058  do_test printf-2.5.4.8 {
  2059    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 0.0
  2060  } {abc: 2 2 (0.00e+00) :xyz}
  2061  do_test printf-2.5.4.9 {
  2062    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 0.0
  2063  } {abc: 2 2 ( 0) :xyz}
  2064  do_test printf-2.5.5.1 {
  2065    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 100.0
  2066  } {abc: (100.00) :xyz}
  2067  do_test printf-2.5.5.2 {
  2068    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 100.0
  2069  } {abc: (1.00e+02) :xyz}
  2070  do_test printf-2.5.5.3 {
  2071    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 100.0
  2072  } {abc: (1e+02) :xyz}
  2073  do_test printf-2.5.5.4 {
  2074    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 100.0
  2075  } {abc: 2 2 (100) :xyz}
  2076  do_test printf-2.5.5.5 {
  2077    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 100.0
  2078  } {abc: 2 2 (100.000) :xyz}
  2079  do_test printf-2.5.5.6 {
  2080    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 100.0
  2081  } {abc: 2 2 (0000000100) :xyz}
  2082  do_test printf-2.5.5.7 {
  2083    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 100.0
  2084  } {abc: 2 2 (100.00) :xyz}
  2085  do_test printf-2.5.5.8 {
  2086    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 100.0
  2087  } {abc: 2 2 (1.00e+02) :xyz}
  2088  do_test printf-2.5.5.9 {
  2089    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 100.0
  2090  } {abc: 2 2 (1e+02) :xyz}
  2091  do_test printf-2.5.6.1 {
  2092    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 9.99999
  2093  } {abc: (10.00) :xyz}
  2094  do_test printf-2.5.6.2 {
  2095    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 9.99999
  2096  } {abc: (1.00e+01) :xyz}
  2097  do_test printf-2.5.6.3 {
  2098    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 9.99999
  2099  } {abc: (10) :xyz}
  2100  do_test printf-2.5.6.4 {
  2101    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 9.99999
  2102  } {abc: 2 2 (9.99999) :xyz}
  2103  do_test printf-2.5.6.5 {
  2104    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 9.99999
  2105  } {abc: 2 2 (9.99999) :xyz}
  2106  do_test printf-2.5.6.6 {
  2107    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 9.99999
  2108  } {abc: 2 2 (0009.99999) :xyz}
  2109  do_test printf-2.5.6.7 {
  2110    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 9.99999
  2111  } {abc: 2 2 (10.00) :xyz}
  2112  do_test printf-2.5.6.8 {
  2113    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 9.99999
  2114  } {abc: 2 2 (1.00e+01) :xyz}
  2115  do_test printf-2.5.6.9 {
  2116    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 9.99999
  2117  } {abc: 2 2 (10) :xyz}
  2118  do_test printf-2.5.7.1 {
  2119    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 -0.00543
  2120  } {abc: (-0.01) :xyz}
  2121  do_test printf-2.5.7.2 {
  2122    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 -0.00543
  2123  } {abc: (-5.43e-03) :xyz}
  2124  do_test printf-2.5.7.3 {
  2125    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 -0.00543
  2126  } {abc: (-0.0054) :xyz}
  2127  do_test printf-2.5.7.4 {
  2128    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 -0.00543
  2129  } {abc: 2 2 (-0.00543) :xyz}
  2130  do_test printf-2.5.7.5 {
  2131    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 -0.00543
  2132  } {abc: 2 2 (-0.00543000) :xyz}
  2133  do_test printf-2.5.7.6 {
  2134    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 -0.00543
  2135  } {abc: 2 2 (-000.00543) :xyz}
  2136  do_test printf-2.5.7.7 {
  2137    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 -0.00543
  2138  } {abc: 2 2 (-0.01) :xyz}
  2139  do_test printf-2.5.7.8 {
  2140    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 -0.00543
  2141  } {abc: 2 2 (-5.43e-03) :xyz}
  2142  do_test printf-2.5.7.9 {
  2143    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 -0.00543
  2144  } {abc: 2 2 (-0.0054) :xyz}
  2145  do_test printf-2.5.8.1 {
  2146    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 -1.0
  2147  } {abc: (-1.00) :xyz}
  2148  do_test printf-2.5.8.2 {
  2149    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 -1.0
  2150  } {abc: (-1.00e+00) :xyz}
  2151  do_test printf-2.5.8.3 {
  2152    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 -1.0
  2153  } {abc: (-1) :xyz}
  2154  do_test printf-2.5.8.4 {
  2155    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 -1.0
  2156  } {abc: 2 2 (-1) :xyz}
  2157  do_test printf-2.5.8.5 {
  2158    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 -1.0
  2159  } {abc: 2 2 (-1.00000) :xyz}
  2160  do_test printf-2.5.8.6 {
  2161    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 -1.0
  2162  } {abc: 2 2 (-000000001) :xyz}
  2163  do_test printf-2.5.8.7 {
  2164    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 -1.0
  2165  } {abc: 2 2 (-1.00) :xyz}
  2166  do_test printf-2.5.8.8 {
  2167    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 -1.0
  2168  } {abc: 2 2 (-1.00e+00) :xyz}
  2169  do_test printf-2.5.8.9 {
  2170    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 -1.0
  2171  } {abc: 2 2 (-1) :xyz}
  2172  do_test printf-2.5.9.1 {
  2173    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 -99.99999
  2174  } {abc: (-100.00) :xyz}
  2175  do_test printf-2.5.9.2 {
  2176    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 -99.99999
  2177  } {abc: (-1.00e+02) :xyz}
  2178  do_test printf-2.5.9.3 {
  2179    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 -99.99999
  2180  } {abc: (-1e+02) :xyz}
  2181  do_test printf-2.5.9.4 {
  2182    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 -99.99999
  2183  } {abc: 2 2 (-100) :xyz}
  2184  do_test printf-2.5.9.5 {
  2185    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 -99.99999
  2186  } {abc: 2 2 (-100.000) :xyz}
  2187  do_test printf-2.5.9.6 {
  2188    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 -99.99999
  2189  } {abc: 2 2 (-000000100) :xyz}
  2190  do_test printf-2.5.9.7 {
  2191    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 -99.99999
  2192  } {abc: 2 2 (-100.00) :xyz}
  2193  do_test printf-2.5.9.8 {
  2194    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 -99.99999
  2195  } {abc: 2 2 (-1.00e+02) :xyz}
  2196  do_test printf-2.5.9.9 {
  2197    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 -99.99999
  2198  } {abc: 2 2 (-1e+02) :xyz}
  2199  do_test printf-2.5.10.1 {
  2200    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 3.14e+9
  2201  } {abc: (3140000000.00) :xyz}
  2202  do_test printf-2.5.10.2 {
  2203    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 3.14e+9
  2204  } {abc: (3.14e+09) :xyz}
  2205  do_test printf-2.5.10.3 {
  2206    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 3.14e+9
  2207  } {abc: (3.1e+09) :xyz}
  2208  do_test printf-2.5.10.4 {
  2209    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 3.14e+9
  2210  } {abc: 2 2 (3.14e+09) :xyz}
  2211  do_test printf-2.5.10.5 {
  2212    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 3.14e+9
  2213  } {abc: 2 2 (3.14000e+09) :xyz}
  2214  do_test printf-2.5.10.6 {
  2215    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 3.14e+9
  2216  } {abc: 2 2 (003.14e+09) :xyz}
  2217  do_test printf-2.5.10.7 {
  2218    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 3.14e+9
  2219  } {abc: 2 2 (3140000000.00) :xyz}
  2220  do_test printf-2.5.10.8 {
  2221    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 3.14e+9
  2222  } {abc: 2 2 (3.14e+09) :xyz}
  2223  do_test printf-2.5.10.9 {
  2224    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 3.14e+9
  2225  } {abc: 2 2 (3.1e+09) :xyz}
  2226  do_test printf-2.5.11.2 {
  2227    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 -4.72732e+88
  2228  } {abc: (-4.73e+88) :xyz}
  2229  do_test printf-2.5.11.3 {
  2230    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 -4.72732e+88
  2231  } {abc: (-4.7e+88) :xyz}
  2232  do_test printf-2.5.11.4 {
  2233    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 -4.72732e+88
  2234  } {abc: 2 2 (-4.72732e+88) :xyz}
  2235  do_test printf-2.5.11.5 {
  2236    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 -4.72732e+88
  2237  } {abc: 2 2 (-4.72732e+88) :xyz}
  2238  do_test printf-2.5.11.6 {
  2239    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 -4.72732e+88
  2240  } {abc: 2 2 (-4.72732e+88) :xyz}
  2241  do_test printf-2.5.11.8 {
  2242    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 -4.72732e+88
  2243  } {abc: 2 2 (-4.73e+88) :xyz}
  2244  do_test printf-2.5.11.9 {
  2245    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 -4.72732e+88
  2246  } {abc: 2 2 (-4.7e+88) :xyz}
  2247  do_test printf-2.5.12.2 {
  2248    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 9.87991e+143
  2249  } {abc: (9.88e+143) :xyz}
  2250  do_test printf-2.5.12.3 {
  2251    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 9.87991e+143
  2252  } {abc: (9.9e+143) :xyz}
  2253  do_test printf-2.5.12.4 {
  2254    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 9.87991e+143
  2255  } {abc: 2 2 (9.87991e+143) :xyz}
  2256  do_test printf-2.5.12.5 {
  2257    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 9.87991e+143
  2258  } {abc: 2 2 (9.87991e+143) :xyz}
  2259  do_test printf-2.5.12.6 {
  2260    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 9.87991e+143
  2261  } {abc: 2 2 (9.87991e+143) :xyz}
  2262  do_test printf-2.5.12.8 {
  2263    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 9.87991e+143
  2264  } {abc: 2 2 (9.88e+143) :xyz}
  2265  do_test printf-2.5.12.9 {
  2266    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 9.87991e+143
  2267  } {abc: 2 2 (9.9e+143) :xyz}
  2268  do_test printf-2.5.13.1 {
  2269    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 -6.287291e-9
  2270  } {abc: (-0.00) :xyz}
  2271  do_test printf-2.5.13.2 {
  2272    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 -6.287291e-9
  2273  } {abc: (-6.29e-09) :xyz}
  2274  do_test printf-2.5.13.3 {
  2275    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 -6.287291e-9
  2276  } {abc: (-6.3e-09) :xyz}
  2277  do_test printf-2.5.13.4 {
  2278    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 -6.287291e-9
  2279  } {abc: 2 2 (-6.28729e-09) :xyz}
  2280  do_test printf-2.5.13.5 {
  2281    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 -6.287291e-9
  2282  } {abc: 2 2 (-6.28729e-09) :xyz}
  2283  do_test printf-2.5.13.6 {
  2284    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 -6.287291e-9
  2285  } {abc: 2 2 (-6.28729e-09) :xyz}
  2286  do_test printf-2.5.13.7 {
  2287    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 -6.287291e-9
  2288  } {abc: 2 2 (-0.00) :xyz}
  2289  do_test printf-2.5.13.8 {
  2290    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 -6.287291e-9
  2291  } {abc: 2 2 (-6.29e-09) :xyz}
  2292  do_test printf-2.5.13.9 {
  2293    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 -6.287291e-9
  2294  } {abc: 2 2 (-6.3e-09) :xyz}
  2295  do_test printf-2.5.14.1 {
  2296    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 3.38826392e-110
  2297  } {abc: (0.00) :xyz}
  2298  do_test printf-2.5.14.2 {
  2299    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 3.38826392e-110
  2300  } {abc: (3.39e-110) :xyz}
  2301  do_test printf-2.5.14.3 {
  2302    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 3.38826392e-110
  2303  } {abc: (3.4e-110) :xyz}
  2304  do_test printf-2.5.14.4 {
  2305    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 3.38826392e-110
  2306  } {abc: 2 2 (3.38826e-110) :xyz}
  2307  do_test printf-2.5.14.5 {
  2308    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 3.38826392e-110
  2309  } {abc: 2 2 (3.38826e-110) :xyz}
  2310  do_test printf-2.5.14.6 {
  2311    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 3.38826392e-110
  2312  } {abc: 2 2 (3.38826e-110) :xyz}
  2313  do_test printf-2.5.14.7 {
  2314    sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 3.38826392e-110
  2315  } {abc: 2 2 (0.00) :xyz}
  2316  do_test printf-2.5.14.8 {
  2317    sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 3.38826392e-110
  2318  } {abc: 2 2 (3.39e-110) :xyz}
  2319  do_test printf-2.5.14.9 {
  2320    sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 3.38826392e-110
  2321  } {abc: 2 2 (3.4e-110) :xyz}
  2322  do_test printf-2.6.1.1 {
  2323    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 0.001
  2324  } {abc: (0.001) :xyz}
  2325  do_test printf-2.6.1.2 {
  2326    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 0.001
  2327  } {abc: (1.000e-03) :xyz}
  2328  do_test printf-2.6.1.3 {
  2329    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 0.001
  2330  } {abc: (0.001) :xyz}
  2331  do_test printf-2.6.1.4 {
  2332    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 0.001
  2333  } {abc: 2 3 (0.001) :xyz}
  2334  do_test printf-2.6.1.5 {
  2335    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 0.001
  2336  } {abc: 2 3 (0.00100000) :xyz}
  2337  do_test printf-2.6.1.6 {
  2338    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 0.001
  2339  } {abc: 2 3 (000000.001) :xyz}
  2340  do_test printf-2.6.1.7 {
  2341    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 0.001
  2342  } {abc: 2 3 (0.001) :xyz}
  2343  do_test printf-2.6.1.8 {
  2344    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 0.001
  2345  } {abc: 2 3 (1.000e-03) :xyz}
  2346  do_test printf-2.6.1.9 {
  2347    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 0.001
  2348  } {abc: 2 3 (0.001) :xyz}
  2349  do_test printf-2.6.2.1 {
  2350    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 1.0e-20
  2351  } {abc: (0.000) :xyz}
  2352  do_test printf-2.6.2.2 {
  2353    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 1.0e-20
  2354  } {abc: (1.000e-20) :xyz}
  2355  do_test printf-2.6.2.3 {
  2356    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 1.0e-20
  2357  } {abc: (1e-20) :xyz}
  2358  do_test printf-2.6.2.4 {
  2359    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 1.0e-20
  2360  } {abc: 2 3 (1e-20) :xyz}
  2361  do_test printf-2.6.2.5 {
  2362    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 1.0e-20
  2363  } {abc: 2 3 (1.00000e-20) :xyz}
  2364  do_test printf-2.6.2.6 {
  2365    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 1.0e-20
  2366  } {abc: 2 3 (000001e-20) :xyz}
  2367  do_test printf-2.6.2.7 {
  2368    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 1.0e-20
  2369  } {abc: 2 3 (0.000) :xyz}
  2370  do_test printf-2.6.2.8 {
  2371    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 1.0e-20
  2372  } {abc: 2 3 (1.000e-20) :xyz}
  2373  do_test printf-2.6.2.9 {
  2374    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 1.0e-20
  2375  } {abc: 2 3 (1e-20) :xyz}
  2376  do_test printf-2.6.3.1 {
  2377    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 1.0
  2378  } {abc: (1.000) :xyz}
  2379  do_test printf-2.6.3.2 {
  2380    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 1.0
  2381  } {abc: (1.000e+00) :xyz}
  2382  do_test printf-2.6.3.3 {
  2383    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 1.0
  2384  } {abc: ( 1) :xyz}
  2385  do_test printf-2.6.3.4 {
  2386    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 1.0
  2387  } {abc: 2 3 (1) :xyz}
  2388  do_test printf-2.6.3.5 {
  2389    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 1.0
  2390  } {abc: 2 3 (1.00000) :xyz}
  2391  do_test printf-2.6.3.6 {
  2392    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 1.0
  2393  } {abc: 2 3 (0000000001) :xyz}
  2394  do_test printf-2.6.3.7 {
  2395    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 1.0
  2396  } {abc: 2 3 (1.000) :xyz}
  2397  do_test printf-2.6.3.8 {
  2398    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 1.0
  2399  } {abc: 2 3 (1.000e+00) :xyz}
  2400  do_test printf-2.6.3.9 {
  2401    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 1.0
  2402  } {abc: 2 3 ( 1) :xyz}
  2403  do_test printf-2.6.4.1 {
  2404    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 0.0
  2405  } {abc: (0.000) :xyz}
  2406  do_test printf-2.6.4.2 {
  2407    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 0.0
  2408  } {abc: (0.000e+00) :xyz}
  2409  do_test printf-2.6.4.3 {
  2410    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 0.0
  2411  } {abc: ( 0) :xyz}
  2412  do_test printf-2.6.4.4 {
  2413    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 0.0
  2414  } {abc: 2 3 (0) :xyz}
  2415  do_test printf-2.6.4.5 {
  2416    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 0.0
  2417  } {abc: 2 3 (0.00000) :xyz}
  2418  do_test printf-2.6.4.6 {
  2419    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 0.0
  2420  } {abc: 2 3 (0000000000) :xyz}
  2421  do_test printf-2.6.4.7 {
  2422    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 0.0
  2423  } {abc: 2 3 (0.000) :xyz}
  2424  do_test printf-2.6.4.8 {
  2425    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 0.0
  2426  } {abc: 2 3 (0.000e+00) :xyz}
  2427  do_test printf-2.6.4.9 {
  2428    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 0.0
  2429  } {abc: 2 3 ( 0) :xyz}
  2430  do_test printf-2.6.5.1 {
  2431    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 100.0
  2432  } {abc: (100.000) :xyz}
  2433  do_test printf-2.6.5.2 {
  2434    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 100.0
  2435  } {abc: (1.000e+02) :xyz}
  2436  do_test printf-2.6.5.3 {
  2437    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 100.0
  2438  } {abc: (100) :xyz}
  2439  do_test printf-2.6.5.4 {
  2440    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 100.0
  2441  } {abc: 2 3 (100) :xyz}
  2442  do_test printf-2.6.5.5 {
  2443    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 100.0
  2444  } {abc: 2 3 (100.000) :xyz}
  2445  do_test printf-2.6.5.6 {
  2446    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 100.0
  2447  } {abc: 2 3 (0000000100) :xyz}
  2448  do_test printf-2.6.5.7 {
  2449    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 100.0
  2450  } {abc: 2 3 (100.000) :xyz}
  2451  do_test printf-2.6.5.8 {
  2452    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 100.0
  2453  } {abc: 2 3 (1.000e+02) :xyz}
  2454  do_test printf-2.6.5.9 {
  2455    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 100.0
  2456  } {abc: 2 3 (100) :xyz}
  2457  do_test printf-2.6.6.1 {
  2458    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 9.99999
  2459  } {abc: (10.000) :xyz}
  2460  do_test printf-2.6.6.2 {
  2461    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 9.99999
  2462  } {abc: (1.000e+01) :xyz}
  2463  do_test printf-2.6.6.3 {
  2464    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 9.99999
  2465  } {abc: (10) :xyz}
  2466  do_test printf-2.6.6.4 {
  2467    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 9.99999
  2468  } {abc: 2 3 (9.99999) :xyz}
  2469  do_test printf-2.6.6.5 {
  2470    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 9.99999
  2471  } {abc: 2 3 (9.99999) :xyz}
  2472  do_test printf-2.6.6.6 {
  2473    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 9.99999
  2474  } {abc: 2 3 (0009.99999) :xyz}
  2475  do_test printf-2.6.6.7 {
  2476    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 9.99999
  2477  } {abc: 2 3 (10.000) :xyz}
  2478  do_test printf-2.6.6.8 {
  2479    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 9.99999
  2480  } {abc: 2 3 (1.000e+01) :xyz}
  2481  do_test printf-2.6.6.9 {
  2482    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 9.99999
  2483  } {abc: 2 3 (10) :xyz}
  2484  do_test printf-2.6.7.1 {
  2485    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 -0.00543
  2486  } {abc: (-0.005) :xyz}
  2487  do_test printf-2.6.7.2 {
  2488    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 -0.00543
  2489  } {abc: (-5.430e-03) :xyz}
  2490  do_test printf-2.6.7.3 {
  2491    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 -0.00543
  2492  } {abc: (-0.00543) :xyz}
  2493  do_test printf-2.6.7.4 {
  2494    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 -0.00543
  2495  } {abc: 2 3 (-0.00543) :xyz}
  2496  do_test printf-2.6.7.5 {
  2497    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 -0.00543
  2498  } {abc: 2 3 (-0.00543000) :xyz}
  2499  do_test printf-2.6.7.6 {
  2500    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 -0.00543
  2501  } {abc: 2 3 (-000.00543) :xyz}
  2502  do_test printf-2.6.7.7 {
  2503    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 -0.00543
  2504  } {abc: 2 3 (-0.005) :xyz}
  2505  do_test printf-2.6.7.8 {
  2506    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 -0.00543
  2507  } {abc: 2 3 (-5.430e-03) :xyz}
  2508  do_test printf-2.6.7.9 {
  2509    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 -0.00543
  2510  } {abc: 2 3 (-0.00543) :xyz}
  2511  do_test printf-2.6.8.1 {
  2512    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 -1.0
  2513  } {abc: (-1.000) :xyz}
  2514  do_test printf-2.6.8.2 {
  2515    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 -1.0
  2516  } {abc: (-1.000e+00) :xyz}
  2517  do_test printf-2.6.8.3 {
  2518    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 -1.0
  2519  } {abc: (-1) :xyz}
  2520  do_test printf-2.6.8.4 {
  2521    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 -1.0
  2522  } {abc: 2 3 (-1) :xyz}
  2523  do_test printf-2.6.8.5 {
  2524    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 -1.0
  2525  } {abc: 2 3 (-1.00000) :xyz}
  2526  do_test printf-2.6.8.6 {
  2527    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 -1.0
  2528  } {abc: 2 3 (-000000001) :xyz}
  2529  do_test printf-2.6.8.7 {
  2530    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 -1.0
  2531  } {abc: 2 3 (-1.000) :xyz}
  2532  do_test printf-2.6.8.8 {
  2533    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 -1.0
  2534  } {abc: 2 3 (-1.000e+00) :xyz}
  2535  do_test printf-2.6.8.9 {
  2536    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 -1.0
  2537  } {abc: 2 3 (-1) :xyz}
  2538  do_test printf-2.6.9.1 {
  2539    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 -99.99999
  2540  } {abc: (-100.000) :xyz}
  2541  do_test printf-2.6.9.2 {
  2542    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 -99.99999
  2543  } {abc: (-1.000e+02) :xyz}
  2544  do_test printf-2.6.9.3 {
  2545    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 -99.99999
  2546  } {abc: (-100) :xyz}
  2547  do_test printf-2.6.9.4 {
  2548    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 -99.99999
  2549  } {abc: 2 3 (-100) :xyz}
  2550  do_test printf-2.6.9.5 {
  2551    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 -99.99999
  2552  } {abc: 2 3 (-100.000) :xyz}
  2553  do_test printf-2.6.9.6 {
  2554    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 -99.99999
  2555  } {abc: 2 3 (-000000100) :xyz}
  2556  do_test printf-2.6.9.7 {
  2557    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 -99.99999
  2558  } {abc: 2 3 (-100.000) :xyz}
  2559  do_test printf-2.6.9.8 {
  2560    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 -99.99999
  2561  } {abc: 2 3 (-1.000e+02) :xyz}
  2562  do_test printf-2.6.9.9 {
  2563    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 -99.99999
  2564  } {abc: 2 3 (-100) :xyz}
  2565  do_test printf-2.6.10.1 {
  2566    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 3.14e+9
  2567  } {abc: (3140000000.000) :xyz}
  2568  do_test printf-2.6.10.2 {
  2569    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 3.14e+9
  2570  } {abc: (3.140e+09) :xyz}
  2571  do_test printf-2.6.10.3 {
  2572    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 3.14e+9
  2573  } {abc: (3.14e+09) :xyz}
  2574  do_test printf-2.6.10.4 {
  2575    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 3.14e+9
  2576  } {abc: 2 3 (3.14e+09) :xyz}
  2577  do_test printf-2.6.10.5 {
  2578    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 3.14e+9
  2579  } {abc: 2 3 (3.14000e+09) :xyz}
  2580  do_test printf-2.6.10.6 {
  2581    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 3.14e+9
  2582  } {abc: 2 3 (003.14e+09) :xyz}
  2583  do_test printf-2.6.10.7 {
  2584    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 3.14e+9
  2585  } {abc: 2 3 (3140000000.000) :xyz}
  2586  do_test printf-2.6.10.8 {
  2587    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 3.14e+9
  2588  } {abc: 2 3 (3.140e+09) :xyz}
  2589  do_test printf-2.6.10.9 {
  2590    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 3.14e+9
  2591  } {abc: 2 3 (3.14e+09) :xyz}
  2592  do_test printf-2.6.11.2 {
  2593    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 -4.72732e+88
  2594  } {abc: (-4.727e+88) :xyz}
  2595  do_test printf-2.6.11.3 {
  2596    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 -4.72732e+88
  2597  } {abc: (-4.73e+88) :xyz}
  2598  do_test printf-2.6.11.4 {
  2599    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 -4.72732e+88
  2600  } {abc: 2 3 (-4.72732e+88) :xyz}
  2601  do_test printf-2.6.11.5 {
  2602    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 -4.72732e+88
  2603  } {abc: 2 3 (-4.72732e+88) :xyz}
  2604  do_test printf-2.6.11.6 {
  2605    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 -4.72732e+88
  2606  } {abc: 2 3 (-4.72732e+88) :xyz}
  2607  do_test printf-2.6.11.8 {
  2608    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 -4.72732e+88
  2609  } {abc: 2 3 (-4.727e+88) :xyz}
  2610  do_test printf-2.6.11.9 {
  2611    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 -4.72732e+88
  2612  } {abc: 2 3 (-4.73e+88) :xyz}
  2613  do_test printf-2.6.12.2 {
  2614    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 9.87991e+143
  2615  } {abc: (9.880e+143) :xyz}
  2616  do_test printf-2.6.12.3 {
  2617    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 9.87991e+143
  2618  } {abc: (9.88e+143) :xyz}
  2619  do_test printf-2.6.12.4 {
  2620    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 9.87991e+143
  2621  } {abc: 2 3 (9.87991e+143) :xyz}
  2622  do_test printf-2.6.12.5 {
  2623    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 9.87991e+143
  2624  } {abc: 2 3 (9.87991e+143) :xyz}
  2625  do_test printf-2.6.12.6 {
  2626    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 9.87991e+143
  2627  } {abc: 2 3 (9.87991e+143) :xyz}
  2628  do_test printf-2.6.12.8 {
  2629    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 9.87991e+143
  2630  } {abc: 2 3 (9.880e+143) :xyz}
  2631  do_test printf-2.6.12.9 {
  2632    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 9.87991e+143
  2633  } {abc: 2 3 (9.88e+143) :xyz}
  2634  do_test printf-2.6.13.1 {
  2635    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 -6.287291e-9
  2636  } {abc: (-0.000) :xyz}
  2637  do_test printf-2.6.13.2 {
  2638    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 -6.287291e-9
  2639  } {abc: (-6.287e-09) :xyz}
  2640  do_test printf-2.6.13.3 {
  2641    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 -6.287291e-9
  2642  } {abc: (-6.29e-09) :xyz}
  2643  do_test printf-2.6.13.4 {
  2644    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 -6.287291e-9
  2645  } {abc: 2 3 (-6.28729e-09) :xyz}
  2646  do_test printf-2.6.13.5 {
  2647    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 -6.287291e-9
  2648  } {abc: 2 3 (-6.28729e-09) :xyz}
  2649  do_test printf-2.6.13.6 {
  2650    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 -6.287291e-9
  2651  } {abc: 2 3 (-6.28729e-09) :xyz}
  2652  do_test printf-2.6.13.7 {
  2653    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 -6.287291e-9
  2654  } {abc: 2 3 (-0.000) :xyz}
  2655  do_test printf-2.6.13.8 {
  2656    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 -6.287291e-9
  2657  } {abc: 2 3 (-6.287e-09) :xyz}
  2658  do_test printf-2.6.13.9 {
  2659    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 -6.287291e-9
  2660  } {abc: 2 3 (-6.29e-09) :xyz}
  2661  do_test printf-2.6.14.1 {
  2662    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 3.38826392e-110
  2663  } {abc: (0.000) :xyz}
  2664  do_test printf-2.6.14.2 {
  2665    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 3.38826392e-110
  2666  } {abc: (3.388e-110) :xyz}
  2667  do_test printf-2.6.14.3 {
  2668    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 3.38826392e-110
  2669  } {abc: (3.39e-110) :xyz}
  2670  do_test printf-2.6.14.4 {
  2671    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 3.38826392e-110
  2672  } {abc: 2 3 (3.38826e-110) :xyz}
  2673  do_test printf-2.6.14.5 {
  2674    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 3.38826392e-110
  2675  } {abc: 2 3 (3.38826e-110) :xyz}
  2676  do_test printf-2.6.14.6 {
  2677    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 3.38826392e-110
  2678  } {abc: 2 3 (3.38826e-110) :xyz}
  2679  do_test printf-2.6.14.7 {
  2680    sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 3.38826392e-110
  2681  } {abc: 2 3 (0.000) :xyz}
  2682  do_test printf-2.6.14.8 {
  2683    sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 3.38826392e-110
  2684  } {abc: 2 3 (3.388e-110) :xyz}
  2685  do_test printf-2.6.14.9 {
  2686    sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 3.38826392e-110
  2687  } {abc: 2 3 (3.39e-110) :xyz}
  2688  do_test printf-2.7.1.1 {
  2689    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 0.001
  2690  } {abc: (0.001) :xyz}
  2691  do_test printf-2.7.1.2 {
  2692    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 0.001
  2693  } {abc: (1.000e-03) :xyz}
  2694  do_test printf-2.7.1.3 {
  2695    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 0.001
  2696  } {abc: (0.001) :xyz}
  2697  do_test printf-2.7.1.4 {
  2698    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 0.001
  2699  } {abc: 3 3 (0.001) :xyz}
  2700  do_test printf-2.7.1.5 {
  2701    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 0.001
  2702  } {abc: 3 3 (0.00100000) :xyz}
  2703  do_test printf-2.7.1.6 {
  2704    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 0.001
  2705  } {abc: 3 3 (000000.001) :xyz}
  2706  do_test printf-2.7.1.7 {
  2707    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 0.001
  2708  } {abc: 3 3 (0.001) :xyz}
  2709  do_test printf-2.7.1.8 {
  2710    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 0.001
  2711  } {abc: 3 3 (1.000e-03) :xyz}
  2712  do_test printf-2.7.1.9 {
  2713    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 0.001
  2714  } {abc: 3 3 (0.001) :xyz}
  2715  do_test printf-2.7.2.1 {
  2716    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 1.0e-20
  2717  } {abc: (0.000) :xyz}
  2718  do_test printf-2.7.2.2 {
  2719    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 1.0e-20
  2720  } {abc: (1.000e-20) :xyz}
  2721  do_test printf-2.7.2.3 {
  2722    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 1.0e-20
  2723  } {abc: (1e-20) :xyz}
  2724  do_test printf-2.7.2.4 {
  2725    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 1.0e-20
  2726  } {abc: 3 3 (1e-20) :xyz}
  2727  do_test printf-2.7.2.5 {
  2728    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 1.0e-20
  2729  } {abc: 3 3 (1.00000e-20) :xyz}
  2730  do_test printf-2.7.2.6 {
  2731    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 1.0e-20
  2732  } {abc: 3 3 (000001e-20) :xyz}
  2733  do_test printf-2.7.2.7 {
  2734    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 1.0e-20
  2735  } {abc: 3 3 (0.000) :xyz}
  2736  do_test printf-2.7.2.8 {
  2737    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 1.0e-20
  2738  } {abc: 3 3 (1.000e-20) :xyz}
  2739  do_test printf-2.7.2.9 {
  2740    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 1.0e-20
  2741  } {abc: 3 3 (1e-20) :xyz}
  2742  do_test printf-2.7.3.1 {
  2743    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 1.0
  2744  } {abc: (1.000) :xyz}
  2745  do_test printf-2.7.3.2 {
  2746    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 1.0
  2747  } {abc: (1.000e+00) :xyz}
  2748  do_test printf-2.7.3.3 {
  2749    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 1.0
  2750  } {abc: (  1) :xyz}
  2751  do_test printf-2.7.3.4 {
  2752    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 1.0
  2753  } {abc: 3 3 (1) :xyz}
  2754  do_test printf-2.7.3.5 {
  2755    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 1.0
  2756  } {abc: 3 3 (1.00000) :xyz}
  2757  do_test printf-2.7.3.6 {
  2758    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 1.0
  2759  } {abc: 3 3 (0000000001) :xyz}
  2760  do_test printf-2.7.3.7 {
  2761    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 1.0
  2762  } {abc: 3 3 (1.000) :xyz}
  2763  do_test printf-2.7.3.8 {
  2764    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 1.0
  2765  } {abc: 3 3 (1.000e+00) :xyz}
  2766  do_test printf-2.7.3.9 {
  2767    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 1.0
  2768  } {abc: 3 3 (  1) :xyz}
  2769  do_test printf-2.7.4.1 {
  2770    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 0.0
  2771  } {abc: (0.000) :xyz}
  2772  do_test printf-2.7.4.2 {
  2773    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 0.0
  2774  } {abc: (0.000e+00) :xyz}
  2775  do_test printf-2.7.4.3 {
  2776    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 0.0
  2777  } {abc: (  0) :xyz}
  2778  do_test printf-2.7.4.4 {
  2779    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 0.0
  2780  } {abc: 3 3 (0) :xyz}
  2781  do_test printf-2.7.4.5 {
  2782    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 0.0
  2783  } {abc: 3 3 (0.00000) :xyz}
  2784  do_test printf-2.7.4.6 {
  2785    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 0.0
  2786  } {abc: 3 3 (0000000000) :xyz}
  2787  do_test printf-2.7.4.7 {
  2788    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 0.0
  2789  } {abc: 3 3 (0.000) :xyz}
  2790  do_test printf-2.7.4.8 {
  2791    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 0.0
  2792  } {abc: 3 3 (0.000e+00) :xyz}
  2793  do_test printf-2.7.4.9 {
  2794    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 0.0
  2795  } {abc: 3 3 (  0) :xyz}
  2796  do_test printf-2.7.5.1 {
  2797    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 100.0
  2798  } {abc: (100.000) :xyz}
  2799  do_test printf-2.7.5.2 {
  2800    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 100.0
  2801  } {abc: (1.000e+02) :xyz}
  2802  do_test printf-2.7.5.3 {
  2803    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 100.0
  2804  } {abc: (100) :xyz}
  2805  do_test printf-2.7.5.4 {
  2806    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 100.0
  2807  } {abc: 3 3 (100) :xyz}
  2808  do_test printf-2.7.5.5 {
  2809    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 100.0
  2810  } {abc: 3 3 (100.000) :xyz}
  2811  do_test printf-2.7.5.6 {
  2812    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 100.0
  2813  } {abc: 3 3 (0000000100) :xyz}
  2814  do_test printf-2.7.5.7 {
  2815    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 100.0
  2816  } {abc: 3 3 (100.000) :xyz}
  2817  do_test printf-2.7.5.8 {
  2818    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 100.0
  2819  } {abc: 3 3 (1.000e+02) :xyz}
  2820  do_test printf-2.7.5.9 {
  2821    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 100.0
  2822  } {abc: 3 3 (100) :xyz}
  2823  do_test printf-2.7.6.1 {
  2824    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 9.99999
  2825  } {abc: (10.000) :xyz}
  2826  do_test printf-2.7.6.2 {
  2827    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 9.99999
  2828  } {abc: (1.000e+01) :xyz}
  2829  do_test printf-2.7.6.3 {
  2830    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 9.99999
  2831  } {abc: ( 10) :xyz}
  2832  do_test printf-2.7.6.4 {
  2833    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 9.99999
  2834  } {abc: 3 3 (9.99999) :xyz}
  2835  do_test printf-2.7.6.5 {
  2836    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 9.99999
  2837  } {abc: 3 3 (9.99999) :xyz}
  2838  do_test printf-2.7.6.6 {
  2839    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 9.99999
  2840  } {abc: 3 3 (0009.99999) :xyz}
  2841  do_test printf-2.7.6.7 {
  2842    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 9.99999
  2843  } {abc: 3 3 (10.000) :xyz}
  2844  do_test printf-2.7.6.8 {
  2845    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 9.99999
  2846  } {abc: 3 3 (1.000e+01) :xyz}
  2847  do_test printf-2.7.6.9 {
  2848    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 9.99999
  2849  } {abc: 3 3 ( 10) :xyz}
  2850  do_test printf-2.7.7.1 {
  2851    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 -0.00543
  2852  } {abc: (-0.005) :xyz}
  2853  do_test printf-2.7.7.2 {
  2854    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 -0.00543
  2855  } {abc: (-5.430e-03) :xyz}
  2856  do_test printf-2.7.7.3 {
  2857    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 -0.00543
  2858  } {abc: (-0.00543) :xyz}
  2859  do_test printf-2.7.7.4 {
  2860    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 -0.00543
  2861  } {abc: 3 3 (-0.00543) :xyz}
  2862  do_test printf-2.7.7.5 {
  2863    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 -0.00543
  2864  } {abc: 3 3 (-0.00543000) :xyz}
  2865  do_test printf-2.7.7.6 {
  2866    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 -0.00543
  2867  } {abc: 3 3 (-000.00543) :xyz}
  2868  do_test printf-2.7.7.7 {
  2869    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 -0.00543
  2870  } {abc: 3 3 (-0.005) :xyz}
  2871  do_test printf-2.7.7.8 {
  2872    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 -0.00543
  2873  } {abc: 3 3 (-5.430e-03) :xyz}
  2874  do_test printf-2.7.7.9 {
  2875    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 -0.00543
  2876  } {abc: 3 3 (-0.00543) :xyz}
  2877  do_test printf-2.7.8.1 {
  2878    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 -1.0
  2879  } {abc: (-1.000) :xyz}
  2880  do_test printf-2.7.8.2 {
  2881    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 -1.0
  2882  } {abc: (-1.000e+00) :xyz}
  2883  do_test printf-2.7.8.3 {
  2884    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 -1.0
  2885  } {abc: ( -1) :xyz}
  2886  do_test printf-2.7.8.4 {
  2887    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 -1.0
  2888  } {abc: 3 3 (-1) :xyz}
  2889  do_test printf-2.7.8.5 {
  2890    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 -1.0
  2891  } {abc: 3 3 (-1.00000) :xyz}
  2892  do_test printf-2.7.8.6 {
  2893    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 -1.0
  2894  } {abc: 3 3 (-000000001) :xyz}
  2895  do_test printf-2.7.8.7 {
  2896    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 -1.0
  2897  } {abc: 3 3 (-1.000) :xyz}
  2898  do_test printf-2.7.8.8 {
  2899    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 -1.0
  2900  } {abc: 3 3 (-1.000e+00) :xyz}
  2901  do_test printf-2.7.8.9 {
  2902    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 -1.0
  2903  } {abc: 3 3 ( -1) :xyz}
  2904  do_test printf-2.7.9.1 {
  2905    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 -99.99999
  2906  } {abc: (-100.000) :xyz}
  2907  do_test printf-2.7.9.2 {
  2908    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 -99.99999
  2909  } {abc: (-1.000e+02) :xyz}
  2910  do_test printf-2.7.9.3 {
  2911    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 -99.99999
  2912  } {abc: (-100) :xyz}
  2913  do_test printf-2.7.9.4 {
  2914    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 -99.99999
  2915  } {abc: 3 3 (-100) :xyz}
  2916  do_test printf-2.7.9.5 {
  2917    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 -99.99999
  2918  } {abc: 3 3 (-100.000) :xyz}
  2919  do_test printf-2.7.9.6 {
  2920    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 -99.99999
  2921  } {abc: 3 3 (-000000100) :xyz}
  2922  do_test printf-2.7.9.7 {
  2923    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 -99.99999
  2924  } {abc: 3 3 (-100.000) :xyz}
  2925  do_test printf-2.7.9.8 {
  2926    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 -99.99999
  2927  } {abc: 3 3 (-1.000e+02) :xyz}
  2928  do_test printf-2.7.9.9 {
  2929    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 -99.99999
  2930  } {abc: 3 3 (-100) :xyz}
  2931  do_test printf-2.7.10.1 {
  2932    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 3.14e+9
  2933  } {abc: (3140000000.000) :xyz}
  2934  do_test printf-2.7.10.2 {
  2935    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 3.14e+9
  2936  } {abc: (3.140e+09) :xyz}
  2937  do_test printf-2.7.10.3 {
  2938    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 3.14e+9
  2939  } {abc: (3.14e+09) :xyz}
  2940  do_test printf-2.7.10.4 {
  2941    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 3.14e+9
  2942  } {abc: 3 3 (3.14e+09) :xyz}
  2943  do_test printf-2.7.10.5 {
  2944    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 3.14e+9
  2945  } {abc: 3 3 (3.14000e+09) :xyz}
  2946  do_test printf-2.7.10.6 {
  2947    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 3.14e+9
  2948  } {abc: 3 3 (003.14e+09) :xyz}
  2949  do_test printf-2.7.10.7 {
  2950    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 3.14e+9
  2951  } {abc: 3 3 (3140000000.000) :xyz}
  2952  do_test printf-2.7.10.8 {
  2953    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 3.14e+9
  2954  } {abc: 3 3 (3.140e+09) :xyz}
  2955  do_test printf-2.7.10.9 {
  2956    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 3.14e+9
  2957  } {abc: 3 3 (3.14e+09) :xyz}
  2958  do_test printf-2.7.11.2 {
  2959    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 -4.72732e+88
  2960  } {abc: (-4.727e+88) :xyz}
  2961  do_test printf-2.7.11.3 {
  2962    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 -4.72732e+88
  2963  } {abc: (-4.73e+88) :xyz}
  2964  do_test printf-2.7.11.4 {
  2965    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 -4.72732e+88
  2966  } {abc: 3 3 (-4.72732e+88) :xyz}
  2967  do_test printf-2.7.11.5 {
  2968    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 -4.72732e+88
  2969  } {abc: 3 3 (-4.72732e+88) :xyz}
  2970  do_test printf-2.7.11.6 {
  2971    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 -4.72732e+88
  2972  } {abc: 3 3 (-4.72732e+88) :xyz}
  2973  do_test printf-2.7.11.8 {
  2974    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 -4.72732e+88
  2975  } {abc: 3 3 (-4.727e+88) :xyz}
  2976  do_test printf-2.7.11.9 {
  2977    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 -4.72732e+88
  2978  } {abc: 3 3 (-4.73e+88) :xyz}
  2979  do_test printf-2.7.12.2 {
  2980    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 9.87991e+143
  2981  } {abc: (9.880e+143) :xyz}
  2982  do_test printf-2.7.12.3 {
  2983    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 9.87991e+143
  2984  } {abc: (9.88e+143) :xyz}
  2985  do_test printf-2.7.12.4 {
  2986    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 9.87991e+143
  2987  } {abc: 3 3 (9.87991e+143) :xyz}
  2988  do_test printf-2.7.12.5 {
  2989    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 9.87991e+143
  2990  } {abc: 3 3 (9.87991e+143) :xyz}
  2991  do_test printf-2.7.12.6 {
  2992    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 9.87991e+143
  2993  } {abc: 3 3 (9.87991e+143) :xyz}
  2994  do_test printf-2.7.12.8 {
  2995    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 9.87991e+143
  2996  } {abc: 3 3 (9.880e+143) :xyz}
  2997  do_test printf-2.7.12.9 {
  2998    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 9.87991e+143
  2999  } {abc: 3 3 (9.88e+143) :xyz}
  3000  do_test printf-2.7.13.1 {
  3001    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 -6.287291e-9
  3002  } {abc: (-0.000) :xyz}
  3003  do_test printf-2.7.13.2 {
  3004    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 -6.287291e-9
  3005  } {abc: (-6.287e-09) :xyz}
  3006  do_test printf-2.7.13.3 {
  3007    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 -6.287291e-9
  3008  } {abc: (-6.29e-09) :xyz}
  3009  do_test printf-2.7.13.4 {
  3010    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 -6.287291e-9
  3011  } {abc: 3 3 (-6.28729e-09) :xyz}
  3012  do_test printf-2.7.13.5 {
  3013    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 -6.287291e-9
  3014  } {abc: 3 3 (-6.28729e-09) :xyz}
  3015  do_test printf-2.7.13.6 {
  3016    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 -6.287291e-9
  3017  } {abc: 3 3 (-6.28729e-09) :xyz}
  3018  do_test printf-2.7.13.7 {
  3019    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 -6.287291e-9
  3020  } {abc: 3 3 (-0.000) :xyz}
  3021  do_test printf-2.7.13.8 {
  3022    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 -6.287291e-9
  3023  } {abc: 3 3 (-6.287e-09) :xyz}
  3024  do_test printf-2.7.13.9 {
  3025    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 -6.287291e-9
  3026  } {abc: 3 3 (-6.29e-09) :xyz}
  3027  do_test printf-2.7.14.1 {
  3028    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 3.38826392e-110
  3029  } {abc: (0.000) :xyz}
  3030  do_test printf-2.7.14.2 {
  3031    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 3.38826392e-110
  3032  } {abc: (3.388e-110) :xyz}
  3033  do_test printf-2.7.14.3 {
  3034    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 3.38826392e-110
  3035  } {abc: (3.39e-110) :xyz}
  3036  do_test printf-2.7.14.4 {
  3037    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 3.38826392e-110
  3038  } {abc: 3 3 (3.38826e-110) :xyz}
  3039  do_test printf-2.7.14.5 {
  3040    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 3.38826392e-110
  3041  } {abc: 3 3 (3.38826e-110) :xyz}
  3042  do_test printf-2.7.14.6 {
  3043    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 3.38826392e-110
  3044  } {abc: 3 3 (3.38826e-110) :xyz}
  3045  do_test printf-2.7.14.7 {
  3046    sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 3.38826392e-110
  3047  } {abc: 3 3 (0.000) :xyz}
  3048  do_test printf-2.7.14.8 {
  3049    sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 3.38826392e-110
  3050  } {abc: 3 3 (3.388e-110) :xyz}
  3051  do_test printf-2.7.14.9 {
  3052    sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 3.38826392e-110
  3053  } {abc: 3 3 (3.39e-110) :xyz}
  3054  do_test printf-2.8.1.1 {
  3055    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 0.001
  3056  } {abc: (0.00) :xyz}
  3057  do_test printf-2.8.1.2 {
  3058    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 0.001
  3059  } {abc: (1.00e-03) :xyz}
  3060  do_test printf-2.8.1.3 {
  3061    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 0.001
  3062  } {abc: (0.001) :xyz}
  3063  do_test printf-2.8.1.4 {
  3064    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 0.001
  3065  } {abc: 3 2 (0.001) :xyz}
  3066  do_test printf-2.8.1.5 {
  3067    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 0.001
  3068  } {abc: 3 2 (0.00100000) :xyz}
  3069  do_test printf-2.8.1.6 {
  3070    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 0.001
  3071  } {abc: 3 2 (000000.001) :xyz}
  3072  do_test printf-2.8.1.7 {
  3073    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 0.001
  3074  } {abc: 3 2 (0.00) :xyz}
  3075  do_test printf-2.8.1.8 {
  3076    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 0.001
  3077  } {abc: 3 2 (1.00e-03) :xyz}
  3078  do_test printf-2.8.1.9 {
  3079    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 0.001
  3080  } {abc: 3 2 (0.001) :xyz}
  3081  do_test printf-2.8.2.1 {
  3082    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 1.0e-20
  3083  } {abc: (0.00) :xyz}
  3084  do_test printf-2.8.2.2 {
  3085    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 1.0e-20
  3086  } {abc: (1.00e-20) :xyz}
  3087  do_test printf-2.8.2.3 {
  3088    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 1.0e-20
  3089  } {abc: (1e-20) :xyz}
  3090  do_test printf-2.8.2.4 {
  3091    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 1.0e-20
  3092  } {abc: 3 2 (1e-20) :xyz}
  3093  do_test printf-2.8.2.5 {
  3094    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 1.0e-20
  3095  } {abc: 3 2 (1.00000e-20) :xyz}
  3096  do_test printf-2.8.2.6 {
  3097    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 1.0e-20
  3098  } {abc: 3 2 (000001e-20) :xyz}
  3099  do_test printf-2.8.2.7 {
  3100    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 1.0e-20
  3101  } {abc: 3 2 (0.00) :xyz}
  3102  do_test printf-2.8.2.8 {
  3103    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 1.0e-20
  3104  } {abc: 3 2 (1.00e-20) :xyz}
  3105  do_test printf-2.8.2.9 {
  3106    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 1.0e-20
  3107  } {abc: 3 2 (1e-20) :xyz}
  3108  do_test printf-2.8.3.1 {
  3109    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 1.0
  3110  } {abc: (1.00) :xyz}
  3111  do_test printf-2.8.3.2 {
  3112    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 1.0
  3113  } {abc: (1.00e+00) :xyz}
  3114  do_test printf-2.8.3.3 {
  3115    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 1.0
  3116  } {abc: (  1) :xyz}
  3117  do_test printf-2.8.3.4 {
  3118    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 1.0
  3119  } {abc: 3 2 (1) :xyz}
  3120  do_test printf-2.8.3.5 {
  3121    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 1.0
  3122  } {abc: 3 2 (1.00000) :xyz}
  3123  do_test printf-2.8.3.6 {
  3124    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 1.0
  3125  } {abc: 3 2 (0000000001) :xyz}
  3126  do_test printf-2.8.3.7 {
  3127    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 1.0
  3128  } {abc: 3 2 (1.00) :xyz}
  3129  do_test printf-2.8.3.8 {
  3130    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 1.0
  3131  } {abc: 3 2 (1.00e+00) :xyz}
  3132  do_test printf-2.8.3.9 {
  3133    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 1.0
  3134  } {abc: 3 2 (  1) :xyz}
  3135  do_test printf-2.8.4.1 {
  3136    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 0.0
  3137  } {abc: (0.00) :xyz}
  3138  do_test printf-2.8.4.2 {
  3139    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 0.0
  3140  } {abc: (0.00e+00) :xyz}
  3141  do_test printf-2.8.4.3 {
  3142    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 0.0
  3143  } {abc: (  0) :xyz}
  3144  do_test printf-2.8.4.4 {
  3145    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 0.0
  3146  } {abc: 3 2 (0) :xyz}
  3147  do_test printf-2.8.4.5 {
  3148    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 0.0
  3149  } {abc: 3 2 (0.00000) :xyz}
  3150  do_test printf-2.8.4.6 {
  3151    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 0.0
  3152  } {abc: 3 2 (0000000000) :xyz}
  3153  do_test printf-2.8.4.7 {
  3154    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 0.0
  3155  } {abc: 3 2 (0.00) :xyz}
  3156  do_test printf-2.8.4.8 {
  3157    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 0.0
  3158  } {abc: 3 2 (0.00e+00) :xyz}
  3159  do_test printf-2.8.4.9 {
  3160    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 0.0
  3161  } {abc: 3 2 (  0) :xyz}
  3162  do_test printf-2.8.5.1 {
  3163    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 100.0
  3164  } {abc: (100.00) :xyz}
  3165  do_test printf-2.8.5.2 {
  3166    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 100.0
  3167  } {abc: (1.00e+02) :xyz}
  3168  do_test printf-2.8.5.3 {
  3169    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 100.0
  3170  } {abc: (1e+02) :xyz}
  3171  do_test printf-2.8.5.4 {
  3172    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 100.0
  3173  } {abc: 3 2 (100) :xyz}
  3174  do_test printf-2.8.5.5 {
  3175    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 100.0
  3176  } {abc: 3 2 (100.000) :xyz}
  3177  do_test printf-2.8.5.6 {
  3178    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 100.0
  3179  } {abc: 3 2 (0000000100) :xyz}
  3180  do_test printf-2.8.5.7 {
  3181    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 100.0
  3182  } {abc: 3 2 (100.00) :xyz}
  3183  do_test printf-2.8.5.8 {
  3184    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 100.0
  3185  } {abc: 3 2 (1.00e+02) :xyz}
  3186  do_test printf-2.8.5.9 {
  3187    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 100.0
  3188  } {abc: 3 2 (1e+02) :xyz}
  3189  do_test printf-2.8.6.1 {
  3190    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 9.99999
  3191  } {abc: (10.00) :xyz}
  3192  do_test printf-2.8.6.2 {
  3193    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 9.99999
  3194  } {abc: (1.00e+01) :xyz}
  3195  do_test printf-2.8.6.3 {
  3196    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 9.99999
  3197  } {abc: ( 10) :xyz}
  3198  do_test printf-2.8.6.4 {
  3199    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 9.99999
  3200  } {abc: 3 2 (9.99999) :xyz}
  3201  do_test printf-2.8.6.5 {
  3202    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 9.99999
  3203  } {abc: 3 2 (9.99999) :xyz}
  3204  do_test printf-2.8.6.6 {
  3205    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 9.99999
  3206  } {abc: 3 2 (0009.99999) :xyz}
  3207  do_test printf-2.8.6.7 {
  3208    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 9.99999
  3209  } {abc: 3 2 (10.00) :xyz}
  3210  do_test printf-2.8.6.8 {
  3211    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 9.99999
  3212  } {abc: 3 2 (1.00e+01) :xyz}
  3213  do_test printf-2.8.6.9 {
  3214    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 9.99999
  3215  } {abc: 3 2 ( 10) :xyz}
  3216  do_test printf-2.8.7.1 {
  3217    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 -0.00543
  3218  } {abc: (-0.01) :xyz}
  3219  do_test printf-2.8.7.2 {
  3220    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 -0.00543
  3221  } {abc: (-5.43e-03) :xyz}
  3222  do_test printf-2.8.7.3 {
  3223    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 -0.00543
  3224  } {abc: (-0.0054) :xyz}
  3225  do_test printf-2.8.7.4 {
  3226    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 -0.00543
  3227  } {abc: 3 2 (-0.00543) :xyz}
  3228  do_test printf-2.8.7.5 {
  3229    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 -0.00543
  3230  } {abc: 3 2 (-0.00543000) :xyz}
  3231  do_test printf-2.8.7.6 {
  3232    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 -0.00543
  3233  } {abc: 3 2 (-000.00543) :xyz}
  3234  do_test printf-2.8.7.7 {
  3235    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 -0.00543
  3236  } {abc: 3 2 (-0.01) :xyz}
  3237  do_test printf-2.8.7.8 {
  3238    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 -0.00543
  3239  } {abc: 3 2 (-5.43e-03) :xyz}
  3240  do_test printf-2.8.7.9 {
  3241    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 -0.00543
  3242  } {abc: 3 2 (-0.0054) :xyz}
  3243  do_test printf-2.8.8.1 {
  3244    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 -1.0
  3245  } {abc: (-1.00) :xyz}
  3246  do_test printf-2.8.8.2 {
  3247    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 -1.0
  3248  } {abc: (-1.00e+00) :xyz}
  3249  do_test printf-2.8.8.3 {
  3250    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 -1.0
  3251  } {abc: ( -1) :xyz}
  3252  do_test printf-2.8.8.4 {
  3253    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 -1.0
  3254  } {abc: 3 2 (-1) :xyz}
  3255  do_test printf-2.8.8.5 {
  3256    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 -1.0
  3257  } {abc: 3 2 (-1.00000) :xyz}
  3258  do_test printf-2.8.8.6 {
  3259    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 -1.0
  3260  } {abc: 3 2 (-000000001) :xyz}
  3261  do_test printf-2.8.8.7 {
  3262    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 -1.0
  3263  } {abc: 3 2 (-1.00) :xyz}
  3264  do_test printf-2.8.8.8 {
  3265    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 -1.0
  3266  } {abc: 3 2 (-1.00e+00) :xyz}
  3267  do_test printf-2.8.8.9 {
  3268    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 -1.0
  3269  } {abc: 3 2 ( -1) :xyz}
  3270  do_test printf-2.8.9.1 {
  3271    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 -99.99999
  3272  } {abc: (-100.00) :xyz}
  3273  do_test printf-2.8.9.2 {
  3274    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 -99.99999
  3275  } {abc: (-1.00e+02) :xyz}
  3276  do_test printf-2.8.9.3 {
  3277    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 -99.99999
  3278  } {abc: (-1e+02) :xyz}
  3279  do_test printf-2.8.9.4 {
  3280    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 -99.99999
  3281  } {abc: 3 2 (-100) :xyz}
  3282  do_test printf-2.8.9.5 {
  3283    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 -99.99999
  3284  } {abc: 3 2 (-100.000) :xyz}
  3285  do_test printf-2.8.9.6 {
  3286    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 -99.99999
  3287  } {abc: 3 2 (-000000100) :xyz}
  3288  do_test printf-2.8.9.7 {
  3289    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 -99.99999
  3290  } {abc: 3 2 (-100.00) :xyz}
  3291  do_test printf-2.8.9.8 {
  3292    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 -99.99999
  3293  } {abc: 3 2 (-1.00e+02) :xyz}
  3294  do_test printf-2.8.9.9 {
  3295    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 -99.99999
  3296  } {abc: 3 2 (-1e+02) :xyz}
  3297  do_test printf-2.8.10.1 {
  3298    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 3.14e+9
  3299  } {abc: (3140000000.00) :xyz}
  3300  do_test printf-2.8.10.2 {
  3301    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 3.14e+9
  3302  } {abc: (3.14e+09) :xyz}
  3303  do_test printf-2.8.10.3 {
  3304    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 3.14e+9
  3305  } {abc: (3.1e+09) :xyz}
  3306  do_test printf-2.8.10.4 {
  3307    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 3.14e+9
  3308  } {abc: 3 2 (3.14e+09) :xyz}
  3309  do_test printf-2.8.10.5 {
  3310    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 3.14e+9
  3311  } {abc: 3 2 (3.14000e+09) :xyz}
  3312  do_test printf-2.8.10.6 {
  3313    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 3.14e+9
  3314  } {abc: 3 2 (003.14e+09) :xyz}
  3315  do_test printf-2.8.10.7 {
  3316    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 3.14e+9
  3317  } {abc: 3 2 (3140000000.00) :xyz}
  3318  do_test printf-2.8.10.8 {
  3319    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 3.14e+9
  3320  } {abc: 3 2 (3.14e+09) :xyz}
  3321  do_test printf-2.8.10.9 {
  3322    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 3.14e+9
  3323  } {abc: 3 2 (3.1e+09) :xyz}
  3324  do_test printf-2.8.11.2 {
  3325    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 -4.72732e+88
  3326  } {abc: (-4.73e+88) :xyz}
  3327  do_test printf-2.8.11.3 {
  3328    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 -4.72732e+88
  3329  } {abc: (-4.7e+88) :xyz}
  3330  do_test printf-2.8.11.4 {
  3331    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 -4.72732e+88
  3332  } {abc: 3 2 (-4.72732e+88) :xyz}
  3333  do_test printf-2.8.11.5 {
  3334    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 -4.72732e+88
  3335  } {abc: 3 2 (-4.72732e+88) :xyz}
  3336  do_test printf-2.8.11.6 {
  3337    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 -4.72732e+88
  3338  } {abc: 3 2 (-4.72732e+88) :xyz}
  3339  do_test printf-2.8.11.8 {
  3340    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 -4.72732e+88
  3341  } {abc: 3 2 (-4.73e+88) :xyz}
  3342  do_test printf-2.8.11.9 {
  3343    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 -4.72732e+88
  3344  } {abc: 3 2 (-4.7e+88) :xyz}
  3345  do_test printf-2.8.12.2 {
  3346    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 9.87991e+143
  3347  } {abc: (9.88e+143) :xyz}
  3348  do_test printf-2.8.12.3 {
  3349    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 9.87991e+143
  3350  } {abc: (9.9e+143) :xyz}
  3351  do_test printf-2.8.12.4 {
  3352    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 9.87991e+143
  3353  } {abc: 3 2 (9.87991e+143) :xyz}
  3354  do_test printf-2.8.12.5 {
  3355    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 9.87991e+143
  3356  } {abc: 3 2 (9.87991e+143) :xyz}
  3357  do_test printf-2.8.12.6 {
  3358    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 9.87991e+143
  3359  } {abc: 3 2 (9.87991e+143) :xyz}
  3360  do_test printf-2.8.12.8 {
  3361    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 9.87991e+143
  3362  } {abc: 3 2 (9.88e+143) :xyz}
  3363  do_test printf-2.8.12.9 {
  3364    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 9.87991e+143
  3365  } {abc: 3 2 (9.9e+143) :xyz}
  3366  do_test printf-2.8.13.1 {
  3367    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 -6.287291e-9
  3368  } {abc: (-0.00) :xyz}
  3369  do_test printf-2.8.13.2 {
  3370    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 -6.287291e-9
  3371  } {abc: (-6.29e-09) :xyz}
  3372  do_test printf-2.8.13.3 {
  3373    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 -6.287291e-9
  3374  } {abc: (-6.3e-09) :xyz}
  3375  do_test printf-2.8.13.4 {
  3376    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 -6.287291e-9
  3377  } {abc: 3 2 (-6.28729e-09) :xyz}
  3378  do_test printf-2.8.13.5 {
  3379    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 -6.287291e-9
  3380  } {abc: 3 2 (-6.28729e-09) :xyz}
  3381  do_test printf-2.8.13.6 {
  3382    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 -6.287291e-9
  3383  } {abc: 3 2 (-6.28729e-09) :xyz}
  3384  do_test printf-2.8.13.7 {
  3385    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 -6.287291e-9
  3386  } {abc: 3 2 (-0.00) :xyz}
  3387  do_test printf-2.8.13.8 {
  3388    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 -6.287291e-9
  3389  } {abc: 3 2 (-6.29e-09) :xyz}
  3390  do_test printf-2.8.13.9 {
  3391    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 -6.287291e-9
  3392  } {abc: 3 2 (-6.3e-09) :xyz}
  3393  do_test printf-2.8.14.1 {
  3394    sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 3.38826392e-110
  3395  } {abc: (0.00) :xyz}
  3396  do_test printf-2.8.14.2 {
  3397    sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 3.38826392e-110
  3398  } {abc: (3.39e-110) :xyz}
  3399  do_test printf-2.8.14.3 {
  3400    sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 3.38826392e-110
  3401  } {abc: (3.4e-110) :xyz}
  3402  do_test printf-2.8.14.4 {
  3403    sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 3.38826392e-110
  3404  } {abc: 3 2 (3.38826e-110) :xyz}
  3405  do_test printf-2.8.14.5 {
  3406    sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 3.38826392e-110
  3407  } {abc: 3 2 (3.38826e-110) :xyz}
  3408  do_test printf-2.8.14.6 {
  3409    sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 3.38826392e-110
  3410  } {abc: 3 2 (3.38826e-110) :xyz}
  3411  do_test printf-2.8.14.7 {
  3412    sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 3.38826392e-110
  3413  } {abc: 3 2 (0.00) :xyz}
  3414  do_test printf-2.8.14.8 {
  3415    sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 3.38826392e-110
  3416  } {abc: 3 2 (3.39e-110) :xyz}
  3417  do_test printf-2.8.14.9 {
  3418    sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 3.38826392e-110
  3419  } {abc: 3 2 (3.4e-110) :xyz}
  3420  do_test printf-2.8.15.1 {
  3421    sqlite3_mprintf_double {abc: (% *.*f) :xyz} 3 2 3.38826392e-110
  3422  } {abc: ( 0.00) :xyz}
  3423  do_test printf-2.8.15.2 {
  3424    sqlite3_mprintf_double {abc: (% *.*e) :xyz} 3 2 3.38826392e-110
  3425  } {abc: ( 3.39e-110) :xyz}
  3426  do_test printf-2.8.15.3 {
  3427    sqlite3_mprintf_double {abc: (% *.*g) :xyz} 3 2 3.38826392e-110
  3428  } {abc: ( 3.4e-110) :xyz}
  3429  do_test printf-2.8.15.4 {
  3430    sqlite3_mprintf_double {abc: %d %d (% g) :xyz} 3 2 3.38826392e-110
  3431  } {abc: 3 2 ( 3.38826e-110) :xyz}
  3432  do_test printf-2.8.15.5 {
  3433    sqlite3_mprintf_double {abc: %d %d (% #g) :xyz} 3 2 3.38826392e-110
  3434  } {abc: 3 2 ( 3.38826e-110) :xyz}
  3435  do_test printf-2.8.15.6 {
  3436    sqlite3_mprintf_double {abc: %d %d (%0 10g) :xyz} 3 2 3.38826392e-110
  3437  } {abc: 3 2 ( 3.38826e-110) :xyz}
  3438  do_test printf-2.8.15.7 {
  3439    sqlite3_mprintf_double {abc: %d %d (% 3.2f) :xyz} 3 2 3.38826392e-110
  3440  } {abc: 3 2 ( 0.00) :xyz}
  3441  do_test printf-2.8.15.8 {
  3442    sqlite3_mprintf_double {abc: %d %d (% 3.2e) :xyz} 3 2 3.38826392e-110
  3443  } {abc: 3 2 ( 3.39e-110) :xyz}
  3444  do_test printf-2.8.15.9 {
  3445    sqlite3_mprintf_double {abc: %d %d (% 3.2g) :xyz} 3 2 3.38826392e-110
  3446  } {abc: 3 2 ( 3.4e-110) :xyz}
  3447  
  3448  do_test printf-2.9.1 {
  3449    sqlite3_mprintf_double {abc: %d %d (%5.0g) :xyz} 0 0 1.234
  3450  } {abc: 0 0 (    1) :xyz}
  3451  do_test printf-2.9.2 {
  3452    sqlite3_mprintf_double {abc: %d %d (%+5.0g) :xyz} 0 0 1.234
  3453  } {abc: 0 0 (   +1) :xyz}
  3454  do_test printf-2.9.3 {
  3455    sqlite3_mprintf_double {abc: %d %d (%+-5.0g) :xyz} 0 0 1.234
  3456  } {abc: 0 0 (+1   ) :xyz}
  3457  
  3458  do_test printf-2.10.1 {
  3459    sqlite3_mprintf_double {abc: %d %d (%-010.5f) :xyz} 0 0 1.234
  3460  } {abc: 0 0 (1.23400   ) :xyz}
  3461  do_test printf-2.10.2 {
  3462    sqlite3_mprintf_double {abc: %d %d (%010.5f) :xyz} 0 0 1.234
  3463  } {abc: 0 0 (0001.23400) :xyz}
  3464  do_test printf-2.10.3 {
  3465    sqlite3_mprintf_double {abc: %d %d (%+010.5f) :xyz} 0 0 1.234
  3466  } {abc: 0 0 (+001.23400) :xyz}
  3467  
  3468  do_test printf-3.1 {
  3469    sqlite3_mprintf_str {A String: (%*.*s)} 10 10 {This is the string}
  3470  } [format {A String: (%*.*s)} 10 10 {This is the string}]
  3471  do_test printf-3.2 {
  3472    sqlite3_mprintf_str {A String: (%*.*s)} 10 5 {This is the string}
  3473  } [format {A String: (%*.*s)} 10 5 {This is the string}]
  3474  do_test printf-3.3 {
  3475    sqlite3_mprintf_str {A String: (%*.*s)} -10 5 {This is the string}
  3476  } [format {A String: (%*.*s)} -10 5 {This is the string}]
  3477  do_test printf-3.4 {
  3478    sqlite3_mprintf_str {%d %d A String: (%s)} 1 2 {This is the string}
  3479  } [format {%d %d A String: (%s)} 1 2 {This is the string}]
  3480  do_test printf-3.5 {
  3481    sqlite3_mprintf_str {%d %d A String: (%30s)} 1 2 {This is the string}
  3482  } [format {%d %d A String: (%30s)} 1 2 {This is the string}]
  3483  do_test printf-3.6 {
  3484    sqlite3_mprintf_str {%d %d A String: (%-30s)} 1 2 {This is the string}
  3485  } [format {%d %d A String: (%-30s)} 1 2 {This is the string}]
  3486  do_test printf-3.7 {
  3487    sqlite3_mprintf_str {%d A String: (%*s)} 1 2147483647 {This is the string}
  3488  } []
  3489  do_test printf-3.8 {
  3490    sqlite3_mprintf_str {%d A String: (%*s)} 1 -2147483648 {This is the string}
  3491  } {1 A String: (This is the string)}
  3492  do_test printf-3.9 {
  3493    sqlite3_mprintf_str {%d A String: (%.*s)} 1 -2147483648 {This is the string}
  3494  } {1 A String: (This is the string)}
  3495  do_test snprintf-3.11 {
  3496    sqlite3_snprintf_str 2 {x%d %d %s} 10 10 {This is the string}
  3497  } {x}
  3498  do_test snprintf-3.12 {
  3499    sqlite3_snprintf_str 3 {x%d %d %s} 10 10 {This is the string}
  3500  } {x1}
  3501  do_test snprintf-3.13 {
  3502    sqlite3_snprintf_str 4 {x%d %d %s} 10 10 {This is the string}
  3503  } {x10}
  3504  do_test snprintf-3.14 {
  3505    sqlite3_snprintf_str 5 {x%d %d %s} 10 10 {This is the string}
  3506  } {x10 }
  3507  do_test snprintf-3.15 {
  3508    sqlite3_snprintf_str 6 {x%d %d %s} 10 10 {This is the string}
  3509  } {x10 1}
  3510  do_test snprintf-3.16 {
  3511    sqlite3_snprintf_str 7 {x%d %d %s} 10 10 {This is the string}
  3512  } {x10 10}
  3513  do_test snprintf-3.17 {
  3514    sqlite3_snprintf_str 8 {x%d %d %s} 10 10 {This is the string}
  3515  } {x10 10 }
  3516  do_test snprintf-3.18 {
  3517    sqlite3_snprintf_str 9 {x%d %d %s} 10 10 {This is the string}
  3518  } {x10 10 T}
  3519  do_test snprintf-3.19 {
  3520    sqlite3_snprintf_str 100 {x%d %d %s} 10 10 {This is the string}
  3521  } {x10 10 This is the string}
  3522  
  3523  do_test printf-4.1 {
  3524    sqlite3_mprintf_str {%d %d A quoted string: '%q'} 1 2 {Hi Y'all}
  3525  } {1 2 A quoted string: 'Hi Y''all'}
  3526  do_test printf-4.2 {
  3527    sqlite3_mprintf_str {%d %d A NULL pointer in %%q: '%q'} 1 2
  3528  } {1 2 A NULL pointer in %q: '(NULL)'}
  3529  do_test printf-4.3 {
  3530    sqlite3_mprintf_str {%d %d A quoted string: %Q} 1 2 {Hi Y'all}
  3531  } {1 2 A quoted string: 'Hi Y''all'}
  3532  do_test printf-4.4 {
  3533    sqlite3_mprintf_str {%d %d A NULL pointer in %%Q: %Q} 1 2
  3534  } {1 2 A NULL pointer in %Q: NULL}
  3535  do_test printf-4.5 {
  3536    sqlite3_mprintf_str {%d %d A quoted string: '%.10q'} 1 2 {Hi Y'all}
  3537  } {1 2 A quoted string: 'Hi Y''all'}
  3538  do_test printf-4.6 {
  3539    sqlite3_mprintf_str {%d %d A quoted string: '%.9q'} 1 2 {Hi Y'all}
  3540  } {1 2 A quoted string: 'Hi Y''all'}
  3541  do_test printf-4.7 {
  3542    sqlite3_mprintf_str {%d %d A quoted string: '%.8q'} 1 2 {Hi Y'all}
  3543  } {1 2 A quoted string: 'Hi Y''all'}
  3544  do_test printf-4.8 {
  3545    sqlite3_mprintf_str {%d %d A quoted string: '%.7q'} 1 2 {Hi Y'all}
  3546  } {1 2 A quoted string: 'Hi Y''al'}
  3547  do_test printf-4.9 {
  3548    sqlite3_mprintf_str {%d %d A quoted string: '%.6q'} 1 2 {Hi Y'all}
  3549  } {1 2 A quoted string: 'Hi Y''a'}
  3550  do_test printf-4.10 {
  3551    sqlite3_mprintf_str {%d %d A quoted string: '%.5q'} 1 2 {Hi Y'all}
  3552  } {1 2 A quoted string: 'Hi Y'''}
  3553  do_test printf-4.11 {
  3554    sqlite3_mprintf_str {%d %d A quoted string: '%.4q'} 1 2 {Hi Y'all}
  3555  } {1 2 A quoted string: 'Hi Y'}
  3556  do_test printf-4.12 {
  3557    sqlite3_mprintf_str {%d %d A quoted string: '%.3q'} 1 2 {Hi Y'all}
  3558  } {1 2 A quoted string: 'Hi '}
  3559  do_test printf-4.13 {
  3560    sqlite3_mprintf_str {%d %d A quoted string: '%.2q'} 1 2 {Hi Y'all}
  3561  } {1 2 A quoted string: 'Hi'}
  3562  do_test printf-4.14 {
  3563    sqlite3_mprintf_str {%d %d A quoted string: '%.1q'} 1 2 {Hi Y'all}
  3564  } {1 2 A quoted string: 'H'}
  3565  do_test printf-4.15 {
  3566    sqlite3_mprintf_str {%d %d A quoted string: '%.0q'} 1 2 {Hi Y'all}
  3567  } {1 2 A quoted string: ''}
  3568  do_test printf-4.16 {
  3569    sqlite3_mprintf_str {%d A quoted string: '%.*q'} 1 6 {Hi Y'all}
  3570  } {1 A quoted string: 'Hi Y''a'}
  3571  
  3572  
  3573  do_test printf-5.1 {
  3574    set x [sqlite3_mprintf_str {%d %d %100000s} 0 0 {Hello}]
  3575    string length $x
  3576  } {100004}
  3577  do_test printf-5.2 {
  3578    sqlite3_mprintf_str {%d %d (%-10.10s) %} -9 -10 {HelloHelloHello}
  3579  } {-9 -10 (HelloHello) %}
  3580  
  3581  do_test printf-6.1 {
  3582    sqlite3_mprintf_z_test , one two three four five six
  3583  } {,one,two,three,four,five,six}
  3584  
  3585  
  3586  do_test printf-7.1 {
  3587    sqlite3_mprintf_scaled {A double: %g} 1.0e307 1.0
  3588  } {A double: 1e+307}
  3589  do_test printf-7.2 {
  3590    sqlite3_mprintf_scaled {A double: %g} 1.0e307 10.0
  3591  } {A double: 1e+308}
  3592  do_test printf-7.3 {
  3593    sqlite3_mprintf_scaled {A double: %g} 1.0e307 100.0
  3594  } {A double: Inf}
  3595  do_test printf-7.4 {
  3596    sqlite3_mprintf_scaled {A double: %g} -1.0e307 100.0
  3597  } {A double: -Inf}
  3598  do_test printf-7.5 {
  3599    sqlite3_mprintf_scaled {A double: %+g} 1.0e307 100.0
  3600  } {A double: +Inf}
  3601  
  3602  do_test printf-8.1 {
  3603    sqlite3_mprintf_int {%u %u %u} 0x7fffffff 0x80000000 0xffffffff
  3604  } {2147483647 2147483648 4294967295}
  3605  do_test printf-8.2 {
  3606    sqlite3_mprintf_long {%lu %lu %lu} 0x7fffffff 0x80000000 0xffffffff
  3607  } {2147483647 2147483648 4294967295}
  3608  do_test printf-8.3 {
  3609    sqlite3_mprintf_int64 {%llu %llu %llu} 2147483647 2147483648 4294967296
  3610  } {2147483647 2147483648 4294967296}
  3611  do_test printf-8.4 {
  3612    sqlite3_mprintf_int64 {%lld %lld %lld} 2147483647 2147483648 4294967296
  3613  } {2147483647 2147483648 4294967296}
  3614  do_test printf-8.5 {
  3615    sqlite3_mprintf_int64 {%llx %llx %llx} 2147483647 2147483648 4294967296
  3616  } {7fffffff 80000000 100000000}
  3617  do_test printf-8.6 {
  3618    sqlite3_mprintf_int64 {%llx %llo %lld} -1 -1 -1
  3619  } {ffffffffffffffff 1777777777777777777777 -1}
  3620  do_test printf-8.7 {
  3621    sqlite3_mprintf_int64 {%llx %llx %llx} +2147483647 +2147483648 +4294967296
  3622  } {7fffffff 80000000 100000000}
  3623  
  3624  do_test printf-9.1 {
  3625    sqlite3_mprintf_int {%*.*c} 4 4 65
  3626  } {AAAA}
  3627  do_test printf-9.2 {
  3628    sqlite3_mprintf_int {%*.*c} -4 1 66
  3629  } {B   }
  3630  do_test printf-9.3 {
  3631    sqlite3_mprintf_int {%*.*c} 4 1 67
  3632  } {   C}
  3633  do_test printf-9.4 {
  3634    sqlite3_mprintf_int {%d %d %c} 4 1 67
  3635  } {4 1 C}
  3636  set ten {          }
  3637  set fifty $ten$ten$ten$ten$ten
  3638  do_test printf-9.5 {
  3639    sqlite3_mprintf_int {%d %*c} 1 -201 67
  3640  } "1 C$fifty$fifty$fifty$fifty"
  3641  do_test printf-9.6 {
  3642    sqlite3_mprintf_int {hi%12345.12346yhello} 0 0 0
  3643  } {hi}
  3644  
  3645  # Ticket #812
  3646  #
  3647  do_test printf-10.1 {
  3648    sqlite3_mprintf_stronly %s {}
  3649  } {}
  3650  
  3651  # Ticket #831
  3652  #
  3653  do_test printf-10.2 {
  3654    sqlite3_mprintf_stronly %q {}
  3655  } {}
  3656  
  3657  # Ticket #1340:  Test for loss of precision on large positive exponents
  3658  #
  3659  do_test printf-10.3 {
  3660    sqlite3_mprintf_double {%d %d %f} 1 1 1e300
  3661  } {1 1 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000}
  3662  
  3663  # The non-standard '!' flag on a 'g' conversion forces a decimal point
  3664  # and at least one digit on either side of the decimal point.
  3665  #
  3666  do_test printf-11.1 {
  3667    sqlite3_mprintf_double {%d %d %!g} 1 1 1
  3668  } {1 1 1.0}
  3669  do_test printf-11.2 {
  3670    sqlite3_mprintf_double {%d %d %!g} 1 1 123
  3671  } {1 1 123.0}
  3672  do_test printf-11.3 {
  3673    sqlite3_mprintf_double {%d %d %!g} 1 1 12.3
  3674  } {1 1 12.3}
  3675  do_test printf-11.4 {
  3676    sqlite3_mprintf_double {%d %d %!g} 1 1 0.123
  3677  } {1 1 0.123}
  3678  do_test printf-11.5 {
  3679    sqlite3_mprintf_double {%d %d %!.15g} 1 1 1
  3680  } {1 1 1.0}
  3681  do_test printf-11.6 {
  3682    sqlite3_mprintf_double {%d %d %!.15g} 1 1 1e10
  3683  } {1 1 10000000000.0}
  3684  do_test printf-11.7 {
  3685    sqlite3_mprintf_double {%d %d %!.15g} 1 1 1e300
  3686  } {1 1 1.0e+300}
  3687  
  3688  # Additional tests for coverage
  3689  #
  3690  do_test printf-12.1 {
  3691    sqlite3_mprintf_double {%d %d %.2000g} 1 1 1.0
  3692  } {1 1 1}
  3693  
  3694  # Floating point boundary cases
  3695  #
  3696  do_test printf-13.1 {
  3697    sqlite3_mprintf_hexdouble %.20f 4024000000000000
  3698  } {10.00000000000000000000}
  3699  do_test printf-13.2 {
  3700    sqlite3_mprintf_hexdouble %.20f 4197d78400000000
  3701  } {100000000.00000000000000000000}
  3702  do_test printf-13.3 {
  3703    sqlite3_mprintf_hexdouble %.20f 4693b8b5b5056e17
  3704  } {100000000000000000000000000000000.00000000000000000000}
  3705  do_test printf-13.4 {
  3706    sqlite3_mprintf_hexdouble %.20f 7ff0000000000000
  3707  } {Inf}
  3708  do_test printf-13.5 {
  3709    sqlite3_mprintf_hexdouble %.20f fff0000000000000
  3710  } {-Inf}
  3711  do_test printf-13.6 {
  3712    sqlite3_mprintf_hexdouble %.20f fff8000000000000
  3713  } {NaN}
  3714  do_test printf-13.7 {
  3715    sqlite3_mprintf_hexdouble %2147483648.10000f 4693b8b5b5056e17
  3716  } {/100000000000000000000000000000000.00/}
  3717  
  3718  do_test printf-14.1 {
  3719    sqlite3_mprintf_str {abc-%y-123} 0 0 {not used}
  3720  } {abc-}
  3721  do_test printf-14.2 {
  3722    sqlite3_mprintf_n_test {xyzzy}
  3723  } 5
  3724  do_test printf-14.3 {
  3725    sqlite3_mprintf_str {abc-%T-123} 0 0 {not used}
  3726  } {abc-}
  3727  do_test printf-14.4 {
  3728    sqlite3_mprintf_str {abc-%#} 0 0 {not used}
  3729  } {abc-}
  3730  do_test printf-14.5 {
  3731    sqlite3_mprintf_str {abc-%*.*s-xyz} 10 -10 {a_very_long_string}
  3732  } {abc-a_very_lon-xyz}
  3733  do_test printf-14.6 {
  3734    sqlite3_mprintf_str {abc-%5.10/} 0 0 {not used}
  3735  } {abc-}
  3736  do_test printf-14.7 {
  3737    sqlite3_mprintf_str {abc-%05.5d} 123 0 {not used}
  3738  } {abc-00123}
  3739  do_test printf-14.8 {
  3740    sqlite3_mprintf_str {abc-%05.5d} 1234567 0 {not used}
  3741  } {abc-1234567}
  3742  
  3743  for {set i 2} {$i<200} {incr i} {
  3744    set res [string repeat { } [expr {$i-1}]]x
  3745    do_test printf-14.90.$i "
  3746      sqlite3_mprintf_str {%*.*s} $i 500 x
  3747    " $res
  3748  }
  3749  
  3750  do_test printf-15.1 {
  3751    sqlite3_snprintf_int 5 {12345} 0
  3752  } {1234}
  3753  do_test printf-15.2 {
  3754    sqlite3_snprintf_int 5 {} 0
  3755  } {}
  3756  do_test printf-15.3 {
  3757    sqlite3_snprintf_int 0 {} 0
  3758  } {abcdefghijklmnopqrstuvwxyz}
  3759  
  3760  # Now test malloc() failure within a sqlite3_mprintf():
  3761  #
  3762  foreach var {a b c d} {
  3763    set $var [string repeat $var 400]
  3764  }
  3765  set str1 "[string repeat A 360]%d%d%s"
  3766  set str2 [string repeat B 5000]
  3767  set zSuccess "[string repeat A 360]11[string repeat B 5000]"
  3768  foreach ::iRepeat {0 1} {
  3769    set nTestNum 1
  3770    while {1} {
  3771      sqlite3_memdebug_fail $nTestNum -repeat $::iRepeat
  3772      set z [sqlite3_mprintf_str $str1 1 1 $str2]
  3773      set nFail [sqlite3_memdebug_fail -1 -benign nBenign]
  3774      do_test printf-malloc-$::iRepeat.$nTestNum {
  3775        expr {($nFail>0 && $z eq "") || ($nFail==$nBenign && $z eq $zSuccess)}
  3776      } {1}
  3777      if {$nFail == 0} break
  3778      incr nTestNum
  3779    }
  3780  }
  3781  
  3782  # 2020-05-23
  3783  # ticket 23439ea582241138
  3784  #
  3785  do_execsql_test printf-16.1 {
  3786    SELECT printf('%.*g',2147483647,0.01);
  3787  } {0.01}
  3788  
  3789  finish_test