blob: aab48aeea06c6e3c2ec5860cd645da8f1e27bf01 [file] [log] [blame]
Bram Moolenaar53180ce2005-07-05 21:48:14 +00001Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim :
2
3STARTTEST
4:so small.vim
5:so mbyte.vim
6:"
Bram Moolenaar8d343302005-07-12 22:46:17 +00007:" Don't want to depend on the locale from the environment. The .aff and .dic
8:" text is in latin1, the test text is utf-8.
9:set enc=latin1
10:e!
Bram Moolenaar53180ce2005-07-05 21:48:14 +000011:set enc=utf-8
Bram Moolenaarac6e65f2005-08-29 22:25:38 +000012:set fenc=
Bram Moolenaar53180ce2005-07-05 21:48:14 +000013:"
Bram Moolenaarac6e65f2005-08-29 22:25:38 +000014:" Function to test .aff/.dic with list of good and bad words.
15:func TestOne(aff, dic)
16 set spellfile=
17 $put =''
18 $put ='test '. a:aff . '-' . a:dic
19 " Generate a .spl file from a .dic and .aff file.
20 exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'
21 exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'
22 mkspell! Xtest Xtest
23 " use that spell file
24 set spl=Xtest.utf-8.spl spell
25 " list all valid words
26 spelldump
27 %yank
28 quit
29 $put
30 $put ='-------'
31 " find all bad words and suggestions for them
32 exe '1;/^' . a:aff . 'good:'
33 normal 0f:]s
34 let prevbad = ''
35 while 1
36 let bad = spellbadword()
37 if bad == '' || bad == prevbad || bad == 'badend'
38 break
39 endif
40 let prevbad = bad
41 let lst = spellsuggest(bad, 3)
42 normal mm
43 $put =bad
44 $put =string(lst)
45 normal `m]s
46 endwhile
Bram Moolenaar53180ce2005-07-05 21:48:14 +000047endfunc
Bram Moolenaarac6e65f2005-08-29 22:25:38 +000048:"
49:call TestOne('1', '1')
Bram Moolenaar53180ce2005-07-05 21:48:14 +000050:$put =soundfold('goobledygoook')
51:$put =soundfold('kóopërÿnôven')
52:$put =soundfold('oeverloos gezwets edale')
53:"
Bram Moolenaarac6e65f2005-08-29 22:25:38 +000054:"
Bram Moolenaar53180ce2005-07-05 21:48:14 +000055:" and now with SAL instead of SOFO items; test automatic reloading
Bram Moolenaarac6e65f2005-08-29 22:25:38 +000056gg:/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
Bram Moolenaar53180ce2005-07-05 21:48:14 +000057:mkspell! Xtest Xtest
58:$put =soundfold('goobledygoook')
59:$put =soundfold('kóopërÿnôven')
60:$put =soundfold('oeverloos gezwets edale')
61:"
62:" also use an addition file
63gg:/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
64:mkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
Bram Moolenaar53180ce2005-07-05 21:48:14 +000065:set spellfile=Xtest.utf-8.add
66/^test2:
67]s:let str = spellbadword()
68:$put =str
Bram Moolenaarbbebc852005-07-18 21:47:53 +000069:set spl=Xtest_us.utf-8.spl
Bram Moolenaar53180ce2005-07-05 21:48:14 +000070/^test2:
71]smm:let str = spellbadword()
72:$put =str
73`m]s:let str = spellbadword()
74:$put =str
Bram Moolenaarbbebc852005-07-18 21:47:53 +000075:set spl=Xtest_gb.utf-8.spl
Bram Moolenaar53180ce2005-07-05 21:48:14 +000076/^test2:
77]smm:let str = spellbadword()
78:$put =str
79`m]s:let str = spellbadword()
80:$put =str
Bram Moolenaarbbebc852005-07-18 21:47:53 +000081:set spl=Xtest_nz.utf-8.spl
Bram Moolenaar53180ce2005-07-05 21:48:14 +000082/^test2:
83]smm:let str = spellbadword()
84:$put =str
85`m]s:let str = spellbadword()
86:$put =str
Bram Moolenaarbbebc852005-07-18 21:47:53 +000087:set spl=Xtest_ca.utf-8.spl
Bram Moolenaar53180ce2005-07-05 21:48:14 +000088/^test2:
89]smm:let str = spellbadword()
90:$put =str
91`m]s:let str = spellbadword()
92:$put =str
93:"
94:" Postponed prefixes
Bram Moolenaarac6e65f2005-08-29 22:25:38 +000095:call TestOne('2', '1')
96:"
97:" Compound words
98:call TestOne('3', '3')
99:call TestOne('4', '4')
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000100:"
101gg:/^test output:/,$wq! test.out
102ENDTEST
103
Bram Moolenaarac6e65f2005-08-29 22:25:38 +00001041affstart
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000105SET ISO8859-1
106TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
107
108FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
109LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
110UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
111
112SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
113SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
114
115MIDWORD '-
116
117KEP =
118RAR ?
119BAD !
120
121NOSPLITSUGS
122
123PFX I N 1
124PFX I 0 in .
125
126PFX O Y 1
127PFX O 0 out .
128
129SFX S Y 2
130SFX S 0 s [^s]
131SFX S 0 es s
132
133SFX N N 3
134SFX N 0 en [^n]
135SFX N 0 nen n
136SFX N 0 n .
137
138REP 3
139REP g ch
140REP ch g
141REP svp s.v.p.
142
143MAP 9
144MAP aàáâãäå
145MAP eèéêë
146MAP iìíîï
147MAP oòóôõö
148MAP uùúûü
149MAP nñ
150MAP cç
151MAP yÿý
152MAP sß
Bram Moolenaarac6e65f2005-08-29 22:25:38 +00001531affend
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000154
Bram Moolenaarac6e65f2005-08-29 22:25:38 +0000155affstart_sal
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000156SET ISO8859-1
157TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
158
159FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
160LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
161UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
162
163MIDWORD '-
164
165KEP =
166RAR ?
167BAD !
168
169NOSPLITSUGS
170
171PFX I N 1
172PFX I 0 in .
173
174PFX O Y 1
175PFX O 0 out .
176
177SFX S Y 2
178SFX S 0 s [^s]
179SFX S 0 es s
180
181SFX N N 3
182SFX N 0 en [^n]
183SFX N 0 nen n
184SFX N 0 n .
185
186REP 3
187REP g ch
188REP ch g
189REP svp s.v.p.
190
191MAP 9
192MAP aàáâãäå
193MAP eèéêë
194MAP iìíîï
195MAP oòóôõö
196MAP uùúûü
197MAP nñ
198MAP cç
199MAP yÿý
200MAP sß
201
202SAL AH(AEIOUY)-^ *H
203SAL AR(AEIOUY)-^ *R
204SAL A(HR)^ *
205SAL A^ *
206SAL AH(AEIOUY)- H
207SAL AR(AEIOUY)- R
208SAL A(HR) _
209SAL À^ *
210SAL Å^ *
211SAL BB- _
212SAL B B
213SAL CQ- _
214SAL CIA X
215SAL CH X
216SAL C(EIY)- S
217SAL CK K
218SAL COUGH^ KF
219SAL CC< C
220SAL C K
221SAL DG(EIY) K
222SAL DD- _
223SAL D T
224SAL É< E
225SAL EH(AEIOUY)-^ *H
226SAL ER(AEIOUY)-^ *R
227SAL E(HR)^ *
228SAL ENOUGH^$ *NF
229SAL E^ *
230SAL EH(AEIOUY)- H
231SAL ER(AEIOUY)- R
232SAL E(HR) _
233SAL FF- _
234SAL F F
235SAL GN^ N
236SAL GN$ N
237SAL GNS$ NS
238SAL GNED$ N
239SAL GH(AEIOUY)- K
240SAL GH _
241SAL GG9 K
242SAL G K
243SAL H H
244SAL IH(AEIOUY)-^ *H
245SAL IR(AEIOUY)-^ *R
246SAL I(HR)^ *
247SAL I^ *
248SAL ING6 N
249SAL IH(AEIOUY)- H
250SAL IR(AEIOUY)- R
251SAL I(HR) _
252SAL J K
253SAL KN^ N
254SAL KK- _
255SAL K K
256SAL LAUGH^ LF
257SAL LL- _
258SAL L L
259SAL MB$ M
260SAL MM M
261SAL M M
262SAL NN- _
263SAL N N
264SAL OH(AEIOUY)-^ *H
265SAL OR(AEIOUY)-^ *R
266SAL O(HR)^ *
267SAL O^ *
268SAL OH(AEIOUY)- H
269SAL OR(AEIOUY)- R
270SAL O(HR) _
271SAL PH F
272SAL PN^ N
273SAL PP- _
274SAL P P
275SAL Q K
276SAL RH^ R
277SAL ROUGH^ RF
278SAL RR- _
279SAL R R
280SAL SCH(EOU)- SK
281SAL SC(IEY)- S
282SAL SH X
283SAL SI(AO)- X
284SAL SS- _
285SAL S S
286SAL TI(AO)- X
287SAL TH @
288SAL TCH-- _
289SAL TOUGH^ TF
290SAL TT- _
291SAL T T
292SAL UH(AEIOUY)-^ *H
293SAL UR(AEIOUY)-^ *R
294SAL U(HR)^ *
295SAL U^ *
296SAL UH(AEIOUY)- H
297SAL UR(AEIOUY)- R
298SAL U(HR) _
299SAL V^ W
300SAL V F
301SAL WR^ R
302SAL WH^ W
303SAL W(AEIOU)- W
304SAL X^ S
305SAL X KS
306SAL Y(AEIOU)- Y
307SAL ZZ- _
308SAL Z S
Bram Moolenaarac6e65f2005-08-29 22:25:38 +0000309affend_sal
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000310
Bram Moolenaarac6e65f2005-08-29 22:25:38 +00003112affstart
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000312SET ISO8859-1
313
314FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
315LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
316UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
317
318PFXPOSTPONE
319
320MIDWORD '-
321
322KEP =
323RAR ?
324BAD !
325
326NOSPLITSUGS
327
328PFX I N 1
329PFX I 0 in .
330
331PFX O Y 1
Bram Moolenaar78984f52005-08-01 07:19:10 +0000332PFX O 0 out [a-z]
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000333
334SFX S Y 2
335SFX S 0 s [^s]
336SFX S 0 es s
337
338SFX N N 3
339SFX N 0 en [^n]
340SFX N 0 nen n
341SFX N 0 n .
342
343REP 3
344REP g ch
345REP ch g
346REP svp s.v.p.
347
348MAP 9
349MAP aàáâãäå
350MAP eèéêë
351MAP iìíîï
352MAP oòóôõö
353MAP uùúûü
354MAP nñ
355MAP cç
356MAP yÿý
357MAP sß
Bram Moolenaarac6e65f2005-08-29 22:25:38 +00003582affend
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000359
Bram Moolenaarac6e65f2005-08-29 22:25:38 +00003601dicstart
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000361123456
362test/NO
363# comment
364wrong
365Comment
366OK
367uk
368put/ISO
369the end
370deol
371déôr
Bram Moolenaarac6e65f2005-08-29 22:25:38 +00003721dicend
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000373
374addstart
375/regions=usgbnz
376elequint/2
377elekwint/3
378addend
379
Bram Moolenaarac6e65f2005-08-29 22:25:38 +00003801good: wrong OK puts. Test the end
381bad: inputs comment ok Ok. test déôl end the
382badend
383
3842good: puts
385bad: inputs comment ok Ok end the. test déôl
386badend
387
388Test rules for compounding.
389
3903affstart
391SET ISO8859-1
392
393COMPOUNDMIN 3
394COMPOUNDFLAGS m*
395NEEDCOMPOUND x
3963affend
397
3983dicstart
3991234
400foo/m
401bar/mx
402mï/m
403la/mx
4043dicend
405
4063good: foo mï foobar foofoobar barfoo barbarfoo
407bad: bar la foomï barmï mïfoo mïbar mïmï lala mïla lamï foola labar
408badend
409
410
411Tests for compounding.
412
4134affstart
414SET ISO8859-1
415
416FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
417LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
418UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
419
420COMPOUNDFLAGS m+
421COMPOUNDFLAGS sm*e
422COMPOUNDFLAGS sm+
423COMPOUNDMIN 3
424COMPOUNDMAX 3
425
426COMPOUNDSYLMAX 5
427SYLLABLE aáeéiíoóöõuúüûy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui
428
429MAP 9
430MAP aàáâãäå
431MAP eèéêë
432MAP iìíîï
433MAP oòóôõö
434MAP uùúûü
435MAP nñ
436MAP cç
437MAP yÿý
438MAP sß
439
440NEEDAFFIX x
441
442PFXPOSTPONE
443
444MIDWORD '-
445
446SFX q N 1
447SFX q 0 -ok .
448
449SFX a Y 2
450SFX a 0 s .
451SFX a 0 ize . nocomp
452
453PFX p N 1
454PFX p 0 pre .
4554affend
456
4574dicstart
4581234
459word/m
460util/am
461pro/xq
462tomato/m
463bork/mp
464start/s
465end/e
4664dicend
467
4684good: word util bork prebork start end wordutil wordutils pro-ok
469 bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork
470 tomato tomatotomato startend startword startwordword startwordend
471 startwordwordend startwordwordwordend prebork preborkprebork
472 preborkborkprebork preborkpreborkbork
473bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato
474 endstart endend startstart wordend wordstart
475 startwordwordwordwordend borkpreborkpreborkbork
476badend
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000477
478test2:
479elequint test elekwint test elekwent asdf
480
Bram Moolenaar53180ce2005-07-05 21:48:14 +0000481test output: