14 m4_define([WEAVE_6X6],
59 m4_define([WEAVE_8X8],
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([WEAVE_8X8_2],
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([nested single cell])
171 AT_KEYWORDS([render rendering])
172 AT_DATA([input], [1 1
177 AT_CHECK([render-test input], [0], [abc
181 AT_SETUP([single cell with border])
182 AT_KEYWORDS([render rendering])
183 AT_DATA([input], [1 1
186 AT_CHECK([render-test input], [0], [dnl
193 AT_SETUP([nested single cell with border])
194 AT_KEYWORDS([render rendering])
195 AT_DATA([input], [1 1
200 AT_CHECK([render-test input], [0], [dnl
209 AT_SETUP([joined columns])
210 AT_KEYWORDS([render rendering])
211 AT_DATA([input], [2 2
216 AT_CHECK([render-test input], [0], [dnl
225 AT_SETUP([3x3, joined rows and columns])
226 AT_KEYWORDS([render rendering])
227 AT_DATA([input], [3 3
234 AT_CHECK([render-test input], [0], [dnl
245 AT_SETUP([joined rows and columns (with footnotes)])
246 AT_KEYWORDS([render rendering footnote])
247 AT_DATA([input], [3 3
248 1*2 @abc#Approximation.
249 2*1 @d\ne\nf#This is a very long footnote that will have to wrap from one line to the next. Let's see if the rendering engine does it acceptably.
250 2*1 @g\nh\ni#One#Two#Three
254 AT_CHECK([render-test --csv input], [0],
255 [[+------------+----+
263 [b] This is a very long footnote that will have to wrap from one line to the
264 next. Let's see if the rendering engine does it acceptably.
269 AT_CHECK([cat render.csv], [0],
280 b,This is a very long footnote that will have to wrap from one line to the next. Let's see if the rendering engine does it acceptably.
287 AT_SETUP([6x6, joined rows and columns])
288 AT_KEYWORDS([render rendering])
289 AT_DATA([input], [WEAVE_6X6])
290 AT_CHECK([render-test input], [0], [dnl
307 AT_SETUP([3 rows with many joined cells])
308 AT_KEYWORDS([render rendering])
309 AT_CAPTURE_FILE([input])
310 AT_DATA([input], [3 19
311 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
313 m4_for([x], [2], [19], [1], [1*2 @x
316 AT_CHECK([render-test input], [0], [dnl
317 a b c d e f g h i j k l m n o p q r s
318 +-+---+---+---+---+---+---+---+---+----+
319 |1| 2| 3| 4| 5| 6| 7| 8| 9| 10|
320 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
321 | 11| 12| 13| 14| 15| 16| 17| 18| 19|20|
322 +---+---+---+---+---+---+---+---+---+--+
326 AT_SETUP([3 columns with many joined cells])
327 AT_KEYWORDS([render rendering])
328 AT_CAPTURE_FILE([input])
329 AT_DATA([input], [3 19
330 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
332 m4_for([x], [2], [19], [1], [1*2 @x\nab\ncd
335 AT_CHECK([render-test --transpose input], [0], [dnl
378 AT_SETUP([joined rows])
379 AT_KEYWORDS([render rendering])
380 AT_DATA([input], [2 2
385 AT_CHECK([render-test input], [0], [dnl
394 AT_SETUP([nested joined rows])
395 AT_KEYWORDS([render rendering])
396 AT_DATA([input], [2 2
403 AT_CHECK([render-test input], [0], [dnl
414 dnl This checks for bug #31346, a segmentation fault that surfaced
415 dnl when two or more rows had no unspanned cells and no rules.
416 AT_SETUP([joined rows only, no rules])
417 AT_KEYWORDS([render rendering])
418 AT_DATA([input], [2 2
422 AT_CHECK([render-test input], [0], [dnl
429 AT_SETUP([joined columns only, no rules])
430 AT_KEYWORDS([render rendering])
431 AT_DATA([input], [2 2
435 AT_CHECK([render-test input], [0], [dnl
444 AT_SETUP([5 big narrow cells])
445 AT_KEYWORDS([render rendering])
446 AT_DATA([input], [1 5
447 @This cell has a lot of text but its minimum width is pretty narrow.
448 @This cell also has a lot of text but its minimum width is pretty narrow.
449 @A third cell with a lot of text but a pretty narrow minimum width.
450 @A fourth cell with a lot of text but a pretty narrow minimum width.
451 @A fifth cell with a lot of text but a pretty narrow minimum width.
453 AT_CHECK([render-test input], [0], [dnl
454 +---------------+---------------+--------------+---------------+--------------+
455 |This cell has a| This cell also| A third cell| A fourth cell| A fifth cell|
456 |lot of text but| has a lot of| with a lot of| with a lot of| with a lot of|
457 | its minimum| text but its| text but a| text but a| text but a|
458 |width is pretty| minimum width| pretty narrow| pretty narrow| pretty narrow|
459 | narrow.| is pretty|minimum width.| minimum width.|minimum width.|
461 +---------------+---------------+--------------+---------------+--------------+
465 AT_SETUP([9 big narrow cells])
466 AT_KEYWORDS([render rendering])
467 AT_DATA([input], [1 9
468 @This cell has a lot of text but its minimum width is pretty narrow.
469 @This cell also has a lot of text but its minimum width is pretty narrow.
470 @A third cell with a lot of text but a pretty narrow minimum width.
471 @A fourth cell with a lot of text but a pretty narrow minimum width.
472 @A fifth cell with a lot of text but a pretty narrow minimum width.
473 @A sixth cell with a lot of text but a pretty narrow minimum width.
474 @A seventh cell with a lot of text but a pretty narrow minimum width.
475 @A eighth cell with a lot of text but a pretty narrow minimum width.
476 @A ninth cell with a lot of text but a pretty narrow minimum width.
478 AT_CHECK([render-test input], [0], [dnl
479 +--------+-------+--------+--------+-------+--------+--------+-------+--------+
480 | This| This| A third|A fourth|A fifth| A sixth| A| A| A ninth|
481 |cell has| cell| cell| cell| cell| cell| seventh| eighth| cell|
482 |a lot of| also| with a| with a| with a| with a| cell| cell| with a|
483 |text but| has a| lot of| lot of| lot of| lot of| with a| with a| lot of|
484 | its| lot of|text but|text but| text|text but| lot of| lot of|text but|
485 | minimum| text|a pretty|a pretty| but a|a pretty|text but| text|a pretty|
486 |width is|but its| narrow| narrow| pretty| narrow|a pretty| but a| narrow|
487 | pretty|minimum| minimum| minimum| narrow| minimum| narrow| pretty| minimum|
488 | narrow.| width| width.| width.|minimum| width.| minimum| narrow| width.|
489 | | is| | | width.| | width.|minimum| |
490 | | pretty| | | | | | width.| |
491 | |narrow.| | | | | | | |
492 +--------+-------+--------+--------+-------+--------+--------+-------+--------+
496 AT_SETUP([2 big cells with new-lines])
497 AT_KEYWORDS([render rendering])
498 AT_DATA([input], [1 2
499 @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.
500 @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.
502 AT_CHECK([render-test input], [0], [dnl
503 +----------------------------------------------------------+------------------+
504 | PSPP does not place many restrictions on ordering of| PSPP includes|
505 | commands. The main restriction is that variables must be| special support|
506 | defined before they are otherwise referenced. This| for unknown|
507 | section describes the details of command ordering, but| numeric data|
508 | most users will have no need to refer to them. PSPP| values.|
509 | possesses five internal states, called initial, INPUT| Missing|
510 | PROGRAM, FILE TYPE, transformation, and procedure states.| observations are|
512 | | a special value,|
514 | | ``system‑missing|
516 | |``value'' actually|
522 | | value is unknown.|
523 +----------------------------------------------------------+------------------+
527 AT_SETUP([8x8 with many 2x2 joins])
528 AT_KEYWORDS([render rendering])
529 AT_DATA([input], [WEAVE_8X8_2])
530 AT_CHECK([render-test input], [0],[dnl
556 AT_SETUP([nested 8x8])
557 AT_KEYWORDS([render rendering])
558 AT_DATA([input], [WEAVE_8X8[]dnl
562 AT_CHECK([render-test input], [0], [dnl
585 AT_SETUP([nested 8x8s and 6x6s])
586 AT_KEYWORDS([render rendering])
587 AT_DATA([input], [WEAVE_8X8[]WEAVE_6X6[]dnl
598 AT_CHECK([render-test input], [0], [dnl
599 +-----------------+-----------------+
600 |+-+-+-+-+-+-+-+-+| +-+---+-+-+-+|
601 ||a|b|c|d|e|f|g|h|| |a|bcd|e|f|i||
602 |+-+-+-+-+-+-+-+-+| +-+-+-+-+g+-+|
603 ||i|jkl|m|nop|q|t|| |j|m|nop|h|q||
604 |+-+-+-+-+-+-+r+-+| |k+-+-+-+-+r||
605 ||u|v|wxy|z|A|s|D|| |l|t|w|xyz|s||
606 |+-+-+-+-+-+B+-+-+| +-+u+-+-+-+-+|
607 ||E|F|I|JKL|C|M|P|| |A|v|B|E|FGH||
608 |+-+G+-+---+-+N+-+| +-+-+C+-+-+-+|
609 ||Q|H|R|UVW|X|O|Y|| |IJK|D|L|O|P||
610 |+-+-+S+-+-+-+-+-+| +-+-+-+M+-+-+|
611 ||Z|0|T|3|456|7|8|| |Q|RST|N|U|V||
612 |+-+1+-+-+-+-+-+-+| +-+---+-+-+-+|
613 ||9|2|abc|d|efg|h|| |
614 |+-+-+-+-+-+-+-+-+| |
615 ||i|j|k|l|m|n|o|p|| |
616 |+-+-+-+-+-+-+-+-+| |
617 +-----------------+-----------------+
618 | +-+---+-+-+-+| +-+---+-+-+-+ |
619 | |a|bcd|e|f|i|| |a|bcd|e|f|i| |
620 | +-+-+-+-+g+-+| +-+-+-+-+g+-+ |
621 | |j|m|nop|h|q|| |j|m|nop|h|q| |
622 | |k+-+-+-+-+r|| |k+-+-+-+-+r| |
623 | |l|t|w|xyz|s|| |l|t|w|xyz|s| |
624 | +-+u+-+-+-+-+| +-+u+-+-+-+-+ |
625 | |A|v|B|E|FGH|| |A|v|B|E|FGH| |
626 | +-+-+C+-+-+-+| +-+-+C+-+-+-+ |
627 | |IJK|D|L|O|P|| |IJK|D|L|O|P| |
628 | +-+-+-+M+-+-+| +-+-+-+M+-+-+ |
629 | |Q|RST|N|U|V|| |Q|RST|N|U|V| |
630 | +-+---+-+-+-+| +-+---+-+-+-+ |
631 +-----------------+-----------------+
632 | +-+---+-+-+-+ |+-+---+-+-+-+ |
633 | |a|bcd|e|f|i| ||a|bcd|e|f|i| |
634 | +-+-+-+-+g+-+ |+-+-+-+-+g+-+ |
635 | |j|m|nop|h|q| ||j|m|nop|h|q| |
636 | |k+-+-+-+-+r| ||k+-+-+-+-+r| |
637 | |l|t|w|xyz|s| ||l|t|w|xyz|s| |
638 | +-+u+-+-+-+-+ |+-+u+-+-+-+-+ |
639 | |A|v|B|E|FGH| ||A|v|B|E|FGH| |
640 | +-+-+C+-+-+-+ |+-+-+C+-+-+-+ |
641 | |IJK|D|L|O|P| ||IJK|D|L|O|P| |
642 | +-+-+-+M+-+-+ |+-+-+-+M+-+-+ |
643 | |Q|RST|N|U|V| ||Q|RST|N|U|V| |
644 | +-+---+-+-+-+ |+-+---+-+-+-+ |
645 +-----------------+-----------------+
646 |+-+---+-+-+-+ |+-+-+-+-+-+-+-+-+|
647 ||a|bcd|e|f|i| ||a|b|c|d|e|f|g|h||
648 |+-+-+-+-+g+-+ |+-+-+-+-+-+-+-+-+|
649 ||j|m|nop|h|q| ||i|jkl|m|nop|q|t||
650 ||k+-+-+-+-+r| |+-+-+-+-+-+-+r+-+|
651 ||l|t|w|xyz|s| ||u|v|wxy|z|A|s|D||
652 |+-+u+-+-+-+-+ |+-+-+-+-+-+B+-+-+|
653 ||A|v|B|E|FGH| ||E|F|I|JKL|C|M|P||
654 |+-+-+C+-+-+-+ |+-+G+-+---+-+N+-+|
655 ||IJK|D|L|O|P| ||Q|H|R|UVW|X|O|Y||
656 |+-+-+-+M+-+-+ |+-+-+S+-+-+-+-+-+|
657 ||Q|RST|N|U|V| ||Z|0|T|3|456|7|8||
658 |+-+---+-+-+-+ |+-+1+-+-+-+-+-+-+|
659 | ||9|2|abc|d|efg|h||
660 | |+-+-+-+-+-+-+-+-+|
661 | ||i|j|k|l|m|n|o|p||
662 | |+-+-+-+-+-+-+-+-+|
663 +-----------------+-----------------+
667 AT_SETUP([doubly nested cells])
668 AT_KEYWORDS([render rendering])
669 AT_DATA([input], [WEAVE_8X8[]WEAVE_6X6[]dnl
682 AT_CHECK([render-test input --length=70], [0], [dnl
683 +-------------------------------------+
684 |+-----------------+-----------------+|
685 ||+-+-+-+-+-+-+-+-+| +-+---+-+-+-+||
686 |||a|b|c|d|e|f|g|h|| |a|bcd|e|f|i|||
687 ||+-+-+-+-+-+-+-+-+| +-+-+-+-+g+-+||
688 |||i|jkl|m|nop|q|t|| |j|m|nop|h|q|||
689 ||+-+-+-+-+-+-+r+-+| |k+-+-+-+-+r|||
690 |||u|v|wxy|z|A|s|D|| |l|t|w|xyz|s|||
691 ||+-+-+-+-+-+B+-+-+| +-+u+-+-+-+-+||
692 |||E|F|I|JKL|C|M|P|| |A|v|B|E|FGH|||
693 ||+-+G+-+---+-+N+-+| +-+-+C+-+-+-+||
694 |||Q|H|R|UVW|X|O|Y|| |IJK|D|L|O|P|||
695 ||+-+-+S+-+-+-+-+-+| +-+-+-+M+-+-+||
696 |||Z|0|T|3|456|7|8|| |Q|RST|N|U|V|||
697 ||+-+1+-+-+-+-+-+-+| +-+---+-+-+-+||
698 |||9|2|abc|d|efg|h|| ||
699 ||+-+-+-+-+-+-+-+-+| ||
700 |||i|j|k|l|m|n|o|p|| ||
701 ||+-+-+-+-+-+-+-+-+| ||
702 |+-----------------+-----------------+|
703 || +-+---+-+-+-+| +-+---+-+-+-+ ||
704 || |a|bcd|e|f|i|| |a|bcd|e|f|i| ||
705 || +-+-+-+-+g+-+| +-+-+-+-+g+-+ ||
706 || |j|m|nop|h|q|| |j|m|nop|h|q| ||
707 || |k+-+-+-+-+r|| |k+-+-+-+-+r| ||
708 || |l|t|w|xyz|s|| |l|t|w|xyz|s| ||
709 || +-+u+-+-+-+-+| +-+u+-+-+-+-+ ||
710 || |A|v|B|E|FGH|| |A|v|B|E|FGH| ||
711 || +-+-+C+-+-+-+| +-+-+C+-+-+-+ ||
712 || |IJK|D|L|O|P|| |IJK|D|L|O|P| ||
713 || +-+-+-+M+-+-+| +-+-+-+M+-+-+ ||
714 || |Q|RST|N|U|V|| |Q|RST|N|U|V| ||
715 || +-+---+-+-+-+| +-+---+-+-+-+ ||
716 |+-----------------+-----------------+|
717 || +-+---+-+-+-+ |+-+---+-+-+-+ ||
718 || |a|bcd|e|f|i| ||a|bcd|e|f|i| ||
719 || +-+-+-+-+g+-+ |+-+-+-+-+g+-+ ||
720 || |j|m|nop|h|q| ||j|m|nop|h|q| ||
721 || |k+-+-+-+-+r| ||k+-+-+-+-+r| ||
722 || |l|t|w|xyz|s| ||l|t|w|xyz|s| ||
723 || +-+u+-+-+-+-+ |+-+u+-+-+-+-+ ||
724 || |A|v|B|E|FGH| ||A|v|B|E|FGH| ||
725 || +-+-+C+-+-+-+ |+-+-+C+-+-+-+ ||
726 || |IJK|D|L|O|P| ||IJK|D|L|O|P| ||
727 || +-+-+-+M+-+-+ |+-+-+-+M+-+-+ ||
728 || |Q|RST|N|U|V| ||Q|RST|N|U|V| ||
729 || +-+---+-+-+-+ |+-+---+-+-+-+ ||
730 |+-----------------+-----------------+|
731 ||+-+---+-+-+-+ |+-+-+-+-+-+-+-+-+||
732 |||a|bcd|e|f|i| ||a|b|c|d|e|f|g|h|||
733 ||+-+-+-+-+g+-+ |+-+-+-+-+-+-+-+-+||
734 |||j|m|nop|h|q| ||i|jkl|m|nop|q|t|||
735 |||k+-+-+-+-+r| |+-+-+-+-+-+-+r+-+||
736 |||l|t|w|xyz|s| ||u|v|wxy|z|A|s|D|||
737 ||+-+u+-+-+-+-+ |+-+-+-+-+-+B+-+-+||
738 |||A|v|B|E|FGH| ||E|F|I|JKL|C|M|P|||
739 ||+-+-+C+-+-+-+ |+-+G+-+---+-+N+-+||
740 |||IJK|D|L|O|P| ||Q|H|R|UVW|X|O|Y|||
741 ||+-+-+-+M+-+-+ |+-+-+S+-+-+-+-+-+||
742 |||Q|RST|N|U|V| ||Z|0|T|3|456|7|8|||
743 ||+-+---+-+-+-+ |+-+1+-+-+-+-+-+-+||
744 || ||9|2|abc|d|efg|h|||
745 || |+-+-+-+-+-+-+-+-+||
746 || ||i|j|k|l|m|n|o|p|||
747 || |+-+-+-+-+-+-+-+-+||
748 |+-----------------+-----------------+|
749 +-------------------------------------+
753 AT_BANNER([output rendering -- horizontal page breaks])
755 AT_SETUP([breaking row of many small cells])
756 AT_KEYWORDS([render rendering])
757 AT_CAPTURE_FILE([input])
758 AT_DATA([input], [1 50
759 m4_for([x], [1], [50], [1], [@x
761 AT_CHECK([render-test input], [0], [dnl
762 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
763 |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|
764 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
766 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
767 |30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|
768 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
770 AT_CHECK([render-test input -o mb0 --min-break=0], [0], [dnl
771 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
772 |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|
773 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
775 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
776 |30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|
777 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
781 AT_SETUP([breaking row of many small cells, with headers])
782 AT_KEYWORDS([render rendering])
783 AT_CAPTURE_FILE([input])
784 AT_DATA([input], [1 54 2 2
787 m4_for([x], [1], [50], [1], [@x
792 AT_CHECK([render-test input], [0], [dnl
793 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
794 |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|
795 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
797 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
798 |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|
799 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
801 +--+--+--+--+--+--+--+
802 |ha|hb|48|49|50|hc|hd|
803 +--+--+--+--+--+--+--+
805 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
806 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
807 |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|
808 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
810 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
811 |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|
812 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
814 +--+--+--+--+--+--+--+
815 |ha|hb|48|49|50|hc|hd|
816 +--+--+--+--+--+--+--+
820 AT_SETUP([breaking row of many medium-size cells])
821 AT_KEYWORDS([render rendering])
822 AT_CAPTURE_FILE([input])
823 AT_DATA([input], [1 50
824 m4_for([x], [1], [50], [1], [@cell x
826 AT_CHECK([render-test input], [0], [dnl
827 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
828 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
829 | 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15|
830 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
832 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
833 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
834 | 16| 17| 18| 19| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 30|
835 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
837 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
838 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
839 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 45|
840 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
842 +----+----+----+----+----+
843 |cell|cell|cell|cell|cell|
844 | 46| 47| 48| 49| 50|
845 +----+----+----+----+----+
847 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
848 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+---
849 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cel
850 | 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| 1
851 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+---
853 -+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+--
854 l|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|ce
855 6| 17| 18| 19| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 30| 31|
856 -+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+--
858 --+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-
859 ll|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|c
860 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 45| 46| 47|
861 --+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-
870 AT_SETUP([breaking row of many medium-size cells, with headers])
871 AT_KEYWORDS([render rendering])
872 AT_CAPTURE_FILE([input])
873 AT_DATA([input], [1 52 1 1
875 m4_for([x], [1], [50], [1], [@cell x
879 AT_CHECK([render-test input], [0], [dnl
880 +----+----+----+----+----+----+----+----+----+----+----+----+
881 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
882 | 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12|
883 +----+----+----+----+----+----+----+----+----+----+----+----+
885 +----+----+----+----+----+----+----+----+----+----+----+----+
886 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
887 | 13| 14| 15| 16| 17| 18| 19| 20| 21| 22| 23| 24|
888 +----+----+----+----+----+----+----+----+----+----+----+----+
890 +----+----+----+----+----+----+----+----+----+----+----+----+
891 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
892 | 25| 26| 27| 28| 29| 30| 31| 32| 33| 34| 35| 36|
893 +----+----+----+----+----+----+----+----+----+----+----+----+
895 +----+----+----+----+----+----+----+----+----+----+----+----+
896 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
897 | 37| 38| 39| 40| 41| 42| 43| 44| 45| 46| 47| 48|
898 +----+----+----+----+----+----+----+----+----+----+----+----+
901 header1|cell|cell|header2
905 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
906 +----+----+----+----+----+----+----+----+----+----+----+----+--+
907 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|ce|header2
908 | 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| |
909 +----+----+----+----+----+----+----+----+----+----+----+----+--+
911 +--+----+----+----+----+----+----+----+----+----+----+----+----+
912 header1|ll|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
913 |13| 14| 15| 16| 17| 18| 19| 20| 21| 22| 23| 24| 25|
914 +--+----+----+----+----+----+----+----+----+----+----+----+----+
916 +----+----+----+----+----+----+----+----+----+----+----+----+--+
917 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|ce|header2
918 | 26| 27| 28| 29| 30| 31| 32| 33| 34| 35| 36| 37| |
919 +----+----+----+----+----+----+----+----+----+----+----+----+--+
921 +--+----+----+----+----+----+----+----+----+----+----+----+----+
922 header1|ll|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
923 |38| 39| 40| 41| 42| 43| 44| 45| 46| 47| 48| 49| 50|
924 +--+----+----+----+----+----+----+----+----+----+----+----+----+
928 AT_SETUP([breaking row of many big narrow cells])
929 AT_KEYWORDS([render rendering])
930 AT_CAPTURE_FILE([input])
931 AT_DATA([input], [1 50
932 m4_for([x], [1], [50], [1], [@This is cell x in a series of 50.
934 AT_CHECK([render-test input], [0], [dnl
935 +------+------+------+------+------+------+------+------+------+------+------+
936 | This| This| This| This| This| This| This| This| This| This| This|
937 | is| is| is| is| is| is| is| is| is| is| is|
938 |cell 1|cell 2|cell 3|cell 4|cell 5|cell 6|cell 7|cell 8|cell 9| cell| cell|
939 | in a| in a| in a| in a| in a| in a| in a| in a| in a| 10 in| 11 in|
940 |series|series|series|series|series|series|series|series|series| a| a|
941 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|series|series|
942 | | | | | | | | | |of 50.|of 50.|
943 +------+------+------+------+------+------+------+------+------+------+------+
945 +------+------+------+------+------+------+------+------+------+------+------+
946 | This| This| This| This| This| This| This| This| This| This| This|
947 | is| is| is| is| is| is| is| is| is| is| is|
948 | cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell|
949 | 12 in| 13 in| 14 in| 15 in| 16 in| 17 in| 18 in| 19 in| 20 in| 21 in| 22 in|
950 | a| a| a| a| a| a| a| a| a| a| a|
951 |series|series|series|series|series|series|series|series|series|series|series|
952 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
953 +------+------+------+------+------+------+------+------+------+------+------+
955 +------+------+------+------+------+------+------+------+------+------+------+
956 | This| This| This| This| This| This| This| This| This| This| This|
957 | is| is| is| is| is| is| is| is| is| is| is|
958 | cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell|
959 | 23 in| 24 in| 25 in| 26 in| 27 in| 28 in| 29 in| 30 in| 31 in| 32 in| 33 in|
960 | a| a| a| a| a| a| a| a| a| a| a|
961 |series|series|series|series|series|series|series|series|series|series|series|
962 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
963 +------+------+------+------+------+------+------+------+------+------+------+
965 +------+------+------+------+------+------+------+------+------+------+------+
966 | This| This| This| This| This| This| This| This| This| This| This|
967 | is| is| is| is| is| is| is| is| is| is| is|
968 | cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell|
969 | 34 in| 35 in| 36 in| 37 in| 38 in| 39 in| 40 in| 41 in| 42 in| 43 in| 44 in|
970 | a| a| a| a| a| a| a| a| a| a| a|
971 |series|series|series|series|series|series|series|series|series|series|series|
972 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
973 +------+------+------+------+------+------+------+------+------+------+------+
975 +------+------+------+------+------+------+
976 | This| This| This| This| This| This|
977 | is| is| is| is| is| is|
978 | cell| cell| cell| cell| cell| cell|
979 | 45 in| 46 in| 47 in| 48 in| 49 in| 50 in|
981 |series|series|series|series|series|series|
982 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
983 +------+------+------+------+------+------+
985 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
986 +------+------+------+------+------+------+------+------+------+------+------+-
987 | This| This| This| This| This| This| This| This| This| This| This|
988 | is| is| is| is| is| is| is| is| is| is| is|
989 |cell 1|cell 2|cell 3|cell 4|cell 5|cell 6|cell 7|cell 8|cell 9| cell| cell|
990 | in a| in a| in a| in a| in a| in a| in a| in a| in a| 10 in| 11 in|
991 |series|series|series|series|series|series|series|series|series| a| a|
992 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|series|series|s
993 | | | | | | | | | |of 50.|of 50.|o
994 +------+------+------+------+------+------+------+------+------+------+------+-
996 -----+------+------+------+------+------+------+------+------+------+------+---
997 This| This| This| This| This| This| This| This| This| This| This| T
998 is| is| is| is| is| is| is| is| is| is| is|
999 cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| c
1000 12 in| 13 in| 14 in| 15 in| 16 in| 17 in| 18 in| 19 in| 20 in| 21 in| 22 in| 23
1001 a| a| a| a| a| a| a| a| a| a| a|
1002 eries|series|series|series|series|series|series|series|series|series|series|ser
1003 f 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of
1004 -----+------+------+------+------+------+------+------+------+------+------+---
1006 ---+------+------+------+------+------+------+------+------+------+------+-----
1007 his| This| This| This| This| This| This| This| This| This| This| Thi
1008 is| is| is| is| is| is| is| is| is| is| is| i
1009 ell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cel
1010 in| 24 in| 25 in| 26 in| 27 in| 28 in| 29 in| 30 in| 31 in| 32 in| 33 in| 34 i
1011 a| a| a| a| a| a| a| a| a| a| a|
1012 ies|series|series|series|series|series|series|series|series|series|series|serie
1013 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50
1014 ---+------+------+------+------+------+------+------+------+------+------+-----
1016 -+------+------+------+------+------+------+------+------+------+------+------+
1017 s| This| This| This| This| This| This| This| This| This| This| This|
1018 s| is| is| is| is| is| is| is| is| is| is| is|
1019 l| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell|
1020 n| 35 in| 36 in| 37 in| 38 in| 39 in| 40 in| 41 in| 42 in| 43 in| 44 in| 45 in|
1021 a| a| a| a| a| a| a| a| a| a| a| a|
1022 s|series|series|series|series|series|series|series|series|series|series|series|
1023 .|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
1024 -+------+------+------+------+------+------+------+------+------+------+------+
1026 +------+------+------+------+------+
1027 | This| This| This| This| This|
1028 | is| is| is| is| is|
1029 | cell| cell| cell| cell| cell|
1030 | 46 in| 47 in| 48 in| 49 in| 50 in|
1032 |series|series|series|series|series|
1033 |of 50.|of 50.|of 50.|of 50.|of 50.|
1034 +------+------+------+------+------+
1038 AT_SETUP([breaking 2 rows of many small cells])
1039 AT_KEYWORDS([render rendering])
1040 AT_CAPTURE_FILE([input])
1041 AT_DATA([input], [2 50
1042 m4_for([x], [1], [100], [1], [@x
1044 AT_CHECK([render-test input], [0], [dnl
1045 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1046 | 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|
1047 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1048 |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|
1049 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1051 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1052 |27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49| 50|
1053 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1054 |77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|
1055 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1057 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
1058 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1059 | 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|
1060 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1061 |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|
1062 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1064 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1065 |27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49| 50|
1066 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1067 |77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|
1068 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1072 AT_SETUP([breaking 3 rows with many joined cells])
1073 AT_KEYWORDS([render rendering])
1074 AT_CAPTURE_FILE([input])
1075 AT_DATA([input], [3 49
1076 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
1077 A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W], [var
1079 m4_for([x], [2], [49], [1], [1*2 @x
1082 AT_CHECK([render-test input], [0], [dnl
1083 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
1084 +-+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1085 |1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20|
1086 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1087 | 26| 27| 28| 29| 30| 31| 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 4
1088 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--
1091 +---+---+---+---+----+
1092 | 21| 22| 23| 24| 25|
1093 +-+-+-+-+-+-+-+-+-+--+
1094 45| 46| 47| 48| 49|50|
1095 --+---+---+---+---+--+
1097 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
1098 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
1099 +-+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1100 |1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20|
1101 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1102 | 26| 27| 28| 29| 30| 31| 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 4
1103 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--
1106 +---+---+---+---+----+
1107 | 21| 22| 23| 24| 25|
1108 +-+-+-+-+-+-+-+-+-+--+
1109 45| 46| 47| 48| 49|50|
1110 --+---+---+---+---+--+
1114 AT_SETUP([horz break 6x6, joined rows and columns])
1115 AT_KEYWORDS([render rendering])
1116 AT_DATA([input], [WEAVE_6X6])
1117 AT_DATA([expout], [dnl
1160 AT_CHECK([render-test --width=6 input], [0], [expout])
1161 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 input], [0], [expout])
1164 AT_SETUP([horz break 6x6, joined rows and columns, left header])
1165 AT_KEYWORDS([render rendering])
1166 AT_DATA([input], [WEAVE_6X6([1 0 0 0])])
1167 AT_DATA([expout], [dnl
1196 AT_CHECK([render-test --width=10 input], [0], [expout])
1197 AT_CHECK([render-test -o mb0 --min-break=0 --width=10 input], [0], [expout])
1200 AT_SETUP([horz break 6x6, joined rows and columns, right header])
1201 AT_KEYWORDS([render rendering])
1202 AT_DATA([input], [WEAVE_6X6([0 1 0 0])])
1203 AT_DATA([expout], [dnl
1232 AT_CHECK([render-test --width=10 input], [0], [expout])
1233 AT_CHECK([render-test -o mb0 --min-break=0 --width=10 input], [0], [expout])
1236 AT_SETUP([breaking joined cells too wide for page])
1237 AT_KEYWORDS([render rendering])
1238 AT_DATA([input], [4 6
1239 1*6 @abc def ghi jkl
1252 AT_CHECK([render-test --width=10 input], [0], [dnl
1277 AT_CHECK([render-test -o mb0 --min-break=0 --width=10 input], [0], [dnl
1304 AT_SETUP([breaking joined cells much too wide for page])
1305 AT_KEYWORDS([render rendering])
1306 AT_DATA([input], [4 6
1307 1*6 @abc def ghi jkl
1320 AT_CHECK([render-test --width=6 input], [0], [dnl
1357 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 input], [0], [dnl
1396 AT_SETUP([breaking cell too wide for page, no border])
1397 AT_KEYWORDS([render rendering])
1398 AT_CAPTURE_FILE([input])
1399 AT_DATA([input], [1 1
1400 abcdefghijklmnopqrstuvwxyz
1402 AT_CHECK([render-test --width=6 input], [0], [dnl
1413 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 input], [0], [dnl
1426 AT_SETUP([breaking cell too wide for page, with border])
1427 AT_KEYWORDS([render rendering])
1428 AT_CAPTURE_FILE([input])
1429 AT_DATA([input], [1 1
1430 @abcdefghijklmnopqrstuvwxyz
1432 AT_DATA([expout], [dnl
1453 AT_CHECK([render-test --width=6 input], [0], [expout])
1454 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 input], [0], [expout])
1457 AT_SETUP([horz break 8x8 with many 2x2 joins])
1458 AT_KEYWORDS([render rendering])
1459 AT_DATA([input], [WEAVE_8X8_2])
1460 AT_CHECK([render-test --width=8 input], [0],[dnl
1532 AT_CHECK([render-test -o mb0 --min-break=0 --width=8 input], [0],[dnl
1605 AT_BANNER([output rendering -- vertical page breaks])
1607 AT_SETUP([breaking column of many small cells])
1608 AT_KEYWORDS([render rendering])
1609 AT_CAPTURE_FILE([input])
1610 AT_DATA([input], [20 1
1611 m4_for([x], [1], [20], [1], [@x
1613 AT_CHECK([render-test --length=10 input], [0], [dnl
1664 AT_CHECK([render-test -o mb0 --min-break=0 --length=10 input], [0], [dnl
1717 AT_SETUP([breaking column of many small cells, with headers])
1718 AT_KEYWORDS([render rendering])
1719 AT_CAPTURE_FILE([input])
1720 AT_DATA([input], [17 1 0 0 1 1
1722 m4_for([x], [1], [15], [1], [@x
1725 AT_CHECK([render-test --length=13 input], [0], [dnl
1780 AT_CHECK([render-test -o mb0 --min-break=0 --length=13 input], [0], [dnl
1837 AT_SETUP([disabling too-big headers])
1838 AT_KEYWORDS([render rendering])
1839 AT_CAPTURE_FILE([input])
1840 AT_DATA([input], [17 1 0 0 1 1
1842 m4_for([x], [1], [15], [1], [@x
1845 AT_DATA([expout], [dnl
1890 AT_CHECK([render-test --length=10 input], [0], [expout])
1891 AT_CHECK([render-test -o mb0 --min-break=0 --length=10 input], [0], [expout])
1894 AT_SETUP([breaking column of many medium-size cells])
1895 AT_KEYWORDS([render rendering])
1896 AT_CAPTURE_FILE([input])
1897 AT_DATA([input], [20 1
1898 m4_for([x], [1], [20], [1], [@top x\ncell x\nbottom x
1900 AT_CHECK([render-test --length 10 input], [0], [dnl
2001 AT_CHECK([render-test -o mb0 --min-break=0 --length 10 input], [0], [dnl
2096 AT_SETUP([breaking 3 columns with many joined cells])
2097 AT_KEYWORDS([render rendering])
2098 AT_CAPTURE_FILE([input])
2138 AT_DATA([input], [3 19
2139 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
2141 m4_for([x], [2], [19], [1], [1*2 @x\nab\ncd
2144 AT_DATA([expout], [dnl
2203 AT_CHECK([render-test --length=6 --transpose input], [0], [expout])
2204 AT_CHECK([render-test -o mb0 --min-break=0 --length=6 --transpose input],
2208 AT_SETUP([vert break 6x6, joined rows and columns])
2209 AT_KEYWORDS([render rendering])
2210 AT_DATA([input], [WEAVE_6X6])
2211 AT_CHECK([render-test --length=6 input], [0], [dnl
2230 AT_CHECK([render-test -o mb0 --min-break=0 --length=6 input], [0], [dnl
2251 AT_SETUP([breaking joined cells too tall for page])
2252 AT_KEYWORDS([render rendering])
2253 AT_DATA([input], [4 6
2254 1*6 @abc\ndef\nghi\njkl\nmno\npqr\nstu\nvwx\nyzA\nBCD\nEFG
2255 1*3 @HIJ\nKLM\nOPQ\nRST\nUVW
2256 1*3 @XYZ\n012\n345\n678\n90a
2267 AT_CHECK([render-test --transpose --length=6 input], [0], [dnl
2286 AT_CHECK([render-test -o mb0 --min-break=0 --transpose --length=6 input], [0], [dnl
2307 AT_SETUP([breaking cell too tall for page, no border])
2308 AT_KEYWORDS([render rendering])
2309 AT_CAPTURE_FILE([input])
2310 AT_DATA([input], [1 1
2311 abc defg hij klmn opq rstu vwx yz ABCDE FGH I JK LMNOP QR STU VWXYZ
2313 AT_CHECK([render-test --width=6 --length=6 input], [0], [dnl
2330 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 --length=6 input], [0], [dnl
2349 AT_SETUP([breaking cell too tall for page, with border])
2350 AT_KEYWORDS([render rendering])
2351 AT_CAPTURE_FILE([input])
2352 AT_DATA([input], [1 1
2353 @abc defg hij klmn opq rstu vwx yz ABCDE FGH I JK LMNOP QR STU VWXYZ
2355 AT_DATA([expout], [dnl
2376 AT_CHECK([render-test --width=7 --length=6 input], [0], [expout])
2377 AT_CHECK([render-test -o mb0 --min-break=0 --width=7 --length=6 input],
2381 AT_SETUP([breaking nested cell too tall for page])
2382 AT_KEYWORDS([render rendering])
2383 AT_CAPTURE_FILE([input])
2384 AT_DATA([input], [WEAVE_8X8[]WEAVE_6X6[]dnl
2389 AT_CHECK([render-test input --length=10], [0], [dnl
2390 +-----------------+-------------+
2391 |+-+-+-+-+-+-+-+-+|+-+---+-+-+-+|
2392 ||a|b|c|d|e|f|g|h|||a|bcd|e|f|i||
2393 |+-+-+-+-+-+-+-+-+|+-+-+-+-+g+-+|
2394 ||i|jkl|m|nop|q|t|||j|m|nop|h|q||
2395 |+-+-+-+-+-+-+r+-+||k+-+-+-+-+r||
2396 ||u|v|wxy|z|A|s|D|||l|t|w|xyz|s||
2397 |+-+-+-+-+-+B+-+-+|+-+u+-+-+-+-+|
2398 ||E|F|I|JKL|C|M|P|||A|v|B|E|FGH||
2399 |+-+G+-+---+-+N+-+|+-+-+C+-+-+-+|
2401 ||Q|H|R|UVW|X|O|Y|||IJK|D|L|O|P||
2402 |+-+-+S+-+-+-+-+-+|+-+-+-+M+-+-+|
2403 ||Z|0|T|3|456|7|8|||Q|RST|N|U|V||
2404 |+-+1+-+-+-+-+-+-+|+-+---+-+-+-+|
2405 ||9|2|abc|d|efg|h|| |
2406 |+-+-+-+-+-+-+-+-+| |
2407 ||i|j|k|l|m|n|o|p|| |
2408 |+-+-+-+-+-+-+-+-+| |
2409 +-----------------+-------------+
2413 AT_BANNER([output rendering -- double page breaks])
2415 AT_SETUP([double break 6x6, joined rows and columns])
2416 AT_KEYWORDS([render rendering])
2417 AT_DATA([input], [WEAVE_6X6])
2418 AT_CHECK([render-test --width=6 --length=6 input], [0], [dnl
2473 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 --length=6 input], [0], [dnl
2530 AT_SETUP([double break 8x8, with joins, left and right headers])
2531 AT_KEYWORDS([render rendering])
2532 AT_DATA([input], [WEAVE_8X8([1 1 0 0])])
2533 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
2574 AT_CHECK([render-test -o mb0 --min-break=0 input --width=14 --length=14], [0], [dnl
2617 AT_SETUP([double break 8x8, with joins, top and bottom headers])
2618 AT_KEYWORDS([render rendering])
2619 AT_DATA([input], [WEAVE_8X8([0 0 1 1])])
2620 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
2671 AT_CHECK([render-test -o mb0 --min-break=0 input --width=14 --length=14], [0], [dnl
2724 AT_SETUP([double break 8x8, with joins, all headers])
2725 AT_KEYWORDS([render rendering])
2726 AT_DATA([input], [WEAVE_8X8([1 1 1 1])])
2727 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
2778 AT_CHECK([render-test -o mb0 --min-break=0 input --width=14 --length=14], [0], [dnl
2831 AT_SETUP([double break joined cells too big for page])
2832 AT_KEYWORDS([render rendering])
2833 AT_DATA([input], [7 7
2842 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.
2849 AT_CHECK([render-test --width=15 --length=15 input], [0], [dnl
2906 AT_CHECK([render-test -o mb0 --min-break=0 --width=15 --length=15 input], [0], [dnl
2964 AT_BANNER([output rendering -- problematic procedures])
2966 dnl LIST used to put columns right up next to each other without any
2967 dnl intervening space, so this checks for regression.
2968 AT_SETUP([LIST puts space between columns])
2969 AT_KEYWORDS([render rendering])
2970 AT_DATA([list.sps], [dnl
2971 DATA LIST LIST NOTABLE /x y z (F1.0).
2979 AT_CHECK([pspp list.sps], [0], [dnl
2989 # Long string variables tend to end in lots of spaces. The ASCII
2990 # driver didn't handle this very well: it would essentially produce
2991 # one blank line in a cell for each trailing space. This test
2992 # checks for regression. See bug #38672.
2993 AT_SETUP([ASCII driver renders end of line spaces reasonably])
2994 AT_KEYWORDS([render rendering])
2995 AT_DATA([input], [dnl
3007 AT_CHECK([render-test --width=15 --length=15 input], [0], [dnl
3018 # There was a bug that, when multiple cells spanned a single column
3019 # (or row), only the dimensions of the cell nearest the bottom of the
3020 # table were actually considered. This checks for regression. (This
3021 # problem was most easily observed with SYSFILE INFO, which uses lots
3022 # of spanned cells).
3024 # Without the fix, the output looks like this:
3031 AT_SETUP([multiple spanned cells all contribute to dimensions])
3032 AT_KEYWORDS([render rendering])
3033 AT_DATA([input], [dnl
3035 1*2 @A long text string.
3038 AT_CHECK([render-test --width=30 --length=15 input], [0], [dnl
3039 +-------------------+
3040 |A long text string.|
3041 +-------------------+
3043 +-------------------+