14 m4_define([RENDER_WEAVE_6X6],
15 [AT_DATA([input], [6 6 $1
59 m4_define([RENDER_8X8],
60 [AT_DATA([input], [8 8 $1
113 # This input is something of a counterexample, in that it could render
114 # compactly as this if the algorithm for choosing cell widths and
115 # heights were smarter:
134 m4_define([RENDER_8X8_2],
135 [AT_DATA([input], [8 8 $1
154 2*3 @MNOPQ\nRSTUV\nWXYZ0
159 AT_BANNER([output rendering -- no page breaking])
161 AT_SETUP([single cell])
162 AT_KEYWORDS([render rendering])
163 AT_DATA([input], [1 1
166 AT_CHECK([render-test input], [0], [abc
170 AT_SETUP([single cell with border])
171 AT_KEYWORDS([render rendering])
172 AT_DATA([input], [1 1
175 AT_CHECK([render-test input], [0], [dnl
182 AT_SETUP([joined columns])
183 AT_KEYWORDS([render rendering])
184 AT_DATA([input], [2 2
189 AT_CHECK([render-test input], [0], [dnl
198 AT_SETUP([3x3, joined rows and columns])
199 AT_KEYWORDS([render rendering])
200 AT_DATA([input], [3 3
207 AT_CHECK([render-test input], [0], [dnl
218 AT_SETUP([6x6, joined rows and columns])
219 AT_KEYWORDS([render rendering])
221 AT_CHECK([render-test input], [0], [dnl
238 AT_SETUP([3 rows with many joined cells])
239 AT_KEYWORDS([render rendering])
240 AT_CAPTURE_FILE([input])
241 AT_DATA([input], [3 19
242 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
244 m4_for([x], [2], [19], [1], [1*2 @x
247 AT_CHECK([render-test input], [0], [dnl
248 a b c d e f g h i j k l m n o p q r s
249 +-+---+---+---+---+---+---+---+---+----+
250 |1| 2| 3| 4| 5| 6| 7| 8| 9| 10|
251 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
252 | 11| 12| 13| 14| 15| 16| 17| 18| 19|20|
253 +---+---+---+---+---+---+---+---+---+--+
257 AT_SETUP([3 columns with many joined cells])
258 AT_KEYWORDS([render rendering])
259 AT_CAPTURE_FILE([input])
260 AT_DATA([input], [3 19
261 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
263 m4_for([x], [2], [19], [1], [1*2 @x\nab\ncd
266 AT_CHECK([render-test --transpose input], [0], [dnl
309 AT_SETUP([joined rows])
310 AT_KEYWORDS([render rendering])
311 AT_DATA([input], [2 2
316 AT_CHECK([render-test input], [0], [dnl
325 dnl This checks for bug #31346, a segmentation fault that surfaced
326 dnl when two or more rows had no unspanned cells and no rules.
327 AT_SETUP([joined rows only, no rules])
328 AT_KEYWORDS([render rendering])
329 AT_DATA([input], [2 2
333 AT_CHECK([render-test input], [0], [dnl
340 AT_SETUP([joined columns only, no rules])
341 AT_KEYWORDS([render rendering])
342 AT_DATA([input], [2 2
346 AT_CHECK([render-test input], [0], [dnl
355 AT_SETUP([5 big narrow cells])
356 AT_KEYWORDS([render rendering])
357 AT_DATA([input], [1 5
358 @This cell has a lot of text but its minimum width is pretty narrow.
359 @This cell also has a lot of text but its minimum width is pretty narrow.
360 @A third cell with a lot of text but a pretty narrow minimum width.
361 @A fourth cell with a lot of text but a pretty narrow minimum width.
362 @A fifth cell with a lot of text but a pretty narrow minimum width.
364 AT_CHECK([render-test input], [0], [dnl
365 +---------------+---------------+--------------+---------------+--------------+
366 |This cell has a| This cell also| A third cell| A fourth cell| A fifth cell|
367 |lot of text but| has a lot of| with a lot of| with a lot of| with a lot of|
368 | its minimum| text but its| text but a| text but a| text but a|
369 |width is pretty| minimum width| pretty narrow| pretty narrow| pretty narrow|
370 | narrow.| is pretty|minimum width.| minimum width.|minimum width.|
372 +---------------+---------------+--------------+---------------+--------------+
376 AT_SETUP([9 big narrow cells])
377 AT_KEYWORDS([render rendering])
378 AT_DATA([input], [1 9
379 @This cell has a lot of text but its minimum width is pretty narrow.
380 @This cell also has a lot of text but its minimum width is pretty narrow.
381 @A third cell with a lot of text but a pretty narrow minimum width.
382 @A fourth cell with a lot of text but a pretty narrow minimum width.
383 @A fifth cell with a lot of text but a pretty narrow minimum width.
384 @A sixth cell with a lot of text but a pretty narrow minimum width.
385 @A seventh cell with a lot of text but a pretty narrow minimum width.
386 @A eighth cell with a lot of text but a pretty narrow minimum width.
387 @A ninth cell with a lot of text but a pretty narrow minimum width.
389 AT_CHECK([render-test input], [0], [dnl
390 +--------+-------+--------+--------+-------+--------+--------+-------+--------+
391 | This| This| A third|A fourth|A fifth| A sixth| A| A| A ninth|
392 |cell has| cell| cell| cell| cell| cell| seventh| eighth| cell|
393 |a lot of| also| with a| with a| with a| with a| cell| cell| with a|
394 |text but| has a| lot of| lot of| lot of| lot of| with a| with a| lot of|
395 | its| lot of|text but|text but| text|text but| lot of| lot of|text but|
396 | minimum| text|a pretty|a pretty| but a|a pretty|text but| text|a pretty|
397 |width is|but its| narrow| narrow| pretty| narrow|a pretty| but a| narrow|
398 | pretty|minimum| minimum| minimum| narrow| minimum| narrow| pretty| minimum|
399 | narrow.| width| width.| width.|minimum| width.| minimum| narrow| width.|
400 | | is| | | width.| | width.|minimum| |
401 | | pretty| | | | | | width.| |
402 | |narrow.| | | | | | | |
403 +--------+-------+--------+--------+-------+--------+--------+-------+--------+
407 AT_SETUP([2 big cells with new-lines])
408 AT_KEYWORDS([render rendering])
409 AT_DATA([input], [1 2
410 @PSPP does not place many restrictions on ordering of commands. The main restriction is that variables must be defined before they are otherwise referenced. This section describes the details of command ordering, but most users will have no need to refer to them. PSPP possesses five internal states, called initial, INPUT PROGRAM, FILE TYPE, transformation, and procedure states.
411 @PSPP includes special support\nfor unknown numeric data values.\nMissing observations are assigned\na special value, called the\n``system‑missing value''. This\n``value'' actually indicates the\nabsence of a value; it\nmeans that the actual\nvalue is unknown.
413 AT_CHECK([render-test input], [0], [dnl
414 +----------------------------------------------------------+------------------+
415 | PSPP does not place many restrictions on ordering of| PSPP includes|
416 | commands. The main restriction is that variables must be| special support|
417 | defined before they are otherwise referenced. This| for unknown|
418 | section describes the details of command ordering, but| numeric data|
419 | most users will have no need to refer to them. PSPP| values.|
420 | possesses five internal states, called initial, INPUT| Missing|
421 | PROGRAM, FILE TYPE, transformation, and procedure states.| observations are|
423 | | a special value,|
425 | | ``system‑missing|
427 | |``value'' actually|
433 | | value is unknown.|
434 +----------------------------------------------------------+------------------+
438 AT_SETUP([8x8 with many 2x2 joins])
439 AT_KEYWORDS([render rendering])
441 AT_CHECK([render-test input], [0],[dnl
467 AT_BANNER([output rendering -- horizontal page breaks])
469 AT_SETUP([breaking row of many small cells])
470 AT_KEYWORDS([render rendering])
471 AT_CAPTURE_FILE([input])
472 AT_DATA([input], [1 50
473 m4_for([x], [1], [50], [1], [@x
475 AT_CHECK([render-test input], [0], [dnl
476 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
477 |1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|
478 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
480 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
481 |30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|
482 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
486 AT_SETUP([breaking row of many small cells, with headers])
487 AT_KEYWORDS([render rendering])
488 AT_CAPTURE_FILE([input])
489 AT_DATA([input], [1 54 2 2
492 m4_for([x], [1], [50], [1], [@x
497 AT_CHECK([render-test input], [0], [dnl
498 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
499 |ha|hb|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|hc|hd|
500 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
502 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
503 |ha|hb|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|hc|hd|
504 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
506 +--+--+--+--+--+--+--+
507 |ha|hb|48|49|50|hc|hd|
508 +--+--+--+--+--+--+--+
512 AT_SETUP([breaking row of many medium-size cells])
513 AT_KEYWORDS([render rendering])
514 AT_CAPTURE_FILE([input])
515 AT_DATA([input], [1 50
516 m4_for([x], [1], [50], [1], [@cell x
518 AT_CHECK([render-test input], [0], [dnl
519 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
520 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
521 | 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15|
522 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
524 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
525 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
526 | 16| 17| 18| 19| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 30|
527 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
529 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
530 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
531 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 45|
532 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
534 +----+----+----+----+----+
535 |cell|cell|cell|cell|cell|
536 | 46| 47| 48| 49| 50|
537 +----+----+----+----+----+
541 AT_SETUP([breaking row of many medium-size cells, with headers])
542 AT_KEYWORDS([render rendering])
543 AT_CAPTURE_FILE([input])
544 AT_DATA([input], [1 52 1 1
546 m4_for([x], [1], [50], [1], [@cell x
550 AT_CHECK([render-test input], [0], [dnl
551 +----+----+----+----+----+----+----+----+----+----+----+----+
552 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
553 | 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12|
554 +----+----+----+----+----+----+----+----+----+----+----+----+
556 +----+----+----+----+----+----+----+----+----+----+----+----+
557 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
558 | 13| 14| 15| 16| 17| 18| 19| 20| 21| 22| 23| 24|
559 +----+----+----+----+----+----+----+----+----+----+----+----+
561 +----+----+----+----+----+----+----+----+----+----+----+----+
562 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
563 | 25| 26| 27| 28| 29| 30| 31| 32| 33| 34| 35| 36|
564 +----+----+----+----+----+----+----+----+----+----+----+----+
566 +----+----+----+----+----+----+----+----+----+----+----+----+
567 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
568 | 37| 38| 39| 40| 41| 42| 43| 44| 45| 46| 47| 48|
569 +----+----+----+----+----+----+----+----+----+----+----+----+
572 header1|cell|cell|header2
578 AT_SETUP([breaking row of many big narrow cells])
579 AT_KEYWORDS([render rendering])
580 AT_CAPTURE_FILE([input])
581 AT_DATA([input], [1 50
582 m4_for([x], [1], [50], [1], [@This is cell x in a series of 50.
584 AT_CHECK([render-test input], [0], [dnl
585 +------+------+------+------+------+------+------+------+------+------+------+
586 | This| This| This| This| This| This| This| This| This| This| This|
587 | is| is| is| is| is| is| is| is| is| is| is|
588 |cell 1|cell 2|cell 3|cell 4|cell 5|cell 6|cell 7|cell 8|cell 9| cell| cell|
589 | in a| in a| in a| in a| in a| in a| in a| in a| in a| 10 in| 11 in|
590 |series|series|series|series|series|series|series|series|series| a| a|
591 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|series|series|
592 | | | | | | | | | |of 50.|of 50.|
593 +------+------+------+------+------+------+------+------+------+------+------+
595 +------+------+------+------+------+------+------+------+------+------+------+
596 | This| This| This| This| This| This| This| This| This| This| This|
597 | is| is| is| is| is| is| is| is| is| is| is|
598 | cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell|
599 | 12 in| 13 in| 14 in| 15 in| 16 in| 17 in| 18 in| 19 in| 20 in| 21 in| 22 in|
600 | a| a| a| a| a| a| a| a| a| a| a|
601 |series|series|series|series|series|series|series|series|series|series|series|
602 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
603 +------+------+------+------+------+------+------+------+------+------+------+
605 +------+------+------+------+------+------+------+------+------+------+------+
606 | This| This| This| This| This| This| This| This| This| This| This|
607 | is| is| is| is| is| is| is| is| is| is| is|
608 | cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell|
609 | 23 in| 24 in| 25 in| 26 in| 27 in| 28 in| 29 in| 30 in| 31 in| 32 in| 33 in|
610 | a| a| a| a| a| a| a| a| a| a| a|
611 |series|series|series|series|series|series|series|series|series|series|series|
612 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
613 +------+------+------+------+------+------+------+------+------+------+------+
615 +------+------+------+------+------+------+------+------+------+------+------+
616 | This| This| This| This| This| This| This| This| This| This| This|
617 | is| is| is| is| is| is| is| is| is| is| is|
618 | cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell|
619 | 34 in| 35 in| 36 in| 37 in| 38 in| 39 in| 40 in| 41 in| 42 in| 43 in| 44 in|
620 | a| a| a| a| a| a| a| a| a| a| a|
621 |series|series|series|series|series|series|series|series|series|series|series|
622 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
623 +------+------+------+------+------+------+------+------+------+------+------+
625 +------+------+------+------+------+------+
626 | This| This| This| This| This| This|
627 | is| is| is| is| is| is|
628 | cell| cell| cell| cell| cell| cell|
629 | 45 in| 46 in| 47 in| 48 in| 49 in| 50 in|
631 |series|series|series|series|series|series|
632 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
633 +------+------+------+------+------+------+
637 AT_SETUP([breaking 2 rows of many small cells])
638 AT_KEYWORDS([render rendering])
639 AT_CAPTURE_FILE([input])
640 AT_DATA([input], [2 50
641 m4_for([x], [1], [100], [1], [@x
643 AT_CHECK([render-test input], [0], [dnl
644 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
645 | 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|
646 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
647 |51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|
648 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
650 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
651 |27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49| 50|
652 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
653 |77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|
654 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
658 AT_SETUP([breaking 3 rows with many joined cells])
659 AT_KEYWORDS([render rendering])
660 AT_CAPTURE_FILE([input])
661 AT_DATA([input], [3 49
662 m4_foreach([var], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,dnl
663 A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W], [var
665 m4_for([x], [2], [49], [1], [1*2 @x
668 AT_CHECK([render-test input], [0], [dnl
669 a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M
670 +-+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
671 |1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20|
672 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
673 | 26| 27| 28| 29| 30| 31| 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 4
674 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--
677 +---+---+---+---+----+
678 | 21| 22| 23| 24| 25|
679 +-+-+-+-+-+-+-+-+-+--+
680 45| 46| 47| 48| 49|50|
681 --+---+---+---+---+--+
685 AT_SETUP([horz break 6x6, joined rows and columns])
686 AT_KEYWORDS([render rendering])
688 AT_CHECK([render-test --width=6 input], [0], [dnl
733 AT_SETUP([horz break 6x6, joined rows and columns, left header])
734 AT_KEYWORDS([render rendering])
735 RENDER_WEAVE_6X6([1 0 0 0])
736 AT_CHECK([render-test --width=10 input], [0], [dnl
767 AT_SETUP([horz break 6x6, joined rows and columns, right header])
768 AT_KEYWORDS([render rendering])
769 RENDER_WEAVE_6X6([0 1 0 0])
770 AT_CHECK([render-test --width=10 input], [0], [dnl
801 AT_SETUP([breaking joined cells too wide for page])
802 AT_KEYWORDS([render rendering])
803 AT_DATA([input], [4 6
817 AT_CHECK([render-test --width=10 input], [0], [dnl
844 AT_SETUP([breaking joined cells much too wide for page])
845 AT_KEYWORDS([render rendering])
846 AT_DATA([input], [4 6
860 AT_CHECK([render-test --width=6 input], [0], [dnl
899 AT_SETUP([breaking cell too wide for page, no border])
900 AT_KEYWORDS([render rendering])
901 AT_CAPTURE_FILE([input])
902 AT_DATA([input], [1 1
903 abcdefghijklmnopqrstuvwxyz
905 AT_CHECK([render-test --width=6 input], [0], [dnl
918 AT_SETUP([breaking cell too wide for page, with border])
919 AT_KEYWORDS([render rendering])
920 AT_CAPTURE_FILE([input])
921 AT_DATA([input], [1 1
922 @abcdefghijklmnopqrstuvwxyz
924 AT_CHECK([render-test --width=6 input], [0], [dnl
955 AT_SETUP([horz break 8x8 with many 2x2 joins])
956 AT_KEYWORDS([render rendering])
958 AT_CHECK([render-test --width=8 input], [0],[dnl
1032 AT_BANNER([output rendering -- vertical page breaks])
1034 AT_SETUP([breaking column of many small cells])
1035 AT_KEYWORDS([render rendering])
1036 AT_CAPTURE_FILE([input])
1037 AT_DATA([input], [20 1
1038 m4_for([x], [1], [20], [1], [@x
1040 AT_CHECK([render-test --length=10 input], [0], [dnl
1093 AT_SETUP([breaking column of many small cells, with headers])
1094 AT_KEYWORDS([render rendering])
1095 AT_CAPTURE_FILE([input])
1096 AT_DATA([input], [17 1 0 0 1 1
1098 m4_for([x], [1], [15], [1], [@x
1101 AT_CHECK([render-test --length=13 input], [0], [dnl
1158 AT_SETUP([disabling too-big headers])
1159 AT_KEYWORDS([render rendering])
1160 AT_CAPTURE_FILE([input])
1161 AT_DATA([input], [17 1 0 0 1 1
1163 m4_for([x], [1], [15], [1], [@x
1166 AT_CHECK([render-test --length=10 input], [0], [dnl
1213 AT_SETUP([breaking column of many medium-size cells])
1214 AT_KEYWORDS([render rendering])
1215 AT_CAPTURE_FILE([input])
1216 AT_DATA([input], [20 1
1217 m4_for([x], [1], [20], [1], [@top x\ncell x\nbottom x
1219 AT_CHECK([render-test --length 10 input], [0], [dnl
1322 AT_SETUP([breaking 3 columns with many joined cells])
1323 AT_KEYWORDS([render rendering])
1324 AT_CAPTURE_FILE([input])
1325 AT_DATA([input], [3 19
1326 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
1328 m4_for([x], [2], [19], [1], [1*2 @x\nab\ncd
1331 AT_CHECK([render-test --length=6 --transpose input], [0], [dnl
1392 AT_SETUP([vert break 6x6, joined rows and columns])
1393 AT_KEYWORDS([render rendering])
1395 AT_CHECK([render-test --length=6 input], [0], [dnl
1416 AT_SETUP([breaking joined cells too tall for page])
1417 AT_KEYWORDS([render rendering])
1418 AT_DATA([input], [4 6
1419 1*6 @abc\ndef\nghi\njkl\nmno\npqr\nstu\nvwx\nyzA\nBCD\nEFG
1420 1*3 @HIJ\nKLM\nOPQ\nRST\nUVW
1421 1*3 @XYZ\n012\n345\n678\n90a
1432 AT_CHECK([render-test --transpose --length=6 input], [0], [dnl
1453 AT_SETUP([breaking cell too tall for page, no border])
1454 AT_KEYWORDS([render rendering])
1455 AT_CAPTURE_FILE([input])
1456 AT_DATA([input], [1 1
1457 abc defg hij klmn opq rstu vwx yz ABCDE FGH I JK LMNOP QR STU VWXYZ
1459 AT_CHECK([render-test --width=6 --length=6 input], [0], [dnl
1478 AT_SETUP([breaking cell too tall for page, with border])
1479 AT_KEYWORDS([render rendering])
1480 AT_CAPTURE_FILE([input])
1481 AT_DATA([input], [1 1
1482 @abc defg hij klmn opq rstu vwx yz ABCDE FGH I JK LMNOP QR STU VWXYZ
1484 AT_CHECK([render-test --width=7 --length=6 input], [0], [dnl
1514 AT_BANNER([output rendering -- double page breaks])
1516 AT_SETUP([double break 6x6, joined rows and columns])
1517 AT_KEYWORDS([render rendering])
1519 AT_CHECK([render-test --width=6 --length=6 input], [0], [dnl
1576 AT_SETUP([double break 8x8, with joins, left and right headers])
1577 AT_KEYWORDS([render rendering])
1578 RENDER_8X8([1 1 0 0])
1579 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
1622 AT_SETUP([double break 8x8, with joins, top and bottom headers])
1623 AT_KEYWORDS([render rendering])
1624 RENDER_8X8([0 0 1 1])
1625 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
1678 AT_SETUP([double break 8x8, with joins, all headers])
1679 AT_KEYWORDS([render rendering])
1680 RENDER_8X8([1 1 1 1])
1681 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
1734 AT_SETUP([double break joined cells too big for page])
1735 AT_KEYWORDS([render rendering])
1736 AT_DATA([input], [7 7
1745 6*6 @The MISSING subcommand determines the handling of missing variables. If INCLUDE is set, then user‑missing values are included in the calculations. If NOINCLUDE is set, which is the default, user‑missing values are excluded.
1752 AT_CHECK([render-test --width=15 --length=15 input], [0], [dnl
1811 AT_BANNER([output rendering -- problematic procedures])
1813 dnl LIST used to put columns right up next to each other without any
1814 dnl intervening space, so this checks for regression.
1815 AT_SETUP([LIST puts space between columns])
1816 AT_KEYWORDS([render rendering])
1817 AT_DATA([list.sps], [dnl
1818 DATA LIST LIST NOTABLE /x y z (F1.0).
1826 AT_CHECK([pspp list.sps], [0], [dnl
1836 # Long string variables tend to end in lots of spaces. The ASCII
1837 # driver didn't handle this very well: it would essentially produce
1838 # one blank line in a cell for each trailing space. This test
1839 # checks for regression. See bug #38672.
1840 AT_SETUP([ASCII driver renders end of line spaces reasonably])
1841 AT_KEYWORDS([render rendering])
1842 AT_DATA([input], [dnl
1854 AT_CHECK([render-test --width=15 --length=15 input], [0], [dnl
1865 # There was a bug that, when multiple cells spanned a single column
1866 # (or row), only the dimensions of the cell nearest the bottom of the
1867 # table were actually considered. This checks for regression. (This
1868 # problem was most easily observed with SYSFILE INFO, which uses lots
1869 # of spanned cells).
1871 # Without the fix, the output looks like this:
1878 AT_SETUP([multiple spanned cells all contribute to dimensions])
1879 AT_KEYWORDS([render rendering])
1880 AT_DATA([input], [dnl
1882 1*2 @A long text string.
1885 AT_CHECK([render-test --width=30 --length=15 input], [0], [dnl
1886 +-------------------+
1887 |A long text string.|
1888 +-------------------+
1890 +-------------------+