Merged from the latest developing branch.
[MacVim.git] / src / testdir / test58.in
blob9600e83f817fd3d4a3c44940345366fa61f33458
1 Tests for spell checking.     vim: set ft=vim :
3 STARTTEST
4 :so small.vim
5 :"
6 :" Don't want to depend on the locale from the environment
7 :set enc=latin1
8 :e!
9 :"
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, a] = 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
43 endfunc
45 :call TestOne('1', '1')
46 :$put =soundfold('goobledygoook')
47 :$put =soundfold('kóopërÿnôven')
48 :$put =soundfold('oeverloos gezwets edale')
51 :" and now with SAL instead of SOFO items; test automatic reloading
52 gg:/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
53 :mkspell! Xtest Xtest
54 :$put =soundfold('goobledygoook')
55 :$put =soundfold('kóopërÿnôven')
56 :$put =soundfold('oeverloos gezwets edale')
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, a] = spellbadword()
64 :$put =str
65 :set spl=Xtest_us.latin1.spl
66 /^test2:
67 ]smm:let [str, a] = spellbadword()
68 :$put =str
69 `m]s:let [str, a] = spellbadword()
70 :$put =str
71 :set spl=Xtest_gb.latin1.spl
72 /^test2:
73 ]smm:let [str, a] = spellbadword()
74 :$put =str
75 `m]s:let [str, a] = spellbadword()
76 :$put =str
77 :set spl=Xtest_nz.latin1.spl
78 /^test2:
79 ]smm:let [str, a] = spellbadword()
80 :$put =str
81 `m]s:let [str, a] = spellbadword()
82 :$put =str
83 :set spl=Xtest_ca.latin1.spl
84 /^test2:
85 ]smm:let [str, a] = spellbadword()
86 :$put =str
87 `m]s:let [str, a] = spellbadword()
88 :$put =str
89 :unlet str a
91 :" Postponed prefixes
92 :call TestOne('2', '1')
94 :" Compound words
95 :call TestOne('3', '3')
96 :call TestOne('4', '4')
97 :call TestOne('5', '5')
98 :call TestOne('6', '6')
99 :call TestOne('7', '7')
101 :" NOSLITSUGS
102 :call TestOne('8', '8')
104 :" clean up for valgrind
105 :delfunc TestOne
106 :set spl= enc=latin1
108 gg:/^test output:/,$wq! test.out
109 ENDTEST
111 1affstart
112 SET ISO8859-1
113 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
115 FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
116 LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
117 UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
119 SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
120 SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
122 MIDWORD '-
124 KEP =
125 RAR ?
126 BAD !
128 PFX I N 1
129 PFX I 0 in .
131 PFX O Y 1
132 PFX O 0 out .
134 SFX S Y 2
135 SFX S 0 s [^s]
136 SFX S 0 es s
138 SFX N N 3
139 SFX N 0 en [^n]
140 SFX N 0 nen n
141 SFX N 0 n .
143 REP 3
144 REP g ch
145 REP ch g
146 REP svp s.v.p.
148 MAP 9
149 MAP aàáâãäå
150 MAP eèéêë
151 MAP iìíîï
152 MAP oòóôõö
153 MAP uùúûü
154 MAP nñ
155 MAP cç
156 MAP yÿý
157 MAP sß
158 1affend
160 1good: wrong OK puts. Test the end
161 bad:  inputs comment ok Ok. test déôl end the
162 badend
164 1dicstart
165 123456
166 test/NO
167 # comment
168 wrong
169 Comment
172 put/ISO
173 the end
174 deol
175 déôr
176 1dicend
178 affstart_sal
179 SET ISO8859-1
180 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
182 FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
183 LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
184 UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
186 MIDWORD '-
188 KEP =
189 RAR ?
190 BAD !
192 PFX I N 1
193 PFX I 0 in .
195 PFX O Y 1
196 PFX O 0 out .
198 SFX S Y 2
199 SFX S 0 s [^s]
200 SFX S 0 es s
202 SFX N N 3
203 SFX N 0 en [^n]
204 SFX N 0 nen n
205 SFX N 0 n .
207 REP 3
208 REP g ch
209 REP ch g
210 REP svp s.v.p.
212 MAP 9
213 MAP aàáâãäå
214 MAP eèéêë
215 MAP iìíîï
216 MAP oòóôõö
217 MAP uùúûü
218 MAP nñ
219 MAP cç
220 MAP yÿý
221 MAP sß
223 SAL AH(AEIOUY)-^         *H
224 SAL AR(AEIOUY)-^         *R
225 SAL A(HR)^               *
226 SAL A^                   *
227 SAL AH(AEIOUY)-          H
228 SAL AR(AEIOUY)-          R
229 SAL A(HR)                _
230 SAL À^                   *
231 SAL Å^                   *
232 SAL BB-                  _
233 SAL B                    B
234 SAL CQ-                  _
235 SAL CIA                  X
236 SAL CH                   X
237 SAL C(EIY)-              S
238 SAL CK                   K
239 SAL COUGH^               KF
240 SAL CC<                  C
241 SAL C                    K
242 SAL DG(EIY)              K
243 SAL DD-                  _
244 SAL D                    T
245 SAL É<                   E
246 SAL EH(AEIOUY)-^         *H
247 SAL ER(AEIOUY)-^         *R
248 SAL E(HR)^               *
249 SAL ENOUGH^$             *NF
250 SAL E^                   *
251 SAL EH(AEIOUY)-          H
252 SAL ER(AEIOUY)-          R
253 SAL E(HR)                _
254 SAL FF-                  _
255 SAL F                    F
256 SAL GN^                  N
257 SAL GN$                  N
258 SAL GNS$                 NS
259 SAL GNED$                N
260 SAL GH(AEIOUY)-          K
261 SAL GH                   _
262 SAL GG9                  K
263 SAL G                    K
264 SAL H                    H
265 SAL IH(AEIOUY)-^         *H
266 SAL IR(AEIOUY)-^         *R
267 SAL I(HR)^               *
268 SAL I^                   *
269 SAL ING6                 N
270 SAL IH(AEIOUY)-          H
271 SAL IR(AEIOUY)-          R
272 SAL I(HR)                _
273 SAL J                    K
274 SAL KN^                  N
275 SAL KK-                  _
276 SAL K                    K
277 SAL LAUGH^               LF
278 SAL LL-                  _
279 SAL L                    L
280 SAL MB$                  M
281 SAL MM                   M
282 SAL M                    M
283 SAL NN-                  _
284 SAL N                    N
285 SAL OH(AEIOUY)-^         *H
286 SAL OR(AEIOUY)-^         *R
287 SAL O(HR)^               *
288 SAL O^                   *
289 SAL OH(AEIOUY)-          H
290 SAL OR(AEIOUY)-          R
291 SAL O(HR)                _
292 SAL PH                   F
293 SAL PN^                  N
294 SAL PP-                  _
295 SAL P                    P
296 SAL Q                    K
297 SAL RH^                  R
298 SAL ROUGH^               RF
299 SAL RR-                  _
300 SAL R                    R
301 SAL SCH(EOU)-            SK
302 SAL SC(IEY)-             S
303 SAL SH                   X
304 SAL SI(AO)-              X
305 SAL SS-                  _
306 SAL S                    S
307 SAL TI(AO)-              X
308 SAL TH                   @
309 SAL TCH--                _
310 SAL TOUGH^               TF
311 SAL TT-                  _
312 SAL T                    T
313 SAL UH(AEIOUY)-^         *H
314 SAL UR(AEIOUY)-^         *R
315 SAL U(HR)^               *
316 SAL U^                   *
317 SAL UH(AEIOUY)-          H
318 SAL UR(AEIOUY)-          R
319 SAL U(HR)                _
320 SAL V^                   W
321 SAL V                    F
322 SAL WR^                  R
323 SAL WH^                  W
324 SAL W(AEIOU)-            W
325 SAL X^                   S
326 SAL X                    KS
327 SAL Y(AEIOU)-            Y
328 SAL ZZ-                  _
329 SAL Z                    S
330 affend_sal
332 2affstart
333 SET ISO8859-1
335 FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
336 LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
337 UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
339 PFXPOSTPONE
341 MIDWORD '-
343 KEP =
344 RAR ?
345 BAD !
347 PFX I N 1
348 PFX I 0 in .
350 PFX O Y 1
351 PFX O 0 out [a-z]
353 SFX S Y 2
354 SFX S 0 s [^s]
355 SFX S 0 es s
357 SFX N N 3
358 SFX N 0 en [^n]
359 SFX N 0 nen n
360 SFX N 0 n .
362 REP 3
363 REP g ch
364 REP ch g
365 REP svp s.v.p.
367 MAP 9
368 MAP aàáâãäå
369 MAP eèéêë
370 MAP iìíîï
371 MAP oòóôõö
372 MAP uùúûü
373 MAP nñ
374 MAP cç
375 MAP yÿý
376 MAP sß
377 2affend
379 2good: puts
380 bad: inputs comment ok Ok end the. test déôl
381 badend
383 addstart
384 /regions=usgbnz
385 elequint/2
386 elekwint/3
387 addend
389 test2:
390 elequint test elekwint test elekwent asdf
392 Test rules for compounding.
394 3affstart
395 SET ISO8859-1
397 COMPOUNDMIN 3
398 COMPOUNDRULE m*
399 NEEDCOMPOUND x
400 3affend
402 3dicstart
403 1234
404 foo/m
405 bar/mx
406 mï/m
407 la/mx
408 3dicend
410 3good: foo mï foobar foofoobar barfoo barbarfoo
411 bad: bar la foomï barmï mïfoo mïbar mïmï lala mïla lamï foola labar
412 badend
415 Tests for compounding.
417 4affstart
418 SET ISO8859-1
420 FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
421 LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
422 UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
424 COMPOUNDRULE m+
425 COMPOUNDRULE sm*e
426 COMPOUNDRULE sm+
427 COMPOUNDMIN 3
428 COMPOUNDWORDMAX 3
429 COMPOUNDFORBIDFLAG t
431 COMPOUNDSYLMAX 5
432 SYLLABLE aáeéiíoóöõuúüûy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui
434 MAP 9
435 MAP aàáâãäå
436 MAP eèéêë
437 MAP iìíîï
438 MAP oòóôõö
439 MAP uùúûü
440 MAP nñ
441 MAP cç
442 MAP yÿý
443 MAP sß
445 NEEDAFFIX x
447 PFXPOSTPONE
449 MIDWORD '-
451 SFX q N 1
452 SFX q   0    -ok .
454 SFX a Y 2
455 SFX a 0 s .
456 SFX a 0 ize/t .
458 PFX p N 1
459 PFX p 0 pre .
461 PFX P N 1
462 PFX P 0 nou .
463 4affend
465 4dicstart
466 1234
467 word/mP
468 util/am
469 pro/xq
470 tomato/m
471 bork/mp
472 start/s
473 end/e
474 4dicend
476 4good: word util bork prebork start end wordutil wordutils pro-ok
477         bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork
478         tomato tomatotomato startend startword startwordword startwordend
479         startwordwordend startwordwordwordend prebork preborkbork
480         preborkborkbork
481         nouword
482 bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato
483         endstart endend startstart wordend wordstart
484         preborkprebork  preborkpreborkbork
485         startwordwordwordwordend borkpreborkpreborkbork
486         utilsbork  startnouword
487 badend
489 Test affix flags with two characters
491 5affstart
492 SET ISO8859-1
494 FLAG long
496 NEEDAFFIX !!
498 COMPOUNDRULE ssmm*ee
500 NEEDCOMPOUND xx
501 COMPOUNDPERMITFLAG pp
503 SFX 13 Y 1
504 SFX 13 0 bork .
506 SFX a1 Y 1
507 SFX a1 0 a1 .
509 SFX aé Y 1
510 SFX aé 0 aé .
512 PFX zz Y 1
513 PFX zz 0 pre/pp .
515 PFX yy Y 1
516 PFX yy 0 nou .
517 5affend
519 5dicstart
520 1234
521 foo/a1aé!!
522 bar/zz13ee
523 start/ss
524 end/eeyy
525 middle/mmxx
526 5dicend
528 5good: fooa1 fooaé bar prebar barbork prebarbork  startprebar
529       start end startend  startmiddleend nouend
530 bad: foo fooa2 prabar probarbirk middle startmiddle middleend endstart
531         startprobar startnouend
532 badend
534 6affstart
535 SET ISO8859-1
537 FLAG caplong
539 NEEDAFFIX A!
541 COMPOUNDRULE sMm*Ee
543 NEEDCOMPOUND Xx
545 COMPOUNDPERMITFLAG p
547 SFX N3 Y 1
548 SFX N3 0 bork .
550 SFX A1 Y 1
551 SFX A1 0 a1 .
553 SFX Aé Y 1
554 SFX Aé 0 aé .
556 PFX Zz Y 1
557 PFX Zz 0 pre/p .
558 6affend
560 6dicstart
561 1234
562 mee/A1AéA!
563 bar/ZzN3Ee
564 lead/s
565 end/Ee
566 middle/MmXx
567 6dicend
569 6good: meea1 meeaé bar prebar barbork prebarbork  leadprebar
570       lead end leadend  leadmiddleend
571 bad: mee meea2 prabar probarbirk middle leadmiddle middleend endlead
572         leadprobar
573 badend
575 7affstart
576 SET ISO8859-1
578 FLAG num
580 NEEDAFFIX 9999
582 COMPOUNDRULE 2,77*123
584 NEEDCOMPOUND 1
585 COMPOUNDPERMITFLAG 432
587 SFX 61003 Y 1
588 SFX 61003 0 meat .
590 SFX 391 Y 1
591 SFX 391 0 a1 .
593 SFX 111 Y 1
594 SFX 111 0 aé .
596 PFX 17 Y 1
597 PFX 17 0 pre/432 .
598 7affend
600 7dicstart
601 1234
602 mee/391,111,9999
603 bar/17,61003,123
604 lead/2
605 tail/123
606 middle/77,1
607 7dicend
609 7good: meea1 meeaé bar prebar barmeat prebarmeat  leadprebar
610       lead tail leadtail  leadmiddletail
611 bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead
612         leadprobar
613 badend
615 Test NOSLITSUGS
617 8affstart
618 SET ISO8859-1
620 NOSPLITSUGS
621 8affend
623 8dicstart
624 1234
627 faabar
628 8dicend
630 8good: foo bar faabar
631 bad: foobar barfoo
632 badend
635 test output: