modernc.org/cc@v1.0.1/v2/testdata/_sqlite/ext/fts5/test/fts5near.test (about) 1 # 2014 Jan 08 2 # 3 # The author disclaims copyright to this source code. In place of 4 # 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 # 12 # Tests focused on the NEAR operator. 13 # 14 15 source [file join [file dirname [info script]] fts5_common.tcl] 16 set testprefix fts5near 17 18 # If SQLITE_ENABLE_FTS5 is defined, omit this file. 19 ifcapable !fts5 { 20 finish_test 21 return 22 } 23 24 proc do_near_test {tn doc near res} { 25 uplevel [list do_execsql_test $tn " 26 DELETE FROM t1; 27 INSERT INTO t1 VALUES('$doc'); 28 SELECT count(*) FROM t1 WHERE t1 MATCH '$near'; 29 " $res] 30 } 31 32 execsql { 33 CREATE VIRTUAL TABLE t1 USING fts5(x, tokenize = "ascii tokenchars '.'") 34 } 35 36 do_near_test 1.1 ". . a . . . b . ." { NEAR(a b, 5) } 1 37 do_near_test 1.2 ". . a . . . b . ." { NEAR(a b, 4) } 1 38 do_near_test 1.3 ". . a . . . b . ." { NEAR(a b, 3) } 1 39 do_near_test 1.4 ". . a . . . b . ." { NEAR(a b, 2) } 0 40 41 do_near_test 1.5 ". . a . . . b . ." { NEAR(b a, 5) } 1 42 do_near_test 1.6 ". . a . . . b . ." { NEAR(b a, 4) } 1 43 do_near_test 1.7 ". . a . . . b . ." { NEAR(b a, 3) } 1 44 do_near_test 1.8 ". . a . . . b . ." { NEAR(b a, 2) } 0 45 46 do_near_test 1.9 ". a b . . . c . ." { NEAR("a b" c, 3) } 1 47 do_near_test 1.10 ". a b . . . c . ." { NEAR("a b" c, 2) } 0 48 do_near_test 1.11 ". a b . . . c . ." { NEAR(c "a b", 3) } 1 49 do_near_test 1.12 ". a b . . . c . ." { NEAR(c "a b", 2) } 0 50 51 do_near_test 1.13 ". a b . . . c d ." { NEAR(a+b c+d, 3) } 1 52 do_near_test 1.14 ". a b . . . c d ." { NEAR(a+b c+d, 2) } 0 53 do_near_test 1.15 ". a b . . . c d ." { NEAR(c+d a+b, 3) } 1 54 do_near_test 1.16 ". a b . . . c d ." { NEAR(c+d a+b, 2) } 0 55 56 do_near_test 1.17 ". a b . . . c d ." { NEAR(a b c d, 5) } 1 57 do_near_test 1.18 ". a b . . . c d ." { NEAR(a b c d, 4) } 0 58 do_near_test 1.19 ". a b . . . c d ." { NEAR(a+b c d, 4) } 1 59 60 do_near_test 1.20 "a b c d e f g h i" { NEAR(b+c a+b+c+d i, 5) } 1 61 do_near_test 1.21 "a b c d e f g h i" { NEAR(b+c a+b+c+d i, 4) } 0 62 63 do_near_test 1.22 "a b c d e f g h i" { NEAR(a+b+c+d i b+c, 5) } 1 64 do_near_test 1.23 "a b c d e f g h i" { NEAR(a+b+c+d i b+c, 4) } 0 65 66 do_near_test 1.24 "a b c d e f g h i" { NEAR(i a+b+c+d b+c, 5) } 1 67 do_near_test 1.25 "a b c d e f g h i" { NEAR(i a+b+c+d b+c, 4) } 0 68 69 70 finish_test