]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
New test cases for the editdist3() function in the spellfix extension.
authordrh <drh@noemail.net>
Wed, 14 Feb 2018 15:30:48 +0000 (15:30 +0000)
committerdrh <drh@noemail.net>
Wed, 14 Feb 2018 15:30:48 +0000 (15:30 +0000)
FossilOrigin-Name: 2d3f1f22d53034576a0ec8d9c360fb19efbb05b2e95ad1b09d120fb1b7da33fd

manifest
manifest.uuid
test/spellfix4.test [new file with mode: 0644]

index 8bac7cb68bfd9c88c48892a5130d9b46ef639d2f..0b9be9c6dd2aa5d1abdc61e6591b1186a21f782c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Try\sto\soptimize\sspellfix1\sby\sstoring\sa\sNULL\sin\sthe\sk1\scolumn\sof\s%_vocab\nif\sit\swould\sotherwise\shave\sthe\ssame\svalue\sas\sthe\sword\scolumn.
-D 2018-02-14T14:13:09.238
+C New\stest\scases\sfor\sthe\seditdist3()\sfunction\sin\sthe\sspellfix\sextension.
+D 2018-02-14T15:30:48.110
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F Makefile.in 7a3f714b4fcf793108042b7b0a5c720b0b310ec84314d61ba7f3f49f27e550ea
@@ -1265,6 +1265,7 @@ F test/speedtest1.c a5faf4cbe5769eee4b721b3875cb3f12520a9b99d9026b1063b47c396033
 F test/spellfix.test 951a6405d49d1a23d6b78027d3877b4a33eeb8221dcab5704b499755bb4f552e
 F test/spellfix2.test dfc8f519a3fc204cb2dfa8b4f29821ae90f6f8c3
 F test/spellfix3.test 0f9efaaa502a0e0a09848028518a6fb096c8ad33
+F test/spellfix4.test eaae7a334516e09896a684fb552d338fa2844c65db9817d900701fe7598327e6
 F test/sqldiff1.test 28cd737cf1b0078b1ec1bbf425e674c47785835e
 F test/sqllimits1.test a74ee2a3740b9f9c2437c246d8fb77354862a142
 F test/sqllog.test 6af6cb0b09f4e44e1917e06ce85be7670302517a
@@ -1705,7 +1706,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 1f300514e6cdd32c755dc1b05dfa125b10eda2eb55a1024b66f66dbf5cf96289
-R 255e72ba75e81cf4ca1d4ef198b4e2a9
+P b76ec7cb5841f9ad02b342271e91c5f5a598006f69df7953a6213c706e01f7a2
+R 955df0b8bc6bab58cd406ae281f344ae
 U drh
-Z 21f5c49e8ec82780f55a5436de6c983b
+Z d19bf6cab5bd800e73ca3fefa0386288
index 91ef23e4eff8f2ec0c4cfbcf40d41f41b38a537e..ebe643ee66f52b9ce2200f70b5a8df8f4fd93cad 100644 (file)
@@ -1 +1 @@
-b76ec7cb5841f9ad02b342271e91c5f5a598006f69df7953a6213c706e01f7a2
\ No newline at end of file
+2d3f1f22d53034576a0ec8d9c360fb19efbb05b2e95ad1b09d120fb1b7da33fd
\ No newline at end of file
diff --git a/test/spellfix4.test b/test/spellfix4.test
new file mode 100644 (file)
index 0000000..7054bb9
--- /dev/null
@@ -0,0 +1,346 @@
+# 2018-02-14
+#
+# 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.
+#
+#***********************************************************************
+#
+# Test cases for the editdist3() function in the spellfix extension.
+#
+
+set testdir [file dirname $argv0]
+source $testdir/tester.tcl
+set testprefix spellfix4
+
+ifcapable !vtab { finish_test ; return }
+
+load_static_extension db spellfix
+
+do_execsql_test 100 {
+  CREATE TABLE cost1(iLang, cFrom, cTo, iCost);
+  INSERT INTO cost1 VALUES
+    (0, '', '?',  97),
+    (0, '?', '',  98),
+    (0, '?', '?', 99),
+    (0, 'm', 'n', 50),
+    (0, 'n', 'm', 50)
+  ;
+  SELECT editdist3('cost1');
+  SELECT editdist3('anchor','amchor');
+} {{} 50}
+do_execsql_test 110 {
+  SELECT editdist3('anchor','anchoxr');
+} {97}
+do_execsql_test 111 {
+  SELECT editdist3('anchor','xanchor');
+} {97}
+do_execsql_test 112 {
+  SELECT editdist3('anchor','anchorx');
+} {97}
+do_execsql_test 120 {
+  SELECT editdist3('anchor','anchr');
+} {98}
+do_execsql_test 121 {
+  SELECT editdist3('anchor','ancho');
+} {98}
+do_execsql_test 122 {
+  SELECT editdist3('anchor','nchor');
+} {98}
+do_execsql_test 130 {
+  SELECT editdist3('anchor','anchur');
+} {99}
+do_execsql_test 131 {
+  SELECT editdist3('anchor','onchor');
+} {99}
+do_execsql_test 132 {
+  SELECT editdist3('anchor','anchot');
+} {99}
+do_execsql_test 140 {
+  SELECT editdist3('anchor','omchor');
+} {149}
+
+do_execsql_test 200 {
+  INSERT INTO cost1 VALUES
+    (0, 'a', 'ä', 5),
+    (0, 'ss', 'ß', 8)
+  ;
+  SELECT editdist3('cost1');
+  SELECT editdist3('strasse','straße');
+  SELECT editdist3('straße','strasse');
+} {{} 8 196}
+do_execsql_test 210 {
+  SELECT editdist3('baume','bäume');
+} {5}
+do_execsql_test 220 {
+  SELECT editdist3('baum','bäume');
+} {102}
+do_execsql_test 230 {
+  INSERT INTO cost1 VALUES
+    (0, 'ä', 'a', 5),
+    (0, 'ß', 'ss', 8)
+  ;
+  SELECT editdist3('cost1');
+  SELECT editdist3('strasse','straße');
+  SELECT editdist3('straße','strasse');
+} {{} 8 8}
+
+do_execsql_test 300 {
+  DELETE FROM cost1;
+  INSERT INTO cost1 VALUES
+    (0, '', '?',  97),
+    (0, '?', '',  98),
+    (0, '?', '?', 99),
+    (0, 'a', 'e', 50),
+    (0, 'a', 'i', 70),
+    (0, 'a', 'o', 75),
+    (0, 'a', 'u', 85),
+    (0, 'e', 'a', 50),
+    (0, 'e', 'i', 50),
+    (0, 'e', 'o', 75),
+    (0, 'e', 'u', 85),
+    (0, 'i', 'a', 70),
+    (0, 'i', 'e', 50),
+    (0, 'i', 'o', 75),
+    (0, 'i', 'u', 85),
+    (0, 'o', 'a', 75),
+    (0, 'o', 'e', 75),
+    (0, 'o', 'i', 75),
+    (0, 'o', 'u', 40),
+    (0, 'u', 'a', 85),
+    (0, 'u', 'e', 85),
+    (0, 'u', 'i', 85),
+    (0, 'u', 'o', 40),
+    (0, 'm', 'n', 45),
+    (0, 'n', 'm', 45)
+  ;
+  CREATE TABLE words(x TEXT);
+  INSERT INTO words VALUES
+   ('abraham'),
+   ('action'),
+   ('africa'),
+   ('aladdin'),
+   ('alert'),
+   ('alien'),
+   ('amazon'),
+   ('analog'),
+   ('animal'),
+   ('apollo'),
+   ('archive'),
+   ('arnold'),
+   ('aspirin'),
+   ('august'),
+   ('average'),
+   ('bahama'),
+   ('bambino'),
+   ('barcode'),
+   ('bazooka'),
+   ('belgium'),
+   ('between'),
+   ('biology'),
+   ('blonde'),
+   ('border'),
+   ('brave'),
+   ('british'),
+   ('bucket'),
+   ('button'),
+   ('caesar'),
+   ('camilla'),
+   ('cannon'),
+   ('caramel'),
+   ('carpet'),
+   ('catalog'),
+   ('century'),
+   ('chaos'),
+   ('chef'),
+   ('china'),
+   ('circus'),
+   ('classic'),
+   ('clinic'),
+   ('coconut'),
+   ('combine'),
+   ('complex'),
+   ('congo'),
+   ('convert'),
+   ('cosmos'),
+   ('crack'),
+   ('crown'),
+   ('cyclone'),
+   ('deal'),
+   ('delete'),
+   ('denver'),
+   ('detail'),
+   ('diana'),
+   ('direct'),
+   ('dolby'),
+   ('double'),
+   ('dublin'),
+   ('echo'),
+   ('edition'),
+   ('electra'),
+   ('emotion'),
+   ('enjoy'),
+   ('escape'),
+   ('everest'),
+   ('exile'),
+   ('express'),
+   ('family'),
+   ('ferrari'),
+   ('filter'),
+   ('fish'),
+   ('florida'),
+   ('ford'),
+   ('forum'),
+   ('frank'),
+   ('frozen'),
+   ('gallery'),
+   ('garlic'),
+   ('geneva'),
+   ('gibson'),
+   ('gloria'),
+   ('gordon'),
+   ('gravity'),
+   ('ground'),
+   ('habitat'),
+   ('harlem'),
+   ('hazard'),
+   ('herbert'),
+   ('hobby'),
+   ('house'),
+   ('icon'),
+   ('immune'),
+   ('india'),
+   ('inside'),
+   ('isotope'),
+   ('jamaica'),
+   ('jazz'),
+   ('joker'),
+   ('juliet'),
+   ('jupiter'),
+   ('kevin'),
+   ('korea'),
+   ('latin'),
+   ('legal'),
+   ('lexicon'),
+   ('limbo'),
+   ('lithium'),
+   ('logo'),
+   ('lucas'),
+   ('madrid'),
+   ('major'),
+   ('manual'),
+   ('mars'),
+   ('maximum'),
+   ('medical'),
+   ('mental'),
+   ('meter'),
+   ('miguel'),
+   ('mimosa'),
+   ('miranda'),
+   ('modern'),
+   ('money'),
+   ('morgan'),
+   ('motor'),
+   ('mystic'),
+   ('nebula'),
+   ('network'),
+   ('nice'),
+   ('nitro'),
+   ('norway'),
+   ('nurse'),
+   ('octavia'),
+   ('olympic'),
+   ('opus'),
+   ('orient'),
+   ('othello'),
+   ('pacific'),
+   ('panama'),
+   ('paper'),
+   ('parking'),
+   ('pasta'),
+   ('paul'),
+   ('people'),
+   ('permit'),
+   ('phrase'),
+   ('pilgrim'),
+   ('planet'),
+   ('pocket'),
+   ('police'),
+   ('popular'),
+   ('prefer'),
+   ('presto'),
+   ('private'),
+   ('project'),
+   ('proxy'),
+   ('python'),
+   ('quota'),
+   ('rainbow'),
+   ('raymond'),
+   ('region'),
+   ('report'),
+   ('reward'),
+   ('risk'),
+   ('robot'),
+   ('rose'),
+   ('russian'),
+   ('sailor'),
+   ('salt'),
+   ('saturn'),
+   ('scorpio'),
+   ('second'),
+   ('seminar'),
+   ('shadow'),
+   ('shave'),
+   ('shock'),
+   ('silence'),
+   ('sinatra'),
+   ('sleep'),
+   ('social'),
+   ('sonata'),
+   ('spain'),
+   ('sphere'),
+   ('spray'),
+   ('state'),
+   ('stone'),
+   ('strong'),
+   ('sugar'),
+   ('supreme'),
+   ('swing'),
+   ('talent'),
+   ('telecom'),
+   ('thermos'),
+   ('tina'),
+   ('tommy'),
+   ('torso'),
+   ('trade'),
+   ('trick'),
+   ('tropic'),
+   ('turtle'),
+   ('uniform'),
+   ('user'),
+   ('vega'),
+   ('vertigo'),
+   ('village'),
+   ('visible'),
+   ('vocal'),
+   ('voyage'),
+   ('weekend'),
+   ('winter'),
+   ('year'),
+   ('zipper')
+  ;
+  SELECT editdist3('cost1');
+} {{}}
+do_execsql_test 310 {
+  SELECT editdist3(a.x,b.x), a.x, b.x
+    FROM words a, words b
+   WHERE a.x<b.x
+   ORDER BY 1, 2
+   LIMIT 20
+} {139 bucket pocket 149 manual mental 150 meter motor 169 crack trick 173 sinatra sonata 174 edition emotion 174 major motor 174 risk rose 174 state stone 194 deal detail 196 alert talent 196 analog catalog 196 deal legal 196 ford forum 196 risk trick 196 stone strong 197 china tina 197 congo logo 197 diana tina 197 florida gloria}
+
+
+finish_test