mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-29 08:01:23 +03:00
Update this branch with changes from trunk.
FossilOrigin-Name: 53b8b507a10364f5d580655d89c950a5f14c2a8114625fd8749d77f289413b22
This commit is contained in:
@ -15,7 +15,7 @@ source $testdir/tester.tcl
|
||||
set testprefix decimal
|
||||
|
||||
if {[catch {load_static_extension db decimal} error]} {
|
||||
puts "Skipping zipfile tests, hit load error: $error"
|
||||
puts "Skipping decimal tests, hit load error: $error"
|
||||
finish_test; return
|
||||
}
|
||||
|
||||
@ -138,5 +138,49 @@ do_execsql_test 5103 {
|
||||
SELECT decimal_mul('1234.0000','2');
|
||||
} {2468}
|
||||
|
||||
if {[catch {load_static_extension db ieee754} error]} {
|
||||
puts "Skipping ieee754 tests, hit load error: $error"
|
||||
finish_test; return
|
||||
}
|
||||
|
||||
do_execsql_test 6000 {
|
||||
CREATE TABLE pow2(x INTEGER PRIMARY KEY, v TEXT);
|
||||
WITH RECURSIVE c(x,v) AS (
|
||||
VALUES(0,'1')
|
||||
UNION ALL
|
||||
SELECT x+1, decimal_mul(v,'2') FROM c WHERE x+1<=971
|
||||
) INSERT INTO pow2(x,v) SELECT x, v FROM c;
|
||||
WITH RECURSIVE c(x,v) AS (
|
||||
VALUES(-1,'0.5')
|
||||
UNION ALL
|
||||
SELECT x-1, decimal_mul(v,'0.5') FROM c WHERE x-1>=-1075
|
||||
) INSERT INTO pow2(x,v) SELECT x, v FROM c;
|
||||
} {}
|
||||
do_execsql_test 6010 {
|
||||
WITH c(n) AS (SELECT ieee754_from_blob(x'0000000000000001'))
|
||||
SELECT decimal_mul(ieee754_mantissa(c.n),pow2.v)
|
||||
FROM pow2, c WHERE pow2.x=ieee754_exponent(c.n);
|
||||
} {0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004940656458412465441765687928682213723650598026143247644255856825006755072702087518652998363616359923797965646954457177309266567103559397963987747960107818781263007131903114045278458171678489821036887186360569987307230500063874091535649843873124733972731696151400317153853980741262385655911710266585566867681870395603106249319452715914924553293054565444011274801297099995419319894090804165633245247571478690147267801593552386115501348035264934720193790268107107491703332226844753335720832431936092382893458368060106011506169809753078342277318329247904982524730776375927247874656084778203734469699533647017972677717585125660551199131504891101451037862738167250955837389733598993664809941164205702637090279242767544565229087538682506419718265533447265625}
|
||||
do_execsql_test 6020 {
|
||||
WITH c(n) AS (SELECT ieee754_from_blob(x'7fefffffffffffff'))
|
||||
SELECT decimal_mul(ieee754_mantissa(c.n),pow2.v)
|
||||
FROM pow2, c WHERE pow2.x=ieee754_exponent(c.n);
|
||||
} {179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368}
|
||||
|
||||
do_execsql_test 6100 {
|
||||
SELECT ieee754(ieee754_from_blob(x'0000000000000001'));
|
||||
} {ieee754(1,-1074)}
|
||||
do_execsql_test 6110 {
|
||||
SELECT ieee754(ieee754_from_blob(x'7fefffffffffffff'));
|
||||
} {ieee754(9007199254740991,971)}
|
||||
do_execsql_test 6120 {
|
||||
SELECT printf('%.8e',ieee754_from_blob(x'0000000000000001'));
|
||||
} {4.94065646e-324}
|
||||
do_execsql_test 6130 {
|
||||
SELECT printf('%.8e',ieee754_from_blob(x'ffefffffffffffff'));
|
||||
} {-1.79769313e+308}
|
||||
|
||||
|
||||
|
||||
|
||||
finish_test
|
||||
|
Binary file not shown.
Reference in New Issue
Block a user