From c2a759b7af96603bc6a692b09d0e7e65730db082 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sat, 13 Aug 2022 16:09:29 -0700 Subject: [PATCH] ROWLABELS=OPPOSITE is correct --- src/language/stats/ctables.c | 17 ++- tests/language/stats/ctables.at | 217 ++++++++++++++++++++++++++++---- 2 files changed, 206 insertions(+), 28 deletions(-) diff --git a/src/language/stats/ctables.c b/src/language/stats/ctables.c index 341e68e0d9..f81dc81827 100644 --- a/src/language/stats/ctables.c +++ b/src/language/stats/ctables.c @@ -4678,7 +4678,7 @@ ctables_prepare_table (struct ctables_table *t) continue; nest->areas[at][nest->n_areas[at]++] = k; } - else if ((at == CTAT_COL || at == CTAT_LAYERCOL) && a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) + else if (at == CTAT_LAYERCOL && a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) { for (size_t k = nest->n - 1; k < nest->n; k--) { @@ -4699,6 +4699,18 @@ ctables_prepare_table (struct ctables_table *t) nest->n_areas[at]--; continue; } + else if (at == CTAT_ROW && a == PIVOT_AXIS_COLUMN && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) + continue; + else if (at == CTAT_COL && a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN) + { + size_t n = nest->n_areas[at]; + if (n > 1) + { + nest->areas[at][n - 2] = nest->areas[at][n - 1]; + nest->n_areas[at]--; + } + continue; + } bool drop_last = (at == CTAT_SUBTABLE ? a != PIVOT_AXIS_LAYER : at == CTAT_ROW ? a == PIVOT_AXIS_COLUMN @@ -4708,7 +4720,8 @@ ctables_prepare_table (struct ctables_table *t) nest->n_areas[at]--; bool drop_additional - = (((at == CTAT_ROW || at == CTAT_LAYERROW || at == CTAT_COL) && a == PIVOT_AXIS_ROW && t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN)); + = (t->label_axis[PIVOT_AXIS_ROW] == PIVOT_AXIS_COLUMN + && (((at == CTAT_ROW || at == CTAT_LAYERROW) && a == PIVOT_AXIS_ROW))); if (drop_additional && nest->n_areas[at] > 0) nest->n_areas[at]--; } diff --git a/tests/language/stats/ctables.at b/tests/language/stats/ctables.at index dbc70830dc..24c8a7a061 100644 --- a/tests/language/stats/ctables.at +++ b/tests/language/stats/ctables.at @@ -2051,19 +2051,6 @@ Female ]) AT_CLEANUP -AT_SETUP([CTABLES CLABELS]) -AT_CHECK([ln $top_srcdir/examples/nhtsa.sav . || cp $top_srcdir/examples/nhtsa.sav .]) -AT_DATA([ctables.sps], -[[GET 'nhtsa.sav'. -CTABLES /TABLE qns3a > (qn26 + qn27 + qn28 + qn29) [ROWPCT, COLPCT]. -CTABLES /TABLE qns3a > (qn26 + qn27 + qn28 + qn29) [ROWPCT, COLPCT] /CLABELS ROWLABELS=OPPOSITE. -CTABLES /TABLE qns3a > (qn26 + qn27 + qn28 + qn29) [ROWPCT, COLPCT] /CLABELS ROWLABELS=OPPOSITE. -CTABLES /TABLE qns3a > (qn26 + qn27 + qn28 + qn29) [ROWPCT, COLPCT] /CLABELS ROWLABELS=LAYER. -]]) -AT_CHECK([pspp ctables.sps --table-look="$builddir"/all-layers.stt -O box=unicode], [0], [dnl -]) -AT_CLEANUP - AT_SETUP([CTABLES missing values]) AT_DATA([ctables.sps], [[DATA LIST LIST NOTABLE/x y. @@ -3207,26 +3194,204 @@ AT_DATA([ctables.sps], [[GET 'nhtsa.sav'. CTABLES /VLABELS VARIABLES=ALL DISPLAY=NAME - /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[TABLEID] + /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[TABLEID, LAYERID, SUBTABLEID] /SLABELS POSITION=ROW /CLABELS ROWLABELS=OPPOSITE - /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[SUBTABLEID] + /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[ROWID, LAYERROWID] /SLABELS POSITION=ROW /CLABELS ROWLABELS=OPPOSITE - /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[ROWID] + /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[COLID, LAYERCOLID] /SLABELS POSITION=ROW - /CLABELS ROWLABELS=OPPOSITE - /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[COLID] - /SLABELS POSITION=ROW - /CLABELS ROWLABELS=OPPOSITE - /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[LAYERROWID] - /SLABELS POSITION=ROW - /CLABELS ROWLABELS=OPPOSITE - /TABLE qn26 > qn61 > qn57 BY qn27 > qnd7a > qn86 BY qns3a[LAYERCOLID] - /SLABELS POSITION=ROW - /CLABELS ROWLABELS=OPPOSITE + /CLABELS ROWLABELS=OPPOSITE. ]]) AT_CHECK([pspp ctables.sps --table-look="$builddir"/all-layers.stt -O box=unicode -O width=120], [0], [dnl + Custom Tables +Male +╭──────────────────────────────────┬───────────────────────────────────────────────────────╮ +│ │ QN27 │ +│ ├───────────────────────────┬───────────────────────────┤ +│ │ Yes │ No │ +│ ├───────────────────────────┼───────────────────────────┤ +│ │ QND7A │ QND7A │ +│ ├─────────────┬─────────────┼─────────────┬─────────────┤ +│ │ Yes │ No │ Yes │ No │ +│ ├─────────────┼─────────────┼─────────────┼─────────────┤ +│ │ QN86 │ QN86 │ QN86 │ QN86 │ +│ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ +│ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ +│ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ +│ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ +├──────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│QN26 Yes QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Subtable ID│ 1│ 1│ 2│ 2│ 3│ 3│ 4│ 4│ 5│ 5│ 6│ 6│ 7│ 7│ 8│ 8│ +│ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Subtable ID│ 1│ 1│ 2│ 2│ 3│ 3│ 4│ 4│ 5│ 5│ 6│ 6│ 7│ 7│ 8│ 8│ +│ ╶─────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Subtable ID│ 9│ 9│ 10│10│ 11│11│ 12│12│ 13│13│ 14│14│ 15│15│ 16│16│ +│ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Layer ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Subtable ID│ 9│ 9│ 10│10│ 11│11│ 12│12│ 13│13│ 14│14│ 15│15│ 16│16│ +╰──────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ + + Custom Tables +Female +╭──────────────────────────────────┬───────────────────────────────────────────────────────╮ +│ │ QN27 │ +│ ├───────────────────────────┬───────────────────────────┤ +│ │ Yes │ No │ +│ ├───────────────────────────┼───────────────────────────┤ +│ │ QND7A │ QND7A │ +│ ├─────────────┬─────────────┼─────────────┬─────────────┤ +│ │ Yes │ No │ Yes │ No │ +│ ├─────────────┼─────────────┼─────────────┼─────────────┤ +│ │ QN86 │ QN86 │ QN86 │ QN86 │ +│ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ +│ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ +│ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ +│ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ +├──────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│QN26 Yes QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ +│ Subtable ID│ 17│17│ 18│18│ 19│19│ 20│20│ 21│21│ 22│22│ 23│23│ 24│24│ +│ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ +│ Subtable ID│ 17│17│ 18│18│ 19│19│ 20│20│ 21│21│ 22│22│ 23│23│ 24│24│ +│ ╶─────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN61 Yes QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ +│ Subtable ID│ 25│25│ 26│26│ 27│27│ 28│28│ 29│29│ 30│30│ 31│31│ 32│32│ +│ ╶────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Table ID │ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ Layer ID │ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ +│ Subtable ID│ 25│25│ 26│26│ 27│27│ 28│28│ 29│29│ 30│30│ 31│31│ 32│32│ +╰──────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ + + Custom Tables +Male +╭───────────────────────────────────┬───────────────────────────────────────────────────────╮ +│ │ QN27 │ +│ ├───────────────────────────┬───────────────────────────┤ +│ │ Yes │ No │ +│ ├───────────────────────────┼───────────────────────────┤ +│ │ QND7A │ QND7A │ +│ ├─────────────┬─────────────┼─────────────┬─────────────┤ +│ │ Yes │ No │ Yes │ No │ +│ ├─────────────┼─────────────┼─────────────┼─────────────┤ +│ │ QN86 │ QN86 │ QN86 │ QN86 │ +│ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ +│ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ +│ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ +│ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ +├───────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│QN26 Yes QN61 Yes QN57 Row ID │ 1│ 1│ 2│ 2│ 3│ 3│ 4│ 4│ 5│ 5│ 6│ 6│ 7│ 7│ 8│ 8│ +│ Layer Row ID│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ 1│ +│ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Row ID │ 9│ 9│ 10│10│ 11│11│ 12│12│ 13│13│ 14│14│ 15│15│ 16│16│ +│ Layer Row ID│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ 2│ +│ ╶──────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN61 Yes QN57 Row ID │ 17│17│ 18│18│ 19│19│ 20│20│ 21│21│ 22│22│ 23│23│ 24│24│ +│ Layer Row ID│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ 3│ +│ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Row ID │ 25│25│ 26│26│ 27│27│ 28│28│ 29│29│ 30│30│ 31│31│ 32│32│ +│ Layer Row ID│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ 4│ +╰───────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ + + Custom Tables +Female +╭───────────────────────────────────┬───────────────────────────────────────────────────────╮ +│ │ QN27 │ +│ ├───────────────────────────┬───────────────────────────┤ +│ │ Yes │ No │ +│ ├───────────────────────────┼───────────────────────────┤ +│ │ QND7A │ QND7A │ +│ ├─────────────┬─────────────┼─────────────┬─────────────┤ +│ │ Yes │ No │ Yes │ No │ +│ ├─────────────┼─────────────┼─────────────┼─────────────┤ +│ │ QN86 │ QN86 │ QN86 │ QN86 │ +│ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ +│ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ +│ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ +│ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ +├───────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│QN26 Yes QN61 Yes QN57 Row ID │ 33│33│ 34│34│ 35│35│ 36│36│ 37│37│ 38│38│ 39│39│ 40│40│ +│ Layer Row ID│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ 5│ +│ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Row ID │ 41│41│ 42│42│ 43│43│ 44│44│ 45│45│ 46│46│ 47│47│ 48│48│ +│ Layer Row ID│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ 6│ +│ ╶──────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN61 Yes QN57 Row ID │ 49│49│ 50│50│ 51│51│ 52│52│ 53│53│ 54│54│ 55│55│ 56│56│ +│ Layer Row ID│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ 7│ +│ ╶─────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Row ID │ 57│57│ 58│58│ 59│59│ 60│60│ 61│61│ 62│62│ 63│63│ 64│64│ +│ Layer Row ID│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ 8│ +╰───────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ + + Custom Tables +Male +╭──────────────────────────────────────┬───────────────────────────────────────────────────────╮ +│ │ QN27 │ +│ ├───────────────────────────┬───────────────────────────┤ +│ │ Yes │ No │ +│ ├───────────────────────────┼───────────────────────────┤ +│ │ QND7A │ QND7A │ +│ ├─────────────┬─────────────┼─────────────┬─────────────┤ +│ │ Yes │ No │ Yes │ No │ +│ ├─────────────┼─────────────┼─────────────┼─────────────┤ +│ │ QN86 │ QN86 │ QN86 │ QN86 │ +│ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ +│ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ +│ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ +│ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ +├──────────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│QN26 Yes QN61 Yes QN57 Column ID │ 1│ 2│ 4│ 3│ 6│ 5│ 8│ 7│ 9│10│ 11│12│ 14│13│ 15│16│ +│ Layer Column ID│ 1│ 2│ 4│ 3│ 6│ 5│ 8│ 7│ 9│10│ 11│12│ 14│13│ 15│16│ +│ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Column ID │ 1│ 2│ 4│ 3│ 6│ 5│ 8│ 7│ 9│10│ 11│12│ 14│13│ 15│16│ +│ Layer Column ID│ 1│ 2│ 4│ 3│ 6│ 5│ 8│ 7│ 9│10│ 11│12│ 14│13│ 15│16│ +│ ╶─────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN61 Yes QN57 Column ID │ 18│17│ 19│20│ 22│21│ 23│24│ 25│26│ 27│28│ 29│30│ 32│31│ +│ Layer Column ID│ 1│ 2│ 4│ 3│ 6│ 5│ 8│ 7│ 9│10│ 11│12│ 14│13│ 15│16│ +│ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Column ID │ 18│17│ 19│20│ 22│21│ 23│24│ 25│26│ 27│28│ 29│30│ 32│31│ +│ Layer Column ID│ 1│ 2│ 4│ 3│ 6│ 5│ 8│ 7│ 9│10│ 11│12│ 14│13│ 15│16│ +╰──────────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ + + Custom Tables +Female +╭──────────────────────────────────────┬───────────────────────────────────────────────────────╮ +│ │ QN27 │ +│ ├───────────────────────────┬───────────────────────────┤ +│ │ Yes │ No │ +│ ├───────────────────────────┼───────────────────────────┤ +│ │ QND7A │ QND7A │ +│ ├─────────────┬─────────────┼─────────────┬─────────────┤ +│ │ Yes │ No │ Yes │ No │ +│ ├─────────────┼─────────────┼─────────────┼─────────────┤ +│ │ QN86 │ QN86 │ QN86 │ QN86 │ +│ ├──────┬──────┼──────┬──────┼──────┬──────┼──────┬──────┤ +│ │ Yes │ No │ Yes │ No │ Yes │ No │ Yes │ No │ +│ ├───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┼───┬──┤ +│ │Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│Yes│No│ +├──────────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│QN26 Yes QN61 Yes QN57 Column ID │ 33│34│ 36│35│ 37│38│ 39│40│ 42│41│ 44│43│ 45│46│ 47│48│ +│ Layer Column ID│ 17│18│ 20│19│ 21│22│ 23│24│ 26│25│ 28│27│ 29│30│ 31│32│ +│ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Column ID │ 33│34│ 36│35│ 37│38│ 39│40│ 42│41│ 44│43│ 45│46│ 47│48│ +│ Layer Column ID│ 17│18│ 20│19│ 21│22│ 23│24│ 26│25│ 28│27│ 29│30│ 31│32│ +│ ╶─────────────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN61 Yes QN57 Column ID │ 49│50│ 51│52│ 54│53│ 56│55│ 57│58│ 60│59│ 62│61│ 64│63│ +│ Layer Column ID│ 17│18│ 20│19│ 21│22│ 23│24│ 26│25│ 28│27│ 29│30│ 31│32│ +│ ╶────────────────────────┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┼───┼──┤ +│ No QN57 Column ID │ 49│50│ 51│52│ 54│53│ 56│55│ 57│58│ 60│59│ 62│61│ 64│63│ +│ Layer Column ID│ 17│18│ 20│19│ 21│22│ 23│24│ 26│25│ 28│27│ 29│30│ 31│32│ +╰──────────────────────────────────────┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──┴───┴──╯ ]) AT_CLEANUP -- 2.30.2