902a5b6be6072bf1b0cd9f3de6d4c3162465acb9
[pspp-builds.git] / tests / output / render.at
1 m4_define([RENDER_WEAVE_6X6],
2   [AT_DATA([input], [6 6 $1
3 @a
4 1*2 @bcd
5 @e
6 2*1 @f\ng\nh
7 @i
8 2*1 @j\nk\nl
9 @m
10 1*2 @nop
11 2*1 @q\nr\ns
12 2*1 @t\nu\nv
13 @w
14 1*2 @xyz
15 @A
16 2*1 @B\nC\nD
17 @E
18 1*2 @FGH
19 1*2 @IJK
20 2*1 @L\nM\nN
21 @O
22 @P
23 @Q
24 1*2 @RST
25 @U
26 @V
27 ])])
28
29 m4_define([RENDER_8X8],
30   [AT_DATA([input], [8 8 $1
31 @a
32 @b
33 @c
34 @d
35 @e
36 @f
37 @g
38 @h
39 @i
40 1*2 @jkl
41 @m
42 1*2 @nop
43 2*1 @q\nr\ns
44 @t
45 @u
46 @v
47 1*2 @wxy
48 @z
49 2*1 @A\nB\nC
50 @D
51 @E
52 2*1 @F\nG\nH
53 @I
54 1*2 @JKL
55 2*1 @M\nN\nO
56 @P
57 @Q
58 2*1 @R\nS\nT
59 1*2 @UVW
60 @X
61 @Y
62 @Z
63 2*1 @0\n1\n2
64 @3
65 1*2 @456
66 @7
67 @8
68 @9
69 1*2 @abc
70 @d
71 1*2 @efg
72 @h
73 @i
74 @j
75 @k
76 @l
77 @m
78 @n
79 @o
80 @p
81 ])])
82
83 # This input is something of a counterexample, in that it could render
84 # compactly as this if the algorithm for choosing cell widths and
85 # heights were smarter:
86 #
87 # +---+---+---+-+-+
88 # |abc|jkl|mno|v|x|
89 # |def+---+pqr+-+-+
90 # |ghi|yzA|stu|HIJ|
91 # +-+-+BCD+-+-+KLM|
92 # |Q|V|EFG|W|Z|NOP|
93 # |R+-+-+-+X+-+-+-+
94 # |S|012|9|Y|abc|j|
95 # |T|345+-+-+def|k|
96 # |U|678|opq|ghi|l|
97 # +-+-+-+rst+---+m|
98 # |xyz|G|uvw|JKL|n|
99 # |ABC|H+---+-+-+-+
100 # |DEF|I|MNOPQ|123|
101 # +---+-+RSTUV|456|
102 # |abcde|WXYZ0|789|
103 # +-----+-----+---+
104 m4_define([RENDER_8X8_2],
105   [AT_DATA([input], [8 8 $1
106 2*2 @abc\ndef\nghi
107 1*2 @jkl
108 2*2 @mno\npqr\nstu
109 1*2 @vwx
110 2*2 @yzA\nBCD\nEFG
111 2*2 @HIJ\nKLM\nNOP
112 3*1 @Q\nR\nS\nT\nU
113 @V
114 2*1 @W\nX\nY
115 @Z
116 2*2 @012\n345\n678
117 @9
118 2*2 @abc\ndef\nghi
119 3*1 @j\nk\nl\nm\nn
120 2*2 @opq\nrst\nuvw
121 2*2 @xyz\nABC\nDEF
122 2*1 @G\nH\nI
123 1*2 @JKL
124 2*3 @MNOPQ\nRSTUV\nWXYZ0
125 2*2 @123\n456\n789
126 1*3 @abcde
127 ])])
128 \f
129 AT_BANNER([output rendering -- no page breaking])
130
131 AT_SETUP([single cell])
132 AT_KEYWORDS([render rendering])
133 AT_DATA([input], [1 1
134 abc
135 ])
136 AT_CHECK([render-test input], [0], [abc
137 ])
138 AT_CLEANUP
139
140 AT_SETUP([single cell with border])
141 AT_KEYWORDS([render rendering])
142 AT_DATA([input], [1 1
143 @abc
144 ])
145 AT_CHECK([render-test input], [0], [dnl
146 +---+
147 |abc|
148 +---+
149 ])
150 AT_CLEANUP
151
152 AT_SETUP([joined columns])
153 AT_KEYWORDS([render rendering])
154 AT_DATA([input], [2 2
155 1*2 @abcdefg
156 @hij
157 @klm
158 ])
159 AT_CHECK([render-test input], [0], [dnl
160 +-------+
161 |abcdefg|
162 +---+---+
163 |hij|klm|
164 +---+---+
165 ])
166 AT_CLEANUP
167
168 AT_SETUP([3x3, joined rows and columns])
169 AT_KEYWORDS([render rendering])
170 AT_DATA([input], [3 3
171 1*2 @abc
172 2*1 @d\ne\nf
173 2*1 @g\nh\ni
174 @j
175 1*2 @klm
176 ])
177 AT_CHECK([render-test input], [0], [dnl
178 +---+-+
179 |abc|d|
180 +-+-+e|
181 |g|j|f|
182 |h+-+-+
183 |i|klm|
184 +-+---+
185 ])
186 AT_CLEANUP
187
188 AT_SETUP([6x6, joined rows and columns])
189 AT_KEYWORDS([render rendering])
190 RENDER_WEAVE_6X6
191 AT_CHECK([render-test input], [0], [dnl
192 +-+---+-+-+-+
193 |a|bcd|e|f|i|
194 +-+-+-+-+g+-+
195 |j|m|nop|h|q|
196 |k+-+-+-+-+r|
197 |l|t|w|xyz|s|
198 +-+u+-+-+-+-+
199 |A|v|B|E|FGH|
200 +-+-+C+-+-+-+
201 |IJK|D|L|O|P|
202 +-+-+-+M+-+-+
203 |Q|RST|N|U|V|
204 +-+---+-+-+-+
205 ])
206 AT_CLEANUP
207
208 AT_SETUP([3 rows with many joined cells])
209 AT_KEYWORDS([render rendering])
210 AT_CAPTURE_FILE([input])
211 AT_DATA([input], [3 19
212 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
213 ])@1
214 m4_for([x], [2], [19], [1], [1*2 @x
215 ])@20
216 ])
217 AT_CHECK([render-test input], [0], [dnl
218  a b c d e f g h i j k l m n o p q r  s
219 +-+---+---+---+---+---+---+---+---+----+
220 |1|  2|  3|  4|  5|  6|  7|  8|  9|  10|
221 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+
222 | 11| 12| 13| 14| 15| 16| 17| 18| 19|20|
223 +---+---+---+---+---+---+---+---+---+--+
224 ])
225 AT_CLEANUP
226
227 AT_SETUP([3 columns with many joined cells])
228 AT_KEYWORDS([render rendering])
229 AT_CAPTURE_FILE([input])
230 AT_DATA([input], [3 19
231 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
232 ])@1
233 m4_for([x], [2], [19], [1], [1*2 @x\nab\ncd
234 ])@20
235 ])
236 AT_CHECK([render-test --transpose input], [0], [dnl
237  +--+--+
238 a| 1|11|
239  +--+ab|
240 b| 2|cd|
241  |ab+--+
242 c|cd|12|
243  +--+ab|
244 d| 3|cd|
245  |ab+--+
246 e|cd|13|
247  +--+ab|
248 f| 4|cd|
249  |ab+--+
250 g|cd|14|
251  +--+ab|
252 h| 5|cd|
253  |ab+--+
254 i|cd|15|
255  +--+ab|
256 j| 6|cd|
257  |ab+--+
258 k|cd|16|
259  +--+ab|
260 l| 7|cd|
261  |ab+--+
262 m|cd|17|
263  +--+ab|
264 n| 8|cd|
265  |ab+--+
266 o|cd|18|
267  +--+ab|
268 p| 9|cd|
269  |ab+--+
270 q|cd|19|
271  +--+ab|
272 r|10|cd|
273  |ab+--+
274 s|cd|20|
275  +--+--+
276 ])
277 AT_CLEANUP
278
279 AT_SETUP([joined rows])
280 AT_KEYWORDS([render rendering])
281 AT_DATA([input], [2 2
282 2*1 @ab\ncd\nef
283 @hij
284 @klm
285 ])
286 AT_CHECK([render-test input], [0], [dnl
287 +--+---+
288 |ab|hij|
289 |cd+---+
290 |ef|klm|
291 +--+---+
292 ])
293 AT_CLEANUP
294
295 AT_SETUP([5 big narrow cells])
296 AT_KEYWORDS([render rendering])
297 AT_DATA([input], [1 5
298 @This cell has a lot of text but its minimum width is pretty narrow.
299 @This cell also has a lot of text but its minimum width is pretty narrow.
300 @A third cell with a lot of text but a pretty narrow minimum width.
301 @A fourth cell with a lot of text but a pretty narrow minimum width.
302 @A fifth cell with a lot of text but a pretty narrow minimum width.
303 ])
304 AT_CHECK([render-test input], [0], [dnl
305 +---------------+---------------+--------------+---------------+--------------+
306 |This cell has a| This cell also|  A third cell|  A fourth cell|  A fifth cell|
307 |lot of text but|   has a lot of| with a lot of|  with a lot of| with a lot of|
308 |    its minimum|   text but its|    text but a|     text but a|    text but a|
309 |width is pretty|  minimum width| pretty narrow|  pretty narrow| pretty narrow|
310 |        narrow.|      is pretty|minimum width.| minimum width.|minimum width.|
311 |               |        narrow.|              |               |              |
312 +---------------+---------------+--------------+---------------+--------------+
313 ])
314 AT_CLEANUP
315
316 AT_SETUP([9 big narrow cells])
317 AT_KEYWORDS([render rendering])
318 AT_DATA([input], [1 9
319 @This cell has a lot of text but its minimum width is pretty narrow.
320 @This cell also has a lot of text but its minimum width is pretty narrow.
321 @A third cell with a lot of text but a pretty narrow minimum width.
322 @A fourth cell with a lot of text but a pretty narrow minimum width.
323 @A fifth cell with a lot of text but a pretty narrow minimum width.
324 @A sixth cell with a lot of text but a pretty narrow minimum width.
325 @A seventh cell with a lot of text but a pretty narrow minimum width.
326 @A eighth cell with a lot of text but a pretty narrow minimum width.
327 @A ninth cell with a lot of text but a pretty narrow minimum width.
328 ])
329 AT_CHECK([render-test input], [0], [dnl
330 +--------+-------+--------+--------+-------+--------+--------+-------+--------+
331 |    This|   This| A third|A fourth|A fifth| A sixth|       A|      A| A ninth|
332 |cell has|   cell|    cell|    cell|   cell|    cell| seventh| eighth|    cell|
333 |a lot of|   also|  with a|  with a| with a|  with a|    cell|   cell|  with a|
334 |text but|  has a|  lot of|  lot of| lot of|  lot of|  with a| with a|  lot of|
335 |     its| lot of|text but|text but|   text|text but|  lot of| lot of|text but|
336 | minimum|   text|a pretty|a pretty|  but a|a pretty|text but|   text|a pretty|
337 |width is|but its|  narrow|  narrow| pretty|  narrow|a pretty|  but a|  narrow|
338 |  pretty|minimum| minimum| minimum| narrow| minimum|  narrow| pretty| minimum|
339 | narrow.|  width|  width.|  width.|minimum|  width.| minimum| narrow|  width.|
340 |        |     is|        |        | width.|        |  width.|minimum|        |
341 |        | pretty|        |        |       |        |        | width.|        |
342 |        |narrow.|        |        |       |        |        |       |        |
343 +--------+-------+--------+--------+-------+--------+--------+-------+--------+
344 ])
345 AT_CLEANUP
346
347 AT_SETUP([2 big cells with new-lines])
348 AT_KEYWORDS([render rendering])
349 AT_DATA([input], [1 2
350 @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.
351 @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.
352 ])
353 AT_CHECK([render-test input], [0], [dnl
354 +----------------------------------------------------------+------------------+
355 |      PSPP does not place many restrictions on ordering of|     PSPP includes|
356 |  commands. The main restriction is that variables must be|   special support|
357 |       defined before they are otherwise referenced.  This|       for unknown|
358 |    section describes the details of command ordering, but|      numeric data|
359 |       most users will have no need to refer to them. PSPP|           values.|
360 |     possesses five internal states, called initial, INPUT|           Missing|
361 | PROGRAM, FILE TYPE, transformation, and procedure states.|  observations are|
362 |                                                          |          assigned|
363 |                                                          |  a special value,|
364 |                                                          |        called the|
365 |                                                          |  ``system-missing|
366 |                                                          |    value''.  This|
367 |                                                          |``value'' actually|
368 |                                                          |     indicates the|
369 |                                                          |      absence of a|
370 |                                                          |         value; it|
371 |                                                          |    means that the|
372 |                                                          |            actual|
373 |                                                          | value is unknown.|
374 +----------------------------------------------------------+------------------+
375 ])
376 AT_CLEANUP
377
378 AT_SETUP([8x8 with many 2x2 joins])
379 AT_KEYWORDS([render rendering])
380 RENDER_8X8_2
381 AT_CHECK([render-test input], [0],[dnl
382 +---+---+----+----+
383 |abc|jkl| mno| vwx|
384 |def|   | pqr|    |
385 |ghi+---+ stu+----+
386 |   |yzA|    | HIJ|
387 +-+-+BCD+-+--+ KLM|
388 |Q|V|EFG|W| Z| NOP|
389 |R| |   |X|  |    |
390 |S+-+-+-+Y+--+-+--+
391 |T|012|9| | abc| j|
392 |U|345| | | def| k|
393 | |678+-+-+ ghi| l|
394 | |   |opq|    | m|
395 +-+-+-+rst+----+ n|
396 |xyz|G|uvw| JKL|  |
397 |ABC|H|   |    |  |
398 |DEF|I+---+--+-+--+
399 |   | | MNOPQ| 123|
400 +---+-+ RSTUV| 456|
401 |abcde| WXYZ0| 789|
402 |     |      |    |
403 +-----+------+----+
404 ])
405 AT_CLEANUP
406 \f
407 AT_BANNER([output rendering -- horizontal page breaks])
408
409 AT_SETUP([breaking row of many small cells])
410 AT_KEYWORDS([render rendering])
411 AT_CAPTURE_FILE([input])
412 AT_DATA([input], [1 50
413 m4_for([x], [1], [50], [1], [@x
414 ])])
415 AT_CHECK([render-test input], [0], [dnl
416 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
417 |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|
418 +-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
419
420 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
421 |30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|
422 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
423 ])
424 AT_CLEANUP
425
426 AT_SETUP([breaking row of many small cells, with headers])
427 AT_KEYWORDS([render rendering])
428 AT_CAPTURE_FILE([input])
429 AT_DATA([input], [1 54 2 2
430 @ha
431 @hb
432 m4_for([x], [1], [50], [1], [@x
433 ])dnl
434 @hc
435 @hd
436 ])
437 AT_CHECK([render-test input], [0], [dnl
438 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
439 |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|
440 +--+--+-+-+-+-+-+-+-+-+-+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
441
442 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
443 |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|
444 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
445
446 +--+--+--+--+--+--+--+
447 |ha|hb|48|49|50|hc|hd|
448 +--+--+--+--+--+--+--+
449 ])
450 AT_CLEANUP
451
452 AT_SETUP([breaking row of many medium-size cells])
453 AT_KEYWORDS([render rendering])
454 AT_CAPTURE_FILE([input])
455 AT_DATA([input], [1 50
456 m4_for([x], [1], [50], [1], [@cell x
457 ])])
458 AT_CHECK([render-test input], [0], [dnl
459 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
460 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
461 |   1|   2|   3|   4|   5|   6|   7|   8|   9|  10|  11|  12|  13|  14|  15|
462 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
463
464 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
465 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
466 |  16|  17|  18|  19|  20|  21|  22|  23|  24|  25|  26|  27|  28|  29|  30|
467 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
468
469 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
470 |cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|
471 |  31|  32|  33|  34|  35|  36|  37|  38|  39|  40|  41|  42|  43|  44|  45|
472 +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
473
474 +----+----+----+----+----+
475 |cell|cell|cell|cell|cell|
476 |  46|  47|  48|  49|  50|
477 +----+----+----+----+----+
478 ])
479 AT_CLEANUP
480
481 AT_SETUP([breaking row of many medium-size cells, with headers])
482 AT_KEYWORDS([render rendering])
483 AT_CAPTURE_FILE([input])
484 AT_DATA([input], [1 52 1 1
485 header1
486 m4_for([x], [1], [50], [1], [@cell x
487 ])dnl
488 header2
489 ])
490 AT_CHECK([render-test input], [0], [dnl
491        +----+----+----+----+----+----+----+----+----+----+----+----+
492 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
493        |   1|   2|   3|   4|   5|   6|   7|   8|   9|  10|  11|  12|
494        +----+----+----+----+----+----+----+----+----+----+----+----+
495
496        +----+----+----+----+----+----+----+----+----+----+----+----+
497 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
498        |  13|  14|  15|  16|  17|  18|  19|  20|  21|  22|  23|  24|
499        +----+----+----+----+----+----+----+----+----+----+----+----+
500
501        +----+----+----+----+----+----+----+----+----+----+----+----+
502 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
503        |  25|  26|  27|  28|  29|  30|  31|  32|  33|  34|  35|  36|
504        +----+----+----+----+----+----+----+----+----+----+----+----+
505
506        +----+----+----+----+----+----+----+----+----+----+----+----+
507 header1|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|cell|header2
508        |  37|  38|  39|  40|  41|  42|  43|  44|  45|  46|  47|  48|
509        +----+----+----+----+----+----+----+----+----+----+----+----+
510
511        +----+----+
512 header1|cell|cell|header2
513        |  49|  50|
514        +----+----+
515 ])
516 AT_CLEANUP
517
518 AT_SETUP([breaking row of many big narrow cells])
519 AT_KEYWORDS([render rendering])
520 AT_CAPTURE_FILE([input])
521 AT_DATA([input], [1 50
522 m4_for([x], [1], [50], [1], [@This is cell x in a series of 50.
523 ])])
524 AT_CHECK([render-test input], [0], [dnl
525 +------+------+------+------+------+------+------+------+------+------+------+
526 |  This|  This|  This|  This|  This|  This|  This|  This|  This|  This|  This|
527 |    is|    is|    is|    is|    is|    is|    is|    is|    is|    is|    is|
528 |cell 1|cell 2|cell 3|cell 4|cell 5|cell 6|cell 7|cell 8|cell 9|  cell|  cell|
529 |  in a|  in a|  in a|  in a|  in a|  in a|  in a|  in a|  in a| 10 in| 11 in|
530 |series|series|series|series|series|series|series|series|series|     a|     a|
531 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|series|series|
532 |      |      |      |      |      |      |      |      |      |of 50.|of 50.|
533 +------+------+------+------+------+------+------+------+------+------+------+
534
535 +------+------+------+------+------+------+------+------+------+------+------+
536 |  This|  This|  This|  This|  This|  This|  This|  This|  This|  This|  This|
537 |    is|    is|    is|    is|    is|    is|    is|    is|    is|    is|    is|
538 |  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|
539 | 12 in| 13 in| 14 in| 15 in| 16 in| 17 in| 18 in| 19 in| 20 in| 21 in| 22 in|
540 |     a|     a|     a|     a|     a|     a|     a|     a|     a|     a|     a|
541 |series|series|series|series|series|series|series|series|series|series|series|
542 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
543 +------+------+------+------+------+------+------+------+------+------+------+
544
545 +------+------+------+------+------+------+------+------+------+------+------+
546 |  This|  This|  This|  This|  This|  This|  This|  This|  This|  This|  This|
547 |    is|    is|    is|    is|    is|    is|    is|    is|    is|    is|    is|
548 |  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|
549 | 23 in| 24 in| 25 in| 26 in| 27 in| 28 in| 29 in| 30 in| 31 in| 32 in| 33 in|
550 |     a|     a|     a|     a|     a|     a|     a|     a|     a|     a|     a|
551 |series|series|series|series|series|series|series|series|series|series|series|
552 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
553 +------+------+------+------+------+------+------+------+------+------+------+
554
555 +------+------+------+------+------+------+------+------+------+------+------+
556 |  This|  This|  This|  This|  This|  This|  This|  This|  This|  This|  This|
557 |    is|    is|    is|    is|    is|    is|    is|    is|    is|    is|    is|
558 |  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|  cell|
559 | 34 in| 35 in| 36 in| 37 in| 38 in| 39 in| 40 in| 41 in| 42 in| 43 in| 44 in|
560 |     a|     a|     a|     a|     a|     a|     a|     a|     a|     a|     a|
561 |series|series|series|series|series|series|series|series|series|series|series|
562 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
563 +------+------+------+------+------+------+------+------+------+------+------+
564
565 +------+------+------+------+------+------+
566 |  This|  This|  This|  This|  This|  This|
567 |    is|    is|    is|    is|    is|    is|
568 |  cell|  cell|  cell|  cell|  cell|  cell|
569 | 45 in| 46 in| 47 in| 48 in| 49 in| 50 in|
570 |     a|     a|     a|     a|     a|     a|
571 |series|series|series|series|series|series|
572 |of 50.|of 50.|of 50.|of 50.|of 50.|of 50.|
573 +------+------+------+------+------+------+
574 ])
575 AT_CLEANUP
576
577 AT_SETUP([breaking 2 rows of many small cells])
578 AT_KEYWORDS([render rendering])
579 AT_CAPTURE_FILE([input])
580 AT_DATA([input], [2 50
581 m4_for([x], [1], [100], [1], [@x
582 ])])
583 AT_CHECK([render-test input], [0], [dnl
584 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
585 | 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|
586 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
587 |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|
588 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
589
590 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
591 |27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49| 50|
592 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
593 |77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|
594 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+---+
595 ])
596 AT_CLEANUP
597
598 AT_SETUP([breaking 3 rows with many joined cells])
599 AT_KEYWORDS([render rendering])
600 AT_CAPTURE_FILE([input])
601 AT_DATA([input], [3 49
602 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
603 A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W], [var
604 ])@1
605 m4_for([x], [2], [49], [1], [1*2 @x
606 ])@50
607 ])
608 AT_CHECK([render-test input], [0], [dnl
609  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
610 +-+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
611 |1|  2|  3|  4|  5|  6|  7|  8|  9| 10| 11| 12| 13| 14| 15| 16| 17| 18| 19| 20|
612 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
613 | 26| 27| 28| 29| 30| 31| 32| 33| 34| 35| 36| 37| 38| 39| 40| 41| 42| 43| 44| 4
614 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+--
615
616  N O P Q R S T U V  W
617 +---+---+---+---+----+
618 | 21| 22| 23| 24|  25|
619 +-+-+-+-+-+-+-+-+-+--+
620 45| 46| 47| 48| 49|50|
621 --+---+---+---+---+--+
622 ])
623 AT_CLEANUP
624
625 AT_SETUP([horz break 6x6, joined rows and columns])
626 AT_KEYWORDS([render rendering])
627 RENDER_WEAVE_6X6
628 AT_CHECK([render-test --width=6 input], [0], [dnl
629 +-+--
630 |a|bc
631 +-+-+
632 |j|m|
633 |k+-+
634 |l|t|
635 +-+u|
636 |A|v|
637 +-+-+
638 |IJK|
639 +-+-+
640 |Q|RS
641 +-+--
642
643 --+-+
644 cd|e|
645 +-+-+
646 |nop|
647 +-+-+
648 |w|xy
649 +-+-+
650 |B|E|
651 |C+-+
652 |D|L|
653 +-+M|
654 ST|N|
655 --+-+
656
657 +-+-+
658 |f|i|
659 |g+-+
660 |h|q|
661 +-+r|
662 yz|s|
663 +-+-+
664 |FGH|
665 +-+-+
666 |O|P|
667 +-+-+
668 |U|V|
669 +-+-+
670 ])
671 AT_CLEANUP
672
673 AT_SETUP([horz break 6x6, joined rows and columns, left header])
674 AT_KEYWORDS([render rendering])
675 RENDER_WEAVE_6X6([1 0 0 0])
676 AT_CHECK([render-test --width=10 input], [0], [dnl
677 +-+---+-+
678 |a|bcd|e|
679 +-+-+-+-+
680 |j|m|nop|
681 |k+-+-+-+
682 |l|t|w|xy
683 +-+u+-+-+
684 |A|v|B|E|
685 +-+-+C+-+
686 |K K|D|L|
687 +-+-+-+M|
688 |Q|RST|N|
689 +-+---+-+
690
691 +-+-+-+
692 |a|f|i|
693 +-+g+-+
694 |j|h|q|
695 |k+-+r|
696 |l|z|s|
697 +-+-+-+
698 |A|FGH|
699 +-+-+-+
700 |K|O|P|
701 +-+-+-+
702 |Q|U|V|
703 +-+-+-+
704 ])
705 AT_CLEANUP
706
707 AT_SETUP([horz break 6x6, joined rows and columns, right header])
708 AT_KEYWORDS([render rendering])
709 RENDER_WEAVE_6X6([0 1 0 0])
710 AT_CHECK([render-test --width=10 input], [0], [dnl
711 +-+---+-+
712 |a|bcd|i|
713 +-+-+-+-+
714 |j|m|n|q|
715 |k+-+-+r|
716 |l|t|w|s|
717 +-+u+-+-+
718 |A|v|B|H|
719 +-+-+C+-+
720 |IJK|D|P|
721 +-+-+-+-+
722 |Q|RST|V|
723 +-+---+-+
724
725 +-+-+-+
726 |e|f|i|
727 +-+g+-+
728 op|h|q|
729 +-+-+r|
730 |xyz|s|
731 +-+-+-+
732 |E|F H|
733 +-+-+-+
734 |L|O|P|
735 |M+-+-+
736 |N|U|V|
737 +-+-+-+
738 ])
739 AT_CLEANUP
740
741 AT_SETUP([breaking joined cells too wide for page])
742 AT_KEYWORDS([render rendering])
743 AT_DATA([input], [4 6
744 1*6 @abc def ghi jkl
745 1*3 @mno pqr
746 1*3 @stu vwx
747 1*2 @yzA
748 1*2 @BCD
749 1*2 @EFG
750 @H
751 @I
752 @J
753 @K
754 @L
755 @M
756 ])
757 AT_CHECK([render-test --width=10 input], [0], [dnl
758 +--------
759 |abc def
760 |
761 +-----+--
762 |  mno|
763 |  pqr|
764 +---+-+-+
765 |yzA|BCD|
766 +-+-+-+-+
767 |H|I|J|K|
768 +-+-+-+-+
769
770 ----+
771  ghi|
772  jkl|
773 ----+
774  stu|
775  vwx|
776 +---+
777 |EFG|
778 +-+-+
779 |L|M|
780 +-+-+
781 ])
782 AT_CLEANUP
783
784 AT_SETUP([breaking joined cells much too wide for page])
785 AT_KEYWORDS([render rendering])
786 AT_DATA([input], [4 6
787 1*6 @abc def ghi jkl
788 1*3 @mno pqr
789 1*3 @stu vwx
790 1*2 @yzA
791 1*2 @BCD
792 1*2 @EFG
793 @H
794 @I
795 @J
796 @K
797 @L
798 @M
799 ])
800 AT_CHECK([render-test --width=6 input], [0], [dnl
801 +----
802 |abc
803 |
804 +----
805 |  mn
806 |  pq
807 +---+
808 |yzA|
809 +-+-+
810 |H|I|
811 +-+-+
812
813 -----
814  def
815
816 --+--
817 no|
818 qr|
819 +-+-+
820 |BCD|
821 +-+-+
822 |J|K|
823 +-+-+
824
825 ----+
826  ghi|
827  jkl|
828 ----+
829  stu|
830  vwx|
831 +---+
832 |EFG|
833 +-+-+
834 |L|M|
835 +-+-+
836 ])
837 AT_CLEANUP
838
839 AT_SETUP([breaking cell too wide for page, no border])
840 AT_KEYWORDS([render rendering])
841 AT_CAPTURE_FILE([input])
842 AT_DATA([input], [1 1
843 abcdefghijklmnopqrstuvwxyz
844 ])
845 AT_CHECK([render-test --width=6 input], [0], [dnl
846 abcdef
847
848 ghijkl
849
850 mnopqr
851
852 stuvwx
853
854 yz
855 ])
856 AT_CLEANUP
857
858 AT_SETUP([breaking cell too wide for page, with border])
859 AT_KEYWORDS([render rendering])
860 AT_CAPTURE_FILE([input])
861 AT_DATA([input], [1 1
862 @abcdefghijklmnopqrstuvwxyz
863 ])
864 AT_CHECK([render-test --width=6 input], [0], [dnl
865 +-----
866 |abcde
867 +-----
868
869 ------
870 defghi
871 ------
872
873 ------
874 hijklm
875 ------
876
877 ------
878 lmnopq
879 ------
880
881 ------
882 pqrstu
883 ------
884
885 ------
886 tuvwxy
887 ------
888
889 ---+
890 xyz|
891 ---+
892 ])
893 AT_CLEANUP
894
895 AT_SETUP([horz break 8x8 with many 2x2 joins])
896 AT_KEYWORDS([render rendering])
897 RENDER_8X8_2
898 AT_CHECK([render-test --width=8 input], [0],[dnl
899 +---+--
900 |abc|jk
901 |def|  
902 |ghi+--
903 |   |yz
904 +-+-+BC
905 |Q|V|EF
906 |R| |  
907 |S+-+-+
908 |T|012|
909 |U|345|
910 | |678|
911 | |   |
912 +-+-+-+
913 |xyz|G|
914 |ABC|H|
915 |DEF|I|
916 |   | |
917 +---+-+
918 |abcde|
919 |     |
920 +-----+
921
922 --+----+
923 kl| mno|
924   | pqr|
925 --+ stu|
926 zA|    |
927 CD+-+--+
928 FG|W| Z|
929   |X|  |
930 +-+Y+--+
931 |9| | ab
932 | | | de
933 +-+-+ gh
934 |opq|   
935 |rst+---
936 |uvw| JK
937 |   |   
938 +---+--+
939 | MNOPQ|
940 | RSTUV|
941 | WXYZ0|
942 |      |
943 +------+
944
945 +----+
946 | vwx|
947 |    |
948 +----+
949 | HIJ|
950 | KLM|
951 | NOP|
952 |    |
953 +-+--+
954 bc| j|
955 ef| k|
956 hi| l|
957   | m|
958 --+ n|
959 KL|  |
960   |  |
961 +-+--+
962 | 123|
963 | 456|
964
965 | 456|
966 | 789|
967 |    |
968 +----+
969 ])
970 AT_CLEANUP
971 \f
972 AT_BANNER([output rendering -- vertical page breaks])
973
974 AT_SETUP([breaking column of many small cells])
975 AT_KEYWORDS([render rendering])
976 AT_CAPTURE_FILE([input])
977 AT_DATA([input], [20 1
978 m4_for([x], [1], [20], [1], [@x
979 ])])
980 AT_CHECK([render-test --length=10 input], [0], [dnl
981 +--+
982 | 1|
983 +--+
984 | 2|
985 +--+
986 | 3|
987 +--+
988 | 4|
989 +--+
990
991 +--+
992 | 5|
993 +--+
994 | 6|
995 +--+
996 | 7|
997 +--+
998 | 8|
999 +--+
1000
1001 +--+
1002 | 9|
1003 +--+
1004 |10|
1005 +--+
1006 |11|
1007 +--+
1008 |12|
1009 +--+
1010
1011 +--+
1012 |13|
1013 +--+
1014 |14|
1015 +--+
1016 |15|
1017 +--+
1018 |16|
1019 +--+
1020
1021 +--+
1022 |17|
1023 +--+
1024 |18|
1025 +--+
1026 |19|
1027 +--+
1028 |20|
1029 +--+
1030 ])
1031 AT_CLEANUP
1032
1033 AT_SETUP([breaking column of many small cells, with headers])
1034 AT_KEYWORDS([render rendering])
1035 AT_CAPTURE_FILE([input])
1036 AT_DATA([input], [17 1 0 0 1 1
1037 @a
1038 m4_for([x], [1], [15], [1], [@x
1039 ])@b
1040 ])
1041 AT_CHECK([render-test --length=13 input], [0], [dnl
1042 +--+
1043 | a|
1044 +--+
1045 | 1|
1046 +--+
1047 | 2|
1048 +--+
1049 | 3|
1050 +--+
1051 | 4|
1052 +--+
1053 | b|
1054 +--+
1055
1056 +--+
1057 | a|
1058 +--+
1059 | 5|
1060 +--+
1061 | 6|
1062 +--+
1063 | 7|
1064 +--+
1065 | 8|
1066 +--+
1067 | b|
1068 +--+
1069
1070 +--+
1071 | a|
1072 +--+
1073 | 9|
1074 +--+
1075 |10|
1076 +--+
1077 |11|
1078 +--+
1079 |12|
1080 +--+
1081 | b|
1082 +--+
1083
1084 +--+
1085 | a|
1086 +--+
1087 |13|
1088 +--+
1089 |14|
1090 +--+
1091 |15|
1092 +--+
1093 | b|
1094 +--+
1095 ])
1096 AT_CLEANUP
1097
1098 AT_SETUP([disabling too-big headers])
1099 AT_KEYWORDS([render rendering])
1100 AT_CAPTURE_FILE([input])
1101 AT_DATA([input], [17 1 0 0 1 1
1102 @a
1103 m4_for([x], [1], [15], [1], [@x
1104 ])@b
1105 ])
1106 AT_CHECK([render-test --length=10 input], [0], [dnl
1107 +--+
1108 | a|
1109 +--+
1110 | 1|
1111 +--+
1112 | 2|
1113 +--+
1114 | 3|
1115 +--+
1116
1117 +--+
1118 | 4|
1119 +--+
1120 | 5|
1121 +--+
1122 | 6|
1123 +--+
1124 | 7|
1125 +--+
1126
1127 +--+
1128 | 8|
1129 +--+
1130 | 9|
1131 +--+
1132 |10|
1133 +--+
1134 |11|
1135 +--+
1136
1137 +--+
1138 |12|
1139 +--+
1140 |13|
1141 +--+
1142 |14|
1143 +--+
1144 |15|
1145 +--+
1146
1147 +--+
1148 | b|
1149 +--+
1150 ])
1151 AT_CLEANUP
1152
1153 AT_SETUP([breaking column of many medium-size cells])
1154 AT_KEYWORDS([render rendering])
1155 AT_CAPTURE_FILE([input])
1156 AT_DATA([input], [20 1
1157 m4_for([x], [1], [20], [1], [@top x\ncell x\nbottom x
1158 ])])
1159 AT_CHECK([render-test --length 10 input], [0], [dnl
1160 +---------+
1161 |    top 1|
1162 |   cell 1|
1163 | bottom 1|
1164 +---------+
1165 |    top 2|
1166 |   cell 2|
1167 | bottom 2|
1168 +---------+
1169
1170 +---------+
1171 |    top 3|
1172 |   cell 3|
1173 | bottom 3|
1174 +---------+
1175 |    top 4|
1176 |   cell 4|
1177 | bottom 4|
1178 +---------+
1179
1180 +---------+
1181 |    top 5|
1182 |   cell 5|
1183 | bottom 5|
1184 +---------+
1185 |    top 6|
1186 |   cell 6|
1187 | bottom 6|
1188 +---------+
1189
1190 +---------+
1191 |    top 7|
1192 |   cell 7|
1193 | bottom 7|
1194 +---------+
1195 |    top 8|
1196 |   cell 8|
1197 | bottom 8|
1198 +---------+
1199
1200 +---------+
1201 |    top 9|
1202 |   cell 9|
1203 | bottom 9|
1204 +---------+
1205 |   top 10|
1206 |  cell 10|
1207 |bottom 10|
1208 +---------+
1209
1210 +---------+
1211 |   top 11|
1212 |  cell 11|
1213 |bottom 11|
1214 +---------+
1215 |   top 12|
1216 |  cell 12|
1217 |bottom 12|
1218 +---------+
1219
1220 +---------+
1221 |   top 13|
1222 |  cell 13|
1223 |bottom 13|
1224 +---------+
1225 |   top 14|
1226 |  cell 14|
1227 |bottom 14|
1228 +---------+
1229
1230 +---------+
1231 |   top 15|
1232 |  cell 15|
1233 |bottom 15|
1234 +---------+
1235 |   top 16|
1236 |  cell 16|
1237 |bottom 16|
1238 +---------+
1239
1240 +---------+
1241 |   top 17|
1242 |  cell 17|
1243 |bottom 17|
1244 +---------+
1245 |   top 18|
1246 |  cell 18|
1247 |bottom 18|
1248 +---------+
1249
1250 +---------+
1251 |   top 19|
1252 |  cell 19|
1253 |bottom 19|
1254 +---------+
1255 |   top 20|
1256 |  cell 20|
1257 |bottom 20|
1258 +---------+
1259 ])
1260 AT_CLEANUP
1261
1262 AT_SETUP([breaking 3 columns with many joined cells])
1263 AT_KEYWORDS([render rendering])
1264 AT_CAPTURE_FILE([input])
1265 AT_DATA([input], [3 19
1266 m4_foreach([x], [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s], [x
1267 ])@1
1268 m4_for([x], [2], [19], [1], [1*2 @x\nab\ncd
1269 ])@20
1270 ])
1271 AT_CHECK([render-test --length=6 --transpose input], [0], [dnl
1272  +--+--+
1273 a| 1|11|
1274  +--+ab|
1275 b| 2|cd|
1276  |ab+--+
1277
1278  |ab+--+
1279 c|cd|12|
1280  +--+ab|
1281 d| 3|cd|
1282  |ab+--+
1283
1284  |ab+--+
1285 e|cd|13|
1286  +--+ab|
1287 f| 4|cd|
1288  |ab+--+
1289
1290  |ab+--+
1291 g|cd|14|
1292  +--+ab|
1293 h| 5|cd|
1294  |ab+--+
1295
1296  |ab+--+
1297 i|cd|15|
1298  +--+ab|
1299 j| 6|cd|
1300  |ab+--+
1301
1302  |ab+--+
1303 k|cd|16|
1304  +--+ab|
1305 l| 7|cd|
1306  |ab+--+
1307
1308  |ab+--+
1309 m|cd|17|
1310  +--+ab|
1311 n| 8|cd|
1312  |ab+--+
1313
1314  |ab+--+
1315 o|cd|18|
1316  +--+ab|
1317 p| 9|cd|
1318  |ab+--+
1319
1320  |ab+--+
1321 q|cd|19|
1322  +--+ab|
1323 r|10|cd|
1324  |ab+--+
1325
1326  |ab+--+
1327 s|cd|20|
1328  +--+--+
1329 ])
1330 AT_CLEANUP
1331
1332 AT_SETUP([vert break 6x6, joined rows and columns])
1333 AT_KEYWORDS([render rendering])
1334 RENDER_WEAVE_6X6
1335 AT_CHECK([render-test --length=6 input], [0], [dnl
1336 +-+---+-+-+-+
1337 |a|bcd|e|f|i|
1338 +-+-+-+-+g+-+
1339 |j|m|nop|h|q|
1340 |k+-+---+-+r|
1341
1342 |k+-+-+---+r|
1343 |l|t|w|xyz|s|
1344 +-+u+-+-+-+-+
1345 |A|v|B|E|FGH|
1346 +-+-+C+-+---+
1347
1348 +---+C+-+-+-+
1349 |IJK|D|L|O|P|
1350 +-+-+-+M+-+-+
1351 |Q|RST|N|U|V|
1352 +-+---+-+-+-+
1353 ])
1354 AT_CLEANUP
1355
1356 AT_SETUP([breaking joined cells too tall for page])
1357 AT_KEYWORDS([render rendering])
1358 AT_DATA([input], [4 6
1359 1*6 @abc\ndef\nghi\njkl\nmno\npqr\nstu\nvwx\nyzA\nBCD\nEFG
1360 1*3 @HIJ\nKLM\nOPQ\nRST\nUVW
1361 1*3 @XYZ\n012\n345\n678\n90a
1362 1*2 @bcd\nefg\nhij
1363 1*2 @klm\nnop\nqrs
1364 1*2 @tuv\nwxy\nzAB
1365 @C
1366 @D
1367 @E
1368 @F
1369 @G
1370 @H
1371 ])
1372 AT_CHECK([render-test --transpose --length=6 input], [0], [dnl
1373 +---+---+---+-+
1374 |abc|HIJ|bcd|C|
1375 |def|KLM|efg+-+
1376 |ghi|OPQ|hij|D|
1377 |jkl|RST+---+-+
1378
1379 |jkl|RST+---+-+
1380 |mno|UVW|klm|E|
1381 |pqr+---+nop+-+
1382 |stu|XYZ|qrs|F|
1383 |vwx|012+---+-+
1384
1385 |vwx|012+---+-+
1386 |yzA|345|tuv|G|
1387 |BCD|678|wxy+-+
1388 |EFG|90a|zAB|H|
1389 +---+---+---+-+
1390 ])
1391 AT_CLEANUP
1392
1393 AT_SETUP([breaking cell too tall for page, no border])
1394 AT_KEYWORDS([render rendering])
1395 AT_CAPTURE_FILE([input])
1396 AT_DATA([input], [1 1
1397 abc defg hij klmn opq rstu vwx yz ABCDE FGH I JK LMNOP QR STU VWXYZ
1398 ])
1399 AT_CHECK([render-test --width=6 --length=6 input], [0], [dnl
1400    abc
1401   defg
1402    hij
1403   klmn
1404    opq
1405   rstu
1406
1407 vwx yz
1408  ABCDE
1409  FGH I
1410     JK
1411  LMNOP
1412 QR STU
1413
1414  VWXYZ
1415 ])
1416 AT_CLEANUP
1417
1418 AT_SETUP([breaking cell too tall for page, with border])
1419 AT_KEYWORDS([render rendering])
1420 AT_CAPTURE_FILE([input])
1421 AT_DATA([input], [1 1
1422 @abc defg hij klmn opq rstu vwx yz ABCDE FGH I JK LMNOP QR STU VWXYZ
1423 ])
1424 AT_CHECK([render-test --width=7 --length=6 input], [0], [dnl
1425 +-----+
1426 |  abc|
1427 | defg|
1428 |  hij|
1429 | klmn|
1430 |  opq|
1431
1432 | klmn|
1433 |  opq|
1434 | rstu|
1435 |  vwx|
1436 |   yz|
1437 |ABCDE|
1438
1439 |   yz|
1440 |ABCDE|
1441 |FGH I|
1442 |   JK|
1443 |LMNOP|
1444 |   QR|
1445
1446 |LMNOP|
1447 |   QR|
1448 |  STU|
1449 |VWXYZ|
1450 +-----+
1451 ])
1452 AT_CLEANUP
1453 \f
1454 AT_BANNER([output rendering -- double page breaks])
1455
1456 AT_SETUP([double break 6x6, joined rows and columns])
1457 AT_KEYWORDS([render rendering])
1458 RENDER_WEAVE_6X6
1459 AT_CHECK([render-test --width=6 --length=6 input], [0], [dnl
1460 +-+--
1461 |a|bc
1462 +-+-+
1463 |j|m|
1464 |k+-+
1465
1466 |k+-+
1467 |l|t|
1468 +-+u|
1469 |A|v|
1470 +-+-+
1471
1472 +---+
1473 |IJK|
1474 +-+-+
1475 |Q|RS
1476 +-+--
1477
1478 --+-+
1479 cd|e|
1480 +-+-+
1481 |nop|
1482 +---+
1483
1484 +-+--
1485 |w|xy
1486 +-+-+
1487 |B|E|
1488 |C+-+
1489
1490 |C+-+
1491 |D|L|
1492 +-+M|
1493 ST|N|
1494 --+-+
1495
1496 +-+-+
1497 |f|i|
1498 |g+-+
1499 |h|q|
1500 +-+r|
1501
1502 --+r|
1503 yz|s|
1504 +-+-+
1505 |FGH|
1506 +---+
1507
1508 +-+-+
1509 |O|P|
1510 +-+-+
1511 |U|V|
1512 +-+-+
1513 ])
1514 AT_CLEANUP
1515
1516 AT_SETUP([double break 8x8, with joins, left and right headers])
1517 AT_KEYWORDS([render rendering])
1518 RENDER_8X8([1 1 0 0])
1519 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
1520 +-+-+-+-+-+-+
1521 |a|b|c|d|e|h|
1522 +-+-+-+-+-+-+
1523 |i|jkl|m|n|t|
1524 +-+-+-+-+-+-+
1525 |u|v|wxy|z|D|
1526 +-+-+-+-+-+-+
1527 |E|F|I|JKL|P|
1528 +-+G+-+---+-+
1529 |Q|H|R|UVW|Y|
1530 +-+-+S+-+-+-+
1531 |Z|0|T|3|4|8|
1532 +-+1+-+-+-+-+
1533
1534 +-+1+---+-+-+
1535 |9|2|abc|d|h|
1536 +-+-+-+-+-+-+
1537 |i|j|k|l|m|p|
1538 +-+-+-+-+-+-+
1539
1540 +-+--+-+-+
1541 |a| f|g|h|
1542 +-+--+-+-+
1543 |i|op|q|t|
1544 +-+--+r+-+
1545 |u| A|s|D|
1546 +-+ B+-+-+
1547
1548 +-+ B+-+-+
1549 |E| C|M|P|
1550 +-+--+N+-+
1551 |Q| X|O|Y|
1552 +-+--+-+-+
1553 |Z|56|7|8|
1554 +-+--+-+-+
1555 |9| efg|h|
1556 +-+--+-+-+
1557 |i| n|o|p|
1558 +-+--+-+-+
1559 ])
1560 AT_CLEANUP
1561
1562 AT_SETUP([double break 8x8, with joins, top and bottom headers])
1563 AT_KEYWORDS([render rendering])
1564 RENDER_8X8([0 0 1 1])
1565 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
1566 +-+-+-+-+-+-+
1567 |a|b|c|d|e|f|
1568 +-+-+-+-+-+-+
1569 |i|jkl|m|nop|
1570 +-+-+-+-+-+-+
1571 |u|v|wxy|z|A|
1572 +-+-+-+-+-+B|
1573 |E|F|I|JKL|C|
1574 +-+G+-+---+-+
1575 |Q|H|R|UVW|X|
1576 +-+-+-+-+-+-+
1577 |i|j|k|l|m|n|
1578 +-+-+-+-+-+-+
1579
1580 +-+-+-+-+-+-+
1581 |a|b|c|d|e|f|
1582 +-+-+-+-+-+-+
1583 |Z|0|S|3|456|
1584 | |1|T| |   |
1585 +-+2+-+-+-+-+
1586 |9| |abc|d|ef
1587 +-+-+-+-+-+-+
1588 |i|j|k|l|m|n|
1589 +-+-+-+-+-+-+
1590
1591 +-+-+
1592 |g|h|
1593 +-+-+
1594 |q|t|
1595 |r+-+
1596 |s|D|
1597 +-+-+
1598 |M|P|
1599 |N+-+
1600 |O|Y|
1601 +-+-+
1602 |o|p|
1603 +-+-+
1604
1605 +-+-+
1606 |g|h|
1607 +-+-+
1608 |7|8|
1609 | | |
1610 +-+-+
1611 fg|h|
1612 +-+-+
1613 |o|p|
1614 +-+-+
1615 ])
1616 AT_CLEANUP
1617
1618 AT_SETUP([double break 8x8, with joins, all headers])
1619 AT_KEYWORDS([render rendering])
1620 RENDER_8X8([1 1 1 1])
1621 AT_CHECK([render-test input --width=14 --length=14], [0], [dnl
1622 +-+-+-+-+-+-+
1623 |a|b|c|d|e|h|
1624 +-+-+-+-+-+-+
1625 |i|jkl|m|n|t|
1626 +-+-+-+-+-+-+
1627 |u|v|wxy|z|D|
1628 +-+-+-+-+-+-+
1629 |E|F|I|JKL|P|
1630 +-+G+-+---+-+
1631 |Q|H|R|UVW|Y|
1632 +-+-+-+-+-+-+
1633 |i|j|k|l|m|p|
1634 +-+-+-+-+-+-+
1635
1636 +-+-+-+-+-+-+
1637 |a|b|c|d|e|h|
1638 +-+-+-+-+-+-+
1639 |Z|0|S|3|4|8|
1640 | |1|T| | | |
1641 +-+2+-+-+-+-+
1642 |9| |abc|d|h|
1643 +-+-+-+-+-+-+
1644 |i|j|k|l|m|p|
1645 +-+-+-+-+-+-+
1646
1647 +-+--+-+-+
1648 |a| f|g|h|
1649 +-+--+-+-+
1650 |i|op|q|t|
1651 +-+--+r+-+
1652 |u| A|s|D|
1653 +-+ B+-+-+
1654 |E| C|M|P|
1655 +-+--+N+-+
1656 |Q| X|O|Y|
1657 +-+--+-+-+
1658 |i| n|o|p|
1659 +-+--+-+-+
1660
1661 +-+--+-+-+
1662 |a| f|g|h|
1663 +-+--+-+-+
1664 |Z|56|7|8|
1665 | |  | | |
1666 +-+--+-+-+
1667 |9| efg|h|
1668 +-+--+-+-+
1669 |i| n|o|p|
1670 +-+--+-+-+
1671 ])
1672 AT_CLEANUP
1673
1674 AT_SETUP([double break joined cells too big for page])
1675 AT_KEYWORDS([render rendering])
1676 AT_DATA([input], [7 7
1677 @a
1678 @b
1679 @c
1680 @d
1681 @e
1682 @f
1683 @g
1684 @h
1685 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.
1686 @i
1687 @j
1688 @k
1689 @l
1690 @m
1691 ])
1692 AT_CHECK([render-test --width=15 --length=15 input], [0], [dnl
1693 +-+--+--+---+
1694 |a| b| c|  d|
1695 +-+--+--+---+
1696 |h|       The
1697 | |        su
1698 | |    determ
1699 +-+       han
1700 |i|missing va
1701 | |     If IN
1702 | |         s
1703 +-+      user
1704 |j|        va
1705 | |   include
1706 | | calculati
1707 +-+ NOINCLUDE
1708
1709 +-+ NOINCLUDE
1710 |k|      whic
1711 | |
1712 +-+      user
1713 |l|        va
1714 | |         e
1715 | |
1716 +-+
1717 |m|
1718 | |
1719 | |
1720 +-+----------
1721
1722 +--+--+--+
1723 | e| f| g|
1724 +--+--+--+
1725 e MISSING|
1726 ubcommand|
1727 mines the|
1728 ndling of|
1729 ariables.|
1730 NCLUDE is|
1731 set, then|
1732 r-missing|
1733 alues are|
1734 ed in the|
1735 ions.  If|
1736 E is set,|
1737
1738 E is set,|
1739 ch is the|
1740  default,|
1741 r-missing|
1742 alues are|
1743 excluded.|
1744          |
1745          |
1746          |
1747          |
1748          |
1749 ---------+
1750 ])
1751 AT_CLEANUP