pivot-output: When there's no dimension border, use the category border.
[pspp] / tests / output / pivot-table.at
index bc66c828f421d639031b75ee8cb243ad7d834f7a..9e006eac0af9b39b926dd606ad3036bdb47c3fca 100644 (file)
@@ -7,7 +7,7 @@ AT_DATA([pivot.txt], [[
 /title "Columns" /display
 /title "Rows" /transpose.
 ]])
-AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [dnl
+AT_DATA([expout], [dnl
 Columns
 ╭────────╮
 │    a   │
@@ -26,6 +26,8 @@ Rows
 │a3│2│
 ╰──┴─╯
 ])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
 AT_CLEANUP
 
 AT_SETUP([2-d pivot table])
@@ -38,7 +40,7 @@ AT_DATA([pivot.txt], [[
 /title "Column x Row" /move "a" column /display
 /title "Row x Column" /transpose
 ]])
-AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [dnl
+AT_DATA([expout], [dnl
 Columns
 ╭────────┬────────┬────────╮
 │   b1   │   b2   │   b3   │
@@ -81,6 +83,8 @@ Row x Column
 │a3│ 2│ 5│ 8│
 ╰──┴──┴──┴──╯
 ])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
 AT_CLEANUP
 
 AT_SETUP([2-d pivot table - dimension labels])
@@ -96,7 +100,7 @@ AT_DATA([pivot.txt], [[
 /title "Row x Column - Corner" /transpose /look rowlabels=corner /display
 /title "Row x Column - Nested" /look rowlabels=nested
 ]])
-AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [dnl
+AT_DATA([expout], [dnl
 Columns
 ╭──────────────────────────╮
 │             b            │
@@ -186,6 +190,8 @@ Row x Column - Nested
 │  a3│ 2│ 5│ 8│
 ╰────┴──┴──┴──╯
 ])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
 AT_CLEANUP
 
 AT_SETUP([2-d pivot table - groups])
@@ -202,7 +208,7 @@ AT_DATA([pivot.txt], [[
 /title "Row x Column - delete b1" /cells[all,0]=delete /look empty=hide /display
 /title "Row x Column - delete b1 - show empty" /look empty=show.
 ]])
-AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [dnl
+AT_DATA([expout], [dnl
 Columns
 ╭─────────────────┬────────╮
 │       bg1       │        │
@@ -304,6 +310,8 @@ Row x Column - delete b1 - show empty
 │    a3│  │  │ 8│
 ╰──────┴──┴──┴──╯
 ])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
 AT_CLEANUP
 
 AT_SETUP([2-d pivot table - layers])
@@ -318,9 +326,9 @@ AT_DATA([pivot.txt], [[
 /title "Column (All Layers)" /look layers=all /display
 /title "Row (All Layers)" /transpose /look layers=all
 ]])
-AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [dnl
+AT_DATA([expout], [dnl
 Column x b1
-b: b1
+b1
 ╭──┬──┬──╮
 │a1│a2│a3│
 ├──┼──┼──┤
@@ -328,7 +336,7 @@ b: b1
 ╰──┴──┴──╯
 
 Row x b1
-b: b1
+b1
 ╭──┬─╮
 │a1│0│
 │a2│1│
@@ -336,7 +344,7 @@ b: b1
 ╰──┴─╯
 
 Column x b2
-b: b2
+b2
 ╭──┬──┬──╮
 │a1│a2│a3│
 ├──┼──┼──┤
@@ -344,7 +352,7 @@ b: b2
 ╰──┴──┴──╯
 
 Row x b2
-b: b2
+b2
 ╭──┬─╮
 │a1│3│
 │a2│4│
@@ -352,7 +360,7 @@ b: b2
 ╰──┴─╯
 
 Column (All Layers)
-b: b1
+b1
 ╭──┬─╮
 │a1│0│
 │a2│1│
@@ -360,7 +368,7 @@ b: b1
 ╰──┴─╯
 
 Column (All Layers)
-b: b2
+b2
 ╭──┬─╮
 │a1│3│
 │a2│4│
@@ -368,7 +376,7 @@ b: b2
 ╰──┴─╯
 
 Column (All Layers)
-b: b3
+b3
 ╭──┬─╮
 │a1│6│
 │a2│7│
@@ -376,7 +384,7 @@ b: b3
 ╰──┴─╯
 
 Row (All Layers)
-b: b1
+b1
 ╭──┬──┬──╮
 │a1│a2│a3│
 ├──┼──┼──┤
@@ -384,7 +392,7 @@ b: b1
 ╰──┴──┴──╯
 
 Row (All Layers)
-b: b2
+b2
 ╭──┬──┬──╮
 │a1│a2│a3│
 ├──┼──┼──┤
@@ -392,13 +400,57 @@ b: b2
 ╰──┴──┴──╯
 
 Row (All Layers)
-b: b3
+b3
 ╭──┬──┬──╮
 │a1│a2│a3│
 ├──┼──┼──┤
 │ 6│ 7│ 8│
 ╰──┴──┴──╯
 ])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
+AT_CLEANUP
+
+AT_SETUP([3-d pivot table - layers])
+AT_DATA([pivot.txt], [[
+/layer "a"("a1", "a2", "a3")
+/layer "b"("b1", "b2", "b3", "b4")
+/col "c"("c1", "c2", "c3", "c4", "c5")
+/cell[all, all, all]
+/title "Column x b1 x a1" /display
+/title "Column x b2 x a1" /show layer 0 1 /display
+/title "Column x b3 x a2" /show layer 1 2 /display
+]])
+AT_DATA([expout], [dnl
+Column x b1 x a1
+b1
+a1
+╭──┬──┬──┬──┬──╮
+│c1│c2│c3│c4│c5│
+├──┼──┼──┼──┼──┤
+│ 0│12│24│36│48│
+╰──┴──┴──┴──┴──╯
+
+Column x b2 x a1
+b2
+a1
+╭──┬──┬──┬──┬──╮
+│c1│c2│c3│c4│c5│
+├──┼──┼──┼──┼──┤
+│ 3│15│27│39│51│
+╰──┴──┴──┴──┴──╯
+
+Column x b3 x a2
+b3
+a2
+╭──┬──┬──┬──┬──╮
+│c1│c2│c3│c4│c5│
+├──┼──┼──┼──┼──┤
+│ 7│19│31│43│55│
+╰──┴──┴──┴──┴──╯
+])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
 AT_CLEANUP
 
 AT_SETUP([pivot table title and caption])
@@ -411,7 +463,7 @@ AT_DATA([pivot.txt], [[
 /title "(Not Shown)" /caption "Caption Only" /show title=no caption=yes /display
 /title "(Not Shown)" /caption "(Not Shown)" /show title=no caption=no
 ]])
-AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [dnl
+AT_DATA([expout], [dnl
 Title + Caption
 ╭──┬──┬──╮
 │  │a1│a2│
@@ -444,17 +496,119 @@ Caption Only
 │b2│ 2│ 3│
 ╰──┴──┴──╯
 ])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
+AT_CLEANUP
+
+AT_SETUP([pivot table footnotes])
+AT_KEYWORDS([footnote])
+AT_DATA([pivot.txt], [[
+/footnote[0] "First footnote" marker="*"
+/footnote[1] "Second footnote"
+/col "A"[footnote 0]*("B"[footnote 1], "C"[footnote 0 1])
+/row "D"[footnote 1]*("E"[footnote 0], "F"[footnote 1 0])
+/look rowlabels=nested
+/cell[0, 0]=0
+/cell[1, 0]=1[footnote 0]
+/cell[0, 1]=2[footnote 1]
+/cell[1, 1]=3[footnote 0 1]
+/caption "Caption"[footnote 0]
+/corner "Corner"[footnote 0 1]
+/title "Pivot Table with Alphabetic Subscript Footnotes"[footnote 0]
+/look marker=alpha level=sub
+/display
+/title "Pivot Table with Alphabetic Superscript Footnotes"[footnote 0]
+/look marker=alpha level=super
+/display
+/title "Pivot Table with Numeric Subscript Footnotes"[footnote 0]
+/look marker=numeric level=sub
+/display
+/title "Pivot Table with Numeric Superscript Footnotes"[footnote 0]
+/look marker=numeric level=super
+/display
+/title "Hidden Footnote"[footnote 0]
+/footnote[0] "First footnote" marker="*" hide
+]])
+AT_DATA([expout],
+[[Pivot Table with Alphabetic Subscript Footnotes[*]
+╭────────────┬──────────────────╮
+│            │       A[*]       │
+│            ├───────┬──────────┤
+│Corner[*][b]│  B[b] │  C[*][b] │
+├────────────┼───────┼──────────┤
+│D[b] E[*]   │    .00│   1.00[*]│
+│     F[*][b]│2.00[b]│3.00[*][b]│
+╰────────────┴───────┴──────────╯
+Caption[*]
+*. First footnote
+b. Second footnote
+
+Pivot Table with Alphabetic Superscript Footnotes[*]
+╭────────────┬──────────────────╮
+│            │       A[*]       │
+│            ├───────┬──────────┤
+│Corner[*][b]│  B[b] │  C[*][b] │
+├────────────┼───────┼──────────┤
+│D[b] E[*]   │    .00│   1.00[*]│
+│     F[*][b]│2.00[b]│3.00[*][b]│
+╰────────────┴───────┴──────────╯
+Caption[*]
+*. First footnote
+b. Second footnote
+
+Pivot Table with Numeric Subscript Footnotes[*]
+╭────────────┬──────────────────╮
+│            │       A[*]       │
+│            ├───────┬──────────┤
+│Corner[*][2]│  B[2] │  C[*][2] │
+├────────────┼───────┼──────────┤
+│D[2] E[*]   │    .00│   1.00[*]│
+│     F[*][2]│2.00[2]│3.00[*][2]│
+╰────────────┴───────┴──────────╯
+Caption[*]
+*. First footnote
+2. Second footnote
+
+Pivot Table with Numeric Superscript Footnotes[*]
+╭────────────┬──────────────────╮
+│            │       A[*]       │
+│            ├───────┬──────────┤
+│Corner[*][2]│  B[2] │  C[*][2] │
+├────────────┼───────┼──────────┤
+│D[2] E[*]   │    .00│   1.00[*]│
+│     F[*][2]│2.00[2]│3.00[*][2]│
+╰────────────┴───────┴──────────╯
+Caption[*]
+*. First footnote
+2. Second footnote
+
+Hidden Footnote[*]
+╭────────────┬──────────────────╮
+│            │       A[*]       │
+│            ├───────┬──────────┤
+│Corner[*][2]│  B[2] │  C[*][2] │
+├────────────┼───────┼──────────┤
+│D[2] E[*]   │    .00│   1.00[*]│
+│     F[*][2]│2.00[2]│3.00[*][2]│
+╰────────────┴───────┴──────────╯
+Caption[*]
+2. Second footnote
+]])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
 AT_CLEANUP
 
 AT_SETUP([pivot table with no dimensions])
 AT_DATA([pivot.txt], [[
 /title "No Dimensions"
 ]])
-AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [dnl
+AT_DATA([expout], [dnl
 No Dimensions
 ╭╮
 ╰╯
 ])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
 AT_CLEANUP
 
 AT_SETUP([pivot table with empty dimensions])
@@ -465,13 +619,15 @@ AT_DATA([pivot.txt], [[
 /title "Two Empty Dimensions" /row "b"*() /display
 /title "Three Dimensions, Two Empty" /row "c"("c1", "c2")
 ]])
-AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [dnl
+AT_DATA([expout], [dnl
 One Empty Dimension
 
 Two Empty Dimensions
 
 Three Dimensions, Two Empty
 ])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
 AT_CLEANUP
 
 AT_SETUP([pivot table with empty groups])
@@ -482,7 +638,7 @@ AT_DATA([pivot.txt], [[
 /look empty=show
 /display
 ]])
-AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [dnl
+AT_DATA([expout], [dnl
 Default Title
 ╭──┬──┬──╮
 │  │a1│a3│
@@ -491,9 +647,203 @@ Default Title
 │b3│ 2│ 3│
 ╰──┴──┴──╯
 ])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
+AT_CLEANUP
+
+AT_SETUP([pivot table - category and dimension borders 1])
+AT_DATA([pivot.txt], [[
+/col "a"*("a1", "ag1"("a2", "a3"))
+/col "b"*("bg1"("b1", "b2"), "b3")
+/row "c"*("c1", "cg1"("c2", "c3"))
+/row "d"*("dg1"("d1", "d2"), "d3")
+/cell[all, all, all, all]
+/border "*" (none)
+/border "dim-row-horz" (solid "blue")
+/border        "dim-col-vert" (solid "blue")
+/title "Dimension Borders 1"
+/display
+/border "*" (none)
+/border "cat-row-horz" (dashed "red")
+/border        "cat-col-vert" (dashed "red")
+/title "Category Borders 1"
+/display
+/border "*" (none)
+/border "dim-row-horz" (solid "blue")
+/border        "dim-col-vert" (solid "blue")
+/border "cat-row-horz" (dashed "red")
+/border        "cat-col-vert" (dashed "red")
+/title "Category and Dimension Borders 1"
+]])
+AT_DATA([expout], [dnl
+Dimension Borders 1
+                           b
+                     bg1       │
+                 b1   │   b2   │   b3
+                  a   │    a   │    a
+                │ ag1 │  │ ag1 │  │ ag1
+d      c      a1│a2 a3│a1│a2 a3│a1│a2 a3
+dg1 d1 c1      0│ 1  2│ 3│ 4  5│ 6│ 7  8
+      ╶─────────┼─────┼──┼─────┼──┼─────
+       cg1 c2  9│10 11│12│13 14│15│16 17
+           c3 18│19 20│21│22 23│24│25 26
+   ╶────────────┼─────┼──┼─────┼──┼─────
+    d2 c1     27│28 29│30│31 32│33│34 35
+      ╶─────────┼─────┼──┼─────┼──┼─────
+       cg1 c2 36│37 38│39│40 41│42│43 44
+           c3 45│46 47│48│49 50│51│52 53
+────────────────┼─────┼──┼─────┼──┼─────
+d3     c1     54│55 56│57│58 59│60│61 62
+      ╶─────────┼─────┼──┼─────┼──┼─────
+       cg1 c2 63│64 65│66│67 68│69│70 71
+           c3 72│73 74│75│76 77│78│79 80
+
+Category Borders 1
+                           b
+                     bg1       ┊
+                 b1   ┊   b2   ┊   b3
+                  a   ┊    a   ┊    a
+                ┊ ag1 ┊  ┊ ag1 ┊  ┊ ag1
+d      c      a1┊a2┊a3┊a1┊a2┊a3┊a1┊a2┊a3
+dg1 d1 c1      0┊ 1┊ 2┊ 3┊ 4┊ 5┊ 6┊ 7┊ 8
+      ╶╌╌╌╌╌╌╌╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌
+       cg1 c2  9┊10┊11┊12┊13┊14┊15┊16┊17
+          ╶╌╌╌╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌
+           c3 18┊19┊20┊21┊22┊23┊24┊25┊26
+   ╶╌╌╌╌╌╌╌╌╌╌╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌
+    d2 c1     27┊28┊29┊30┊31┊32┊33┊34┊35
+      ╶╌╌╌╌╌╌╌╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌
+       cg1 c2 36┊37┊38┊39┊40┊41┊42┊43┊44
+          ╶╌╌╌╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌
+           c3 45┊46┊47┊48┊49┊50┊51┊52┊53
+╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌
+d3     c1     54┊55┊56┊57┊58┊59┊60┊61┊62
+      ╶╌╌╌╌╌╌╌╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌
+       cg1 c2 63┊64┊65┊66┊67┊68┊69┊70┊71
+          ╶╌╌╌╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌+╌╌
+           c3 72┊73┊74┊75┊76┊77┊78┊79┊80
+
+Category and Dimension Borders 1
+                           b
+                     bg1       │
+                 b1   │   b2   │   b3
+                  a   │    a   │    a
+                │ ag1 │  │ ag1 │  │ ag1
+d      c      a1│a2┊a3│a1│a2┊a3│a1│a2┊a3
+dg1 d1 c1      0│ 1┊ 2│ 3│ 4┊ 5│ 6│ 7┊ 8
+      ╶─────────┼──┼──┼──┼──┼──┼──┼──┼──
+       cg1 c2  9│10┊11│12│13┊14│15│16┊17
+          ╶╌╌╌╌╌┼╌╌+╌╌┼╌╌┼╌╌+╌╌┼╌╌┼╌╌+╌╌
+           c3 18│19┊20│21│22┊23│24│25┊26
+   ╶────────────┼──┼──┼──┼──┼──┼──┼──┼──
+    d2 c1     27│28┊29│30│31┊32│33│34┊35
+      ╶─────────┼──┼──┼──┼──┼──┼──┼──┼──
+       cg1 c2 36│37┊38│39│40┊41│42│43┊44
+          ╶╌╌╌╌╌┼╌╌+╌╌┼╌╌┼╌╌+╌╌┼╌╌┼╌╌+╌╌
+           c3 45│46┊47│48│49┊50│51│52┊53
+────────────────┼──┼──┼──┼──┼──┼──┼──┼──
+d3     c1     54│55┊56│57│58┊59│60│61┊62
+      ╶─────────┼──┼──┼──┼──┼──┼──┼──┼──
+       cg1 c2 63│64┊65│66│67┊68│69│70┊71
+          ╶╌╌╌╌╌┼╌╌+╌╌┼╌╌┼╌╌+╌╌┼╌╌┼╌╌+╌╌
+           c3 72│73┊74│75│76┊77│78│79┊80
+])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
+AT_CLEANUP
+
+AT_SETUP([pivot table - category and dimension borders 2])
+AT_DATA([pivot.txt], [[
+/col "a"*("a1", "ag1"("a2", "a3"))
+/col "b"*("bg1"("b1", "b2"), "b3")
+/row "c"*("c1", "cg1"("c2", "c3"))
+/row "d"*("dg1"("d1", "d2"), "d3")
+/cell[all, all, all, all]
+/border "*" (none)
+/border        "dim-row-vert" (solid "blue")
+/border        "dim-col-horz" (solid "blue")
+/title "Dimension Borders 2"
+/display
+/border "*" (none)
+/border        "cat-row-vert" (dashed "red")
+/border        "cat-col-horz" (dashed "red")
+/title "Category Borders 2"
+/display
+/border "*" (none)
+/border        "dim-row-vert" (solid "blue")
+/border        "cat-row-vert" (dashed "red")
+/border        "dim-col-horz" (solid "blue")
+/border        "cat-col-horz" (dashed "red")
+/title "Category and Dimension Borders 2"
+]])
+AT_DATA([expout], [dnl
+Dimension Borders 2
+                           b
+                     bg1
+                 b1       b2       b3
+             ╶──────────────────────────
+                  a        a        a
+                  ag1      ag1      ag1
+d      c      a1 a2 a3 a1 a2 a3 a1 a2 a3
+dg1 d1│c1      0  1  2  3  4  5  6  7  8
+      │cg1 c2  9 10 11 12 13 14 15 16 17
+      │    c3 18 19 20 21 22 23 24 25 26
+    d2│c1     27 28 29 30 31 32 33 34 35
+      │cg1 c2 36 37 38 39 40 41 42 43 44
+      │    c3 45 46 47 48 49 50 51 52 53
+d3    │c1     54 55 56 57 58 59 60 61 62
+      │cg1 c2 63 64 65 66 67 68 69 70 71
+      │    c3 72 73 74 75 76 77 78 79 80
+
+Category Borders 2
+                           b
+             ╶╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
+                     bg1
+             ╶╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╴
+                 b1       b2       b3
+             ╶╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
+                  a        a        a
+             ╶╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
+                  ag1      ag1      ag1
+                ╶╌╌╌╌╌╴  ╶╌╌╌╌╌╴  ╶╌╌╌╌╌
+d      c      a1 a2 a3 a1 a2 a3 a1 a2 a3
+dg1┊d1┊c1      0  1  2  3  4  5  6  7  8
+   ┊  ┊cg1┊c2  9 10 11 12 13 14 15 16 17
+   ┊  ┊   ┊c3 18 19 20 21 22 23 24 25 26
+   ┊d2┊c1     27 28 29 30 31 32 33 34 35
+   ┊  ┊cg1┊c2 36 37 38 39 40 41 42 43 44
+   ┊  ┊   ┊c3 45 46 47 48 49 50 51 52 53
+d3    ┊c1     54 55 56 57 58 59 60 61 62
+      ┊cg1┊c2 63 64 65 66 67 68 69 70 71
+      ┊   ┊c3 72 73 74 75 76 77 78 79 80
+
+Category and Dimension Borders 2
+                           b
+             ╶╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
+                     bg1
+             ╶╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╴
+                 b1       b2       b3
+             ╶──────────────────────────
+                  a        a        a
+             ╶╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌
+                  ag1      ag1      ag1
+                ╶╌╌╌╌╌╴  ╶╌╌╌╌╌╴  ╶╌╌╌╌╌
+d      c      a1 a2 a3 a1 a2 a3 a1 a2 a3
+dg1┊d1│c1      0  1  2  3  4  5  6  7  8
+   ┊  │cg1┊c2  9 10 11 12 13 14 15 16 17
+   ┊  │   ┊c3 18 19 20 21 22 23 24 25 26
+   ┊d2│c1     27 28 29 30 31 32 33 34 35
+   ┊  │cg1┊c2 36 37 38 39 40 41 42 43 44
+   ┊  │   ┊c3 45 46 47 48 49 50 51 52 53
+d3    │c1     54 55 56 57 58 59 60 61 62
+      │cg1┊c2 63 64 65 66 67 68 69 70 71
+      │   ┊c3 72 73 74 75 76 77 78 79 80
+])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
 AT_CLEANUP
 
-AT_SETUP([pivot table - category and dimension borders])
+AT_SETUP([pivot table - category and dimension borders 3])
 AT_DATA([pivot.txt], [[
 /col "a"("a1", "ag1"("a2", "a3"))
 /col "b"("bg1"("b1", "b2"), "b3")
@@ -509,10 +859,10 @@ AT_DATA([pivot.txt], [[
        "cat-col-horz" (dashed "red")
        "dim-col-vert" (solid "blue")
        "cat-col-vert" (dashed "red")
-/title "Category and Dimension Borders"
+/title "Category and Dimension Borders 3"
 ]])
-AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [dnl
-Category and Dimension Borders
+AT_DATA([expout], [dnl
+Category and Dimension Borders 3
                      bg1       │
              ╶╌╌╌╌╌╌╌╌┬╌╌╌╌╌╌╌╌┤
                  b1   │   b2   │   b3
@@ -538,4 +888,80 @@ d3    │c1     54│55┊56│57│58┊59│60│61┊62
       │   ├╌╌╌╌╌┼╌╌+╌╌┼╌╌┼╌╌+╌╌┼╌╌┼╌╌+╌╌
       │   ┊c3 72│73┊74│75│76┊77│78│79┊80
 ])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
 AT_CLEANUP
+
+AT_SETUP([pivot table - small numbers])
+AT_DATA([pivot.txt], [[
+/title "small numbers"
+/row "exponent"*("0", "-1", "-2", "-3", "-4", "-5", "-6", "-7", "-8", "-9")
+/col "sign"*("positive", "negative")
+/col "result class"*("general" RC_OTHER, "specific" RC_RESIDUAL)
+/cell[0, 0, 0] = 1
+/cell[1, 0, 0] = .1
+/cell[2, 0, 0] = .01
+/cell[3, 0, 0] = .001
+/cell[4, 0, 0] = .0001
+/cell[5, 0, 0] = .00001
+/cell[6, 0, 0] = .000001
+/cell[7, 0, 0] = .0000001
+/cell[8, 0, 0] = .00000001
+/cell[9, 0, 0] = .000000001
+/cell[0, 0, 1] = -1
+/cell[1, 0, 1] = -.1
+/cell[2, 0, 1] = -.01
+/cell[3, 0, 1] = -.001
+/cell[4, 0, 1] = -.0001
+/cell[5, 0, 1] = -.00001
+/cell[6, 0, 1] = -.000001
+/cell[7, 0, 1] = -.0000001
+/cell[8, 0, 1] = -.00000001
+/cell[9, 0, 1] = -.000000001
+/cell[0, 1, 0] = 1
+/cell[1, 1, 0] = .1
+/cell[2, 1, 0] = .01
+/cell[3, 1, 0] = .001
+/cell[4, 1, 0] = .0001
+/cell[5, 1, 0] = .00001
+/cell[6, 1, 0] = .000001
+/cell[7, 1, 0] = .0000001
+/cell[8, 1, 0] = .00000001
+/cell[9, 1, 0] = .000000001
+/cell[0, 1, 1] = -1
+/cell[1, 1, 1] = -.1
+/cell[2, 1, 1] = -.01
+/cell[3, 1, 1] = -.001
+/cell[4, 1, 1] = -.0001
+/cell[5, 1, 1] = -.00001
+/cell[6, 1, 1] = -.000001
+/cell[7, 1, 1] = -.0000001
+/cell[8, 1, 1] = -.00000001
+/cell[9, 1, 1] = -.000000001
+]])
+AT_DATA([expout], [dnl
+small numbers
+╭────────┬─────────────────────────────────────╮
+│        │             result class            │
+│        ├───────────────────┬─────────────────┤
+│        │      general      │     specific    │
+│        ├───────────────────┼─────────────────┤
+│        │        sign       │       sign      │
+│        ├─────────┬─────────┼────────┬────────┤
+│exponent│ positive│ negative│positive│negative│
+├────────┼─────────┼─────────┼────────┼────────┤
+│0       │     1.00│     1.00│   -1.00│   -1.00│
+│-1      │      .10│      .10│    -.10│    -.10│
+│-2      │      .01│      .01│    -.01│    -.01│
+│-3      │      .00│      .00│     .00│     .00│
+│-4      │      .00│      .00│     .00│     .00│
+│-5      │1.00E-005│1.00E-005│     .00│     .00│
+│-6      │1.00E-006│1.00E-006│     .00│     .00│
+│-7      │1.00E-007│1.00E-007│     .00│     .00│
+│-8      │1.00E-008│1.00E-008│     .00│     .00│
+│-9      │1.00E-009│1.00E-009│     .00│     .00│
+╰────────┴─────────┴─────────┴────────┴────────╯
+])
+AT_CHECK([pivot-table-test --table-look $srcdir/output/look.stt pivot.txt --box unicode], [0], [expout])
+AT_CHECK([pspp-output -O box=unicode convert render.spv -], [0], [expout])
+AT_CLEANUP
\ No newline at end of file