📄 icu.test
字号:
# 2007 May 1## 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.##***********************************************************************## $Id: icu.test,v 1.1 2007/05/07 11:53:14 danielk1977 Exp $#set testdir [file dirname $argv0]source $testdir/tester.tclifcapable !icu { finish_test return}# Create a table to work with.#execsql {CREATE TABLE test1(i1 int, i2 int, r1 real, r2 real, t1 text, t2 text)}execsql {INSERT INTO test1 VALUES(1,2,1.1,2.2,'hello','world')}proc test_expr {name settings expr result} { do_test $name [format { db one { BEGIN; UPDATE test1 SET %s; SELECT %s FROM test1; ROLLBACK; } } $settings $expr] $result}# Tests of the REGEXP operator.#test_expr icu-1.1 {i1='hello'} {i1 REGEXP 'hello'} 1test_expr icu-1.2 {i1='hello'} {i1 REGEXP '.ello'} 1test_expr icu-1.3 {i1='hello'} {i1 REGEXP '.ell'} 0test_expr icu-1.4 {i1='hello'} {i1 REGEXP '.ell.*'} 1test_expr icu-1.5 {i1=NULL} {i1 REGEXP '.ell.*'} {}# Some non-ascii characters with defined case mappings#set ::EGRAVE "\xC8"set ::egrave "\xE8"set ::OGRAVE "\xD2"set ::ograve "\xF2"# That German letter that looks a bit like a B. The# upper-case version of which is "SS" (two characters).#set ::szlig "\xDF" # Tests of the upper()/lower() functions.#test_expr icu-2.1 {i1='HellO WorlD'} {upper(i1)} {HELLO WORLD}test_expr icu-2.2 {i1='HellO WorlD'} {lower(i1)} {hello world}test_expr icu-2.3 {i1=$::egrave} {lower(i1)} $::egravetest_expr icu-2.4 {i1=$::egrave} {upper(i1)} $::EGRAVEtest_expr icu-2.5 {i1=$::ograve} {lower(i1)} $::ogravetest_expr icu-2.6 {i1=$::ograve} {upper(i1)} $::OGRAVEtest_expr icu-2.3 {i1=$::EGRAVE} {lower(i1)} $::egravetest_expr icu-2.4 {i1=$::EGRAVE} {upper(i1)} $::EGRAVEtest_expr icu-2.5 {i1=$::OGRAVE} {lower(i1)} $::ogravetest_expr icu-2.6 {i1=$::OGRAVE} {upper(i1)} $::OGRAVEtest_expr icu-2.7 {i1=$::szlig} {upper(i1)} "SS"test_expr icu-2.8 {i1='SS'} {lower(i1)} "ss"# In turkish (locale="tr_TR"), the lower case version of I# is "small dotless i" (code point 0x131 (decimal 305)).#set ::small_dotless_i "\u0131"test_expr icu-3.1 {i1='I'} {lower(i1)} "i"test_expr icu-3.2 {i1='I'} {lower(i1, 'tr_tr')} $::small_dotless_itest_expr icu-3.3 {i1='I'} {lower(i1, 'en_AU')} "i"#--------------------------------------------------------------------# Test the collation sequence function.#do_test icu-4.1 { execsql { CREATE TABLE fruit(name); INSERT INTO fruit VALUES('plum'); INSERT INTO fruit VALUES('cherry'); INSERT INTO fruit VALUES('apricot'); INSERT INTO fruit VALUES('peach'); INSERT INTO fruit VALUES('chokecherry'); INSERT INTO fruit VALUES('yamot'); }} {}do_test icu-4.2 { execsql { SELECT icu_load_collation('en_US', 'AmericanEnglish'); SELECT icu_load_collation('lt_LT', 'Lithuanian'); } execsql { SELECT name FROM fruit ORDER BY name COLLATE AmericanEnglish ASC; }} {apricot cherry chokecherry peach plum yamot}# Test collation using Lithuanian rules. In the Lithuanian# alphabet, "y" comes right after "i".#do_test icu-4.3 { execsql { SELECT name FROM fruit ORDER BY name COLLATE Lithuanian ASC; }} {apricot cherry chokecherry yamot peach plum}finish_test
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -