New test cases for the editdist3() function in the spellfix extension.

FossilOrigin-Name: 2d3f1f22d53034576a0ec8d9c360fb19efbb05b2e95ad1b09d120fb1b7da33fd
This commit is contained in:
drh 2018-02-14 15:30:48 +00:00
parent e2d27e0259
commit 4e6e5cef6c
3 changed files with 353 additions and 6 deletions

View File

@ -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

View File

@ -1 +1 @@
b76ec7cb5841f9ad02b342271e91c5f5a598006f69df7953a6213c706e01f7a2
2d3f1f22d53034576a0ec8d9c360fb19efbb05b2e95ad1b09d120fb1b7da33fd

346
test/spellfix4.test Normal file
View File

@ -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