CTABLES infer variable level
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 13 Aug 2022 04:18:41 +0000 (21:18 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 13 Aug 2022 04:18:41 +0000 (21:18 -0700)
tests/language/stats/ctables.at

index 4bdd1744ff72901981e824a10f45499c12de1396..62efd1b0560e0e84f9b23a0f1d3e612323ecb0c1 100644 (file)
@@ -1,15 +1,12 @@
 AT_BANNER([CTABLES])
 
 dnl Features not yet tested:
-dnl - Preprocessing to distinguish categorical from scale.
-dnl - Testing details of missing value handling in summaries.
-dnl - Test WEIGHT and adjustment weights.
 dnl - Summary functions:
 dnl   * Separate summary functions for totals and subtotals.
-dnl   * )CILEVEL in summary label specification
-dnl - Summary functions:
 dnl   * U-prefix for unweighted summaries.
 dnl   * areaPCT.SUM and UareaPCT.SUM functions.
+dnl   * WEIGHT and adjustment weights.
+dnl   * details of missing value handling in summaries.
 dnl - Definition of columns/rows when labels are rotated from one axis to another.
 dnl
 dnl Not for v1:
@@ -21,6 +18,8 @@ dnl - COMPARETEST
 dnl - Summary functions:
 dnl   * .LCL and .UCL suffixes.
 dnl   * .SE suffixes.
+dnl - Summary functions:
+dnl   * )CILEVEL in summary label specification
 dnl - CATEGORIES:
 dnl   * Data-dependent sorting.
 
@@ -3648,3 +3647,158 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 ╰────────────────────────────────────────────────────────────────────────┴─────╯
 ])
 AT_CLEANUP
+
+AT_SETUP([CTABLES variable level inference])
+AT_DATA([data.txt], [dnl
+dnl n1 has 10 unique small values -> nominal.
+dnl n2 has 23 unique small values -> nominal.
+dnl n3 is all missing -> nominal.
+dnl s1 has 24 unique small values -> scale.
+dnl s2 has one negative value -> scale.
+dnl s3 has one non-integer value -> scale.
+dnl s4 has no valid values less than 10 -> scale.
+dnl s5 has no valid values less than 10,000 -> scale.
+1  1  . 1  1  1    10 10001
+2  2  . 2  2  2    11 10002
+3  3  . 3  3  3    12 10003
+4  4  . 4  4  4    13 10004
+5  5  . 5  5  5    14 10005
+6  6  . 6  6  6    15 10006
+7  7  . 7  7  7    16 10007
+8  8  . 8  8  8    17 10008
+9  9  . 9  9  9    18 10009
+10 10 . 10 10 10.5 19 110000
+1  11 . 11 -1 1    11 10001
+2  12 . 12 2  2    12 10002
+3  13 . 13 3  3    13 10003
+4  14 . 14 4  4    14 10004
+5  15 . 15 5  5    15 10005
+6  16 . 16 6  6    16 10006
+7  17 . 17 7  7    17 10007
+8  18 . 18 8  8    18 10008
+9  19 . 19 9  9    19 10009
+1  20 . 20 1  1    20 10001
+2  21 . 21 2  2    21 10002
+3  22 . 22 3  3    22 10003
+4  23 . 23 4  4    23 10004
+5  23 . 24 5  5    24 10005
+6  23 . 24 6  6    25 10006
+])
+
+AT_DATA([ctables.sps], [dnl
+DATA LIST LIST file='data.txt' NOTABLE /n1 to n3 s1 to s5.
+
+* Nominal formats (copied from data that will default to scale).
+COMPUTE n4=s1.
+COMPUTE n5=s1.
+FORMATS n4(WKDAY5) n5(MONTH5).
+
+* Scale formats (copied from data that will default to nominal).
+COMPUTE s6=n1.
+COMPUTE s7=n1.
+COMPUTE s8=n1.
+FORMATS s6(DOLLAR6.2) s7(CCA8.2) s8(DATETIME17).
+
+STRING string(A8).
+
+DISPLAY DICTIONARY.
+CTABLES /TABLE n1 + n2 + n3 + string + s1 + s2 + s3 + s4 + s5.
+DISPLAY DICTIONARY.
+])
+
+AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
+                                    Variables
+╭──────┬────────┬──────────────┬─────┬─────┬─────────┬────────────┬────────────╮
+│      │        │  Measurement │     │     │         │            │            │
+│Name  │Position│     Level    │ Role│Width│Alignment│Print Format│Write Format│
+├──────┼────────┼──────────────┼─────┼─────┼─────────┼────────────┼────────────┤
+│n1    │       1│Unknown       │Input│    8│Right    │F8.2        │F8.2        │
+│n2    │       2│Unknown       │Input│    8│Right    │F8.2        │F8.2        │
+│n3    │       3│Unknown       │Input│    8│Right    │F8.2        │F8.2        │
+│s1    │       4│Unknown       │Input│    8│Right    │F8.2        │F8.2        │
+│s2    │       5│Unknown       │Input│    8│Right    │F8.2        │F8.2        │
+│s3    │       6│Unknown       │Input│    8│Right    │F8.2        │F8.2        │
+│s4    │       7│Unknown       │Input│    8│Right    │F8.2        │F8.2        │
+│s5    │       8│Unknown       │Input│    8│Right    │F8.2        │F8.2        │
+│n4    │       9│Unknown       │Input│    8│Right    │WKDAY5      │WKDAY5      │
+│n5    │      10│Unknown       │Input│    8│Right    │MONTH5      │MONTH5      │
+│s6    │      11│Unknown       │Input│    8│Right    │DOLLAR6.2   │DOLLAR6.2   │
+│s7    │      12│Unknown       │Input│    8│Right    │CCA8.2      │CCA8.2      │
+│s8    │      13│Unknown       │Input│    8│Right    │DATETIME17.0│DATETIME17.0│
+│string│      14│Nominal       │Input│    8│Left     │A8          │A8          │
+╰──────┴────────┴──────────────┴─────┴─────┴─────────┴────────────┴────────────╯
+
+        Custom Tables
+╭────────────┬─────┬────────╮
+│            │Count│  Mean  │
+├────────────┼─────┼────────┤
+│n1     1.00 │    3│        │
+│       2.00 │    3│        │
+│       3.00 │    3│        │
+│       4.00 │    3│        │
+│       5.00 │    3│        │
+│       6.00 │    3│        │
+│       7.00 │    2│        │
+│       8.00 │    2│        │
+│       9.00 │    2│        │
+│       10.00│    1│        │
+├────────────┼─────┼────────┤
+│n2     1.00 │    1│        │
+│       2.00 │    1│        │
+│       3.00 │    1│        │
+│       4.00 │    1│        │
+│       5.00 │    1│        │
+│       6.00 │    1│        │
+│       7.00 │    1│        │
+│       8.00 │    1│        │
+│       9.00 │    1│        │
+│       10.00│    1│        │
+│       11.00│    1│        │
+│       12.00│    1│        │
+│       13.00│    1│        │
+│       14.00│    1│        │
+│       15.00│    1│        │
+│       16.00│    1│        │
+│       17.00│    1│        │
+│       18.00│    1│        │
+│       19.00│    1│        │
+│       20.00│    1│        │
+│       21.00│    1│        │
+│       22.00│    1│        │
+│       23.00│    3│        │
+├────────────┼─────┼────────┤
+│string      │   25│        │
+├────────────┼─────┼────────┤
+│s1          │     │   12.96│
+├────────────┼─────┼────────┤
+│s2          │     │    4.76│
+├────────────┼─────┼────────┤
+│s3          │     │    4.86│
+├────────────┼─────┼────────┤
+│s4          │     │   16.60│
+├────────────┼─────┼────────┤
+│s5          │     │14004.44│
+╰────────────┴─────┴────────╯
+
+                                    Variables
+╭──────┬────────┬──────────────┬─────┬─────┬─────────┬────────────┬────────────╮
+│      │        │  Measurement │     │     │         │            │            │
+│Name  │Position│     Level    │ Role│Width│Alignment│Print Format│Write Format│
+├──────┼────────┼──────────────┼─────┼─────┼─────────┼────────────┼────────────┤
+│n1    │       1│Nominal       │Input│    8│Right    │F8.2        │F8.2        │
+│n2    │       2│Nominal       │Input│    8│Right    │F8.2        │F8.2        │
+│n3    │       3│Nominal       │Input│    8│Right    │F8.2        │F8.2        │
+│s1    │       4│Scale         │Input│    8│Right    │F8.2        │F8.2        │
+│s2    │       5│Scale         │Input│    8│Right    │F8.2        │F8.2        │
+│s3    │       6│Scale         │Input│    8│Right    │F8.2        │F8.2        │
+│s4    │       7│Scale         │Input│    8│Right    │F8.2        │F8.2        │
+│s5    │       8│Scale         │Input│    8│Right    │F8.2        │F8.2        │
+│n4    │       9│Nominal       │Input│    8│Right    │WKDAY5      │WKDAY5      │
+│n5    │      10│Nominal       │Input│    8│Right    │MONTH5      │MONTH5      │
+│s6    │      11│Scale         │Input│    8│Right    │DOLLAR6.2   │DOLLAR6.2   │
+│s7    │      12│Scale         │Input│    8│Right    │CCA8.2      │CCA8.2      │
+│s8    │      13│Scale         │Input│    8│Right    │DATETIME17.0│DATETIME17.0│
+│string│      14│Nominal       │Input│    8│Left     │A8          │A8          │
+╰──────┴────────┴──────────────┴─────┴─────┴─────────┴────────────┴────────────╯
+])
+AT_CLEANUP