forked from aniani/vim
636 lines
10 KiB
Plaintext
636 lines
10 KiB
Plaintext
Tests for spell checking. vim: set ft=vim :
|
|
|
|
STARTTEST
|
|
:so small.vim
|
|
:"
|
|
:" Don't want to depend on the locale from the environment
|
|
:set enc=latin1
|
|
:e!
|
|
:"
|
|
:" Function to test .aff/.dic with list of good and bad words.
|
|
:func TestOne(aff, dic)
|
|
set spellfile=
|
|
$put =''
|
|
$put ='test '. a:aff . '-' . a:dic
|
|
" Generate a .spl file from a .dic and .aff file.
|
|
exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'
|
|
exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'
|
|
mkspell! Xtest Xtest
|
|
" use that spell file
|
|
set spl=Xtest.latin1.spl spell
|
|
" list all valid words
|
|
spelldump
|
|
%yank
|
|
quit
|
|
$put
|
|
$put ='-------'
|
|
" find all bad words and suggestions for them
|
|
exe '1;/^' . a:aff . 'good:'
|
|
normal 0f:]s
|
|
let prevbad = ''
|
|
while 1
|
|
let [bad, a] = spellbadword()
|
|
if bad == '' || bad == prevbad || bad == 'badend'
|
|
break
|
|
endif
|
|
let prevbad = bad
|
|
let lst = spellsuggest(bad, 3)
|
|
normal mm
|
|
$put =bad
|
|
$put =string(lst)
|
|
normal `m]s
|
|
endwhile
|
|
endfunc
|
|
:"
|
|
:call TestOne('1', '1')
|
|
:$put =soundfold('goobledygoook')
|
|
:$put =soundfold('kóopërÿnôven')
|
|
:$put =soundfold('oeverloos gezwets edale')
|
|
:"
|
|
:"
|
|
:" and now with SAL instead of SOFO items; test automatic reloading
|
|
gg:/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
|
|
:mkspell! Xtest Xtest
|
|
:$put =soundfold('goobledygoook')
|
|
:$put =soundfold('kóopërÿnôven')
|
|
:$put =soundfold('oeverloos gezwets edale')
|
|
:"
|
|
:" also use an addition file
|
|
gg:/^addstart/+1,/^addend/-1w! Xtest.latin1.add
|
|
:mkspell! Xtest.latin1.add.spl Xtest.latin1.add
|
|
:set spellfile=Xtest.latin1.add
|
|
/^test2:
|
|
]s:let [str, a] = spellbadword()
|
|
:$put =str
|
|
:set spl=Xtest_us.latin1.spl
|
|
/^test2:
|
|
]smm:let [str, a] = spellbadword()
|
|
:$put =str
|
|
`m]s:let [str, a] = spellbadword()
|
|
:$put =str
|
|
:set spl=Xtest_gb.latin1.spl
|
|
/^test2:
|
|
]smm:let [str, a] = spellbadword()
|
|
:$put =str
|
|
`m]s:let [str, a] = spellbadword()
|
|
:$put =str
|
|
:set spl=Xtest_nz.latin1.spl
|
|
/^test2:
|
|
]smm:let [str, a] = spellbadword()
|
|
:$put =str
|
|
`m]s:let [str, a] = spellbadword()
|
|
:$put =str
|
|
:set spl=Xtest_ca.latin1.spl
|
|
/^test2:
|
|
]smm:let [str, a] = spellbadword()
|
|
:$put =str
|
|
`m]s:let [str, a] = spellbadword()
|
|
:$put =str
|
|
:unlet str a
|
|
:"
|
|
:" Postponed prefixes
|
|
:call TestOne('2', '1')
|
|
:"
|
|
:" Compound words
|
|
:call TestOne('3', '3')
|
|
:call TestOne('4', '4')
|
|
:call TestOne('5', '5')
|
|
:call TestOne('6', '6')
|
|
:call TestOne('7', '7')
|
|
:"
|
|
:" NOSLITSUGS
|
|
:call TestOne('8', '8')
|
|
:"
|
|
:" clean up for valgrind
|
|
:delfunc TestOne
|
|
:set spl= enc=latin1
|
|
:"
|
|
gg:/^test output:/,$wq! test.out
|
|
ENDTEST
|
|
|
|
1affstart
|
|
SET ISO8859-1
|
|
TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
|
|
|
|
FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
|
|
LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
|
|
UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
|
|
|
|
SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
|
|
SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
|
|
|
|
MIDWORD '-
|
|
|
|
KEP =
|
|
RAR ?
|
|
BAD !
|
|
|
|
PFX I N 1
|
|
PFX I 0 in .
|
|
|
|
PFX O Y 1
|
|
PFX O 0 out .
|
|
|
|
SFX S Y 2
|
|
SFX S 0 s [^s]
|
|
SFX S 0 es s
|
|
|
|
SFX N N 3
|
|
SFX N 0 en [^n]
|
|
SFX N 0 nen n
|
|
SFX N 0 n .
|
|
|
|
REP 3
|
|
REP g ch
|
|
REP ch g
|
|
REP svp s.v.p.
|
|
|
|
MAP 9
|
|
MAP aàáâãäå
|
|
MAP eèéêë
|
|
MAP iìíîï
|
|
MAP oòóôõö
|
|
MAP uùúûü
|
|
MAP nñ
|
|
MAP cç
|
|
MAP yÿý
|
|
MAP sß
|
|
1affend
|
|
|
|
1good: wrong OK puts. Test the end
|
|
bad: inputs comment ok Ok. test déôl end the
|
|
badend
|
|
|
|
1dicstart
|
|
123456
|
|
test/NO
|
|
# comment
|
|
wrong
|
|
Comment
|
|
OK
|
|
uk
|
|
put/ISO
|
|
the end
|
|
deol
|
|
déôr
|
|
1dicend
|
|
|
|
affstart_sal
|
|
SET ISO8859-1
|
|
TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
|
|
|
|
FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
|
|
LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
|
|
UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
|
|
|
|
MIDWORD '-
|
|
|
|
KEP =
|
|
RAR ?
|
|
BAD !
|
|
|
|
PFX I N 1
|
|
PFX I 0 in .
|
|
|
|
PFX O Y 1
|
|
PFX O 0 out .
|
|
|
|
SFX S Y 2
|
|
SFX S 0 s [^s]
|
|
SFX S 0 es s
|
|
|
|
SFX N N 3
|
|
SFX N 0 en [^n]
|
|
SFX N 0 nen n
|
|
SFX N 0 n .
|
|
|
|
REP 3
|
|
REP g ch
|
|
REP ch g
|
|
REP svp s.v.p.
|
|
|
|
MAP 9
|
|
MAP aàáâãäå
|
|
MAP eèéêë
|
|
MAP iìíîï
|
|
MAP oòóôõö
|
|
MAP uùúûü
|
|
MAP nñ
|
|
MAP cç
|
|
MAP yÿý
|
|
MAP sß
|
|
|
|
SAL AH(AEIOUY)-^ *H
|
|
SAL AR(AEIOUY)-^ *R
|
|
SAL A(HR)^ *
|
|
SAL A^ *
|
|
SAL AH(AEIOUY)- H
|
|
SAL AR(AEIOUY)- R
|
|
SAL A(HR) _
|
|
SAL À^ *
|
|
SAL Å^ *
|
|
SAL BB- _
|
|
SAL B B
|
|
SAL CQ- _
|
|
SAL CIA X
|
|
SAL CH X
|
|
SAL C(EIY)- S
|
|
SAL CK K
|
|
SAL COUGH^ KF
|
|
SAL CC< C
|
|
SAL C K
|
|
SAL DG(EIY) K
|
|
SAL DD- _
|
|
SAL D T
|
|
SAL É< E
|
|
SAL EH(AEIOUY)-^ *H
|
|
SAL ER(AEIOUY)-^ *R
|
|
SAL E(HR)^ *
|
|
SAL ENOUGH^$ *NF
|
|
SAL E^ *
|
|
SAL EH(AEIOUY)- H
|
|
SAL ER(AEIOUY)- R
|
|
SAL E(HR) _
|
|
SAL FF- _
|
|
SAL F F
|
|
SAL GN^ N
|
|
SAL GN$ N
|
|
SAL GNS$ NS
|
|
SAL GNED$ N
|
|
SAL GH(AEIOUY)- K
|
|
SAL GH _
|
|
SAL GG9 K
|
|
SAL G K
|
|
SAL H H
|
|
SAL IH(AEIOUY)-^ *H
|
|
SAL IR(AEIOUY)-^ *R
|
|
SAL I(HR)^ *
|
|
SAL I^ *
|
|
SAL ING6 N
|
|
SAL IH(AEIOUY)- H
|
|
SAL IR(AEIOUY)- R
|
|
SAL I(HR) _
|
|
SAL J K
|
|
SAL KN^ N
|
|
SAL KK- _
|
|
SAL K K
|
|
SAL LAUGH^ LF
|
|
SAL LL- _
|
|
SAL L L
|
|
SAL MB$ M
|
|
SAL MM M
|
|
SAL M M
|
|
SAL NN- _
|
|
SAL N N
|
|
SAL OH(AEIOUY)-^ *H
|
|
SAL OR(AEIOUY)-^ *R
|
|
SAL O(HR)^ *
|
|
SAL O^ *
|
|
SAL OH(AEIOUY)- H
|
|
SAL OR(AEIOUY)- R
|
|
SAL O(HR) _
|
|
SAL PH F
|
|
SAL PN^ N
|
|
SAL PP- _
|
|
SAL P P
|
|
SAL Q K
|
|
SAL RH^ R
|
|
SAL ROUGH^ RF
|
|
SAL RR- _
|
|
SAL R R
|
|
SAL SCH(EOU)- SK
|
|
SAL SC(IEY)- S
|
|
SAL SH X
|
|
SAL SI(AO)- X
|
|
SAL SS- _
|
|
SAL S S
|
|
SAL TI(AO)- X
|
|
SAL TH @
|
|
SAL TCH-- _
|
|
SAL TOUGH^ TF
|
|
SAL TT- _
|
|
SAL T T
|
|
SAL UH(AEIOUY)-^ *H
|
|
SAL UR(AEIOUY)-^ *R
|
|
SAL U(HR)^ *
|
|
SAL U^ *
|
|
SAL UH(AEIOUY)- H
|
|
SAL UR(AEIOUY)- R
|
|
SAL U(HR) _
|
|
SAL V^ W
|
|
SAL V F
|
|
SAL WR^ R
|
|
SAL WH^ W
|
|
SAL W(AEIOU)- W
|
|
SAL X^ S
|
|
SAL X KS
|
|
SAL Y(AEIOU)- Y
|
|
SAL ZZ- _
|
|
SAL Z S
|
|
affend_sal
|
|
|
|
2affstart
|
|
SET ISO8859-1
|
|
|
|
FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
|
|
LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
|
|
UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
|
|
|
|
PFXPOSTPONE
|
|
|
|
MIDWORD '-
|
|
|
|
KEP =
|
|
RAR ?
|
|
BAD !
|
|
|
|
PFX I N 1
|
|
PFX I 0 in .
|
|
|
|
PFX O Y 1
|
|
PFX O 0 out [a-z]
|
|
|
|
SFX S Y 2
|
|
SFX S 0 s [^s]
|
|
SFX S 0 es s
|
|
|
|
SFX N N 3
|
|
SFX N 0 en [^n]
|
|
SFX N 0 nen n
|
|
SFX N 0 n .
|
|
|
|
REP 3
|
|
REP g ch
|
|
REP ch g
|
|
REP svp s.v.p.
|
|
|
|
MAP 9
|
|
MAP aàáâãäå
|
|
MAP eèéêë
|
|
MAP iìíîï
|
|
MAP oòóôõö
|
|
MAP uùúûü
|
|
MAP nñ
|
|
MAP cç
|
|
MAP yÿý
|
|
MAP sß
|
|
2affend
|
|
|
|
2good: puts
|
|
bad: inputs comment ok Ok end the. test déôl
|
|
badend
|
|
|
|
addstart
|
|
/regions=usgbnz
|
|
elequint/2
|
|
elekwint/3
|
|
addend
|
|
|
|
test2:
|
|
elequint test elekwint test elekwent asdf
|
|
|
|
Test rules for compounding.
|
|
|
|
3affstart
|
|
SET ISO8859-1
|
|
|
|
COMPOUNDMIN 3
|
|
COMPOUNDRULE m*
|
|
NEEDCOMPOUND x
|
|
3affend
|
|
|
|
3dicstart
|
|
1234
|
|
foo/m
|
|
bar/mx
|
|
mï/m
|
|
la/mx
|
|
3dicend
|
|
|
|
3good: foo mï foobar foofoobar barfoo barbarfoo
|
|
bad: bar la foomï barmï mïfoo mïbar mïmï lala mïla lamï foola labar
|
|
badend
|
|
|
|
|
|
Tests for compounding.
|
|
|
|
4affstart
|
|
SET ISO8859-1
|
|
|
|
FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
|
|
LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
|
|
UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
|
|
|
|
COMPOUNDRULE m+
|
|
COMPOUNDRULE sm*e
|
|
COMPOUNDRULE sm+
|
|
COMPOUNDMIN 3
|
|
COMPOUNDWORDMAX 3
|
|
COMPOUNDFORBIDFLAG t
|
|
|
|
COMPOUNDSYLMAX 5
|
|
SYLLABLE aáeéiíoóöõuúüûy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui
|
|
|
|
MAP 9
|
|
MAP aàáâãäå
|
|
MAP eèéêë
|
|
MAP iìíîï
|
|
MAP oòóôõö
|
|
MAP uùúûü
|
|
MAP nñ
|
|
MAP cç
|
|
MAP yÿý
|
|
MAP sß
|
|
|
|
NEEDAFFIX x
|
|
|
|
PFXPOSTPONE
|
|
|
|
MIDWORD '-
|
|
|
|
SFX q N 1
|
|
SFX q 0 -ok .
|
|
|
|
SFX a Y 2
|
|
SFX a 0 s .
|
|
SFX a 0 ize/t .
|
|
|
|
PFX p N 1
|
|
PFX p 0 pre .
|
|
|
|
PFX P N 1
|
|
PFX P 0 nou .
|
|
4affend
|
|
|
|
4dicstart
|
|
1234
|
|
word/mP
|
|
util/am
|
|
pro/xq
|
|
tomato/m
|
|
bork/mp
|
|
start/s
|
|
end/e
|
|
4dicend
|
|
|
|
4good: word util bork prebork start end wordutil wordutils pro-ok
|
|
bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork
|
|
tomato tomatotomato startend startword startwordword startwordend
|
|
startwordwordend startwordwordwordend prebork preborkbork
|
|
preborkborkbork
|
|
nouword
|
|
bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato
|
|
endstart endend startstart wordend wordstart
|
|
preborkprebork preborkpreborkbork
|
|
startwordwordwordwordend borkpreborkpreborkbork
|
|
utilsbork startnouword
|
|
badend
|
|
|
|
Test affix flags with two characters
|
|
|
|
5affstart
|
|
SET ISO8859-1
|
|
|
|
FLAG long
|
|
|
|
NEEDAFFIX !!
|
|
|
|
COMPOUNDRULE ssmm*ee
|
|
|
|
NEEDCOMPOUND xx
|
|
COMPOUNDPERMITFLAG pp
|
|
|
|
SFX 13 Y 1
|
|
SFX 13 0 bork .
|
|
|
|
SFX a1 Y 1
|
|
SFX a1 0 a1 .
|
|
|
|
SFX aé Y 1
|
|
SFX aé 0 aé .
|
|
|
|
PFX zz Y 1
|
|
PFX zz 0 pre/pp .
|
|
|
|
PFX yy Y 1
|
|
PFX yy 0 nou .
|
|
5affend
|
|
|
|
5dicstart
|
|
1234
|
|
foo/a1aé!!
|
|
bar/zz13ee
|
|
start/ss
|
|
end/eeyy
|
|
middle/mmxx
|
|
5dicend
|
|
|
|
5good: fooa1 fooaé bar prebar barbork prebarbork startprebar
|
|
start end startend startmiddleend nouend
|
|
bad: foo fooa2 prabar probarbirk middle startmiddle middleend endstart
|
|
startprobar startnouend
|
|
badend
|
|
|
|
6affstart
|
|
SET ISO8859-1
|
|
|
|
FLAG caplong
|
|
|
|
NEEDAFFIX A!
|
|
|
|
COMPOUNDRULE sMm*Ee
|
|
|
|
NEEDCOMPOUND Xx
|
|
|
|
COMPOUNDPERMITFLAG p
|
|
|
|
SFX N3 Y 1
|
|
SFX N3 0 bork .
|
|
|
|
SFX A1 Y 1
|
|
SFX A1 0 a1 .
|
|
|
|
SFX Aé Y 1
|
|
SFX Aé 0 aé .
|
|
|
|
PFX Zz Y 1
|
|
PFX Zz 0 pre/p .
|
|
6affend
|
|
|
|
6dicstart
|
|
1234
|
|
mee/A1AéA!
|
|
bar/ZzN3Ee
|
|
lead/s
|
|
end/Ee
|
|
middle/MmXx
|
|
6dicend
|
|
|
|
6good: meea1 meeaé bar prebar barbork prebarbork leadprebar
|
|
lead end leadend leadmiddleend
|
|
bad: mee meea2 prabar probarbirk middle leadmiddle middleend endlead
|
|
leadprobar
|
|
badend
|
|
|
|
7affstart
|
|
SET ISO8859-1
|
|
|
|
FLAG num
|
|
|
|
NEEDAFFIX 9999
|
|
|
|
COMPOUNDRULE 2,77*123
|
|
|
|
NEEDCOMPOUND 1
|
|
COMPOUNDPERMITFLAG 432
|
|
|
|
SFX 61003 Y 1
|
|
SFX 61003 0 meat .
|
|
|
|
SFX 391 Y 1
|
|
SFX 391 0 a1 .
|
|
|
|
SFX 111 Y 1
|
|
SFX 111 0 aé .
|
|
|
|
PFX 17 Y 1
|
|
PFX 17 0 pre/432 .
|
|
7affend
|
|
|
|
7dicstart
|
|
1234
|
|
mee/391,111,9999
|
|
bar/17,61003,123
|
|
lead/2
|
|
tail/123
|
|
middle/77,1
|
|
7dicend
|
|
|
|
7good: meea1 meeaé bar prebar barmeat prebarmeat leadprebar
|
|
lead tail leadtail leadmiddletail
|
|
bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead
|
|
leadprobar
|
|
badend
|
|
|
|
Test NOSLITSUGS
|
|
|
|
8affstart
|
|
SET ISO8859-1
|
|
|
|
NOSPLITSUGS
|
|
8affend
|
|
|
|
8dicstart
|
|
1234
|
|
foo
|
|
bar
|
|
faabar
|
|
8dicend
|
|
|
|
8good: foo bar faabar
|
|
bad: foobar barfoo
|
|
badend
|
|
|
|
|
|
test output:
|