AUTORECODE: Trim trailing white space correctly.
[pspp] / tests / output / ascii.at
1 AT_BANNER([ASCII driver -- rendering corner cases])
2
3 AT_SETUP([ASCII driver overwriting single-width text])
4 AT_KEYWORDS([render rendering])
5 AT_DATA([input], [dnl
6 ## overwriting rest of line
7 # plain
8 0 0 0 abc
9 1 0 0 BCD
10 # emphasized over plain
11 0 1 0 efg
12 1 1 1 FGH
13 # plain over emphasized
14 0 2 1 ijk
15 1 2 0 JKL
16 # emphasized over emphasized
17 0 3 1 mno
18 1 3 1 NOP
19
20 ## overwriting partial line
21 # plain
22 0 5 0 abcdef
23 0 5 0 A
24 2 5 0 CDE
25 # emphasized over plain
26 0 6 0 ghijkl
27 0 6 1 G
28 2 6 1 IJK
29 # plain over emphasized
30 0 7 1 mnopqr
31 0 7 0 M
32 2 7 0 OPQ
33 # emphasized over emphasized
34 0 8 1 stuvwx
35 0 8 1 S
36 2 8 1 UVW
37
38 ## overwriting rest of line with double-width characters
39 # plain
40 0 10 0 kakiku
41 2 10 0 きくけ
42 # emphasized over plain
43 0 11 0 kakiku
44 2 11 1 きくけ
45 # plain over emphasized
46 0 12 1 kakiku
47 2 12 0 きくけ
48 # emphasized over emphasized
49 0 13 1 kakiku
50 2 13 1 きくけ
51
52 ## overwriting partial line with double-width characters
53 # plain
54 0 15 0 kakikukeko
55 0 15 0 か
56 4 15 0 くけ
57 # emphasized over plain
58 0 16 0 kakikukeko
59 0 16 1 か
60 4 16 1 くけ
61 # plain over emphasized
62 0 17 1 kakikukeko
63 0 17 0 か
64 4 17 0 くけ
65 # emphasized over emphasized
66 0 18 1 kakikukeko
67 0 18 1 か
68 4 18 1 くけ
69 ])
70 AT_CHECK([render-test --draw-mode --emph=none input], [0], [dnl
71 aBCD
72 eFGH
73 iJKL
74 mNOP
75
76 AbCDEf
77 GhIJKl
78 MnOPQr
79 StUVWx
80
81 kaきくけ
82 kaきくけ
83 kaきくけ
84 kaきくけ
85
86 かkiくけko
87 かkiくけko
88 かkiくけko
89 かkiくけko
90 ])
91 AT_CHECK([render-test --draw-mode --emph=bold input], [0], [dnl
92 aBCD
93 eF\bFG\bGH\bH
94 i\biJKL
95 m\bmN\bNO\bOP\bP
96
97 AbCDEf
98 G\bGhI\bIJ\bJK\bKl
99 Mn\bnOPQr\br
100 S\bSt\btU\bUV\bVW\bWx\bx
101
102 kaきくけ
103 kaき\bきく\bくけ\b
104 k\bka\baきくけ
105 k\bka\baき\bきく\bくけ\b
106
107 かkiくけko
108\bかkiく\bくけ\bけko
109 かk\bki\biくけk\bko\bo
110\bかk\bki\biく\bくけ\bけk\bko\bo
111 ])
112 AT_CHECK([render-test --draw-mode --emph=underline input], [0], [dnl
113 aBCD
114 e_\bF_\bG_\bH
115 _\biJKL
116 _\bm_\bN_\bO_\bP
117
118 AbCDEf
119 _\bGh_\bI_\bJ_\bKl
120 M_\bnOPQ_\br
121 _\bS_\bt_\bU_\bV_\bW_\bx
122
123 kaきくけ
124 ka_\bき_\bく_\b
125 _\bk_\baきくけ
126 _\bk_\ba_\bき_\bく_\b
127
128 かkiくけko
129 _\bかki_\bく_\bけko
130 か_\bk_\biくけ_\bk_\bo
131 _\bか_\bk_\bi_\bく_\bけ_\bk_\bo
132 ])
133 AT_CLEANUP
134
135 AT_SETUP([ASCII driver overwriting double-width text])
136 AT_KEYWORDS([render rendering])
137 AT_DATA([input], [dnl
138 ## overwrite rest of line, aligned double-width over double-width
139 # plain
140 0 0 0 あいう
141 2 0 0 きくけ
142 # emphasized over plain
143 0 1 0 あいう
144 2 1 1 きくけ
145 # plain over emphasized
146 0 2 1 あいう
147 2 2 0 きくけ
148 # emphasized over emphasized
149 0 3 1 あいう
150 2 3 1 きくけ
151
152 ## overwrite rest of line, misaligned double-width over double-width
153 # plain
154 0 5 0 あいう
155 3 5 0 きくけ
156 # emphasized over plain
157 0 6 0 あいう
158 3 6 1 きくけ
159 # plain over emphasized
160 0 7 1 あいう
161 3 7 0 きくけ
162 # emphasized over emphasized
163 0 8 1 あいう
164 3 8 1 きくけ
165
166 ## overwrite partial line, aligned double-width over double-width
167 # plain
168 0 10 0 あいうえお
169 0 10 0 か
170 4 10 0 くけ
171 # emphasized over plain
172 0 11 0 あいうえお
173 0 11 1 か
174 4 11 1 くけ
175 # plain over emphasized
176 0 12 1 あいうえお
177 0 12 0 か
178 4 12 0 くけ
179 # emphasized over emphasized
180 0 13 1 あいうえお
181 0 13 1 か
182 4 13 1 くけ
183
184 ## overwrite partial line, misaligned double-width over double-width
185 # plain
186 0 15 0 あいうえおさ
187 1 15 0 か
188 5 15 0 くけ
189 # emphasized over plain
190 0 16 0 あいうえおさ
191 1 16 1 か
192 5 16 1 くけ
193 # plain over emphasized
194 0 17 1 あいうえおさ
195 1 17 0 か
196 5 17 0 くけ
197 # emphasized over emphasized
198 0 18 1 あいうえおさ
199 1 18 1 か
200 5 18 1 くけ
201
202 ## overwrite rest of line, aligned single-width over double-width
203 # plain
204 0 20 0 あいう
205 2 20 0 kikuko
206 # emphasized over plain
207 0 21 0 あいう
208 2 21 1 kikuko
209 # plain over emphasized
210 0 22 1 あいう
211 2 22 0 kikuko
212 # emphasized over emphasized
213 0 23 1 あいう
214 2 23 1 kikuko
215
216 ## overwrite rest of line, misaligned single-width over double-width
217 # plain
218 0 25 0 あいう
219 3 25 0 kikuko
220 # emphasized over plain
221 0 26 0 あいう
222 3 26 1 kikuko
223 # plain over emphasized
224 0 27 1 あいう
225 3 27 0 kikuko
226 # emphasized over emphasized
227 0 28 1 あいう
228 3 28 1 kikuko
229
230 ## overwrite partial line, aligned single-width over double-width
231 # plain
232 0 30 0 あいうえお
233 0 30 0 ka
234 4 30 0 kuke
235 # emphasized over plain
236 0 31 0 あいうえお
237 0 31 1 ka
238 4 31 1 kuke
239 # plain over emphasized
240 0 32 1 あいうえお
241 0 32 0 ka
242 4 32 0 kuke
243 # emphasized over emphasized
244 0 33 1 あいうえお
245 0 33 1 ka
246 4 33 1 kuke
247
248 ## overwrite partial line, misaligned single-width over double-width
249 # plain
250 0 35 0 あいうえおさ
251 1 35 0 a
252 5 35 0 kuke
253 # emphasized over plain
254 0 36 0 あいうえおさ
255 1 36 1 a
256 5 36 1 kuke
257 # plain over emphasized
258 0 37 1 あいうえおさ
259 1 37 0 a
260 5 37 0 kuke
261 # emphasized over emphasized
262 0 38 1 あいうえおさ
263 1 38 1 a
264 5 38 1 kuke
265 ])
266 AT_CHECK([render-test --draw-mode --emph=none input], [0], [dnl
267 あきくけ
268 あきくけ
269 あきくけ
270 あきくけ
271
272 あ?きくけ
273 あ?きくけ
274 あ?きくけ
275 あ?きくけ
276
277 かいくけお
278 かいくけお
279 かいくけお
280 かいくけお
281
282 ?か??くけ?さ
283 ?か??くけ?さ
284 ?か??くけ?さ
285 ?か??くけ?さ
286
287 あkikuko
288 あkikuko
289 あkikuko
290 あkikuko
291
292 あ?kikuko
293 あ?kikuko
294 あ?kikuko
295 あ?kikuko
296
297 kaいkukeお
298 kaいkukeお
299 kaいkukeお
300 kaいkukeお
301
302 ?aい?kuke?さ
303 ?aい?kuke?さ
304 ?aい?kuke?さ
305 ?aい?kuke?さ
306 ])
307 AT_CHECK([render-test --draw-mode --emph=bold input], [0], [dnl
308 あきくけ
309 あき\bきく\bくけ\b
310\bあきくけ
311\bあき\bきく\bくけ\b
312
313 あ?きくけ
314 あ?き\bきく\bくけ\b
315\bあ?きくけ
316\bあ?き\bきく\bくけ\b
317
318 かいくけお
319\bかいく\bくけ\bけお
320 かい\bいくけお\b
321\bかい\bいく\bくけ\bけお\b
322
323 ?か??くけ?さ
324 ?か\bか??く\bくけ\bけ?さ
325 ?か??くけ?さ\b
326 ?か\bか??く\bくけ\bけ?さ\b
327
328 あkikuko
329 あk\bki\bik\bku\buk\bko\bo
330\bあkikuko
331\bあk\bki\bik\bku\buk\bko\bo
332
333 あ?kikuko
334 あ?k\bki\bik\bku\buk\bko\bo
335\bあ?kikuko
336\bあ?k\bki\bik\bku\buk\bko\bo
337
338 kaいkukeお
339 k\bka\baいk\bku\buk\bke\beお
340 kaい\bいkukeお\b
341 k\bka\baい\bいk\bku\buk\bke\beお\b
342
343 ?aい?kuke?さ
344 ?a\baい?k\bku\buk\bke\be?さ
345 ?aい\bい?kuke?さ\b
346 ?a\baい\bい?k\bku\buk\bke\be?さ\b
347 ])
348 AT_CHECK([render-test --draw-mode --emph=underline input], [0], [dnl
349 あきくけ
350 あ_\bき_\bく_\b
351 _\bあきくけ
352 _\bあ_\bき_\bく_\b
353
354 あ?きくけ
355 あ?_\bき_\bく_\b
356 _\bあ?きくけ
357 _\bあ?_\bき_\bく_\b
358
359 かいくけお
360 _\bかい_\bく_\bけお
361 か_\bいくけ_\b
362 _\bか_\bい_\bく_\bけ_\b
363
364 ?か??くけ?さ
365 ?_\bか??_\bく_\bけ?さ
366 ?か??くけ?_\b
367 ?_\bか??_\bく_\bけ?_\b
368
369 あkikuko
370 あ_\bk_\bi_\bk_\bu_\bk_\bo
371 _\bあkikuko
372 _\bあ_\bk_\bi_\bk_\bu_\bk_\bo
373
374 あ?kikuko
375 あ?_\bk_\bi_\bk_\bu_\bk_\bo
376 _\bあ?kikuko
377 _\bあ?_\bk_\bi_\bk_\bu_\bk_\bo
378
379 kaいkukeお
380 _\bk_\baい_\bk_\bu_\bk_\beお
381 ka_\bいkuke_\b
382 _\bk_\ba_\bい_\bk_\bu_\bk_\be_\b
383
384 ?aい?kuke?さ
385 ?_\baい?_\bk_\bu_\bk_\be?さ
386 ?a_\bい?kuke?_\b
387 ?_\ba_\bい?_\bk_\bu_\bk_\be?_\b
388 ])
389 AT_CLEANUP
390
391 AT_SETUP([ASCII driver overwriting combining characters])
392 AT_KEYWORDS([render rendering])
393 AT_DATA([input], [dnl
394 ## overwriting rest of line, ordinary over combining
395 # plain
396 0 0 0 àéî
397 1 0 0 xyz
398 # emphasized over plain
399 0 1 0 àéî
400 1 1 1 xyz
401 # plain over emphasized
402 0 2 1 àéî
403 1 2 0 xyz
404 # emphasized over emphasized
405 0 3 1 àéî
406 1 3 1 xyz
407
408 ## overwriting rest of line, combining over ordinary
409 # plain
410 0 5 0 xyz
411 1 5 0 àéî
412 # emphasized over plain
413 0 6 0 xyz
414 1 6 1 àéî
415 # plain over emphasized
416 0 7 1 xyz
417 1 7 0 àéî
418 # emphasized over emphasized
419 0 8 1 xyz
420 1 8 1 àéî
421
422 ## overwriting partial line, ordinary over combining
423 # plain
424 0 10 0 àéîo̧ũẙ
425 0 10 0 a
426 2 10 0 iou
427 # emphasized over plain
428 0 11 0 àéîo̧ũẙ
429 0 11 1 a
430 2 11 1 iou
431 # plain over emphasized
432 0 12 1 àéîo̧ũẙ
433 0 12 0 a
434 2 12 0 iou
435 # emphasized over emphasized
436 0 13 1 àéîo̧ũẙ
437 0 13 1 a
438 2 13 1 iou
439
440 ## overwriting partial line, combining over ordinary
441 # plain
442 0 15 0 aeiouy
443 0 15 0 à
444 2 15 0 îo̧ũ
445 # emphasized over plain
446 0 16 0 aeiouy
447 0 16 1 à
448 2 16 1 îo̧ũ
449 # plain over emphasized
450 0 17 1 aeiouy
451 0 17 0 à
452 2 17 0 îo̧ũ
453 # emphasized over emphasized
454 0 18 1 aeiouy
455 0 18 1 à
456 2 18 1 îo̧ũ
457 ])
458 AT_CHECK([render-test --draw-mode --emph=none input], [0], [dnl
459 àxyz
460 àxyz
461 àxyz
462 àxyz
463
464 xàéî
465 xàéî
466 xàéî
467 xàéî
468
469 aéiouẙ
470 aéiouẙ
471 aéiouẙ
472 aéiouẙ
473
474 àeîo̧ũy
475 àeîo̧ũy
476 àeîo̧ũy
477 àeîo̧ũy
478 ])
479 AT_CHECK([render-test --draw-mode --emph=bold input], [0], [dnl
480 àxyz
481 àx\bxy\byz\bz
482 a\bàxyz
483 a\bàx\bxy\byz\bz
484
485 xàéî
486 xa\bàe\béi\b
487 x\bxàéî
488 x\bxa\bàe\béi\b
489
490 aéiouẙ
491 a\baéi\bio\bou\buẙ
492 ae\béiouy\b
493 a\bae\béi\bio\bou\buy\b
494
495 àeîo̧ũy
496 a\bàei\bîo\bo̧u\bũy
497 àe\beîo̧ũy\by
498 a\bàe\bei\bîo\bo̧u\bũy\by
499 ])
500 AT_CHECK([render-test --draw-mode --emph=underline input], [0], [dnl
501 àxyz
502 à_\bx_\by_\bz
503 _\bàxyz
504 _\bà_\bx_\by_\bz
505
506 xàéî
507 x_\bà_\bé_\b
508 _\bxàéî
509 _\bx_\bà_\bé_\b
510
511 aéiouẙ
512 _\baé_\bi_\bo_\buẙ
513 a_\béiou_\b
514 _\ba_\bé_\bi_\bo_\bu_\b
515
516 àeîo̧ũy
517 _\bàe_\bî_\bo̧_\bũy
518 à_\beîo̧ũ_\by
519 _\bà_\be_\bî_\bo̧_\bũ_\by
520 ])
521 AT_CLEANUP
522
523 AT_SETUP([ASCII driver u8_line_set_length])
524 AT_KEYWORDS([render rendering])
525 AT_DATA([input], [dnl
526 0 0 0 àéî
527 0 1 0 àéî
528 0 2 0 àéî
529 0 3 0 àéî
530 0 4 0 àéî
531 set-length 0 4
532 set-length 1 3
533 set-length 2 2
534 set-length 3 1
535 set-length 4 0
536
537 0 6 0 あい
538 0 7 0 あい
539 0 8 0 あい
540 0 9 0 あい
541 0 10 0 あい
542 0 11 0 あい
543 set-length 6 5
544 set-length 7 4
545 set-length 8 3
546 set-length 9 2
547 set-length 10 1
548 set-length 11 0
549 ])
550 AT_CHECK([render-test --draw-mode input], [0], [dnl
551 àéî
552 àéî
553 àé
554
555
556 あい
557 あい
558 あ?
559
560 ?
561 ])
562 AT_CLEANUP
563
564 AT_SETUP([ASCII driver Unicode box characters])
565 AT_KEYWORDS([render rendering])
566 AT_DATA([input], [3 3
567 1*2 @abc
568 2*1 @d\ne\nf
569 2*1 @g\nh\ni
570 @j
571 1*2 @klm
572 ])
573 AT_CHECK([render-test --box=unicode input], [0], [dnl
574 ╭───┬─╮
575 │abc│d│
576 ├─┬─┤e│
577 │g│j│f│
578 │h├─┴─┤
579 │i│klm│
580 ╰─┴───╯
581 ])
582 AT_CLEANUP
583
584 AT_SETUP([ASCII driver syntax printback])
585 AT_DATA([ascii.sps], [dnl
586 SET PRINTBACK=ON.
587 DATA LIST LIST /x * y * a (a23).
588 BEGIN DATA.
589 1 11 One
590 2 22 Two
591 3 33 Three
592 END DATA.
593
594 REGRESSION
595 /VARIABLES= a
596 /DEPENDENT= x y
597 /STATISTICS=COEFF R ANOVA.
598 ])
599 AT_CHECK([pspp ascii.sps], [0], [dnl
600 SET PRINTBACK=ON.
601
602 DATA LIST LIST /x * y * a (a23).
603
604 Reading free-form data from INLINE.
605 +--------+------+
606 |Variable|Format|
607 #========#======#
608 |x       |F8.0  |
609 |y       |F8.0  |
610 |a       |A23   |
611 +--------+------+
612
613 BEGIN DATA.
614 1 11 One
615 2 22 Two
616 3 33 Three
617 END DATA.
618
619 REGRESSION
620 /VARIABLES= a
621
622 ascii.sps:11: warning: REGRESSION: a is not a numeric variable.  It will not be
623 included in the variable list.
624
625 /DEPENDENT= x y
626 /STATISTICS=COEFF R ANOVA.
627 ])
628
629 AT_CLEANUP
630
631 AT_SETUP([ASCII unicode box chars])
632
633 AT_DATA([uc.sps], [dnl
634 SET FORMAT=F8.4.
635 DATA LIST NOTABLE LIST /x * .
636 BEGIN DATA.
637 1
638 2
639 3
640 END DATA.
641
642 DESCRIPTIVES X.
643 ])
644
645
646 AT_CHECK([pspp -O box=unicode uc.sps], [0], [dnl
647 Valid cases = 3; cases with missing value(s) = 0.
648 ╭────────╥─┬──────┬───────┬───────┬───────╮
649 │Variable║N│ Mean │Std Dev│Minimum│Maximum│
650 ╞════════╬═╪══════╪═══════╪═══════╪═══════╡
651 │x       ║3│2.0000│ 1.0000│ 1.0000│ 3.0000│
652 ╰────────╨─┴──────┴───────┴───────┴───────╯
653 ])
654
655 AT_CLEANUP