LOGISTIC REGRESSION: Improve error messages and coding style.
[pspp] / tests / language / stats / glm.at
index 564c8dee402083253fe4202397f5f16908debc57..618d2a1069a83062ef3f4af981e236cab7dc99f4 100644 (file)
@@ -1,16 +1,16 @@
 dnl PSPP - a program for statistical analysis.
 dnl Copyright (C) 2017 Free Software Foundation, Inc.
-dnl 
+dnl
 dnl This program is free software: you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
 dnl the Free Software Foundation, either version 3 of the License, or
 dnl (at your option) any later version.
-dnl 
+dnl
 dnl This program is distributed in the hope that it will be useful,
 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 dnl GNU General Public License for more details.
-dnl 
+dnl
 dnl You should have received a copy of the GNU General Public License
 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
 dnl
@@ -75,7 +75,7 @@ glm y by   b a c
 AT_CHECK([pspp -O format=csv latin.sps | sed 's/329.62[[678]]/329.62/'], [0],
   [dnl
 Table: Tests of Between-Subjects Effects
-Source,Type III Sum of Squares,df,Mean Square,F,Sig.
+,Type III Sum Of Squares,df,Mean Square,F,Sig.
 Corrected Model,263.064,15,17.538,5.269,.000
 Intercept,815.103,1,815.103,244.910,.000
 Factor A,78.869,5,15.774,4.739,.005
@@ -127,12 +127,12 @@ glm points by Factor0 Factor1
 AT_CHECK([pspp -O format=csv 2by2.sps ], [0],
   [dnl
 Table: Tests of Between-Subjects Effects
-Source,Type III Sum of Squares,df,Mean Square,F,Sig.
+,Type III Sum Of Squares,df,Mean Square,F,Sig.
 Corrected Model,8667.053,3,2889.018,5.043,.012
 Intercept,2256018.640,1,2256018.640,3937.693,.000
 Factor0,313.394,1,313.394,.547,.470
 Factor1,5157.508,1,5157.508,9.002,.008
-Factor0 * Factor1,3196.150,1,3196.150,5.579,.031
+Factor0 × Factor1,3196.150,1,3196.150,5.579,.031
 Error,9166.865,16,572.929,,
 Total,2273852.559,20,,,
 Corrected Total,17833.918,19,,,
@@ -144,7 +144,7 @@ AT_CLEANUP
 AT_SETUP([GLM Type I and II Sums of Squares])
 AT_KEYWORDS([categorical categoricals])
 
-dnl  The following example comes from 
+dnl  The following example comes from
 dnl  http://www.uvm.edu/~dhowell/StatPages/More_Stuff/Type1-3.pdf
 AT_DATA([data-inc.sps], [dnl
 set decimal = dot.
@@ -225,23 +225,21 @@ glm dv by Agrp Bgrp
 AT_CHECK([pspp -O format=csv type1.sps], [0],
   [dnl
 Table: Tests of Between-Subjects Effects
-Source,Type I Sum of Squares,df,Mean Square,F,Sig.
+,Type I Sum Of Squares,df,Mean Square,F,Sig.
 Corrected Model,216.017,7,30.860,5.046,.001
-Intercept,,,,,
 Agrp,9.579,1,9.579,1.566,.220
 Bgrp,186.225,3,62.075,10.151,.000
-Agrp * Bgrp,20.212,3,6.737,1.102,.364
+Agrp × Bgrp,20.212,3,6.737,1.102,.364
 Error,183.457,30,6.115,,
 Total,3810.000,38,,,
 Corrected Total,399.474,37,,,
 
 Table: Tests of Between-Subjects Effects
-Source,Type I Sum of Squares,df,Mean Square,F,Sig.
+,Type I Sum Of Squares,df,Mean Square,F,Sig.
 Corrected Model,216.017,7,30.860,5.046,.001
-Intercept,,,,,
 Bgrp,193.251,3,64.417,10.534,.000
 Agrp,2.553,1,2.553,.418,.523
-Bgrp * Agrp,20.212,3,6.737,1.102,.364
+Bgrp × Agrp,20.212,3,6.737,1.102,.364
 Error,183.457,30,6.115,,
 Total,3810.000,38,,,
 Corrected Total,399.474,37,,,
@@ -260,12 +258,11 @@ glm dv by Agrp Bgrp
 AT_CHECK([pspp -O format=csv type2.sps], [0],
   [dnl
 Table: Tests of Between-Subjects Effects
-Source,Type II Sum of Squares,df,Mean Square,F,Sig.
+,Type II Sum Of Squares,df,Mean Square,F,Sig.
 Corrected Model,216.017,7,30.860,5.046,.001
-Intercept,,,,,
 Agrp,2.553,1,2.553,.418,.523
 Bgrp,186.225,3,62.075,10.151,.000
-Agrp * Bgrp,20.212,3,6.737,1.102,.364
+Agrp × Bgrp,20.212,3,6.737,1.102,.364
 Error,183.457,30,6.115,,
 Total,3810.000,38,,,
 Corrected Total,399.474,37,,,
@@ -278,7 +275,7 @@ AT_CLEANUP
 AT_SETUP([GLM excluded intercept])
 AT_KEYWORDS([categorical categoricals])
 
-dnl  The following example comes from 
+dnl  The following example comes from
 dnl
 dnl Rudolf N. Cardinal
 dnl Graduate-level statistics for psychology and neuroscience
@@ -328,14 +325,14 @@ GLM depvar by A
 AT_CHECK([pspp -O format=csv intercept-exclude.sps], [0],
   [dnl
 Table: Tests of Between-Subjects Effects
-Source,Type III Sum of Squares,df,Mean Square,F,Sig.
+,Type III Sum Of Squares,df,Mean Square,F,Sig.
 Model,1636.826,2,818.413,43.556,.000
 A,1636.826,2,818.413,43.556,.000
 Error,338.216,18,18.790,,
 Total,1975.042,20,,,
 
 Table: Tests of Between-Subjects Effects
-Source,Type III Sum of Squares,df,Mean Square,F,Sig.
+,Type III Sum Of Squares,df,Mean Square,F,Sig.
 Corrected Model,98.568,1,98.568,5.246,.034
 Intercept,1538.258,1,1538.258,81.867,.000
 A,98.568,1,98.568,5.246,.034
@@ -405,7 +402,7 @@ glm y by   b a c
 
 AT_CHECK([pspp -O format=csv glm-miss.sps], [0],  [dnl
 Table: Tests of Between-Subjects Effects
-Source,Type III Sum of Squares,df,Mean Square,F,Sig.
+,Type III Sum Of Squares,df,Mean Square,F,Sig.
 Corrected Model,251.621,14,17.973,4.969,.002
 Intercept,628.376,1,628.376,173.737,.000
 a,72.929,4,18.232,5.041,.009
@@ -432,7 +429,7 @@ glm y by   b a c
 
 AT_CHECK([pspp -O format=csv glm-miss2.sps], [0],  [dnl
 Table: Tests of Between-Subjects Effects
-Source,Type III Sum of Squares,df,Mean Square,F,Sig.
+,Type III Sum Of Squares,df,Mean Square,F,Sig.
 Corrected Model,251.621,14,17.973,4.969,.002
 Intercept,628.376,1,628.376,173.737,.000
 a,72.929,4,18.232,5.041,.009
@@ -462,7 +459,7 @@ glm y by   b a c
 
 AT_CHECK([pspp -O format=csv glm-miss3.sps], [0],  [dnl
 Table: Tests of Between-Subjects Effects
-Source,Type III Sum of Squares,df,Mean Square,F,Sig.
+,Type III Sum Of Squares,df,Mean Square,F,Sig.
 Corrected Model,251.621,14,17.973,4.969,.002
 Intercept,628.376,1,628.376,173.737,.000
 a,72.929,4,18.232,5.041,.009
@@ -475,3 +472,99 @@ Corrected Total,305.874,29,,,
 
 AT_CLEANUP
 
+AT_SETUP([GLM syntax errors])
+AT_DATA([glm.sps], [dnl
+DATA LIST LIST NOTABLE /x y z.
+GLM **.
+GLM x **.
+GLM x BY **.
+GLM x BY y.
+GLM x y BY z.
+GLM x BY y/MISSING=**.
+GLM x BY y/INTERCEPT=**.
+GLM x BY y/CRITERIA=**.
+GLM x BY y/CRITERIA=ALPHA **.
+GLM x BY y/CRITERIA=ALPHA(**).
+GLM x BY y/CRITERIA=ALPHA(123 **).
+GLM x BY y/METHOD=**.
+GLM x BY y/METHOD=SSTYPE **.
+GLM x BY y/METHOD=SSTYPE(4).
+GLM x BY y/METHOD=SSTYPE(2 **).
+GLM x BY y/DESIGN=**.
+GLM x BY y/DESIGN=x(y).
+GLM x BY y/DESIGN=x WITHIN y.
+])
+AT_CHECK([pspp -O format=csv glm.sps], [1], [dnl
+"glm.sps:2.5-2.6: error: GLM: Syntax error expecting variable name.
+    2 | GLM **.
+      |     ^~"
+
+"glm.sps:3.7-3.8: error: GLM: Syntax error expecting `BY'.
+    3 | GLM x **.
+      |       ^~"
+
+"glm.sps:4.10-4.11: error: GLM: Syntax error expecting variable name.
+    4 | GLM x BY **.
+      |          ^~"
+
+"glm.sps:6.1-6.3: error: GLM: Syntax error expecting `BEGIN DATA'.
+    6 | GLM x y BY z.
+      | ^~~"
+
+"glm.sps:6.1-6.3: error: GLM: Syntax error expecting end of command.
+    6 | GLM x y BY z.
+      | ^~~"
+
+"glm.sps:7.20-7.21: error: GLM: Syntax error expecting INCLUDE or EXCLUDE.
+    7 | GLM x BY y/MISSING=**.
+      |                    ^~"
+
+"glm.sps:8.22-8.23: error: GLM: Syntax error expecting INCLUDE or EXCLUDE.
+    8 | GLM x BY y/INTERCEPT=**.
+      |                      ^~"
+
+"glm.sps:9.21-9.22: error: GLM: Syntax error expecting `ALPHA@{:@'.
+    9 | GLM x BY y/CRITERIA=**.
+      |                     ^~"
+
+"glm.sps:10.21-10.28: error: GLM: Syntax error expecting `ALPHA@{:@'.
+   10 | GLM x BY y/CRITERIA=ALPHA **.
+      |                     ^~~~~~~~"
+
+"glm.sps:11.27-11.28: error: GLM: Syntax error expecting number.
+   11 | GLM x BY y/CRITERIA=ALPHA(**).
+      |                           ^~"
+
+"glm.sps:12.31-12.32: error: GLM: Syntax error expecting `@:}@'.
+   12 | GLM x BY y/CRITERIA=ALPHA(123 **).
+      |                               ^~"
+
+"glm.sps:13.19-13.20: error: GLM: Syntax error expecting `SSTYPE@{:@'.
+   13 | GLM x BY y/METHOD=**.
+      |                   ^~"
+
+"glm.sps:14.19-14.27: error: GLM: Syntax error expecting `SSTYPE@{:@'.
+   14 | GLM x BY y/METHOD=SSTYPE **.
+      |                   ^~~~~~~~~"
+
+"glm.sps:15.26: error: GLM: Syntax error expecting integer between 1 and 3 for SSTYPE.
+   15 | GLM x BY y/METHOD=SSTYPE(4).
+      |                          ^"
+
+"glm.sps:16.28-16.29: error: GLM: Syntax error expecting `@:}@'.
+   16 | GLM x BY y/METHOD=SSTYPE(2 **).
+      |                            ^~"
+
+"glm.sps:17.19-17.20: error: GLM: Syntax error expecting variable name.
+   17 | GLM x BY y/DESIGN=**.
+      |                   ^~"
+
+"glm.sps:18.20: error: GLM: Nested variables are not yet implemented.
+   18 | GLM x BY y/DESIGN=x(y).
+      |                    ^"
+
+"glm.sps:19.21-19.26: error: GLM: Nested variables are not yet implemented.
+   19 | GLM x BY y/DESIGN=x WITHIN y.
+      |                     ^~~~~~"
+])
+AT_CLEANUP