| # 2013 March 10 |
| # |
| # The author disclaims copyright to this source code. In place of |
| # a legal notice, here is a blessing: |
| # |
| # May you do good and not evil. |
| # May you find forgiveness for yourself and forgive others. |
| # May you share freely, never taking more than you give. |
| # |
| #*********************************************************************** |
| # This file implements regression tests for SQLite library. The focus of |
| # this file is testing the tointeger() and toreal() functions. |
| # |
| # Several of the toreal() tests are disabled on platforms where floating |
| # point precision is not high enough to represent their constant integer |
| # expression arguments as double precision floating point values. |
| # |
| set testdir [file dirname $argv0] |
| source $testdir/tester.tcl |
| set saved_tcl_precision $tcl_precision |
| set tcl_precision 0 |
| load_static_extension db totype |
| |
| set highPrecision(1) [expr \ |
| {[db eval {SELECT tointeger(9223372036854775807 + 1);}] eq {{}}}] |
| |
| do_execsql_test func4-1.1 { |
| SELECT tointeger(NULL); |
| } {{}} |
| do_execsql_test func4-1.2 { |
| SELECT tointeger(''); |
| } {{}} |
| do_execsql_test func4-1.3 { |
| SELECT tointeger(' '); |
| } {{}} |
| do_execsql_test func4-1.4 { |
| SELECT tointeger('1234'); |
| } {1234} |
| do_execsql_test func4-1.5 { |
| SELECT tointeger(' 1234'); |
| } {{}} |
| do_execsql_test func4-1.6 { |
| SELECT tointeger('bad'); |
| } {{}} |
| do_execsql_test func4-1.7 { |
| SELECT tointeger('0xBAD'); |
| } {{}} |
| do_execsql_test func4-1.8 { |
| SELECT tointeger('123BAD'); |
| } {{}} |
| do_execsql_test func4-1.9 { |
| SELECT tointeger('0x123BAD'); |
| } {{}} |
| do_execsql_test func4-1.10 { |
| SELECT tointeger('123NO'); |
| } {{}} |
| do_execsql_test func4-1.11 { |
| SELECT tointeger('0x123NO'); |
| } {{}} |
| do_execsql_test func4-1.12 { |
| SELECT tointeger('-0x1'); |
| } {{}} |
| do_execsql_test func4-1.13 { |
| SELECT tointeger('-0x0'); |
| } {{}} |
| do_execsql_test func4-1.14 { |
| SELECT tointeger('0x0'); |
| } {{}} |
| do_execsql_test func4-1.15 { |
| SELECT tointeger('0x1'); |
| } {{}} |
| do_execsql_test func4-1.16 { |
| SELECT tointeger(-1); |
| } {-1} |
| do_execsql_test func4-1.17 { |
| SELECT tointeger(-0); |
| } {0} |
| do_execsql_test func4-1.18 { |
| SELECT tointeger(0); |
| } {0} |
| do_execsql_test func4-1.19 { |
| SELECT tointeger(1); |
| } {1} |
| do_execsql_test func4-1.20 { |
| SELECT tointeger(-1.79769313486232e308 - 1); |
| } {{}} |
| do_execsql_test func4-1.21 { |
| SELECT tointeger(-1.79769313486232e308); |
| } {{}} |
| do_execsql_test func4-1.22 { |
| SELECT tointeger(-1.79769313486232e308 + 1); |
| } {{}} |
| do_execsql_test func4-1.23 { |
| SELECT tointeger(-9223372036854775808 - 1); |
| } {-9223372036854775808} |
| do_execsql_test func4-1.24 { |
| SELECT tointeger(-9223372036854775808); |
| } {-9223372036854775808} |
| do_execsql_test func4-1.25 { |
| SELECT tointeger(-9223372036854775808 + 1); |
| } {-9223372036854775807} |
| do_execsql_test func4-1.26 { |
| SELECT tointeger(-9223372036854775807 - 1); |
| } {-9223372036854775808} |
| do_execsql_test func4-1.27 { |
| SELECT tointeger(-9223372036854775807); |
| } {-9223372036854775807} |
| do_execsql_test func4-1.28 { |
| SELECT tointeger(-9223372036854775807 + 1); |
| } {-9223372036854775806} |
| do_execsql_test func4-1.29 { |
| SELECT tointeger(-2147483648 - 1); |
| } {-2147483649} |
| do_execsql_test func4-1.30 { |
| SELECT tointeger(-2147483648); |
| } {-2147483648} |
| do_execsql_test func4-1.31 { |
| SELECT tointeger(-2147483648 + 1); |
| } {-2147483647} |
| do_execsql_test func4-1.32 { |
| SELECT tointeger(2147483647 - 1); |
| } {2147483646} |
| do_execsql_test func4-1.33 { |
| SELECT tointeger(2147483647); |
| } {2147483647} |
| do_execsql_test func4-1.34 { |
| SELECT tointeger(2147483647 + 1); |
| } {2147483648} |
| do_execsql_test func4-1.35 { |
| SELECT tointeger(9223372036854775807 - 1); |
| } {9223372036854775806} |
| do_execsql_test func4-1.36 { |
| SELECT tointeger(9223372036854775807); |
| } {9223372036854775807} |
| if {$highPrecision(1)} { |
| do_execsql_test func4-1.37 { |
| SELECT tointeger(9223372036854775807 + 1); |
| } {{}} |
| } |
| do_execsql_test func4-1.38 { |
| SELECT tointeger(1.79769313486232e308 - 1); |
| } {{}} |
| do_execsql_test func4-1.39 { |
| SELECT tointeger(1.79769313486232e308); |
| } {{}} |
| do_execsql_test func4-1.40 { |
| SELECT tointeger(1.79769313486232e308 + 1); |
| } {{}} |
| do_execsql_test func4-1.41 { |
| SELECT tointeger(4503599627370496 - 1); |
| } {4503599627370495} |
| do_execsql_test func4-1.42 { |
| SELECT tointeger(4503599627370496); |
| } {4503599627370496} |
| do_execsql_test func4-1.43 { |
| SELECT tointeger(4503599627370496 + 1); |
| } {4503599627370497} |
| do_execsql_test func4-1.44 { |
| SELECT tointeger(9007199254740992 - 1); |
| } {9007199254740991} |
| do_execsql_test func4-1.45 { |
| SELECT tointeger(9007199254740992); |
| } {9007199254740992} |
| do_execsql_test func4-1.46 { |
| SELECT tointeger(9007199254740992 + 1); |
| } {9007199254740993} |
| do_execsql_test func4-1.47 { |
| SELECT tointeger(9223372036854775807 - 1); |
| } {9223372036854775806} |
| do_execsql_test func4-1.48 { |
| SELECT tointeger(9223372036854775807); |
| } {9223372036854775807} |
| if {$highPrecision(1)} { |
| do_execsql_test func4-1.49 { |
| SELECT tointeger(9223372036854775807 + 1); |
| } {{}} |
| do_execsql_test func4-1.50 { |
| SELECT tointeger(9223372036854775808 - 1); |
| } {{}} |
| do_execsql_test func4-1.51 { |
| SELECT tointeger(9223372036854775808); |
| } {{}} |
| do_execsql_test func4-1.52 { |
| SELECT tointeger(9223372036854775808 + 1); |
| } {{}} |
| } |
| do_execsql_test func4-1.53 { |
| SELECT tointeger(18446744073709551616 - 1); |
| } {{}} |
| do_execsql_test func4-1.54 { |
| SELECT tointeger(18446744073709551616); |
| } {{}} |
| do_execsql_test func4-1.55 { |
| SELECT tointeger(18446744073709551616 + 1); |
| } {{}} |
| |
| ifcapable floatingpoint { |
| set highPrecision(2) [expr \ |
| {[db eval {SELECT toreal(-9223372036854775808 + 1);}] eq {{}}}] |
| |
| do_execsql_test func4-2.1 { |
| SELECT toreal(NULL); |
| } {{}} |
| do_execsql_test func4-2.2 { |
| SELECT toreal(''); |
| } {{}} |
| do_execsql_test func4-2.3 { |
| SELECT toreal(' '); |
| } {{}} |
| do_execsql_test func4-2.4 { |
| SELECT toreal('1234'); |
| } {1234.0} |
| do_execsql_test func4-2.5 { |
| SELECT toreal(' 1234'); |
| } {{}} |
| do_execsql_test func4-2.6 { |
| SELECT toreal('bad'); |
| } {{}} |
| do_execsql_test func4-2.7 { |
| SELECT toreal('0xBAD'); |
| } {{}} |
| do_execsql_test func4-2.8 { |
| SELECT toreal('123BAD'); |
| } {{}} |
| do_execsql_test func4-2.9 { |
| SELECT toreal('0x123BAD'); |
| } {{}} |
| do_execsql_test func4-2.10 { |
| SELECT toreal('123NO'); |
| } {{}} |
| do_execsql_test func4-2.11 { |
| SELECT toreal('0x123NO'); |
| } {{}} |
| do_execsql_test func4-2.12 { |
| SELECT toreal('-0x1'); |
| } {{}} |
| do_execsql_test func4-2.13 { |
| SELECT toreal('-0x0'); |
| } {{}} |
| do_execsql_test func4-2.14 { |
| SELECT toreal('0x0'); |
| } {{}} |
| do_execsql_test func4-2.15 { |
| SELECT toreal('0x1'); |
| } {{}} |
| do_execsql_test func4-2.16 { |
| SELECT toreal(-1); |
| } {-1.0} |
| do_execsql_test func4-2.17 { |
| SELECT toreal(-0); |
| } {0.0} |
| do_execsql_test func4-2.18 { |
| SELECT toreal(0); |
| } {0.0} |
| do_execsql_test func4-2.19 { |
| SELECT toreal(1); |
| } {1.0} |
| do_execsql_test func4-2.20 { |
| SELECT toreal(-1.79769313486232e308 - 1); |
| } {-Inf} |
| do_execsql_test func4-2.21 { |
| SELECT toreal(-1.79769313486232e308); |
| } {-Inf} |
| do_execsql_test func4-2.22 { |
| SELECT toreal(-1.79769313486232e308 + 1); |
| } {-Inf} |
| do_execsql_test func4-2.23 { |
| SELECT toreal(-9223372036854775808 - 1); |
| } {-9.223372036854776e+18} |
| do_execsql_test func4-2.24 { |
| SELECT toreal(-9223372036854775808); |
| } {-9.223372036854776e+18} |
| if {$highPrecision(2)} { |
| do_execsql_test func4-2.25 { |
| SELECT toreal(-9223372036854775808 + 1); |
| } {{}} |
| } |
| do_execsql_test func4-2.26 { |
| SELECT toreal(-9223372036854775807 - 1); |
| } {-9.223372036854776e+18} |
| if {$highPrecision(2)} { |
| do_execsql_test func4-2.27 { |
| SELECT toreal(-9223372036854775807); |
| } {{}} |
| do_execsql_test func4-2.28 { |
| SELECT toreal(-9223372036854775807 + 1); |
| } {{}} |
| } |
| do_execsql_test func4-2.29 { |
| SELECT toreal(-2147483648 - 1); |
| } {-2147483649.0} |
| do_execsql_test func4-2.30 { |
| SELECT toreal(-2147483648); |
| } {-2147483648.0} |
| do_execsql_test func4-2.31 { |
| SELECT toreal(-2147483648 + 1); |
| } {-2147483647.0} |
| do_execsql_test func4-2.32 { |
| SELECT toreal(2147483647 - 1); |
| } {2147483646.0} |
| do_execsql_test func4-2.33 { |
| SELECT toreal(2147483647); |
| } {2147483647.0} |
| do_execsql_test func4-2.34 { |
| SELECT toreal(2147483647 + 1); |
| } {2147483648.0} |
| if {$highPrecision(2)} { |
| do_execsql_test func4-2.35 { |
| SELECT toreal(9223372036854775807 - 1); |
| } {{}} |
| if {$highPrecision(1)} { |
| do_execsql_test func4-2.36 { |
| SELECT toreal(9223372036854775807); |
| } {{}} |
| } |
| } |
| do_execsql_test func4-2.37 { |
| SELECT toreal(9223372036854775807 + 1); |
| } {9.223372036854776e+18} |
| do_execsql_test func4-2.38 { |
| SELECT toreal(1.79769313486232e308 - 1); |
| } {Inf} |
| do_execsql_test func4-2.39 { |
| SELECT toreal(1.79769313486232e308); |
| } {Inf} |
| do_execsql_test func4-2.40 { |
| SELECT toreal(1.79769313486232e308 + 1); |
| } {Inf} |
| do_execsql_test func4-2.41 { |
| SELECT toreal(4503599627370496 - 1); |
| } {4503599627370495.0} |
| do_execsql_test func4-2.42 { |
| SELECT toreal(4503599627370496); |
| } {4503599627370496.0} |
| do_execsql_test func4-2.43 { |
| SELECT toreal(4503599627370496 + 1); |
| } {4503599627370497.0} |
| do_execsql_test func4-2.44 { |
| SELECT toreal(9007199254740992 - 1); |
| } {9007199254740991.0} |
| do_execsql_test func4-2.45 { |
| SELECT toreal(9007199254740992); |
| } {9007199254740992.0} |
| if {$highPrecision(2)} { |
| do_execsql_test func4-2.46 { |
| SELECT toreal(9007199254740992 + 1); |
| } {{}} |
| } |
| do_execsql_test func4-2.47 { |
| SELECT toreal(9007199254740992 + 2); |
| } {9007199254740994.0} |
| do_execsql_test func4-2.48 { |
| SELECT toreal(tointeger(9223372036854775808) - 1); |
| } {{}} |
| if {$highPrecision(1)} { |
| do_execsql_test func4-2.49 { |
| SELECT toreal(tointeger(9223372036854775808)); |
| } {{}} |
| do_execsql_test func4-2.50 { |
| SELECT toreal(tointeger(9223372036854775808) + 1); |
| } {{}} |
| } |
| do_execsql_test func4-2.51 { |
| SELECT toreal(tointeger(18446744073709551616) - 1); |
| } {{}} |
| do_execsql_test func4-2.52 { |
| SELECT toreal(tointeger(18446744073709551616)); |
| } {{}} |
| do_execsql_test func4-2.53 { |
| SELECT toreal(tointeger(18446744073709551616) + 1); |
| } {{}} |
| } |
| |
| ifcapable check { |
| do_execsql_test func4-3.1 { |
| CREATE TABLE t1( |
| x INTEGER CHECK(tointeger(x) IS NOT NULL) |
| ); |
| } {} |
| do_test func4-3.2 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES (NULL); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.3 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES (NULL); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.4 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES (''); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.5 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES ('bad'); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.6 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES ('1234bad'); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.7 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES ('1234.56bad'); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.8 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES (1234); |
| } |
| } {0 {}} |
| do_test func4-3.9 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES (1234.56); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.10 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES ('1234'); |
| } |
| } {0 {}} |
| do_test func4-3.11 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES ('1234.56'); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.12 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES (ZEROBLOB(4)); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.13 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES (X''); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.14 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES (X'1234'); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.15 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES (X'12345678'); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.16 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES ('1234.00'); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| do_test func4-3.17 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES (1234.00); |
| } |
| } {0 {}} |
| do_test func4-3.18 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES ('-9223372036854775809'); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| if {$highPrecision(1)} { |
| do_test func4-3.19 { |
| catchsql { |
| INSERT INTO t1 (x) VALUES (9223372036854775808); |
| } |
| } {1 {CHECK constraint failed: t1}} |
| } |
| do_execsql_test func4-3.20 { |
| SELECT x FROM t1 ORDER BY x; |
| } {1234 1234 1234} |
| |
| ifcapable floatingpoint { |
| do_execsql_test func4-4.1 { |
| CREATE TABLE t2( |
| x REAL CHECK(toreal(x) IS NOT NULL) |
| ); |
| } {} |
| do_test func4-4.2 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES (NULL); |
| } |
| } {1 {CHECK constraint failed: t2}} |
| do_test func4-4.3 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES (NULL); |
| } |
| } {1 {CHECK constraint failed: t2}} |
| do_test func4-4.4 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES (''); |
| } |
| } {1 {CHECK constraint failed: t2}} |
| do_test func4-4.5 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES ('bad'); |
| } |
| } {1 {CHECK constraint failed: t2}} |
| do_test func4-4.6 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES ('1234bad'); |
| } |
| } {1 {CHECK constraint failed: t2}} |
| do_test func4-4.7 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES ('1234.56bad'); |
| } |
| } {1 {CHECK constraint failed: t2}} |
| do_test func4-4.8 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES (1234); |
| } |
| } {0 {}} |
| do_test func4-4.9 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES (1234.56); |
| } |
| } {0 {}} |
| do_test func4-4.10 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES ('1234'); |
| } |
| } {0 {}} |
| do_test func4-4.11 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES ('1234.56'); |
| } |
| } {0 {}} |
| do_test func4-4.12 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES (ZEROBLOB(4)); |
| } |
| } {1 {CHECK constraint failed: t2}} |
| do_test func4-4.13 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES (X''); |
| } |
| } {1 {CHECK constraint failed: t2}} |
| do_test func4-4.14 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES (X'1234'); |
| } |
| } {1 {CHECK constraint failed: t2}} |
| do_test func4-4.15 { |
| catchsql { |
| INSERT INTO t2 (x) VALUES (X'12345678'); |
| } |
| } {1 {CHECK constraint failed: t2}} |
| do_execsql_test func4-4.16 { |
| SELECT x FROM t2 ORDER BY x; |
| } {1234.0 1234.0 1234.56 1234.56} |
| } |
| } |
| |
| ifcapable floatingpoint { |
| do_execsql_test func4-5.1 { |
| SELECT tointeger(toreal('1234')); |
| } {1234} |
| do_execsql_test func4-5.2 { |
| SELECT tointeger(toreal(-1)); |
| } {-1} |
| do_execsql_test func4-5.3 { |
| SELECT tointeger(toreal(-0)); |
| } {0} |
| do_execsql_test func4-5.4 { |
| SELECT tointeger(toreal(0)); |
| } {0} |
| do_execsql_test func4-5.5 { |
| SELECT tointeger(toreal(1)); |
| } {1} |
| do_execsql_test func4-5.6 { |
| SELECT tointeger(toreal(-9223372036854775808 - 1)); |
| } {-9223372036854775808} |
| do_execsql_test func4-5.7 { |
| SELECT tointeger(toreal(-9223372036854775808)); |
| } {-9223372036854775808} |
| if {$highPrecision(2)} { |
| do_execsql_test func4-5.8 { |
| SELECT tointeger(toreal(-9223372036854775808 + 1)); |
| } {{}} |
| } |
| do_execsql_test func4-5.9 { |
| SELECT tointeger(toreal(-2147483648 - 1)); |
| } {-2147483649} |
| do_execsql_test func4-5.10 { |
| SELECT tointeger(toreal(-2147483648)); |
| } {-2147483648} |
| do_execsql_test func4-5.11 { |
| SELECT tointeger(toreal(-2147483648 + 1)); |
| } {-2147483647} |
| do_execsql_test func4-5.12 { |
| SELECT tointeger(toreal(2147483647 - 1)); |
| } {2147483646} |
| do_execsql_test func4-5.13 { |
| SELECT tointeger(toreal(2147483647)); |
| } {2147483647} |
| do_execsql_test func4-5.14 { |
| SELECT tointeger(toreal(2147483647 + 1)); |
| } {2147483648} |
| do_execsql_test func4-5.15 { |
| SELECT tointeger(toreal(9223372036854775807 - 1)); |
| } {{}} |
| if {$highPrecision(1)} { |
| do_execsql_test func4-5.16 { |
| SELECT tointeger(toreal(9223372036854775807)); |
| } {{}} |
| do_execsql_test func4-5.17 { |
| SELECT tointeger(toreal(9223372036854775807 + 1)); |
| } {{}} |
| } |
| do_execsql_test func4-5.18 { |
| SELECT tointeger(toreal(4503599627370496 - 1)); |
| } {4503599627370495} |
| do_execsql_test func4-5.19 { |
| SELECT tointeger(toreal(4503599627370496)); |
| } {4503599627370496} |
| do_execsql_test func4-5.20 { |
| SELECT tointeger(toreal(4503599627370496 + 1)); |
| } {4503599627370497} |
| do_execsql_test func4-5.21 { |
| SELECT tointeger(toreal(9007199254740992 - 1)); |
| } {9007199254740991} |
| do_execsql_test func4-5.22 { |
| SELECT tointeger(toreal(9007199254740992)); |
| } {9007199254740992} |
| if {$highPrecision(2)} { |
| do_execsql_test func4-5.23 { |
| SELECT tointeger(toreal(9007199254740992 + 1)); |
| } {{}} |
| } |
| do_execsql_test func4-5.24 { |
| SELECT tointeger(toreal(9007199254740992 + 2)); |
| } {9007199254740994} |
| if {$highPrecision(1)} { |
| do_execsql_test func4-5.25 { |
| SELECT tointeger(toreal(9223372036854775808 - 1)); |
| } {{}} |
| do_execsql_test func4-5.26 { |
| SELECT tointeger(toreal(9223372036854775808)); |
| } {{}} |
| do_execsql_test func4-5.27 { |
| SELECT tointeger(toreal(9223372036854775808 + 1)); |
| } {{}} |
| } |
| do_execsql_test func4-5.28 { |
| SELECT tointeger(toreal(18446744073709551616 - 1)); |
| } {{}} |
| do_execsql_test func4-5.29 { |
| SELECT tointeger(toreal(18446744073709551616)); |
| } {{}} |
| do_execsql_test func4-5.30 { |
| SELECT tointeger(toreal(18446744073709551616 + 1)); |
| } {{}} |
| } |
| |
| for {set i 0} {$i < 10} {incr i} { |
| if {$i == 8} continue |
| do_execsql_test func4-6.1.$i.1 [subst { |
| SELECT tointeger(x'[string repeat 01 $i]'); |
| }] {{}} |
| ifcapable floatingpoint { |
| do_execsql_test func4-6.1.$i.2 [subst { |
| SELECT toreal(x'[string repeat 01 $i]'); |
| }] {{}} |
| } |
| } |
| |
| do_execsql_test func4-6.2.1 { |
| SELECT tointeger(x'0102030405060708'); |
| } {578437695752307201} |
| do_execsql_test func4-6.2.2 { |
| SELECT tointeger(x'0807060504030201'); |
| } {72623859790382856} |
| |
| ifcapable floatingpoint { |
| do_execsql_test func4-6.3.1 { |
| SELECT toreal(x'ffefffffffffffff'); |
| } {-1.7976931348623157e+308} |
| do_execsql_test func4-6.3.2 { |
| SELECT toreal(x'8010000000000000'); |
| } {-2.2250738585072014e-308} |
| do_execsql_test func4-6.3.3 { |
| SELECT toreal(x'c000000000000000'); |
| } {-2.0} |
| do_execsql_test func4-6.3.4 { |
| SELECT toreal(x'bff0000000000000'); |
| } {-1.0} |
| do_execsql_test func4-6.3.5 { |
| SELECT toreal(x'8000000000000000'); |
| } {-0.0} |
| do_execsql_test func4-6.3.6 { |
| SELECT toreal(x'0000000000000000'); |
| } {0.0} |
| do_execsql_test func4-6.3.7 { |
| SELECT toreal(x'3ff0000000000000'); |
| } {1.0} |
| do_execsql_test func4-6.3.8 { |
| SELECT toreal(x'4000000000000000'); |
| } {2.0} |
| do_execsql_test func4-6.3.9 { |
| SELECT toreal(x'0010000000000000'); |
| } {2.2250738585072014e-308} |
| do_execsql_test func4-6.3.10 { |
| SELECT toreal(x'7fefffffffffffff'); |
| } {1.7976931348623157e+308} |
| do_execsql_test func4-6.3.11 { |
| SELECT toreal(x'8000000000000001'); |
| } {-5e-324} |
| do_execsql_test func4-6.3.12 { |
| SELECT toreal(x'800fffffffffffff'); |
| } {-2.225073858507201e-308} |
| do_execsql_test func4-6.3.13 { |
| SELECT toreal(x'0000000000000001'); |
| } {5e-324} |
| do_execsql_test func4-6.3.14 { |
| SELECT toreal(x'000fffffffffffff'); |
| } {2.225073858507201e-308} |
| do_execsql_test func4-6.3.15 { |
| SELECT toreal(x'fff0000000000000'); |
| } {-Inf} |
| do_execsql_test func4-6.3.16 { |
| SELECT toreal(x'7ff0000000000000'); |
| } {Inf} |
| do_execsql_test func4-6.3.17 { |
| SELECT toreal(x'fff8000000000000'); |
| } {{}} |
| do_execsql_test func4-6.3.18 { |
| SELECT toreal(x'fff0000000000001'); |
| } {{}} |
| do_execsql_test func4-6.3.19 { |
| SELECT toreal(x'fff7ffffffffffff'); |
| } {{}} |
| do_execsql_test func4-6.3.20 { |
| SELECT toreal(x'7ff0000000000001'); |
| } {{}} |
| do_execsql_test func4-6.3.21 { |
| SELECT toreal(x'7ff7ffffffffffff'); |
| } {{}} |
| do_execsql_test func4-6.3.22 { |
| SELECT toreal(x'fff8000000000001'); |
| } {{}} |
| do_execsql_test func4-6.3.23 { |
| SELECT toreal(x'ffffffffffffffff'); |
| } {{}} |
| do_execsql_test func4-6.3.24 { |
| SELECT toreal(x'7ff8000000000000'); |
| } {{}} |
| do_execsql_test func4-6.3.25 { |
| SELECT toreal(x'7fffffffffffffff'); |
| } {{}} |
| } |
| |
| set tcl_precision $saved_tcl_precision |
| unset saved_tcl_precision |
| finish_test |