1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017 Free Software Foundation, Inc.
4 dnl This program is free software: you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation, either version 3 of the License, or
7 dnl (at your option) any later version.
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 dnl GNU General Public License for more details.
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program. If not, see <http://www.gnu.org/licenses/>.
29 m4_define([WEAVE_6X6],
74 m4_define([WEAVE_8X8],
128 # This input is something of a counterexample, in that it could render
129 # compactly as this if the algorithm for choosing cell widths and
130 # heights were smarter:
149 m4_define([WEAVE_8X8_2],
169 2*3 @MNOPQ\nRSTUV\nWXYZ0
174 AT_BANNER([output rendering -- no page breaking])
176 AT_SETUP([single cell])
177 AT_KEYWORDS([render rendering])
178 AT_DATA([input], [1 1
181 AT_CHECK([render-test input], [0], [abc
185 AT_SETUP([nested single cell])
186 AT_KEYWORDS([render rendering])
187 AT_DATA([input], [1 1
192 AT_CHECK([render-test input], [0], [abc
196 AT_SETUP([single cell with border])
197 AT_KEYWORDS([render rendering])
198 AT_DATA([input], [1 1
201 AT_CHECK([render-test input], [0], [dnl
208 AT_SETUP([nested single cell with border])
209 AT_KEYWORDS([render rendering])
210 AT_DATA([input], [1 1
215 AT_CHECK([render-test input], [0], [dnl
224 AT_SETUP([joined columns])
225 AT_KEYWORDS([render rendering])
226 AT_DATA([input], [2 2
231 AT_CHECK([render-test input], [0], [dnl
240 AT_SETUP([3x3, joined rows and columns])
241 AT_KEYWORDS([render rendering])
242 AT_DATA([input], [3 3
249 AT_CHECK([render-test input], [0], [dnl
260 AT_SETUP([joined rows and columns (with footnotes)])
261 AT_KEYWORDS([render rendering footnote])
262 AT_DATA([input], [3 3
263 1*2 @abc#Approximation.
264 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.
265 2*1 @g\nh\ni#One#Two#Three
269 AT_CHECK([render-test --csv input], [0],
270 [[+------------+----+
278 [b] This is a very long footnote that will have to wrap from one line to the
279 next. Let's see if the rendering engine does it acceptably.
284 AT_CHECK([cat render.csv], [0],
295 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.
302 AT_SETUP([6x6, joined rows and columns])
303 AT_KEYWORDS([render rendering])
304 AT_DATA([input], [WEAVE_6X6])
305 AT_CHECK([render-test input], [0], [dnl
322 AT_SETUP([3 rows with many joined cells])
323 AT_KEYWORDS([render rendering])
324 AT_CAPTURE_FILE([input])
325 AT_DATA([input], [3 19
326 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
328 m4_for([x], [2], [19], [1], [1*2 @x
331 AT_CHECK([render-test input], [0], [dnl
332 a b c d e f g h i j k l m n o p q r s
333 +-+---+---+---+---+---+---+---+---+----+
334 |1| 2| 3| 4| 5| 6| 7| 8| 9| 10|
335 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
336 | 11| 12| 13| 14| 15| 16| 17| 18| 19|20|
337 +---+---+---+---+---+---+---+---+---+--+
341 AT_SETUP([3 columns with many joined cells])
342 AT_KEYWORDS([render rendering])
343 AT_CAPTURE_FILE([input])
344 AT_DATA([input], [3 19
345 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
347 m4_for([x], [2], [19], [1], [1*2 @x\nab\ncd
350 AT_CHECK([render-test --transpose input], [0], [dnl
393 AT_SETUP([joined rows])
394 AT_KEYWORDS([render rendering])
395 AT_DATA([input], [2 2
400 AT_CHECK([render-test input], [0], [dnl
409 AT_SETUP([nested joined rows])
410 AT_KEYWORDS([render rendering])
411 AT_DATA([input], [2 2
418 AT_CHECK([render-test input], [0], [dnl
429 dnl This checks for bug #31346, a segmentation fault that surfaced
430 dnl when two or more rows had no unspanned cells and no rules.
431 AT_SETUP([joined rows only, no rules])
432 AT_KEYWORDS([render rendering])
433 AT_DATA([input], [2 2
437 AT_CHECK([render-test input], [0], [dnl
444 AT_SETUP([joined columns only, no rules])
445 AT_KEYWORDS([render rendering])
446 AT_DATA([input], [2 2
450 AT_CHECK([render-test input], [0], [dnl
459 AT_SETUP([5 big narrow cells])
460 AT_KEYWORDS([render rendering])
461 AT_DATA([input], [1 5
462 @This cell has a lot of text but its minimum width is pretty narrow.
463 @This cell also has a lot of text but its minimum width is pretty narrow.
464 @A third cell with a lot of text but a pretty narrow minimum width.
465 @A fourth cell with a lot of text but a pretty narrow minimum width.
466 @A fifth cell with a lot of text but a pretty narrow minimum width.
468 AT_CHECK([render-test input], [0], [dnl
469 +---------------+---------------+--------------+---------------+--------------+
470 |This cell has a| This cell also| A third cell| A fourth cell| A fifth cell|
471 |lot of text but| has a lot of| with a lot of| with a lot of| with a lot of|
472 | its minimum| text but its| text but a| text but a| text but a|
473 |width is pretty| minimum width| pretty narrow| pretty narrow| pretty narrow|
474 | narrow.| is pretty|minimum width.| minimum width.|minimum width.|
476 +---------------+---------------+--------------+---------------+--------------+
480 AT_SETUP([9 big narrow cells])
481 AT_KEYWORDS([render rendering])
482 AT_DATA([input], [1 9
483 @This cell has a lot of text but its minimum width is pretty narrow.
484 @This cell also has a lot of text but its minimum width is pretty narrow.
485 @A third cell with a lot of text but a pretty narrow minimum width.
486 @A fourth cell with a lot of text but a pretty narrow minimum width.
487 @A fifth cell with a lot of text but a pretty narrow minimum width.
488 @A sixth cell with a lot of text but a pretty narrow minimum width.
489 @A seventh cell with a lot of text but a pretty narrow minimum width.
490 @A eighth cell with a lot of text but a pretty narrow minimum width.
491 @A ninth cell with a lot of text but a pretty narrow minimum width.
493 AT_CHECK([render-test input], [0], [dnl
494 +--------+-------+--------+--------+-------+--------+--------+-------+--------+
495 | This| This| A third|A fourth|A fifth| A sixth| A| A| A ninth|
496 |cell has| cell| cell| cell| cell| cell| seventh| eighth| cell|
497 |a lot of| also| with a| with a| with a| with a| cell| cell| with a|
498 |text but| has a| lot of| lot of| lot of| lot of| with a| with a| lot of|
499 | its| lot of|text but|text but| text|text but| lot of| lot of|text but|
500 | minimum| text|a pretty|a pretty| but a|a pretty|text but| text|a pretty|
501 |width is|but its| narrow| narrow| pretty| narrow|a pretty| but a| narrow|
502 | pretty|minimum| minimum| minimum| narrow| minimum| narrow| pretty| minimum|
503 | narrow.| width| width.| width.|minimum| width.| minimum| narrow| width.|
504 | | is| | | width.| | width.|minimum| |
505 | | pretty| | | | | | width.| |
506 | |narrow.| | | | | | | |
507 +--------+-------+--------+--------+-------+--------+--------+-------+--------+
511 AT_SETUP([2 big cells with new-lines])
512 AT_KEYWORDS([render rendering])
513 AT_DATA([input], [1 2
514 @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.
515 @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.
517 AT_CHECK([render-test input], [0], [dnl
518 +----------------------------------------------------------+------------------+
519 | PSPP does not place many restrictions on ordering of| PSPP includes|
520 | commands. The main restriction is that variables must be| special support|
521 | defined before they are otherwise referenced. This| for unknown|
522 | section describes the details of command ordering, but| numeric data|
523 | most users will have no need to refer to them. PSPP| values.|
524 | possesses five internal states, called initial, INPUT| Missing|
525 | PROGRAM, FILE TYPE, transformation, and procedure states.| observations are|
527 | | a special value,|
529 | | ``system‑missing|
531 | |``value'' actually|
537 | | value is unknown.|
538 +----------------------------------------------------------+------------------+
542 AT_SETUP([8x8 with many 2x2 joins])
543 AT_KEYWORDS([render rendering])
544 AT_DATA([input], [WEAVE_8X8_2])
545 AT_CHECK([render-test input], [0],[dnl
571 AT_SETUP([nested 8x8])
572 AT_KEYWORDS([render rendering])
573 AT_DATA([input], [WEAVE_8X8[]dnl
577 AT_CHECK([render-test input], [0], [dnl
600 AT_SETUP([nested 8x8s and 6x6s])
601 AT_KEYWORDS([render rendering])
602 AT_DATA([input], [WEAVE_8X8[]WEAVE_6X6[]dnl
613 AT_CHECK([render-test input], [0], [dnl
614 +-----------------+-----------------+
615 |+-+-+-+-+-+-+-+-+| +-+---+-+-+-+|
616 ||a|b|c|d|e|f|g|h|| |a|bcd|e|f|i||
617 |+-+-+-+-+-+-+-+-+| +-+-+-+-+g+-+|
618 ||i|jkl|m|nop|q|t|| |j|m|nop|h|q||
619 |+-+-+-+-+-+-+r+-+| |k+-+-+-+-+r||
620 ||u|v|wxy|z|A|s|D|| |l|t|w|xyz|s||
621 |+-+-+-+-+-+B+-+-+| +-+u+-+-+-+-+|
622 ||E|F|I|JKL|C|M|P|| |A|v|B|E|FGH||
623 |+-+G+-+---+-+N+-+| +-+-+C+-+-+-+|
624 ||Q|H|R|UVW|X|O|Y|| |IJK|D|L|O|P||
625 |+-+-+S+-+-+-+-+-+| +-+-+-+M+-+-+|
626 ||Z|0|T|3|456|7|8|| |Q|RST|N|U|V||
627 |+-+1+-+-+-+-+-+-+| +-+---+-+-+-+|
628 ||9|2|abc|d|efg|h|| |
629 |+-+-+-+-+-+-+-+-+| |
630 ||i|j|k|l|m|n|o|p|| |
631 |+-+-+-+-+-+-+-+-+| |
632 +-----------------+-----------------+
633 | +-+---+-+-+-+| +-+---+-+-+-+ |
634 | |a|bcd|e|f|i|| |a|bcd|e|f|i| |
635 | +-+-+-+-+g+-+| +-+-+-+-+g+-+ |
636 | |j|m|nop|h|q|| |j|m|nop|h|q| |
637 | |k+-+-+-+-+r|| |k+-+-+-+-+r| |
638 | |l|t|w|xyz|s|| |l|t|w|xyz|s| |
639 | +-+u+-+-+-+-+| +-+u+-+-+-+-+ |
640 | |A|v|B|E|FGH|| |A|v|B|E|FGH| |
641 | +-+-+C+-+-+-+| +-+-+C+-+-+-+ |
642 | |IJK|D|L|O|P|| |IJK|D|L|O|P| |
643 | +-+-+-+M+-+-+| +-+-+-+M+-+-+ |
644 | |Q|RST|N|U|V|| |Q|RST|N|U|V| |
645 | +-+---+-+-+-+| +-+---+-+-+-+ |
646 +-----------------+-----------------+
647 | +-+---+-+-+-+ |+-+---+-+-+-+ |
648 | |a|bcd|e|f|i| ||a|bcd|e|f|i| |
649 | +-+-+-+-+g+-+ |+-+-+-+-+g+-+ |
650 | |j|m|nop|h|q| ||j|m|nop|h|q| |
651 | |k+-+-+-+-+r| ||k+-+-+-+-+r| |
652 | |l|t|w|xyz|s| ||l|t|w|xyz|s| |
653 | +-+u+-+-+-+-+ |+-+u+-+-+-+-+ |
654 | |A|v|B|E|FGH| ||A|v|B|E|FGH| |
655 | +-+-+C+-+-+-+ |+-+-+C+-+-+-+ |
656 | |IJK|D|L|O|P| ||IJK|D|L|O|P| |
657 | +-+-+-+M+-+-+ |+-+-+-+M+-+-+ |
658 | |Q|RST|N|U|V| ||Q|RST|N|U|V| |
659 | +-+---+-+-+-+ |+-+---+-+-+-+ |
660 +-----------------+-----------------+
661 |+-+---+-+-+-+ |+-+-+-+-+-+-+-+-+|
662 ||a|bcd|e|f|i| ||a|b|c|d|e|f|g|h||
663 |+-+-+-+-+g+-+ |+-+-+-+-+-+-+-+-+|
664 ||j|m|nop|h|q| ||i|jkl|m|nop|q|t||
665 ||k+-+-+-+-+r| |+-+-+-+-+-+-+r+-+|
666 ||l|t|w|xyz|s| ||u|v|wxy|z|A|s|D||
667 |+-+u+-+-+-+-+ |+-+-+-+-+-+B+-+-+|
668 ||A|v|B|E|FGH| ||E|F|I|JKL|C|M|P||
669 |+-+-+C+-+-+-+ |+-+G+-+---+-+N+-+|
670 ||IJK|D|L|O|P| ||Q|H|R|UVW|X|O|Y||
671 |+-+-+-+M+-+-+ |+-+-+S+-+-+-+-+-+|
672 ||Q|RST|N|U|V| ||Z|0|T|3|456|7|8||
673 |+-+---+-+-+-+ |+-+1+-+-+-+-+-+-+|
674 | ||9|2|abc|d|efg|h||
675 | |+-+-+-+-+-+-+-+-+|
676 | ||i|j|k|l|m|n|o|p||
677 | |+-+-+-+-+-+-+-+-+|
678 +-----------------+-----------------+
682 AT_SETUP([doubly nested cells])
683 AT_KEYWORDS([render rendering])
684 AT_DATA([input], [WEAVE_8X8[]WEAVE_6X6[]dnl
697 AT_CHECK([render-test input --length=70], [0], [dnl
698 +-------------------------------------+
699 |+-----------------+-----------------+|
700 ||+-+-+-+-+-+-+-+-+| +-+---+-+-+-+||
701 |||a|b|c|d|e|f|g|h|| |a|bcd|e|f|i|||
702 ||+-+-+-+-+-+-+-+-+| +-+-+-+-+g+-+||
703 |||i|jkl|m|nop|q|t|| |j|m|nop|h|q|||
704 ||+-+-+-+-+-+-+r+-+| |k+-+-+-+-+r|||
705 |||u|v|wxy|z|A|s|D|| |l|t|w|xyz|s|||
706 ||+-+-+-+-+-+B+-+-+| +-+u+-+-+-+-+||
707 |||E|F|I|JKL|C|M|P|| |A|v|B|E|FGH|||
708 ||+-+G+-+---+-+N+-+| +-+-+C+-+-+-+||
709 |||Q|H|R|UVW|X|O|Y|| |IJK|D|L|O|P|||
710 ||+-+-+S+-+-+-+-+-+| +-+-+-+M+-+-+||
711 |||Z|0|T|3|456|7|8|| |Q|RST|N|U|V|||
712 ||+-+1+-+-+-+-+-+-+| +-+---+-+-+-+||
713 |||9|2|abc|d|efg|h|| ||
714 ||+-+-+-+-+-+-+-+-+| ||
715 |||i|j|k|l|m|n|o|p|| ||
716 ||+-+-+-+-+-+-+-+-+| ||
717 |+-----------------+-----------------+|
718 || +-+---+-+-+-+| +-+---+-+-+-+ ||
719 || |a|bcd|e|f|i|| |a|bcd|e|f|i| ||
720 || +-+-+-+-+g+-+| +-+-+-+-+g+-+ ||
721 || |j|m|nop|h|q|| |j|m|nop|h|q| ||
722 || |k+-+-+-+-+r|| |k+-+-+-+-+r| ||
723 || |l|t|w|xyz|s|| |l|t|w|xyz|s| ||
724 || +-+u+-+-+-+-+| +-+u+-+-+-+-+ ||
725 || |A|v|B|E|FGH|| |A|v|B|E|FGH| ||
726 || +-+-+C+-+-+-+| +-+-+C+-+-+-+ ||
727 || |IJK|D|L|O|P|| |IJK|D|L|O|P| ||
728 || +-+-+-+M+-+-+| +-+-+-+M+-+-+ ||
729 || |Q|RST|N|U|V|| |Q|RST|N|U|V| ||
730 || +-+---+-+-+-+| +-+---+-+-+-+ ||
731 |+-----------------+-----------------+|
732 || +-+---+-+-+-+ |+-+---+-+-+-+ ||
733 || |a|bcd|e|f|i| ||a|bcd|e|f|i| ||
734 || +-+-+-+-+g+-+ |+-+-+-+-+g+-+ ||
735 || |j|m|nop|h|q| ||j|m|nop|h|q| ||
736 || |k+-+-+-+-+r| ||k+-+-+-+-+r| ||
737 || |l|t|w|xyz|s| ||l|t|w|xyz|s| ||
738 || +-+u+-+-+-+-+ |+-+u+-+-+-+-+ ||
739 || |A|v|B|E|FGH| ||A|v|B|E|FGH| ||
740 || +-+-+C+-+-+-+ |+-+-+C+-+-+-+ ||
741 || |IJK|D|L|O|P| ||IJK|D|L|O|P| ||
742 || +-+-+-+M+-+-+ |+-+-+-+M+-+-+ ||
743 || |Q|RST|N|U|V| ||Q|RST|N|U|V| ||
744 || +-+---+-+-+-+ |+-+---+-+-+-+ ||
745 |+-----------------+-----------------+|
746 ||+-+---+-+-+-+ |+-+-+-+-+-+-+-+-+||
747 |||a|bcd|e|f|i| ||a|b|c|d|e|f|g|h|||
748 ||+-+-+-+-+g+-+ |+-+-+-+-+-+-+-+-+||
749 |||j|m|nop|h|q| ||i|jkl|m|nop|q|t|||
750 |||k+-+-+-+-+r| |+-+-+-+-+-+-+r+-+||
751 |||l|t|w|xyz|s| ||u|v|wxy|z|A|s|D|||
752 ||+-+u+-+-+-+-+ |+-+-+-+-+-+B+-+-+||
753 |||A|v|B|E|FGH| ||E|F|I|JKL|C|M|P|||
754 ||+-+-+C+-+-+-+ |+-+G+-+---+-+N+-+||
755 |||IJK|D|L|O|P| ||Q|H|R|UVW|X|O|Y|||
756 ||+-+-+-+M+-+-+ |+-+-+S+-+-+-+-+-+||
757 |||Q|RST|N|U|V| ||Z|0|T|3|456|7|8|||
758 ||+-+---+-+-+-+ |+-+1+-+-+-+-+-+-+||
759 || ||9|2|abc|d|efg|h|||
760 || |+-+-+-+-+-+-+-+-+||
761 || ||i|j|k|l|m|n|o|p|||
762 || |+-+-+-+-+-+-+-+-+||
763 |+-----------------+-----------------+|
764 +-------------------------------------+
768 AT_BANNER([output rendering -- horizontal page breaks])
770 AT_SETUP([breaking row of many small cells])
771 AT_KEYWORDS([render rendering])
772 AT_CAPTURE_FILE([input])
773 AT_DATA([input], [1 50
774 m4_for([x], [1], [50], [1], [@x
776 AT_CHECK([render-test input], [0], [dnl
777 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
778 |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|
779 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
781 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
782 |30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|
783 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
785 AT_CHECK([render-test input -o mb0 --min-break=0], [0], [dnl
786 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
787 |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|
788 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
790 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
791 |30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|
792 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
796 AT_SETUP([breaking row of many small cells, with headers])
797 AT_KEYWORDS([render rendering])
798 AT_CAPTURE_FILE([input])
799 AT_DATA([input], [1 54 2 2
802 m4_for([x], [1], [50], [1], [@x
807 AT_CHECK([render-test input], [0], [dnl
808 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
809 |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|
810 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
812 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
813 |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|
814 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
816 +--+--+--+--+--+--+--+
817 |ha|hb|48|49|50|hc|hd|
818 +--+--+--+--+--+--+--+
820 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
821 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
822 |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|
823 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
825 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
826 |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|
827 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
829 +--+--+--+--+--+--+--+
830 |ha|hb|48|49|50|hc|hd|
831 +--+--+--+--+--+--+--+
835 AT_SETUP([breaking row of many medium-size cells])
836 AT_KEYWORDS([render rendering])
837 AT_CAPTURE_FILE([input])
838 AT_DATA([input], [1 50
839 m4_for([x], [1], [50], [1], [@cell x
841 AT_CHECK([render-test input], [0], [dnl
842 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
843 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
844 | 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15|
845 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
847 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
848 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
849 | 16| 17| 18| 19| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 30|
850 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
852 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
853 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
854 | 31| 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 45|
855 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
857 +----+----+----+----+----+
858 |cell|cell|cell|cell|cell|
859 | 46| 47| 48| 49| 50|
860 +----+----+----+----+----+
862 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
863 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+---
864 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cel
865 | 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| 1
866 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+---
868 -+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+--
869 l|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|ce
870 6| 17| 18| 19| 20| 21| 22| 23| 24| 25| 26| 27| 28| 29| 30| 31|
871 -+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+--
873 --+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-
874 ll|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|c
875 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 45| 46| 47|
876 --+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+-
885 AT_SETUP([breaking row of many medium-size cells, with headers])
886 AT_KEYWORDS([render rendering])
887 AT_CAPTURE_FILE([input])
888 AT_DATA([input], [1 52 1 1
890 m4_for([x], [1], [50], [1], [@cell x
894 AT_CHECK([render-test input], [0], [dnl
895 +----+----+----+----+----+----+----+----+----+----+----+----+
896 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
897 | 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12|
898 +----+----+----+----+----+----+----+----+----+----+----+----+
900 +----+----+----+----+----+----+----+----+----+----+----+----+
901 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
902 | 13| 14| 15| 16| 17| 18| 19| 20| 21| 22| 23| 24|
903 +----+----+----+----+----+----+----+----+----+----+----+----+
905 +----+----+----+----+----+----+----+----+----+----+----+----+
906 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
907 | 25| 26| 27| 28| 29| 30| 31| 32| 33| 34| 35| 36|
908 +----+----+----+----+----+----+----+----+----+----+----+----+
910 +----+----+----+----+----+----+----+----+----+----+----+----+
911 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
912 | 37| 38| 39| 40| 41| 42| 43| 44| 45| 46| 47| 48|
913 +----+----+----+----+----+----+----+----+----+----+----+----+
916 header1|cell|cell|header2
920 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
921 +----+----+----+----+----+----+----+----+----+----+----+----+--+
922 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|ce|header2
923 | 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| |
924 +----+----+----+----+----+----+----+----+----+----+----+----+--+
926 +--+----+----+----+----+----+----+----+----+----+----+----+----+
927 header1|ll|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
928 |13| 14| 15| 16| 17| 18| 19| 20| 21| 22| 23| 24| 25|
929 +--+----+----+----+----+----+----+----+----+----+----+----+----+
931 +----+----+----+----+----+----+----+----+----+----+----+----+--+
932 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|ce|header2
933 | 26| 27| 28| 29| 30| 31| 32| 33| 34| 35| 36| 37| |
934 +----+----+----+----+----+----+----+----+----+----+----+----+--+
936 +--+----+----+----+----+----+----+----+----+----+----+----+----+
937 header1|ll|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
938 |38| 39| 40| 41| 42| 43| 44| 45| 46| 47| 48| 49| 50|
939 +--+----+----+----+----+----+----+----+----+----+----+----+----+
943 AT_SETUP([breaking row of many big narrow cells])
944 AT_KEYWORDS([render rendering])
945 AT_CAPTURE_FILE([input])
946 AT_DATA([input], [1 50
947 m4_for([x], [1], [50], [1], [@This is cell x in a series of 50.
949 AT_CHECK([render-test input], [0], [dnl
950 +------+------+------+------+------+------+------+------+------+------+------+
951 | This| This| This| This| This| This| This| This| This| This| This|
952 | is| is| is| is| is| is| is| is| is| is| is|
953 |cell 1|cell 2|cell 3|cell 4|cell 5|cell 6|cell 7|cell 8|cell 9| cell| cell|
954 | in a| in a| in a| in a| in a| in a| in a| in a| in a| 10 in| 11 in|
955 |series|series|series|series|series|series|series|series|series| a| a|
956 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|series|series|
957 | | | | | | | | | |of 50.|of 50.|
958 +------+------+------+------+------+------+------+------+------+------+------+
960 +------+------+------+------+------+------+------+------+------+------+------+
961 | This| This| This| This| This| This| This| This| This| This| This|
962 | is| is| is| is| is| is| is| is| is| is| is|
963 | cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell|
964 | 12 in| 13 in| 14 in| 15 in| 16 in| 17 in| 18 in| 19 in| 20 in| 21 in| 22 in|
965 | a| a| a| a| a| a| a| a| a| a| a|
966 |series|series|series|series|series|series|series|series|series|series|series|
967 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
968 +------+------+------+------+------+------+------+------+------+------+------+
970 +------+------+------+------+------+------+------+------+------+------+------+
971 | This| This| This| This| This| This| This| This| This| This| This|
972 | is| is| is| is| is| is| is| is| is| is| is|
973 | cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell|
974 | 23 in| 24 in| 25 in| 26 in| 27 in| 28 in| 29 in| 30 in| 31 in| 32 in| 33 in|
975 | a| a| a| a| a| a| a| a| a| a| a|
976 |series|series|series|series|series|series|series|series|series|series|series|
977 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
978 +------+------+------+------+------+------+------+------+------+------+------+
980 +------+------+------+------+------+------+------+------+------+------+------+
981 | This| This| This| This| This| This| This| This| This| This| This|
982 | is| is| is| is| is| is| is| is| is| is| is|
983 | cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell|
984 | 34 in| 35 in| 36 in| 37 in| 38 in| 39 in| 40 in| 41 in| 42 in| 43 in| 44 in|
985 | a| a| a| a| a| a| a| a| a| a| a|
986 |series|series|series|series|series|series|series|series|series|series|series|
987 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
988 +------+------+------+------+------+------+------+------+------+------+------+
990 +------+------+------+------+------+------+
991 | This| This| This| This| This| This|
992 | is| is| is| is| is| is|
993 | cell| cell| cell| cell| cell| cell|
994 | 45 in| 46 in| 47 in| 48 in| 49 in| 50 in|
996 |series|series|series|series|series|series|
997 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
998 +------+------+------+------+------+------+
1000 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
1001 +------+------+------+------+------+------+------+------+------+------+------+-
1002 | This| This| This| This| This| This| This| This| This| This| This|
1003 | is| is| is| is| is| is| is| is| is| is| is|
1004 |cell 1|cell 2|cell 3|cell 4|cell 5|cell 6|cell 7|cell 8|cell 9| cell| cell|
1005 | in a| in a| in a| in a| in a| in a| in a| in a| in a| 10 in| 11 in|
1006 |series|series|series|series|series|series|series|series|series| a| a|
1007 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|series|series|s
1008 | | | | | | | | | |of 50.|of 50.|o
1009 +------+------+------+------+------+------+------+------+------+------+------+-
1011 -----+------+------+------+------+------+------+------+------+------+------+---
1012 This| This| This| This| This| This| This| This| This| This| This| T
1013 is| is| is| is| is| is| is| is| is| is| is|
1014 cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| c
1015 12 in| 13 in| 14 in| 15 in| 16 in| 17 in| 18 in| 19 in| 20 in| 21 in| 22 in| 23
1016 a| a| a| a| a| a| a| a| a| a| a|
1017 eries|series|series|series|series|series|series|series|series|series|series|ser
1018 f 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of
1019 -----+------+------+------+------+------+------+------+------+------+------+---
1021 ---+------+------+------+------+------+------+------+------+------+------+-----
1022 his| This| This| This| This| This| This| This| This| This| This| Thi
1023 is| is| is| is| is| is| is| is| is| is| is| i
1024 ell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cel
1025 in| 24 in| 25 in| 26 in| 27 in| 28 in| 29 in| 30 in| 31 in| 32 in| 33 in| 34 i
1026 a| a| a| a| a| a| a| a| a| a| a|
1027 ies|series|series|series|series|series|series|series|series|series|series|serie
1028 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50
1029 ---+------+------+------+------+------+------+------+------+------+------+-----
1031 -+------+------+------+------+------+------+------+------+------+------+------+
1032 s| This| This| This| This| This| This| This| This| This| This| This|
1033 s| is| is| is| is| is| is| is| is| is| is| is|
1034 l| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell| cell|
1035 n| 35 in| 36 in| 37 in| 38 in| 39 in| 40 in| 41 in| 42 in| 43 in| 44 in| 45 in|
1036 a| a| a| a| a| a| a| a| a| a| a| a|
1037 s|series|series|series|series|series|series|series|series|series|series|series|
1038 .|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
1039 -+------+------+------+------+------+------+------+------+------+------+------+
1041 +------+------+------+------+------+
1042 | This| This| This| This| This|
1043 | is| is| is| is| is|
1044 | cell| cell| cell| cell| cell|
1045 | 46 in| 47 in| 48 in| 49 in| 50 in|
1047 |series|series|series|series|series|
1048 |of 50.|of 50.|of 50.|of 50.|of 50.|
1049 +------+------+------+------+------+
1053 AT_SETUP([breaking 2 rows of many small cells])
1054 AT_KEYWORDS([render rendering])
1055 AT_CAPTURE_FILE([input])
1056 AT_DATA([input], [2 50
1057 m4_for([x], [1], [100], [1], [@x
1059 AT_CHECK([render-test input], [0], [dnl
1060 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1061 | 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|
1062 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1063 |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|
1064 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1066 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1067 |27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49| 50|
1068 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1069 |77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|
1070 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1072 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
1073 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1074 | 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|
1075 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1076 |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|
1077 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
1079 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1080 |27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49| 50|
1081 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1082 |77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|
1083 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
1087 AT_SETUP([breaking 3 rows with many joined cells])
1088 AT_KEYWORDS([render rendering])
1089 AT_CAPTURE_FILE([input])
1090 AT_DATA([input], [3 49
1091 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
1092 A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W], [var
1094 m4_for([x], [2], [49], [1], [1*2 @x
1097 AT_CHECK([render-test 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 --+---+---+---+---+--+
1112 AT_CHECK([render-test -o mb0 --min-break=0 input], [0], [dnl
1113 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
1114 +-+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1115 |1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20|
1116 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
1117 | 26| 27| 28| 29| 30| 31| 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 4
1118 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--
1121 +---+---+---+---+----+
1122 | 21| 22| 23| 24| 25|
1123 +-+-+-+-+-+-+-+-+-+--+
1124 45| 46| 47| 48| 49|50|
1125 --+---+---+---+---+--+
1129 AT_SETUP([horz break 6x6, joined rows and columns])
1130 AT_KEYWORDS([render rendering])
1131 AT_DATA([input], [WEAVE_6X6])
1132 AT_DATA([expout], [dnl
1175 AT_CHECK([render-test --width=6 input], [0], [expout])
1176 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 input], [0], [expout])
1179 AT_SETUP([horz break 6x6, joined rows and columns, left header])
1180 AT_KEYWORDS([render rendering])
1181 AT_DATA([input], [WEAVE_6X6([1 0 0 0])])
1182 AT_DATA([expout], [dnl
1211 AT_CHECK([render-test --width=10 input], [0], [expout])
1212 AT_CHECK([render-test -o mb0 --min-break=0 --width=10 input], [0], [expout])
1215 AT_SETUP([horz break 6x6, joined rows and columns, right header])
1216 AT_KEYWORDS([render rendering])
1217 AT_DATA([input], [WEAVE_6X6([0 1 0 0])])
1218 AT_DATA([expout], [dnl
1247 AT_CHECK([render-test --width=10 input], [0], [expout])
1248 AT_CHECK([render-test -o mb0 --min-break=0 --width=10 input], [0], [expout])
1251 AT_SETUP([breaking joined cells too wide for page])
1252 AT_KEYWORDS([render rendering])
1253 AT_DATA([input], [4 6
1254 1*6 @abc def ghi jkl
1267 AT_CHECK([render-test --width=10 input], [0], [dnl
1292 AT_CHECK([render-test -o mb0 --min-break=0 --width=10 input], [0], [dnl
1319 AT_SETUP([breaking joined cells much too wide for page])
1320 AT_KEYWORDS([render rendering])
1321 AT_DATA([input], [4 6
1322 1*6 @abc def ghi jkl
1335 AT_CHECK([render-test --width=6 input], [0], [dnl
1372 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 input], [0], [dnl
1411 AT_SETUP([breaking cell too wide for page, no border])
1412 AT_KEYWORDS([render rendering])
1413 AT_CAPTURE_FILE([input])
1414 AT_DATA([input], [1 1
1415 abcdefghijklmnopqrstuvwxyz
1417 AT_CHECK([render-test --width=6 input], [0], [dnl
1428 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 input], [0], [dnl
1441 AT_SETUP([breaking cell too wide for page, with border])
1442 AT_KEYWORDS([render rendering])
1443 AT_CAPTURE_FILE([input])
1444 AT_DATA([input], [1 1
1445 @abcdefghijklmnopqrstuvwxyz
1447 AT_DATA([expout], [dnl
1468 AT_CHECK([render-test --width=6 input], [0], [expout])
1469 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 input], [0], [expout])
1472 AT_SETUP([horz break 8x8 with many 2x2 joins])
1473 AT_KEYWORDS([render rendering])
1474 AT_DATA([input], [WEAVE_8X8_2])
1475 AT_CHECK([render-test --width=8 input], [0],[dnl
1547 AT_CHECK([render-test -o mb0 --min-break=0 --width=8 input], [0],[dnl
1620 AT_BANNER([output rendering -- vertical page breaks])
1622 AT_SETUP([breaking column of many small cells])
1623 AT_KEYWORDS([render rendering])
1624 AT_CAPTURE_FILE([input])
1625 AT_DATA([input], [20 1
1626 m4_for([x], [1], [20], [1], [@x
1628 AT_CHECK([render-test --length=10 input], [0], [dnl
1679 AT_CHECK([render-test -o mb0 --min-break=0 --length=10 input], [0], [dnl
1732 AT_SETUP([breaking column of many small cells, with headers])
1733 AT_KEYWORDS([render rendering])
1734 AT_CAPTURE_FILE([input])
1735 AT_DATA([input], [17 1 0 0 1 1
1737 m4_for([x], [1], [15], [1], [@x
1740 AT_CHECK([render-test --length=13 input], [0], [dnl
1795 AT_CHECK([render-test -o mb0 --min-break=0 --length=13 input], [0], [dnl
1852 AT_SETUP([disabling too-big headers])
1853 AT_KEYWORDS([render rendering])
1854 AT_CAPTURE_FILE([input])
1855 AT_DATA([input], [17 1 0 0 1 1
1857 m4_for([x], [1], [15], [1], [@x
1860 AT_DATA([expout], [dnl
1905 AT_CHECK([render-test --length=10 input], [0], [expout])
1906 AT_CHECK([render-test -o mb0 --min-break=0 --length=10 input], [0], [expout])
1909 AT_SETUP([breaking column of many medium-size cells])
1910 AT_KEYWORDS([render rendering])
1911 AT_CAPTURE_FILE([input])
1912 AT_DATA([input], [20 1
1913 m4_for([x], [1], [20], [1], [@top x\ncell x\nbottom x
1915 AT_CHECK([render-test --length 10 input], [0], [dnl
2016 AT_CHECK([render-test -o mb0 --min-break=0 --length 10 input], [0], [dnl
2111 AT_SETUP([breaking 3 columns with many joined cells])
2112 AT_KEYWORDS([render rendering])
2113 AT_CAPTURE_FILE([input])
2153 AT_DATA([input], [3 19
2154 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
2156 m4_for([x], [2], [19], [1], [1*2 @x\nab\ncd
2159 AT_DATA([expout], [dnl
2218 AT_CHECK([render-test --length=6 --transpose input], [0], [expout])
2219 AT_CHECK([render-test -o mb0 --min-break=0 --length=6 --transpose input],
2223 AT_SETUP([vert break 6x6, joined rows and columns])
2224 AT_KEYWORDS([render rendering])
2225 AT_DATA([input], [WEAVE_6X6])
2226 AT_CHECK([render-test --length=6 input], [0], [dnl
2245 AT_CHECK([render-test -o mb0 --min-break=0 --length=6 input], [0], [dnl
2266 AT_SETUP([breaking joined cells too tall for page])
2267 AT_KEYWORDS([render rendering])
2268 AT_DATA([input], [4 6
2269 1*6 @abc\ndef\nghi\njkl\nmno\npqr\nstu\nvwx\nyzA\nBCD\nEFG
2270 1*3 @HIJ\nKLM\nOPQ\nRST\nUVW
2271 1*3 @XYZ\n012\n345\n678\n90a
2282 AT_CHECK([render-test --transpose --length=6 input], [0], [dnl
2301 AT_CHECK([render-test -o mb0 --min-break=0 --transpose --length=6 input], [0], [dnl
2322 AT_SETUP([breaking cell too tall for page, no border])
2323 AT_KEYWORDS([render rendering])
2324 AT_CAPTURE_FILE([input])
2325 AT_DATA([input], [1 1
2326 abc defg hij klmn opq rstu vwx yz ABCDE FGH I JK LMNOP QR STU VWXYZ
2328 AT_CHECK([render-test --width=6 --length=6 input], [0], [dnl
2345 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 --length=6 input], [0], [dnl
2364 AT_SETUP([breaking cell too tall for page, with border])
2365 AT_KEYWORDS([render rendering])
2366 AT_CAPTURE_FILE([input])
2367 AT_DATA([input], [1 1
2368 @abc defg hij klmn opq rstu vwx yz ABCDE FGH I JK LMNOP QR STU VWXYZ
2370 AT_DATA([expout], [dnl
2391 AT_CHECK([render-test --width=7 --length=6 input], [0], [expout])
2392 AT_CHECK([render-test -o mb0 --min-break=0 --width=7 --length=6 input],
2396 AT_SETUP([breaking nested cell too tall for page])
2397 AT_KEYWORDS([render rendering])
2398 AT_CAPTURE_FILE([input])
2399 AT_DATA([input], [WEAVE_8X8[]WEAVE_6X6[]dnl
2404 AT_CHECK([render-test input --length=10], [0], [dnl
2405 +-----------------+-------------+
2406 |+-+-+-+-+-+-+-+-+|+-+---+-+-+-+|
2407 ||a|b|c|d|e|f|g|h|||a|bcd|e|f|i||
2408 |+-+-+-+-+-+-+-+-+|+-+-+-+-+g+-+|
2409 ||i|jkl|m|nop|q|t|||j|m|nop|h|q||
2410 |+-+-+-+-+-+-+r+-+||k+-+-+-+-+r||
2411 ||u|v|wxy|z|A|s|D|||l|t|w|xyz|s||
2412 |+-+-+-+-+-+B+-+-+|+-+u+-+-+-+-+|
2413 ||E|F|I|JKL|C|M|P|||A|v|B|E|FGH||
2414 |+-+G+-+---+-+N+-+|+-+-+C+-+-+-+|
2416 ||Q|H|R|UVW|X|O|Y|||IJK|D|L|O|P||
2417 |+-+-+S+-+-+-+-+-+|+-+-+-+M+-+-+|
2418 ||Z|0|T|3|456|7|8|||Q|RST|N|U|V||
2419 |+-+1+-+-+-+-+-+-+|+-+---+-+-+-+|
2420 ||9|2|abc|d|efg|h|| |
2421 |+-+-+-+-+-+-+-+-+| |
2422 ||i|j|k|l|m|n|o|p|| |
2423 |+-+-+-+-+-+-+-+-+| |
2424 +-----------------+-------------+
2428 AT_BANNER([output rendering -- double page breaks])
2430 AT_SETUP([double break 6x6, joined rows and columns])
2431 AT_KEYWORDS([render rendering])
2432 AT_DATA([input], [WEAVE_6X6])
2433 AT_CHECK([render-test --width=6 --length=6 input], [0], [dnl
2488 AT_CHECK([render-test -o mb0 --min-break=0 --width=6 --length=6 input], [0], [dnl
2545 AT_SETUP([double break 8x8, with joins, left and right headers])
2546 AT_KEYWORDS([render rendering])
2547 AT_DATA([input], [WEAVE_8X8([1 1 0 0])])
2548 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
2589 AT_CHECK([render-test -o mb0 --min-break=0 input --width=14 --length=14], [0], [dnl
2632 AT_SETUP([double break 8x8, with joins, top and bottom headers])
2633 AT_KEYWORDS([render rendering])
2634 AT_DATA([input], [WEAVE_8X8([0 0 1 1])])
2635 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
2686 AT_CHECK([render-test -o mb0 --min-break=0 input --width=14 --length=14], [0], [dnl
2739 AT_SETUP([double break 8x8, with joins, all headers])
2740 AT_KEYWORDS([render rendering])
2741 AT_DATA([input], [WEAVE_8X8([1 1 1 1])])
2742 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
2793 AT_CHECK([render-test -o mb0 --min-break=0 input --width=14 --length=14], [0], [dnl
2846 AT_SETUP([double break joined cells too big for page])
2847 AT_KEYWORDS([render rendering])
2848 AT_DATA([input], [7 7
2857 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.
2864 AT_CHECK([render-test --width=15 --length=15 input], [0], [dnl
2921 AT_CHECK([render-test -o mb0 --min-break=0 --width=15 --length=15 input], [0], [dnl
2979 AT_BANNER([output rendering -- problematic procedures])
2981 dnl LIST used to put columns right up next to each other without any
2982 dnl intervening space, so this checks for regression.
2983 AT_SETUP([LIST puts space between columns])
2984 AT_KEYWORDS([render rendering])
2985 AT_DATA([list.sps], [dnl
2986 DATA LIST LIST NOTABLE /x y z (F1.0).
2994 AT_CHECK([pspp list.sps], [0], [dnl
3004 # Long string variables tend to end in lots of spaces. The ASCII
3005 # driver didn't handle this very well: it would essentially produce
3006 # one blank line in a cell for each trailing space. This test
3007 # checks for regression. See bug #38672.
3008 AT_SETUP([ASCII driver renders end of line spaces reasonably])
3009 AT_KEYWORDS([render rendering])
3010 AT_DATA([input], [dnl
3022 AT_CHECK([render-test --width=15 --length=15 input], [0], [dnl
3033 # There was a bug that, when multiple cells spanned a single column
3034 # (or row), only the dimensions of the cell nearest the bottom of the
3035 # table were actually considered. This checks for regression. (This
3036 # problem was most easily observed with SYSFILE INFO, which uses lots
3037 # of spanned cells).
3039 # Without the fix, the output looks like this:
3046 AT_SETUP([multiple spanned cells all contribute to dimensions])
3047 AT_KEYWORDS([render rendering])
3048 AT_DATA([input], [dnl
3050 1*2 @A long text string.
3053 AT_CHECK([render-test --width=30 --length=15 input], [0], [dnl
3054 +-------------------+
3055 |A long text string.|
3056 +-------------------+
3058 +-------------------+