#!/usr/bin/env tclsh set testdir [file dirname $argv0] source $testdir/tester.tcl do_execsql_test abs { select abs(1); } {1} do_execsql_test abs-negative { select abs(-1); } {1} do_execsql_test abs-char { select abs('a'); } {0.0} do_execsql_test abs-null { select abs(null); } {} do_execsql_test upper { select upper('Limbo') } {LIMBO} do_execsql_test upper-number { select upper(1) } {1} do_execsql_test upper-char { select upper('a') } {A} do_execsql_test upper-null { select upper(null) } {} do_execsql_test lower { select lower('Limbo') } {limbo} do_execsql_test lower-number { select lower(1) } {1} do_execsql_test lower-char { select lower('A') } {a} do_execsql_test lower-null { select lower(null) } {} do_execsql_test trim { SELECT trim(' Limbo '); } {Limbo} do_execsql_test trim-number { SELECT trim(1); } {1} do_execsql_test trim-null { SELECT trim(null); } {} do_execsql_test trim-leading-whitespace { SELECT trim(' Leading'); } {Leading} do_execsql_test trim-trailing-whitespace { SELECT trim('Trailing '); } {Trailing} do_execsql_test trim-pattern { SELECT trim('Limbo', 'Limbo'); } {} do_execsql_test trim-pattern-number { SELECT trim(1, '1'); } {} do_execsql_test trim-pattern-null { SELECT trim(null, 'null'); } {} do_execsql_test trim-no-match-pattern { SELECT trim('Limbo', 'xyz'); } {Limbo} do_execsql_test round-float-no-precision { SELECT round(123.456); } {123.0} do_execsql_test round-float-with-precision { SELECT round(123.456, 2); } {123.46} do_execsql_test round-float-with-text-precision { SELECT round(123.5, '1'); } {123.5} do_execsql_test round-text-parsable { SELECT round('123.456', 2); } {123.46} do_execsql_test round-text-non-parsable { SELECT round('abc', 1); } {0.0} do_execsql_test round-integer-with-precision { SELECT round(123, 1); } {123.0} do_execsql_test round-float-negative-precision { SELECT round(123.456, -1); } {123.0} do_execsql_test round-float-zero-precision { SELECT round(123.456, 0); } {123.0} do_execsql_test round-null-precision { SELECT round(123.456, null); } {} do_execsql_test length-text { SELECT length('limbo'); } {5} do_execsql_test length-integer { SELECT length(12345); } {5} do_execsql_test length-float { SELECT length(123.456); } {7} do_execsql_test length-null { SELECT length(NULL); } {} do_execsql_test length-empty-text { SELECT length(''); } {0} do_execsql_test min-number { select min_arr(-10,2,3) } {-10} do_execsql_test min-str { select min_arr('b','a','z') } {a} do_execsql_test min-null { select min_arr(null,null) } {} do_execsql_test max-number { select max_arr(-10,2,3) } {3} do_execsql_test max-str { select max_arr('b','a','z') } {z} do_execsql_test max-null { select max_arr(null,null) } {}