gitlab.com/CoiaPrant/sqlite3@v1.19.1/testdata/tcl/spellfix2.test (about)

     1  # 2012 July 12
     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  
    13  set testdir [file dirname $argv0]
    14  source $testdir/tester.tcl
    15  set testprefix spellfix2
    16  
    17  ifcapable !vtab { finish_test ; return }
    18  load_static_extension db spellfix nextchar
    19  
    20  do_execsql_test 1.0 {
    21    CREATE VIRTUAL TABLE demo USING spellfix1;
    22    INSERT INTO demo(word) VALUES ('amsterdam');
    23    INSERT INTO demo(word) VALUES ('amsterdammetje');
    24    INSERT INTO demo(word) VALUES ('amsterdamania');
    25    INSERT INTO demo(word) VALUES ('amsterdamweg');
    26    INSERT INTO demo(word) VALUES ('amsterdamsestraat');
    27    INSERT INTO demo(word) VALUES ('amsterdamlaan');
    28  }
    29  
    30  do_execsql_test 1.1 {
    31    SELECT word, distance, matchlen FROM demo 
    32    WHERE word MATCH 'amstedam*' AND top=3
    33    ORDER BY +word;
    34  } {
    35     amsterdam      100 9
    36     amsterdamania  100 9
    37     amsterdammetje 100 9
    38  }
    39  
    40  do_execsql_test 1.2 {
    41    SELECT word, distance, matchlen FROM demo WHERE 
    42    word MATCH 'amstedam*' AND top=3 AND distance <= 100
    43    ORDER BY +word;
    44  } {
    45     amsterdam      100 9
    46     amsterdamania  100 9
    47     amsterdammetje 100 9
    48  }
    49  
    50  do_execsql_test 1.3 {
    51    SELECT word, distance, matchlen FROM demo WHERE 
    52    word MATCH 'amstedam*' AND distance <= 100
    53    ORDER BY +word;
    54  } {
    55     amsterdam         100 9
    56     amsterdamania     100 9
    57     amsterdamlaan     100 9
    58     amsterdammetje    100 9
    59     amsterdamsestraat 100 9
    60     amsterdamweg      100 9
    61  }
    62  
    63  do_test 1.4 {
    64    foreach l {a b c d e f g h i j k l m n o p q r s t u v w x y z} {
    65      execsql { INSERT INTO demo(word) VALUES ('amsterdam' || $l) }
    66    }
    67  } {}
    68  
    69  do_execsql_test 1.5 {
    70    SELECT count(*) FROM demo WHERE word MATCH 'amstedam*' AND distance <= 100;
    71    SELECT count(*) FROM demo 
    72    WHERE word MATCH 'amstedam*' AND distance <= 100 AND top=20;
    73  } {
    74    32 20
    75  }
    76  
    77  do_execsql_test 1.6 {
    78    SELECT word, distance, matchlen FROM demo 
    79    WHERE word MATCH 'amstedam*' AND distance <= 100
    80    ORDER BY distance, word;
    81  } {
    82    amsterdam         100 9        amsterdama        100 9
    83    amsterdamania     100 9        amsterdamb        100 9
    84    amsterdamc        100 9        amsterdamd        100 9
    85    amsterdame        100 9        amsterdamf        100 9
    86    amsterdamg        100 9        amsterdamh        100 9
    87    amsterdami        100 9        amsterdamj        100 9
    88    amsterdamk        100 9        amsterdaml        100 9
    89    amsterdamlaan     100 9        amsterdamm        100 9
    90    amsterdammetje    100 9        amsterdamn        100 9
    91    amsterdamo        100 9        amsterdamp        100 9
    92    amsterdamq        100 9        amsterdamr        100 9
    93    amsterdams        100 9        amsterdamsestraat 100 9
    94    amsterdamt        100 9        amsterdamu        100 9
    95    amsterdamv        100 9        amsterdamw        100 9
    96    amsterdamweg      100 9        amsterdamx        100 9
    97    amsterdamy        100 9        amsterdamz        100 9
    98  }
    99  
   100  do_execsql_test 1.7 {
   101    SELECT word, distance, matchlen FROM demo 
   102    WHERE word MATCH 'amstedam*' AND distance <= 100 AND top=20
   103    ORDER BY distance, word;
   104  } {
   105    amsterdam         100 9        amsterdama        100 9
   106    amsterdamania     100 9        amsterdamb        100 9
   107    amsterdamc        100 9        amsterdame        100 9
   108    amsterdamf        100 9        amsterdamg        100 9
   109    amsterdamh        100 9        amsterdami        100 9
   110    amsterdamm        100 9        amsterdammetje    100 9
   111    amsterdamn        100 9        amsterdamo        100 9
   112    amsterdamp        100 9        amsterdamu        100 9
   113    amsterdamv        100 9        amsterdamw        100 9
   114    amsterdamweg      100 9        amsterdamy        100 9
   115  }
   116  
   117  
   118  finish_test