work on docs
[pspp] / tests / language / stats / ctables.at
index 4b520cc0cddd540a19ebeb8bfbb4660970772469..efb59ca23a6d6521a54afbc8246ae9aa61c882f0 100644 (file)
@@ -12,7 +12,6 @@ dnl   * Date values
 dnl   * THRU (numeric ranges)
 dnl   * OTHERNM
 dnl - Date/time variables and values
-dnl - TITLES: )DATE, )TIME, )TABLE.
 dnl - Test PCOMPUTE:
 dnl   * PCOMPUTE for more than one kind of summary (e.g. [COUNT, ROWPCT]).
 dnl   * MISSING, OTHERNM
@@ -649,6 +648,11 @@ variable must be specified.
 
 ctables.sps:23: error: CTABLES: Summaries may appear only on one axis.
 
+ctables.sps:23.50-23.54: note: CTABLES: This variable on the layers axis has a
+summary.
+   23 | CTABLES /TABLE qn113 [COUNT] BY qn114 [COUNT] BY qn116 [COUNT].
+      |                                                  ^~~~~
+
 ctables.sps:23.16-23.20: note: CTABLES: This variable on the rows axis has a
 summary.
    23 | CTABLES /TABLE qn113 [COUNT] BY qn114 [COUNT] BY qn116 [COUNT].
@@ -659,10 +663,10 @@ summary.
    23 | CTABLES /TABLE qn113 [COUNT] BY qn114 [COUNT] BY qn116 [COUNT].
       |                                 ^~~~~
 
-ctables.sps:23.50-23.54: note: CTABLES: This variable on the layers axis has a
-summary.
+ctables.sps:23.33-23.37: note: CTABLES: This is a scale variable, so it always
+has a summary even if the syntax does not explicitly specify one.
    23 | CTABLES /TABLE qn113 [COUNT] BY qn114 [COUNT] BY qn116 [COUNT].
-      |                                                  ^~~~~
+      |                                 ^~~~~
 ]])
 AT_CLEANUP
 
@@ -2492,3 +2496,221 @@ AT_CHECK([pspp ctables.sps -O box=unicode], [0], [dnl
 ╰─┴───────┴───────┴───────┴───────┴───────┴───────┴───────┴───────╯
 ])
 AT_CLEANUP
+
+AT_SETUP([CTABLES TITLES])
+AT_CHECK([ln $top_srcdir/examples/nhtsa.sav . || cp $top_srcdir/examples/nhtsa.sav .])
+AT_DATA([ctables.sps],
+[[GET 'nhtsa.sav'.
+CTABLES
+    /VLABELS VARIABLES=qn1 DISPLAY=NONE
+    /TABLE ((qn1[c][COUNT])) BY qns3a[c] > qnd5
+    /TITLES TITLE='How often do you drive?'
+            CAPTION='Generated )TIME on )DATE'
+           CORNER=')TABLE'.
+]])
+AT_CHECK([pspp ctables.sps -O box=unicode | sed 's/..:..:../HH:MM:SS/
+s&../../..&MM/DD/YY&'], [0], [dnl
+                            How often do you drive?
+╭───────────────────────────────────┬─────────────────────────────────────────╮
+│                                   │               S3a. GENDER:              │
+│                                   ├────────────────────┬────────────────────┤
+│                                   │        Male        │       Female       │
+│                                   ├────────────────────┼────────────────────┤
+│                                   │ D5. ETHNICITY: Are │ D5. ETHNICITY: Are │
+│                                   │ you of Hispanic or │ you of Hispanic or │
+│                                   │  Latino origin or  │  Latino origin or  │
+│( ( 1. How often do you usually    │      descent?      │      descent?      │
+│drive a car or other motor         ├─────────┬──────────┼─────────┬──────────┤
+│vehicle?) ) BY S3a. GENDER: > D5.  │   Yes   │    No    │   Yes   │    No    │
+│ETHNICITY: Are you of Hispanic or  ├─────────┼──────────┼─────────┼──────────┤
+│Latino origin or descent?          │  Count  │   Count  │  Count  │   Count  │
+├───────────────────────────────────┼─────────┼──────────┼─────────┼──────────┤
+│Every day                          │      218│      2066│      166│      2175│
+│Several days a week                │       44│       391│       45│       782│
+│Once a week or less                │       16│       109│       12│       223│
+│Only certain times a year          │       15│        41│       11│        61│
+│Never                              │       39│       150│       56│       278│
+╰───────────────────────────────────┴─────────┴──────────┴─────────┴──────────╯
+Generated HH:MM:SS on MM/DD/YY
+])
+AT_CLEANUP
+
+AT_SETUP([CTABLES area definitions])
+AT_CHECK([ln $top_srcdir/examples/nhtsa.sav . || cp $top_srcdir/examples/nhtsa.sav .])
+AT_DATA([ctables.sps],
+[[GET 'nhtsa.sav'.
+CTABLES
+    /VLABELS VARIABLES=ALL DISPLAY=NAME
+    /TABLE qn61 > qn57 BY qnd7a > qn86 + qn64b BY qns3a[TABLE.ID, LAYER.ID, SUBTABLE.ID]
+    /SLABELS POSITION=ROW
+    /TABLE qn61 > qn57 BY qnd7a > qn86 + qn64b BY qns3a[ROW.ID, LAYERROW.ID]
+    /SLABELS POSITION=ROW
+    /TABLE qn61 > qn57 BY qnd7a > qn86 + qn64b BY qns3a[COL.ID, LAYERCOL.ID]
+    /SLABELS POSITION=ROW.
+]])
+AT_CHECK([pspp ctables.sps --table-look="$builddir"/all-layers.stt -O box=unicode -O width=80], [0], [dnl
+                    Custom Tables
+Male
+╭─────────────────────────────┬─────────────┬──────╮
+│                             │    QND7A    │ QN64B│
+│                             ├──────┬──────┼───┬──┤
+│                             │  Yes │  No  │   │  │
+│                             ├──────┼──────┤   │  │
+│                             │ QN86 │ QN86 │   │  │
+│                             ├───┬──┼───┬──┤   │  │
+│                             │Yes│No│Yes│No│Yes│No│
+├─────────────────────────────┼───┼──┼───┼──┼───┼──┤
+│QN61 Yes QN57 Yes Table ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Layer ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Subtable ID│  1│ 1│  2│ 2│  3│ 3│
+│             ╶───────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Table ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Layer ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Subtable ID│  1│ 1│  2│ 2│  3│ 3│
+│    ╶────────────────────────┼───┼──┼───┼──┼───┼──┤
+│     No  QN57 Yes Table ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Layer ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Subtable ID│  4│ 4│  5│ 5│  6│ 6│
+│             ╶───────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Table ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Layer ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Subtable ID│  4│ 4│  5│ 5│  6│ 6│
+╰─────────────────────────────┴───┴──┴───┴──┴───┴──╯
+
+                    Custom Tables
+Female
+╭─────────────────────────────┬─────────────┬──────╮
+│                             │    QND7A    │ QN64B│
+│                             ├──────┬──────┼───┬──┤
+│                             │  Yes │  No  │   │  │
+│                             ├──────┼──────┤   │  │
+│                             │ QN86 │ QN86 │   │  │
+│                             ├───┬──┼───┬──┤   │  │
+│                             │Yes│No│Yes│No│Yes│No│
+├─────────────────────────────┼───┼──┼───┼──┼───┼──┤
+│QN61 Yes QN57 Yes Table ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Layer ID   │  3│ 3│  3│ 3│  4│ 4│
+│                  Subtable ID│  7│ 7│  8│ 8│  9│ 9│
+│             ╶───────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Table ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Layer ID   │  3│ 3│  3│ 3│  4│ 4│
+│                  Subtable ID│  7│ 7│  8│ 8│  9│ 9│
+│    ╶────────────────────────┼───┼──┼───┼──┼───┼──┤
+│     No  QN57 Yes Table ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Layer ID   │  3│ 3│  3│ 3│  4│ 4│
+│                  Subtable ID│ 10│10│ 11│11│ 12│12│
+│             ╶───────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Table ID   │  1│ 1│  1│ 1│  2│ 2│
+│                  Layer ID   │  3│ 3│  3│ 3│  4│ 4│
+│                  Subtable ID│ 10│10│ 11│11│ 12│12│
+╰─────────────────────────────┴───┴──┴───┴──┴───┴──╯
+
+                    Custom Tables
+Male
+╭──────────────────────────────┬─────────────┬──────╮
+│                              │    QND7A    │ QN64B│
+│                              ├──────┬──────┼───┬──┤
+│                              │  Yes │  No  │   │  │
+│                              ├──────┼──────┤   │  │
+│                              │ QN86 │ QN86 │   │  │
+│                              ├───┬──┼───┬──┤   │  │
+│                              │Yes│No│Yes│No│Yes│No│
+├──────────────────────────────┼───┼──┼───┼──┼───┼──┤
+│QN61 Yes QN57 Yes Row ID      │  1│ 1│  2│ 2│  3│ 3│
+│                  Layer Row ID│  1│ 1│  1│ 1│  2│ 2│
+│             ╶────────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Row ID      │  4│ 4│  5│ 5│  6│ 6│
+│                  Layer Row ID│  3│ 3│  3│ 3│  4│ 4│
+│    ╶─────────────────────────┼───┼──┼───┼──┼───┼──┤
+│     No  QN57 Yes Row ID      │  7│ 7│  8│ 8│  9│ 9│
+│                  Layer Row ID│  5│ 5│  5│ 5│  6│ 6│
+│             ╶────────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Row ID      │ 10│10│ 11│11│ 12│12│
+│                  Layer Row ID│  7│ 7│  7│ 7│  8│ 8│
+╰──────────────────────────────┴───┴──┴───┴──┴───┴──╯
+
+                    Custom Tables
+Female
+╭──────────────────────────────┬─────────────┬──────╮
+│                              │    QND7A    │ QN64B│
+│                              ├──────┬──────┼───┬──┤
+│                              │  Yes │  No  │   │  │
+│                              ├──────┼──────┤   │  │
+│                              │ QN86 │ QN86 │   │  │
+│                              ├───┬──┼───┬──┤   │  │
+│                              │Yes│No│Yes│No│Yes│No│
+├──────────────────────────────┼───┼──┼───┼──┼───┼──┤
+│QN61 Yes QN57 Yes Row ID      │ 13│13│ 14│14│ 15│15│
+│                  Layer Row ID│  9│ 9│  9│ 9│ 10│10│
+│             ╶────────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Row ID      │ 16│16│ 17│17│ 18│18│
+│                  Layer Row ID│ 11│11│ 11│11│ 12│12│
+│    ╶─────────────────────────┼───┼──┼───┼──┼───┼──┤
+│     No  QN57 Yes Row ID      │ 19│19│ 20│20│ 21│21│
+│                  Layer Row ID│ 13│13│ 13│13│ 14│14│
+│             ╶────────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Row ID      │ 22│22│ 23│23│ 24│24│
+│                  Layer Row ID│ 15│15│ 15│15│ 16│16│
+╰──────────────────────────────┴───┴──┴───┴──┴───┴──╯
+
+                      Custom Tables
+Male
+╭─────────────────────────────────┬─────────────┬──────╮
+│                                 │    QND7A    │ QN64B│
+│                                 ├──────┬──────┼───┬──┤
+│                                 │  Yes │  No  │   │  │
+│                                 ├──────┼──────┤   │  │
+│                                 │ QN86 │ QN86 │   │  │
+│                                 ├───┬──┼───┬──┤   │  │
+│                                 │Yes│No│Yes│No│Yes│No│
+├─────────────────────────────────┼───┼──┼───┼──┼───┼──┤
+│QN61 Yes QN57 Yes Column ID      │  1│ 2│  3│ 4│  5│ 6│
+│                  Layer Column ID│  1│ 2│  3│ 4│  5│ 6│
+│             ╶───────────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Column ID      │  1│ 2│  3│ 4│  5│ 6│
+│                  Layer Column ID│  1│ 2│  3│ 4│  5│ 6│
+│    ╶────────────────────────────┼───┼──┼───┼──┼───┼──┤
+│     No  QN57 Yes Column ID      │  7│ 8│  9│10│ 11│12│
+│                  Layer Column ID│  1│ 2│  3│ 4│  5│ 6│
+│             ╶───────────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Column ID      │  7│ 8│  9│10│ 11│12│
+│                  Layer Column ID│  1│ 2│  3│ 4│  5│ 6│
+╰─────────────────────────────────┴───┴──┴───┴──┴───┴──╯
+
+                      Custom Tables
+Female
+╭─────────────────────────────────┬─────────────┬──────╮
+│                                 │    QND7A    │ QN64B│
+│                                 ├──────┬──────┼───┬──┤
+│                                 │  Yes │  No  │   │  │
+│                                 ├──────┼──────┤   │  │
+│                                 │ QN86 │ QN86 │   │  │
+│                                 ├───┬──┼───┬──┤   │  │
+│                                 │Yes│No│Yes│No│Yes│No│
+├─────────────────────────────────┼───┼──┼───┼──┼───┼──┤
+│QN61 Yes QN57 Yes Column ID      │ 13│14│ 15│16│ 17│18│
+│                  Layer Column ID│  7│ 8│  9│10│ 11│12│
+│             ╶───────────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Column ID      │ 13│14│ 15│16│ 17│18│
+│                  Layer Column ID│  7│ 8│  9│10│ 11│12│
+│    ╶────────────────────────────┼───┼──┼───┼──┼───┼──┤
+│     No  QN57 Yes Column ID      │ 19│20│ 21│22│ 23│24│
+│                  Layer Column ID│  7│ 8│  9│10│ 11│12│
+│             ╶───────────────────┼───┼──┼───┼──┼───┼──┤
+│              No  Column ID      │ 19│20│ 21│22│ 23│24│
+│                  Layer Column ID│  7│ 8│  9│10│ 11│12│
+╰─────────────────────────────────┴───┴──┴───┴──┴───┴──╯
+])
+AT_CLEANUP
+
+AT_SETUP([CTABLES summary functions])
+AT_CHECK([ln $top_srcdir/examples/nhtsa.sav . || cp $top_srcdir/examples/nhtsa.sav .])
+AT_DATA([ctables.sps],
+[[GET 'nhtsa.sav'.
+CTABLES
+    /TABLE region > qnd5 + qnd6_1 BY qnd7a + agegroup BY qns3a[COUNT, ROWPCT, COLPCT, SUBTABLEPCT]
+    /SLABELS POSITION=ROW.
+]])
+AT_CHECK([pspp ctables.sps --table-look="$builddir"/all-layers.stt -O box=unicode -O width=120], [0], [])
+AT_CLEANUP
+