More tests for totals and subtotals, with fixes.
[pspp] / tests / language / stats / ctables.at
index be67e3e56947697188ec9551e39476811257d1ea..43413ac21f2d2fb35dd2ef36726366c7f99f5aa6 100644 (file)
@@ -155,80 +155,98 @@ AT_SETUP([CTABLES simple nesting])
 AT_CHECK([ln $top_srcdir/examples/nhtsa.sav . || cp $top_srcdir/examples/nhtsa.sav .])
 AT_DATA([ctables.sps],
 [[GET 'nhtsa.sav'.
-CTABLES /TABLE (qn105ba + qn105bb + qn105bc + qn105bd) > qns3a [TABLEPCT PCT8.0]
-  /CATEGORIES VARIABLES=qns3a TOTAL=NO.
+CTABLES /TABLE (qn105ba + qn105bb + qn105bc + qn105bd) > qns3a [COUNT, TABLEPCT PCT8.0]
+  /CATEGORIES VARIABLES=qns3a TOTAL=YES.
 CTABLES /TABLE qns3a > (qn105ba + qn105bb + qn105bc + qn105bd) [TABLEPCT PCT8.0]
-  /CATEGORIES VARIABLES=qns3a TOTAL=NO
+  /CATEGORIES VARIABLES=qns3a TOTAL=YES
   /CLABELS ROW=OPPOSITE.
 ]])
-dnl XXX With TOTAL=YES above, the totals get included in the denominator so that
-dnl the percentages are about half of the correct values.
 AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
                                   Custom Tables
-╭───────────────────────────────────────────────────────────────────────┬──────╮
-│                                                                       │ Table│
-│                                                                       │   %  │
-├───────────────────────────────────────────────────────────────────────┼──────┤
-│105b. How likely is it that drivers who     Almost      S3a.     Male  │    4%│
-│have had too much to drink to drive safely  certain     GENDER:  Female│    6%│
-│will A. Get stopped by the police?         ╶───────────────────────────┼──────┤
-│                                            Very likely S3a.     Male  │   10%│
-│                                                        GENDER:  Female│   12%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │   17%│
-│                                            likely      GENDER:  Female│   23%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │    9%│
-│                                            unlikely    GENDER:  Female│   10%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Very        S3a.     Male  │    5%│
-│                                            unlikely    GENDER:  Female│    4%│
-├───────────────────────────────────────────────────────────────────────┼──────┤
-│105b. How likely is it that drivers who     Almost      S3a.     Male  │    6%│
-│have had too much to drink to drive safely  certain     GENDER:  Female│   10%│
-│will B. Have an accident?                  ╶───────────────────────────┼──────┤
-│                                            Very likely S3a.     Male  │   16%│
-│                                                        GENDER:  Female│   25%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │   17%│
-│                                            likely      GENDER:  Female│   18%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │    4%│
-│                                            unlikely    GENDER:  Female│    2%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Very        S3a.     Male  │    1%│
-│                                            unlikely    GENDER:  Female│    1%│
-├───────────────────────────────────────────────────────────────────────┼──────┤
-│105b. How likely is it that drivers who     Almost      S3a.     Male  │    8%│
-│have had too much to drink to drive safely  certain     GENDER:  Female│    9%│
-│will C. Be convicted for drunk driving?    ╶───────────────────────────┼──────┤
-│                                            Very likely S3a.     Male  │   14%│
-│                                                        GENDER:  Female│   15%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │   12%│
-│                                            likely      GENDER:  Female│   18%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │    7%│
-│                                            unlikely    GENDER:  Female│    8%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Very        S3a.     Male  │    4%│
-│                                            unlikely    GENDER:  Female│    5%│
-├───────────────────────────────────────────────────────────────────────┼──────┤
-│105b. How likely is it that drivers who     Almost      S3a.     Male  │    7%│
-│have had too much to drink to drive safely  certain     GENDER:  Female│    9%│
-│will D. Be arrested for drunk driving?     ╶───────────────────────────┼──────┤
-│                                            Very likely S3a.     Male  │   12%│
-│                                                        GENDER:  Female│   15%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │   14%│
-│                                            likely      GENDER:  Female│   19%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Somewhat    S3a.     Male  │    8%│
-│                                            unlikely    GENDER:  Female│    8%│
-│                                           ╶───────────────────────────┼──────┤
-│                                            Very        S3a.     Male  │    4%│
-│                                            unlikely    GENDER:  Female│    4%│
-╰───────────────────────────────────────────────────────────────────────┴──────╯
+╭─────────────────────────────────────────────────────────────────┬─────┬──────╮
+│                                                                 │     │ Table│
+│                                                                 │Count│   %  │
+├─────────────────────────────────────────────────────────────────┼─────┼──────┤
+│105b. How likely is it that drivers    Almost     S3a.     Male  │  297│    4%│
+│who have had too much to drink to      certain    GENDER:  Female│  403│    6%│
+│drive safely will A. Get stopped by                        Total │  700│   10%│
+│the police?                           ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  660│   10%│
+│                                       likely     GENDER:  Female│  842│   12%│
+│                                                           Total │ 1502│   22%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │ 1174│   17%│
+│                                       likely     GENDER:  Female│ 1589│   23%│
+│                                                           Total │ 2763│   40%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  640│    9%│
+│                                       unlikely   GENDER:  Female│  667│   10%│
+│                                                           Total │ 1307│   19%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  311│    5%│
+│                                       unlikely   GENDER:  Female│  298│    4%│
+│                                                           Total │  609│    9%│
+├─────────────────────────────────────────────────────────────────┼─────┼──────┤
+│105b. How likely is it that drivers    Almost     S3a.     Male  │  429│    6%│
+│who have had too much to drink to      certain    GENDER:  Female│  671│   10%│
+│drive safely will B. Have an accident?                     Total │ 1100│   16%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │ 1104│   16%│
+│                                       likely     GENDER:  Female│ 1715│   25%│
+│                                                           Total │ 2819│   41%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │ 1203│   17%│
+│                                       likely     GENDER:  Female│ 1214│   18%│
+│                                                           Total │ 2417│   35%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  262│    4%│
+│                                       unlikely   GENDER:  Female│  168│    2%│
+│                                                           Total │  430│    6%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │   81│    1%│
+│                                       unlikely   GENDER:  Female│   59│    1%│
+│                                                           Total │  140│    2%│
+├─────────────────────────────────────────────────────────────────┼─────┼──────┤
+│105b. How likely is it that drivers    Almost     S3a.     Male  │  539│    8%│
+│who have had too much to drink to      certain    GENDER:  Female│  610│    9%│
+│drive safely will C. Be convicted for                      Total │ 1149│   17%│
+│drunk driving?                        ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  988│   14%│
+│                                       likely     GENDER:  Female│ 1049│   15%│
+│                                                           Total │ 2037│   30%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  822│   12%│
+│                                       likely     GENDER:  Female│ 1210│   18%│
+│                                                           Total │ 2032│   30%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  446│    7%│
+│                                       unlikely   GENDER:  Female│  548│    8%│
+│                                                           Total │  994│   15%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  268│    4%│
+│                                       unlikely   GENDER:  Female│  354│    5%│
+│                                                           Total │  622│    9%│
+├─────────────────────────────────────────────────────────────────┼─────┼──────┤
+│105b. How likely is it that drivers    Almost     S3a.     Male  │  498│    7%│
+│who have had too much to drink to      certain    GENDER:  Female│  603│    9%│
+│drive safely will D. Be arrested for                       Total │ 1101│   16%│
+│drunk driving?                        ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  805│   12%│
+│                                       likely     GENDER:  Female│ 1029│   15%│
+│                                                           Total │ 1834│   27%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  975│   14%│
+│                                       likely     GENDER:  Female│ 1332│   19%│
+│                                                           Total │ 2307│   34%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Somewhat   S3a.     Male  │  535│    8%│
+│                                       unlikely   GENDER:  Female│  560│    8%│
+│                                                           Total │ 1095│   16%│
+│                                      ╶──────────────────────────┼─────┼──────┤
+│                                       Very       S3a.     Male  │  270│    4%│
+│                                       unlikely   GENDER:  Female│  279│    4%│
+│                                                           Total │  549│    8%│
+╰─────────────────────────────────────────────────────────────────┴─────┴──────╯
 
                                   Custom Tables
 ╭─────────────────────────────────┬────────┬──────┬─────────┬─────────┬────────╮
@@ -253,6 +271,14 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 │               drive safely will │        │      │         │         │        │
 │               A. Get stopped by │        │      │         │         │        │
 │               the police?       │        │      │         │         │        │
+│       ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
+│        Total  105b. How likely  │     10%│   22%│      40%│      19%│      9%│
+│               is it that drivers│        │      │         │         │        │
+│               who have had too  │        │      │         │         │        │
+│               much to drink to  │        │      │         │         │        │
+│               drive safely will │        │      │         │         │        │
+│               A. Get stopped by │        │      │         │         │        │
+│               the police?       │        │      │         │         │        │
 ├─────────────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
 │S3a.    Male   105b. How likely  │      6%│   16%│      17%│       4%│      1%│
 │GENDER:        is it that drivers│        │      │         │         │        │
@@ -269,6 +295,14 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 │               drive safely will │        │      │         │         │        │
 │               B. Have an        │        │      │         │         │        │
 │               accident?         │        │      │         │         │        │
+│       ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
+│        Total  105b. How likely  │     16%│   41%│      35%│       6%│      2%│
+│               is it that drivers│        │      │         │         │        │
+│               who have had too  │        │      │         │         │        │
+│               much to drink to  │        │      │         │         │        │
+│               drive safely will │        │      │         │         │        │
+│               B. Have an        │        │      │         │         │        │
+│               accident?         │        │      │         │         │        │
 ├─────────────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
 │S3a.    Male   105b. How likely  │      8%│   14%│      12%│       7%│      4%│
 │GENDER:        is it that drivers│        │      │         │         │        │
@@ -285,6 +319,14 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 │               drive safely will │        │      │         │         │        │
 │               C. Be convicted   │        │      │         │         │        │
 │               for drunk driving?│        │      │         │         │        │
+│       ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
+│        Total  105b. How likely  │     17%│   30%│      30%│      15%│      9%│
+│               is it that drivers│        │      │         │         │        │
+│               who have had too  │        │      │         │         │        │
+│               much to drink to  │        │      │         │         │        │
+│               drive safely will │        │      │         │         │        │
+│               C. Be convicted   │        │      │         │         │        │
+│               for drunk driving?│        │      │         │         │        │
 ├─────────────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
 │S3a.    Male   105b. How likely  │      7%│   12%│      14%│       8%│      4%│
 │GENDER:        is it that drivers│        │      │         │         │        │
@@ -301,6 +343,14 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 │               drive safely will │        │      │         │         │        │
 │               D. Be arrested for│        │      │         │         │        │
 │               drunk driving?    │        │      │         │         │        │
+│       ╶─────────────────────────┼────────┼──────┼─────────┼─────────┼────────┤
+│        Total  105b. How likely  │     16%│   27%│      34%│      16%│      8%│
+│               is it that drivers│        │      │         │         │        │
+│               who have had too  │        │      │         │         │        │
+│               much to drink to  │        │      │         │         │        │
+│               drive safely will │        │      │         │         │        │
+│               D. Be arrested for│        │      │         │         │        │
+│               drunk driving?    │        │      │         │         │        │
 ╰─────────────────────────────────┴────────┴──────┴─────────┴─────────┴────────╯
 ])
 AT_CLEANUP
@@ -478,3 +528,135 @@ AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
 ╰────────────────────────────────────────────────────────────────────────┴─────╯
 ])
 AT_CLEANUP
+
+AT_SETUP([CTABLES simple totals])
+AT_CHECK([ln $top_srcdir/examples/nhtsa.sav . || cp $top_srcdir/examples/nhtsa.sav .])
+AT_DATA([ctables.sps],
+[[GET 'nhtsa.sav'.
+CTABLES /TABLE=qn17
+    /CATEGORIES VARIABLES=qn17 TOTAL=YES LABEL='Number responding'.
+CTABLES /TABLE=region > qn18 [MEAN, COUNT]
+    /CATEGORIES VARIABLES=region TOTAL=YES LABEL='All regions'.
+]])
+AT_CHECK([pspp ctables.sps -O box=unicode -O width=80], [0], [dnl
+                                  Custom Tables
+╭────────────────────────────────────────────────────────────────────────┬─────╮
+│                                                                        │Count│
+├────────────────────────────────────────────────────────────────────────┼─────┤
+│17. When you drink alcoholic beverages, which ONE of  OR, something else│    2│
+│the following beverages do you drink MOST OFTEN?      Beer              │ 1073│
+│                                                      Light beer        │  620│
+│                                                      Wine              │ 1418│
+│                                                      Wine coolers      │  137│
+│                                                      Hard liquor or    │  888│
+│                                                      mixed drinks      │     │
+│                                                      Flavored malt     │   83│
+│                                                      drinks            │     │
+│                                                      Number responding │ 4221│
+╰────────────────────────────────────────────────────────────────────────┴─────╯
+
+                                  Custom Tables
+╭───────────────────────────────────────────────────────────────────┬────┬─────╮
+│                                                                   │Mean│Count│
+├───────────────────────────────────────────────────────────────────┼────┼─────┤
+│Region NE       18. When you drink ANSWERFROM(QN17R1), about how   │4.36│  949│
+│                many ANSWERFROM(QN17R2) do you usually drink per   │    │     │
+│                sitting?                                           │    │     │
+│      ╶────────────────────────────────────────────────────────────┼────┼─────┤
+│       MW       18. When you drink ANSWERFROM(QN17R1), about how   │4.67│ 1027│
+│                many ANSWERFROM(QN17R2) do you usually drink per   │    │     │
+│                sitting?                                           │    │     │
+│      ╶────────────────────────────────────────────────────────────┼────┼─────┤
+│       S        18. When you drink ANSWERFROM(QN17R1), about how   │4.71│ 1287│
+│                many ANSWERFROM(QN17R2) do you usually drink per   │    │     │
+│                sitting?                                           │    │     │
+│      ╶────────────────────────────────────────────────────────────┼────┼─────┤
+│       W        18. When you drink ANSWERFROM(QN17R1), about how   │4.69│  955│
+│                many ANSWERFROM(QN17R2) do you usually drink per   │    │     │
+│                sitting?                                           │    │     │
+│      ╶────────────────────────────────────────────────────────────┼────┼─────┤
+│       All      18. When you drink ANSWERFROM(QN17R1), about how   │4.62│ 4218│
+│       regions  many ANSWERFROM(QN17R2) do you usually drink per   │    │     │
+│                sitting?                                           │    │     │
+╰───────────────────────────────────────────────────────────────────┴────┴─────╯
+])
+AT_CLEANUP
+
+AT_SETUP([CTABLES subtotals])
+AT_CHECK([ln $top_srcdir/examples/nhtsa.sav . || cp $top_srcdir/examples/nhtsa.sav .])
+AT_DATA([ctables.sps],
+[[GET 'nhtsa.sav'.
+CTABLES /TABLE=qn105ba BY qns1
+    /CATEGORIES VARIABLES=qns1 [1, 2, SUBTOTAL, 3, 4, 5, SUBTOTAL].
+CTABLES /TABLE=qn105ba [COLPCT] BY qns1
+    /CATEGORIES VARIABLES=qn105ba [1, 2, 3, SUBTOTAL, 4, 5, SUBTOTAL].
+CTABLES /TABLE=qn105ba BY qns1
+    /CATEGORIES VARIABLES=qn105ba [1, 2, 3, SUBTOTAL, 4, 5, SUBTOTAL]
+    /CATEGORIES VARIABLES=qns1 [1, 2, SUBTOTAL, 3, 4, 5, SUBTOTAL].
+]])
+AT_CHECK([pspp ctables.sps -O box=unicode -O width=120], [0], [dnl
+                                                      Custom Tables
+╭─────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────╮
+│                                                         │ S1. Including yourself, how many members of this household │
+│                                                         │                    are age 16 or older?                    │
+│                                                         ├───────┬───────┬─────────┬───────┬────────┬──────┬──────────┤
+│                                                         │   1   │   2   │ Subtotal│   3   │    4   │   5  │ Subtotal │
+│                                                         ├───────┼───────┼─────────┼───────┼────────┼──────┼──────────┤
+│                                                         │ Count │ Count │  Count  │ Count │  Count │ Count│   Count  │
+├─────────────────────────────────────────────────────────┼───────┼───────┼─────────┼───────┼────────┼──────┼──────────┤
+│105b. How likely is it that drivers who have  Almost     │    147│    246│      393│     62│      19│    11│        92│
+│had too much to drink to drive safely will A. certain    │       │       │         │       │        │      │          │
+│Get stopped by the police?                    Very likely│    384│    552│      936│    120│      51│    14│       185│
+│                                              Somewhat   │    590│   1249│     1839│    193│      72│    20│       285│
+│                                              likely     │       │       │         │       │        │      │          │
+│                                              Somewhat   │    278│    647│      925│     84│      32│     6│       122│
+│                                              unlikely   │       │       │         │       │        │      │          │
+│                                              Very       │    141│    290│      431│     41│      18│     4│        63│
+│                                              unlikely   │       │       │         │       │        │      │          │
+╰─────────────────────────────────────────────────────────┴───────┴───────┴─────────┴───────┴────────┴──────┴──────────╯
+
+                                                      Custom Tables
+╭────────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────╮
+│                                                            │     S1. Including yourself, how many members of this    │
+│                                                            │              household are age 16 or older?             │
+│                                                            ├─────────┬────────┬─────────┬────────┬─────────┬─────────┤
+│                                                            │    1    │    2   │    3    │    4   │    5    │6 or more│
+│                                                            ├─────────┼────────┼─────────┼────────┼─────────┼─────────┤
+│                                                            │ Column %│Column %│ Column %│Column %│ Column %│ Column %│
+├────────────────────────────────────────────────────────────┼─────────┼────────┼─────────┼────────┼─────────┼─────────┤
+│105b. How likely is it that drivers who have had Almost     │     9.5%│    8.2%│    12.4%│    9.9%│    20.0%│    23.8%│
+│too much to drink to drive safely will A. Get    certain    │         │        │         │        │         │         │
+│stopped by the police?                           Very likely│    24.9%│   18.5%│    24.0%│   26.6%│    25.5%│    33.3%│
+│                                                 Somewhat   │    38.3%│   41.9%│    38.6%│   37.5%│    36.4%│    23.8%│
+│                                                 likely     │         │        │         │        │         │         │
+│                                                 Subtotal   │    72.8%│   68.6%│    75.0%│   74.0%│    81.8%│    81.0%│
+│                                                 Somewhat   │    18.1%│   21.7%│    16.8%│   16.7%│    10.9%│     9.5%│
+│                                                 unlikely   │         │        │         │        │         │         │
+│                                                 Very       │     9.2%│    9.7%│     8.2%│    9.4%│     7.3%│     9.5%│
+│                                                 unlikely   │         │        │         │        │         │         │
+│                                                 Subtotal   │    27.2%│   31.4%│    25.0%│   26.0%│    18.2%│    19.0%│
+╰────────────────────────────────────────────────────────────┴─────────┴────────┴─────────┴────────┴─────────┴─────────╯
+
+                                                      Custom Tables
+╭─────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────╮
+│                                                         │ S1. Including yourself, how many members of this household │
+│                                                         │                    are age 16 or older?                    │
+│                                                         ├───────┬───────┬─────────┬───────┬────────┬──────┬──────────┤
+│                                                         │   1   │   2   │ Subtotal│   3   │    4   │   5  │ Subtotal │
+│                                                         ├───────┼───────┼─────────┼───────┼────────┼──────┼──────────┤
+│                                                         │ Count │ Count │  Count  │ Count │  Count │ Count│   Count  │
+├─────────────────────────────────────────────────────────┼───────┼───────┼─────────┼───────┼────────┼──────┼──────────┤
+│105b. How likely is it that drivers who have  Almost     │    147│    246│      393│     62│      19│    11│        92│
+│had too much to drink to drive safely will A. certain    │       │       │         │       │        │      │          │
+│Get stopped by the police?                    Very likely│    384│    552│      936│    120│      51│    14│       185│
+│                                              Somewhat   │    590│   1249│     1839│    193│      72│    20│       285│
+│                                              likely     │       │       │         │       │        │      │          │
+│                                              Subtotal   │   1121│   2047│     3168│    375│     142│    45│       562│
+│                                              Somewhat   │    278│    647│      925│     84│      32│     6│       122│
+│                                              unlikely   │       │       │         │       │        │      │          │
+│                                              Very       │    141│    290│      431│     41│      18│     4│        63│
+│                                              unlikely   │       │       │         │       │        │      │          │
+│                                              Subtotal   │    419│    937│     1356│    125│      50│    10│       185│
+╰─────────────────────────────────────────────────────────┴───────┴───────┴─────────┴───────┴────────┴──────┴──────────╯
+])
+AT_CLEANUP