CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
func4.test782 linesDownload Raw Back to test
1# 2023-03-102#3# The author disclaims copyright to this source code.  In place of4# a legal notice, here is a blessing:5#6#    May you do good and not evil.7#    May you find forgiveness for yourself and forgive others.8#    May you share freely, never taking more than you give.9#10#***********************************************************************11# This file implements regression tests for SQLite library. The focus of12# this file is testing the tointeger() and toreal() functions that are13# part of the "totype.c" extension.  This file does not test the core14# SQLite library.  Failures of tests in this file are related to the15# ext/misc/totype.c extension.16#17# Several of the toreal() tests are disabled on platforms where floating18# point precision is not high enough to represent their constant integer19# expression arguments as double precision floating point values.20#21set testdir [file dirname $argv0]22source $testdir/tester.tcl23set saved_tcl_precision $tcl_precision24set tcl_precision 025load_static_extension db totype26 27set highPrecision(1) [expr \28    {[db eval {SELECT tointeger(9223372036854775807 + 1);}] eq {{}}}]29set highPrecision(2) [expr \30    {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}]31 32# highPrecision(3) is only known to be false on i586 with gcc-13 and -O2.33# It is true on the exact same platform with -O0.  Both results seem34# reasonable, so we'll just very the expectation accordingly.35#36set highPrecision(3) [expr \37    {[db eval {SELECT toreal(9007199254740992 + 1);}] eq {{}}}]38 39if {!$highPrecision(1) || !$highPrecision(2) || !$highPrecision(3)} {40  puts "NOTICE:\41        highPrecision: $highPrecision(1) $highPrecision(2) $highPrecision(3)"42}43 44do_execsql_test func4-1.1 {45  SELECT tointeger(NULL);46} {{}}47do_execsql_test func4-1.2 {48  SELECT tointeger('');49} {{}}50do_execsql_test func4-1.3 {51  SELECT tointeger('   ');52} {{}}53do_execsql_test func4-1.4 {54  SELECT tointeger('1234');55} {1234}56do_execsql_test func4-1.5 {57  SELECT tointeger('   1234');58} {{}}59do_execsql_test func4-1.6 {60  SELECT tointeger('bad');61} {{}}62do_execsql_test func4-1.7 {63  SELECT tointeger('0xBAD');64} {{}}65do_execsql_test func4-1.8 {66  SELECT tointeger('123BAD');67} {{}}68do_execsql_test func4-1.9 {69  SELECT tointeger('0x123BAD');70} {{}}71do_execsql_test func4-1.10 {72  SELECT tointeger('123NO');73} {{}}74do_execsql_test func4-1.11 {75  SELECT tointeger('0x123NO');76} {{}}77do_execsql_test func4-1.12 {78  SELECT tointeger('-0x1');79} {{}}80do_execsql_test func4-1.13 {81  SELECT tointeger('-0x0');82} {{}}83do_execsql_test func4-1.14 {84  SELECT tointeger('0x0');85} {{}}86do_execsql_test func4-1.15 {87  SELECT tointeger('0x1');88} {{}}89do_execsql_test func4-1.16 {90  SELECT tointeger(-1);91} {-1}92do_execsql_test func4-1.17 {93  SELECT tointeger(-0);94} {0}95do_execsql_test func4-1.18 {96  SELECT tointeger(0);97} {0}98do_execsql_test func4-1.19 {99  SELECT tointeger(1);100} {1}101do_execsql_test func4-1.20 {102  SELECT tointeger(-1.79769313486232e308 - 1);103} {{}}104do_execsql_test func4-1.21 {105  SELECT tointeger(-1.79769313486232e308);106} {{}}107do_execsql_test func4-1.22 {108  SELECT tointeger(-1.79769313486232e308 + 1);109} {{}}110do_execsql_test func4-1.23 {111  SELECT tointeger(-9223372036854775808 - 1);112} {{}}113do_execsql_test func4-1.24 {114  SELECT tointeger(-9223372036854775808);115} {-9223372036854775808}116do_execsql_test func4-1.25 {117  SELECT tointeger(-9223372036854775808 + 1);118} {-9223372036854775807}119do_execsql_test func4-1.26 {120  SELECT tointeger(-9223372036854775807 - 1);121} {-9223372036854775808}122do_execsql_test func4-1.27 {123  SELECT tointeger(-9223372036854775807);124} {-9223372036854775807}125do_execsql_test func4-1.28 {126  SELECT tointeger(-9223372036854775807 + 1);127} {-9223372036854775806}128do_execsql_test func4-1.29 {129  SELECT tointeger(-2147483648 - 1);130} {-2147483649}131do_execsql_test func4-1.30 {132  SELECT tointeger(-2147483648);133} {-2147483648}134do_execsql_test func4-1.31 {135  SELECT tointeger(-2147483648 + 1);136} {-2147483647}137do_execsql_test func4-1.32 {138  SELECT tointeger(2147483647 - 1);139} {2147483646}140do_execsql_test func4-1.33 {141  SELECT tointeger(2147483647);142} {2147483647}143do_execsql_test func4-1.34 {144  SELECT tointeger(2147483647 + 1);145} {2147483648}146do_execsql_test func4-1.35 {147  SELECT tointeger(9223372036854775807 - 1);148} {9223372036854775806}149do_execsql_test func4-1.36 {150  SELECT tointeger(9223372036854775807);151} {9223372036854775807}152if {$highPrecision(1)} {153  do_execsql_test func4-1.37 {154    SELECT tointeger(9223372036854775807 + 1);155  } {{}}156}157do_execsql_test func4-1.38 {158  SELECT tointeger(1.79769313486232e308 - 1);159} {{}}160do_execsql_test func4-1.39 {161  SELECT tointeger(1.79769313486232e308);162} {{}}163do_execsql_test func4-1.40 {164  SELECT tointeger(1.79769313486232e308 + 1);165} {{}}166do_execsql_test func4-1.41 {167  SELECT tointeger(4503599627370496 - 1);168} {4503599627370495}169do_execsql_test func4-1.42 {170  SELECT tointeger(4503599627370496);171} {4503599627370496}172do_execsql_test func4-1.43 {173  SELECT tointeger(4503599627370496 + 1);174} {4503599627370497}175do_execsql_test func4-1.44 {176  SELECT tointeger(9007199254740992 - 1);177} {9007199254740991}178do_execsql_test func4-1.45 {179  SELECT tointeger(9007199254740992);180} {9007199254740992}181do_execsql_test func4-1.46 {182  SELECT tointeger(9007199254740992 + 1);183} {9007199254740993}184do_execsql_test func4-1.47 {185  SELECT tointeger(9223372036854775807 - 1);186} {9223372036854775806}187do_execsql_test func4-1.48 {188  SELECT tointeger(9223372036854775807);189} {9223372036854775807}190if {$highPrecision(1)} {191  do_execsql_test func4-1.49 {192    SELECT tointeger(9223372036854775807 + 1);193  } {{}}194  do_execsql_test func4-1.50 {195    SELECT tointeger(9223372036854775808 - 1);196  } {{}}197  do_execsql_test func4-1.51 {198    SELECT tointeger(9223372036854775808);199  } {{}}200  do_execsql_test func4-1.52 {201    SELECT tointeger(9223372036854775808 + 1);202  } {{}}203}204do_execsql_test func4-1.53 {205  SELECT tointeger(18446744073709551616 - 1);206} {{}}207do_execsql_test func4-1.54 {208  SELECT tointeger(18446744073709551616);209} {{}}210do_execsql_test func4-1.55 {211  SELECT tointeger(18446744073709551616 + 1);212} {{}}213 214ifcapable floatingpoint {215 216  do_execsql_test func4-2.1 {217    SELECT toreal(NULL);218  } {{}}219  do_execsql_test func4-2.2 {220    SELECT toreal('');221  } {{}}222  do_execsql_test func4-2.3 {223    SELECT toreal('   ');224  } {{}}225  do_execsql_test func4-2.4 {226    SELECT toreal('1234');227  } {1234.0}228  do_execsql_test func4-2.5 {229    SELECT toreal('   1234');230  } {{}}231  do_execsql_test func4-2.6 {232    SELECT toreal('bad');233  } {{}}234  do_execsql_test func4-2.7 {235    SELECT toreal('0xBAD');236  } {{}}237  do_execsql_test func4-2.8 {238    SELECT toreal('123BAD');239  } {{}}240  do_execsql_test func4-2.9 {241    SELECT toreal('0x123BAD');242  } {{}}243  do_execsql_test func4-2.10 {244    SELECT toreal('123NO');245  } {{}}246  do_execsql_test func4-2.11 {247    SELECT toreal('0x123NO');248  } {{}}249  do_execsql_test func4-2.12 {250    SELECT toreal('-0x1');251  } {{}}252  do_execsql_test func4-2.13 {253    SELECT toreal('-0x0');254  } {{}}255  do_execsql_test func4-2.14 {256    SELECT toreal('0x0');257  } {{}}258  do_execsql_test func4-2.15 {259    SELECT toreal('0x1');260  } {{}}261  do_execsql_test func4-2.16 {262    SELECT toreal(-1);263  } {-1.0}264  do_execsql_test func4-2.17 {265    SELECT toreal(-0);266  } {0.0}267  do_execsql_test func4-2.18 {268    SELECT toreal(0);269  } {0.0}270  do_execsql_test func4-2.19 {271    SELECT toreal(1);272  } {1.0}273  do_execsql_test func4-2.20 {274    SELECT toreal(-1.79769313486232e308 - 1);275  } {-Inf}276  do_execsql_test func4-2.21 {277    SELECT toreal(-1.79769313486232e308);278  } {-Inf}279  do_execsql_test func4-2.22 {280    SELECT toreal(-1.79769313486232e308 + 1);281  } {-Inf}282  do_execsql_test func4-2.23 {283    SELECT toreal(-9223372036854775808 - 1);284  } {-9.223372036854776e+18}285  do_execsql_test func4-2.24 {286    SELECT toreal(-9223372036854775808);287  } {{}}288  if {$highPrecision(2)} {289    do_execsql_test func4-2.25 {290      SELECT toreal(-9223372036854775808 + 1);291    } {{}}292  }293  do_execsql_test func4-2.26 {294    SELECT toreal(-9223372036854775807 - 1);295  } {{}}296  if {$highPrecision(2)} {297    do_execsql_test func4-2.27 {298      SELECT toreal(-9223372036854775807);299    } {{}}300    do_execsql_test func4-2.28 {301      SELECT toreal(-9223372036854775807 + 1);302    } {{}}303  }304  do_execsql_test func4-2.29 {305    SELECT toreal(-2147483648 - 1);306  } {-2147483649.0}307  do_execsql_test func4-2.30 {308    SELECT toreal(-2147483648);309  } {-2147483648.0}310  do_execsql_test func4-2.31 {311    SELECT toreal(-2147483648 + 1);312  } {-2147483647.0}313  do_execsql_test func4-2.32 {314    SELECT toreal(2147483647 - 1);315  } {2147483646.0}316  do_execsql_test func4-2.33 {317    SELECT toreal(2147483647);318  } {2147483647.0}319  do_execsql_test func4-2.34 {320    SELECT toreal(2147483647 + 1);321  } {2147483648.0}322  if {$highPrecision(2)} {323    do_execsql_test func4-2.35 {324      SELECT toreal(9223372036854775807 - 1);325    } {{}}326    if {$highPrecision(1)} {327      do_execsql_test func4-2.36 {328        SELECT toreal(9223372036854775807);329      } {{}}330    }331  }332  do_execsql_test func4-2.37 {333    SELECT toreal(9223372036854775807 + 1);334  } {9.223372036854776e+18}335  do_execsql_test func4-2.38 {336    SELECT toreal(1.79769313486232e308 - 1);337  } {Inf}338  do_execsql_test func4-2.39 {339    SELECT toreal(1.79769313486232e308);340  } {Inf}341  do_execsql_test func4-2.40 {342    SELECT toreal(1.79769313486232e308 + 1);343  } {Inf}344  do_execsql_test func4-2.41 {345    SELECT toreal(4503599627370496 - 1);346  } {4503599627370495.0}347  do_execsql_test func4-2.42 {348    SELECT toreal(4503599627370496);349  } {4503599627370496.0}350  do_execsql_test func4-2.43 {351    SELECT toreal(4503599627370496 + 1);352  } {4503599627370497.0}353  do_execsql_test func4-2.44 {354    SELECT toreal(9007199254740992 - 1);355  } {9007199254740991.0}356  do_execsql_test func4-2.45 {357    SELECT toreal(9007199254740992);358  } {9007199254740992.0}359  if {$highPrecision(3)} {360    do_execsql_test func4-2.46 {361      SELECT toreal(9007199254740992 + 1);362    } {{}}363  } else {364    do_execsql_test func4-2.46 {365      SELECT toreal(9007199254740992 + 1);366    } {9007199254740992.0}367  }368  do_execsql_test func4-2.47 {369    SELECT toreal(9007199254740992 + 2);370  } {9007199254740994.0}371  do_execsql_test func4-2.48 {372    SELECT toreal(tointeger(9223372036854775808) - 1);373  } {{}}374  if {$highPrecision(1)} {375    do_execsql_test func4-2.49 {376      SELECT toreal(tointeger(9223372036854775808));377    } {{}}378    do_execsql_test func4-2.50 {379      SELECT toreal(tointeger(9223372036854775808) + 1);380    } {{}}381  }382  do_execsql_test func4-2.51 {383    SELECT toreal(tointeger(18446744073709551616) - 1);384  } {{}}385  do_execsql_test func4-2.52 {386    SELECT toreal(tointeger(18446744073709551616));387  } {{}}388  do_execsql_test func4-2.53 {389    SELECT toreal(tointeger(18446744073709551616) + 1);390  } {{}}391}392 393ifcapable check {394  do_execsql_test func4-3.1 {395    CREATE TABLE t1(396      x INTEGER CHECK(tointeger(x) IS NOT NULL)397    );398  } {}399  do_test func4-3.2 {400    catchsql {401      INSERT INTO t1 (x) VALUES (NULL);402    }403  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}404  do_test func4-3.3 {405    catchsql {406      INSERT INTO t1 (x) VALUES (NULL);407    }408  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}409  do_test func4-3.4 {410    catchsql {411      INSERT INTO t1 (x) VALUES ('');412    }413  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}414  do_test func4-3.5 {415    catchsql {416      INSERT INTO t1 (x) VALUES ('bad');417    }418  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}419  do_test func4-3.6 {420    catchsql {421      INSERT INTO t1 (x) VALUES ('1234bad');422    }423  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}424  do_test func4-3.7 {425    catchsql {426      INSERT INTO t1 (x) VALUES ('1234.56bad');427    }428  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}429  do_test func4-3.8 {430    catchsql {431      INSERT INTO t1 (x) VALUES (1234);432    }433  } {0 {}}434  do_test func4-3.9 {435    catchsql {436      INSERT INTO t1 (x) VALUES (1234.56);437    }438  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}439  do_test func4-3.10 {440    catchsql {441      INSERT INTO t1 (x) VALUES ('1234');442    }443  } {0 {}}444  do_test func4-3.11 {445    catchsql {446      INSERT INTO t1 (x) VALUES ('1234.56');447    }448  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}449  do_test func4-3.12 {450    catchsql {451      INSERT INTO t1 (x) VALUES (ZEROBLOB(4));452    }453  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}454  do_test func4-3.13 {455    catchsql {456      INSERT INTO t1 (x) VALUES (X'');457    }458  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}459  do_test func4-3.14 {460    catchsql {461      INSERT INTO t1 (x) VALUES (X'1234');462    }463  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}464  do_test func4-3.15 {465    catchsql {466      INSERT INTO t1 (x) VALUES (X'12345678');467    }468  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}469  do_test func4-3.16 {470    catchsql {471      INSERT INTO t1 (x) VALUES ('1234.00');472    }473  } {0 {}}474  do_test func4-3.17 {475    catchsql {476      INSERT INTO t1 (x) VALUES (1234.00);477    }478  } {0 {}}479  do_test func4-3.18 {480    catchsql {481      INSERT INTO t1 (x) VALUES ('-9223372036854775809');482    }483  } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}484  if {$highPrecision(1)} {485    do_test func4-3.19 {486      catchsql {487        INSERT INTO t1 (x) VALUES (9223372036854775808);488      }489    } {1 {CHECK constraint failed: tointeger(x) IS NOT NULL}}490  }491  do_execsql_test func4-3.20 {492    SELECT x FROM t1 WHERE x>0 ORDER BY x;493  } {1234 1234 1234 1234}494 495  ifcapable floatingpoint {496    do_execsql_test func4-4.1 {497      CREATE TABLE t2(498        x REAL CHECK(toreal(x) IS NOT NULL)499      );500    } {}501    do_test func4-4.2 {502      catchsql {503        INSERT INTO t2 (x) VALUES (NULL);504      }505    } {1 {CHECK constraint failed: toreal(x) IS NOT NULL}}506    do_test func4-4.3 {507      catchsql {508        INSERT INTO t2 (x) VALUES (NULL);509      }510    } {1 {CHECK constraint failed: toreal(x) IS NOT NULL}}511    do_test func4-4.4 {512      catchsql {513        INSERT INTO t2 (x) VALUES ('');514      }515    } {1 {CHECK constraint failed: toreal(x) IS NOT NULL}}516    do_test func4-4.5 {517      catchsql {518        INSERT INTO t2 (x) VALUES ('bad');519      }520    } {1 {CHECK constraint failed: toreal(x) IS NOT NULL}}521    do_test func4-4.6 {522      catchsql {523        INSERT INTO t2 (x) VALUES ('1234bad');524      }525    } {1 {CHECK constraint failed: toreal(x) IS NOT NULL}}526    do_test func4-4.7 {527      catchsql {528        INSERT INTO t2 (x) VALUES ('1234.56bad');529      }530    } {1 {CHECK constraint failed: toreal(x) IS NOT NULL}}531    do_test func4-4.8 {532      catchsql {533        INSERT INTO t2 (x) VALUES (1234);534      }535    } {0 {}}536    do_test func4-4.9 {537      catchsql {538        INSERT INTO t2 (x) VALUES (1234.56);539      }540    } {0 {}}541    do_test func4-4.10 {542      catchsql {543        INSERT INTO t2 (x) VALUES ('1234');544      }545    } {0 {}}546    do_test func4-4.11 {547      catchsql {548        INSERT INTO t2 (x) VALUES ('1234.56');549      }550    } {0 {}}551    do_test func4-4.12 {552      catchsql {553        INSERT INTO t2 (x) VALUES (ZEROBLOB(4));554      }555    } {1 {CHECK constraint failed: toreal(x) IS NOT NULL}}556    do_test func4-4.13 {557      catchsql {558        INSERT INTO t2 (x) VALUES (X'');559      }560    } {1 {CHECK constraint failed: toreal(x) IS NOT NULL}}561    do_test func4-4.14 {562      catchsql {563        INSERT INTO t2 (x) VALUES (X'1234');564      }565    } {1 {CHECK constraint failed: toreal(x) IS NOT NULL}}566    do_test func4-4.15 {567      catchsql {568        INSERT INTO t2 (x) VALUES (X'12345678');569      }570    } {1 {CHECK constraint failed: toreal(x) IS NOT NULL}}571    do_execsql_test func4-4.16 {572      SELECT x FROM t2 ORDER BY x;573    } {1234.0 1234.0 1234.56 1234.56}574  }575}576 577ifcapable floatingpoint {578  do_execsql_test func4-5.1 {579    SELECT tointeger(toreal('1234'));580  } {1234}581  do_execsql_test func4-5.2 {582    SELECT tointeger(toreal(-1));583  } {-1}584  do_execsql_test func4-5.3 {585    SELECT tointeger(toreal(-0));586  } {0}587  do_execsql_test func4-5.4 {588    SELECT tointeger(toreal(0));589  } {0}590  do_execsql_test func4-5.5 {591    SELECT tointeger(toreal(1));592  } {1}593  do_execsql_test func4-5.6 {594    SELECT tointeger(toreal(-9223372036854775808 - 1));595  } {{}}596  do_execsql_test func4-5.7 {597    SELECT tointeger(toreal(-9223372036854775808));598  } {{}}599  if {$highPrecision(2)} {600    do_execsql_test func4-5.8 {601      SELECT tointeger(toreal(-9223372036854775808 + 1));602    } {{}}603  }604  do_execsql_test func4-5.9 {605    SELECT tointeger(toreal(-2147483648 - 1));606  } {-2147483649}607  do_execsql_test func4-5.10 {608    SELECT tointeger(toreal(-2147483648));609  } {-2147483648}610  do_execsql_test func4-5.11 {611    SELECT tointeger(toreal(-2147483648 + 1));612  } {-2147483647}613  do_execsql_test func4-5.12 {614    SELECT tointeger(toreal(2147483647 - 1));615  } {2147483646}616  do_execsql_test func4-5.13 {617    SELECT tointeger(toreal(2147483647));618  } {2147483647}619  do_execsql_test func4-5.14 {620    SELECT tointeger(toreal(2147483647 + 1));621  } {2147483648}622  do_execsql_test func4-5.15 {623    SELECT tointeger(toreal(9223372036854775807 - 1));624  } {{}}625  if {$highPrecision(1)} {626    do_execsql_test func4-5.16 {627      SELECT tointeger(toreal(9223372036854775807));628    } {{}}629    do_execsql_test func4-5.17 {630      SELECT tointeger(toreal(9223372036854775807 + 1));631    } {{}}632  }633  do_execsql_test func4-5.18 {634    SELECT tointeger(toreal(4503599627370496 - 1));635  } {4503599627370495}636  do_execsql_test func4-5.19 {637    SELECT tointeger(toreal(4503599627370496));638  } {4503599627370496}639  do_execsql_test func4-5.20 {640    SELECT tointeger(toreal(4503599627370496 + 1));641  } {4503599627370497}642  do_execsql_test func4-5.21 {643    SELECT tointeger(toreal(9007199254740992 - 1));644  } {9007199254740991}645  do_execsql_test func4-5.22 {646    SELECT tointeger(toreal(9007199254740992));647  } {9007199254740992}648  if {$highPrecision(3)} {649    do_execsql_test func4-5.23 {650      SELECT tointeger(toreal(9007199254740992 + 1));651    } {{}}652  } else {653    do_execsql_test func4-5.23 {654      SELECT tointeger(toreal(9007199254740992 + 1));655    } {9007199254740992}656  }657  do_execsql_test func4-5.24 {658    SELECT tointeger(toreal(9007199254740992 + 2));659  } {9007199254740994}660  if {$highPrecision(1)} {661    do_execsql_test func4-5.25 {662      SELECT tointeger(toreal(9223372036854775808 - 1));663    } {{}}664    do_execsql_test func4-5.26 {665      SELECT tointeger(toreal(9223372036854775808));666    } {{}}667    do_execsql_test func4-5.27 {668      SELECT tointeger(toreal(9223372036854775808 + 1));669    } {{}}670  }671  do_execsql_test func4-5.28 {672    SELECT tointeger(toreal(18446744073709551616 - 1));673  } {{}}674  do_execsql_test func4-5.29 {675    SELECT tointeger(toreal(18446744073709551616));676  } {{}}677  do_execsql_test func4-5.30 {678    SELECT tointeger(toreal(18446744073709551616 + 1));679  } {{}}680}681 682for {set i 0} {$i < 10} {incr i} {683  if {$i == 8} continue684  do_execsql_test func4-6.1.$i.1 [subst {685    SELECT tointeger(x'[string repeat 01 $i]');686  }] {{}}687  ifcapable floatingpoint {688    do_execsql_test func4-6.1.$i.2 [subst {689      SELECT toreal(x'[string repeat 01 $i]');690    }] {{}}691  }692}693 694do_execsql_test func4-6.2.1 {695  SELECT tointeger(x'0102030405060708');696} {578437695752307201}697do_execsql_test func4-6.2.2 {698  SELECT tointeger(x'0807060504030201');699} {72623859790382856}700 701ifcapable floatingpoint {702  do_execsql_test func4-6.3.1 {703    SELECT toreal(x'ffefffffffffffff');704  } {-1.7976931348623157e+308}705  do_execsql_test func4-6.3.2 {706    SELECT toreal(x'8010000000000000');707  } {-2.2250738585072014e-308}708  do_execsql_test func4-6.3.3 {709    SELECT toreal(x'c000000000000000');710  } {-2.0}711  do_execsql_test func4-6.3.4 {712    SELECT toreal(x'bff0000000000000');713  } {-1.0}714  do_execsql_test func4-6.3.5 {715    SELECT toreal(x'8000000000000000');716  } {-0.0}717  do_execsql_test func4-6.3.6 {718    SELECT toreal(x'0000000000000000');719  } {0.0}720  do_execsql_test func4-6.3.7 {721    SELECT toreal(x'3ff0000000000000');722  } {1.0}723  do_execsql_test func4-6.3.8 {724    SELECT toreal(x'4000000000000000');725  } {2.0}726  do_execsql_test func4-6.3.9 {727    SELECT toreal(x'0010000000000000');728  } {2.2250738585072014e-308}729  do_execsql_test func4-6.3.10 {730    SELECT toreal(x'7fefffffffffffff');731  } {1.7976931348623157e+308}732  do_execsql_test func4-6.3.11 {733    SELECT toreal(x'8000000000000001');734  } {-5e-324}735  do_execsql_test func4-6.3.12 {736    SELECT toreal(x'800fffffffffffff');737  } {-2.225073858507201e-308}738  do_execsql_test func4-6.3.13 {739    SELECT toreal(x'0000000000000001');740  } {5e-324}741  do_execsql_test func4-6.3.14 {742    SELECT toreal(x'000fffffffffffff');743  } {2.225073858507201e-308}744  do_execsql_test func4-6.3.15 {745    SELECT toreal(x'fff0000000000000');746  } {-Inf}747  do_execsql_test func4-6.3.16 {748    SELECT toreal(x'7ff0000000000000');749  } {Inf}750  do_execsql_test func4-6.3.17 {751    SELECT toreal(x'fff8000000000000');752  } {{}}753  do_execsql_test func4-6.3.18 {754    SELECT toreal(x'fff0000000000001');755  } {{}}756  do_execsql_test func4-6.3.19 {757    SELECT toreal(x'fff7ffffffffffff');758  } {{}}759  do_execsql_test func4-6.3.20 {760    SELECT toreal(x'7ff0000000000001');761  } {{}}762  do_execsql_test func4-6.3.21 {763    SELECT toreal(x'7ff7ffffffffffff');764  } {{}}765  do_execsql_test func4-6.3.22 {766    SELECT toreal(x'fff8000000000001');767  } {{}}768  do_execsql_test func4-6.3.23 {769    SELECT toreal(x'ffffffffffffffff');770  } {{}}771  do_execsql_test func4-6.3.24 {772    SELECT toreal(x'7ff8000000000000');773  } {{}}774  do_execsql_test func4-6.3.25 {775    SELECT toreal(x'7fffffffffffffff');776  } {{}}777}778 779set tcl_precision $saved_tcl_precision780unset saved_tcl_precision781finish_test782