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