AryaWu/sqlite
0
1# 2013 March 202#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. 12# This particular file does testing of casting strings into numeric13# values.14#15 16set testdir [file dirname $argv0]17source $testdir/tester.tcl18 19foreach enc {utf8 utf16le utf16be} {20 do_test numcast-$enc.0 {21 db close22 sqlite3 db :memory:23 db eval "PRAGMA encoding='$enc'"24 set x [db eval {PRAGMA encoding}]25 string map {- {}} [string tolower $x]26 } $enc27 foreach {idx str rval ival} {28 1 12345.0 12345.0 1234529 2 12345.0e0 12345.0 1234530 3 -12345.0e0 -12345.0 -1234531 4 -12345.25 -12345.25 -1234532 5 { -12345.0} -12345.0 -1234533 6 { 876xyz} 876.0 87634 7 { 456ķ89} 456.0 45635 8 { Ġ 321.5} 0.0 036 } {37 do_test numcast-$enc.$idx.1 {38 db eval {SELECT CAST($str AS real)}39 } $rval40 do_test numcast-$enc.$idx.2 {41 db eval {SELECT CAST($str AS integer)}42 } $ival43 }44}45 46finish_test47 