+dnl PSPP - a program for statistical analysis.
+dnl Copyright (C) 2017 Free Software Foundation, Inc.
+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 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 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
AT_BANNER([T-TEST])
AT_SETUP([T-TEST /PAIRS])
Table: Paired Samples Correlations
,,N,Correlation,Sig.
-Pair 1,A & B,5,.92,.03
+Pair 1,A & B,5,.92,.028
Table: Paired Samples Test
,,Paired Differences,,,,,,,
Table: Paired Samples Correlations
,,N,Correlation,Sig.
-Pair 1,a & b,5,.92,.03
-Pair 2,c & d,5,-.92,.03
+Pair 1,a & b,5,.92,.028
+Pair 2,c & d,5,-.92,.028
Table: Paired Samples Test
,,Paired Differences,,,,,,,
end data.
-t-test /MISSING=analysis /PAIRS a c with b d (PAIRED) /CRITERIA=CIN(0.95).
+t-test /MISSING=analysis /PAIRS a c with b d (PAIRED) /CRITERIA=CI(0.95).
])
AT_CHECK([pspp -o missing.csv missing.sps])
t-test /PAIRS a b with c d (PAIRED).
])
+
AT_DATA([expout], [dnl
Table: Reading free-form data from INLINE.
Variable,Format
Table: Paired Samples Correlations
,,N,Correlation,Sig.
-Pair 1,a & c,5,.41,.49
-Pair 2,b & d,5,-.87,.05
+Pair 1,a & c,5,.41,.493
+Pair 2,b & d,5,-.87,.054
Table: Paired Samples Test
,,Paired Differences,,,,,,,
AT_CHECK([cat missing.csv], [0], [expout])
AT_CLEANUP
+
+dnl Tests for a bug in the paired samples T test when weighted
+dnl Thanks to Douglas Bonett for reporting this.
+AT_SETUP([T-TEST weighted paired bug])
+AT_DATA([t-test.sps], [dnl
+DATA LIST notable LIST /x y w *.
+BEGIN DATA.
+1 1 255
+1 2 43
+1 3 216
+2 1 3
+2 2 1
+2 3 12
+END DATA.
+
+WEIGHT BY w.
+
+T-TEST
+ PAIRS = y WITH x (PAIRED)
+ /MISSING=ANALYSIS
+ /CRITERIA=CI(0.95).
+])
+
+AT_CHECK([pspp -O format=csv t-test.sps], [0], [dnl
+Table: Paired Sample Statistics
+,,Mean,N,Std. Deviation,S.E. Mean
+Pair 1,y,1.94,530.00,.96,.04
+,x,1.03,530.00,.17,.01
+
+Table: Paired Samples Correlations
+,,N,Correlation,Sig.
+Pair 1,y & x,530.00,.11,.008
+
+Table: Paired Samples Test
+,,Paired Differences,,,,,,,
+,,,,,95% Confidence Interval of the Difference,,,,
+,,Mean,Std. Deviation,Std. Error Mean,Lower,Upper,t,df,Sig. (2-tailed)
+Pair 1,y - x,.91,.95,.04,.83,.99,22.07,529.00,.000
+])
+
+AT_CLEANUP
+
+
dnl Tests for a bug in the paired samples T test.
dnl Thanks to Mike Griffiths for reporting this problem.
AT_SETUP([T-TEST /PAIRS bug])
,,Levene's Test for Equality of Variances,,t-test for Equality of Means,,,,,,
,,,,,,,,,95% Confidence Interval of the Difference,
,,F,Sig.,t,df,Sig. (2-tailed),Mean Difference,Std. Error Difference,Lower,Upper
-DEP1,Equal variances assumed,.00,1.00,-4.47,8.00,.002,-2.00,.45,-3.03,-.97
+DEP1,Equal variances assumed,.00,1.000,-4.47,8.00,.002,-2.00,.45,-3.03,-.97
,Equal variances not assumed,,,-4.47,8.00,.002,-2.00,.45,-3.03,-.97
-DEP2,Equal variances assumed,.00,1.00,4.47,8.00,.002,2.00,.45,.97,3.03
+DEP2,Equal variances assumed,.00,1.000,4.47,8.00,.002,2.00,.45,.97,3.03
,Equal variances not assumed,,,4.47,8.00,.002,2.00,.45,.97,3.03
])
end data.
t-test /groups=indep(1.514) /var=dep.
])
+
AT_CHECK([pspp -O format=csv t-test.sps], [0], [dnl
Table: Reading free-form data from INLINE.
Variable,Format
,,Levene's Test for Equality of Variances,,t-test for Equality of Means,,,,,,
,,,,,,,,,95% Confidence Interval of the Difference,
,,F,Sig.,t,df,Sig. (2-tailed),Mean Difference,Std. Error Difference,Lower,Upper
-DEP,Equal variances assumed,.17,.68,.69,20.00,.495,1.00,1.44,-2.00,4.00
+DEP,Equal variances assumed,.17,.683,.69,20.00,.495,1.00,1.44,-2.00,4.00
,Equal variances not assumed,,,.69,18.54,.496,1.00,1.44,-2.02,4.02
])
AT_CLEANUP
,,Levene's Test for Equality of Variances,,t-test for Equality of Means,,,,,,
,,,,,,,,,95% Confidence Interval of the Difference,
,,F,Sig.,t,df,Sig. (2-tailed),Mean Difference,Std. Error Difference,Lower,Upper
-dep1,Equal variances assumed,3.75,.15,-1.12,3.00,.346,-.75,.67,-2.89,1.39
+dep1,Equal variances assumed,3.75,.148,-1.12,3.00,.346,-.75,.67,-2.89,1.39
,Equal variances not assumed,,,-1.34,2.78,.279,-.75,.56,-2.61,1.11
-dep2,Equal variances assumed,.60,.50,2.85,3.00,.065,3.00,1.05,-.35,6.35
+dep2,Equal variances assumed,.60,.495,2.85,3.00,.065,3.00,1.05,-.35,6.35
,Equal variances not assumed,,,2.60,1.68,.144,3.00,1.15,-2.98,8.98
])
AT_CHECK([pspp -o ref.csv ref.sps])
,,Levene's Test for Equality of Variances,,t-test for Equality of Means,,,,,,
,,,,,,,,,95% Confidence Interval of the Difference,
,,F,Sig.,t,df,Sig. (2-tailed),Mean Difference,Std. Error Difference,Lower,Upper
-dep1,Equal variances assumed,2.00,.23,-1.73,4.00,.158,-1.00,.58,-2.60,.60
+dep1,Equal variances assumed,2.00,.230,-1.73,4.00,.158,-1.00,.58,-2.60,.60
,Equal variances not assumed,,,-1.73,3.20,.176,-1.00,.58,-2.77,.77
-dep2,Equal variances assumed,.00,1.00,3.67,4.00,.021,3.00,.82,.73,5.27
+dep2,Equal variances assumed,.00,1.000,3.67,4.00,.021,3.00,.82,.73,5.27
,Equal variances not assumed,,,3.67,4.00,.021,3.00,.82,.73,5.27
])
,,Levene's Test for Equality of Variances,,t-test for Equality of Means,,,,,,
,,,,,,,,,95% Confidence Interval of the Difference,
,,F,Sig.,t,df,Sig. (2-tailed),Mean Difference,Std. Error Difference,Lower,Upper
-x,Equal variances assumed,2.00,.23,-1.73,4.00,.158,-1.00,.58,-2.60,.60
+x,Equal variances assumed,2.00,.230,-1.73,4.00,.158,-1.00,.58,-2.60,.60
,Equal variances not assumed,,,-1.73,3.20,.176,-1.00,.58,-2.77,.77
])
AT_CHECK([pspp -o ref.csv ref.sps])
TEMPORARY.
SELECT IF x < 7.
-t-test /groups=ind(1,2) /var x.
+t-test /groups=ind(1 2) /var x.
])
AT_CHECK([pspp -o temporary.csv temporary.sps])
AT_CHECK([cat temporary.csv], [0], [expout])
,,Levene's Test for Equality of Variances,,t-test for Equality of Means,,,,,,
,,,,,,,,,95% Confidence Interval of the Difference,
,,F,Sig.,t,df,Sig. (2-tailed),Mean Difference,Std. Error Difference,Lower,Upper
-DEP1,Equal variances assumed,.00,1.00,-4.47,8.00,.002,-2.00,.45,-3.03,-.97
+DEP1,Equal variances assumed,.00,1.000,-4.47,8.00,.002,-2.00,.45,-3.03,-.97
,Equal variances not assumed,,,-4.47,8.00,.002,-2.00,.45,-3.03,-.97
-DEP2,Equal variances assumed,.00,1.00,4.47,8.00,.002,2.00,.45,.97,3.03
+DEP2,Equal variances assumed,.00,1.000,4.47,8.00,.002,2.00,.45,.97,3.03
,Equal variances not assumed,,,4.47,8.00,.002,2.00,.45,.97,3.03
])
AT_CLEANUP
t-test group=gv('One', 'Two')
/variables = x.
])
+
AT_CHECK([pspp -O format=csv t-test.sps], [0], [dnl
Table: Reading free-form data from INLINE.
Variable,Format
,,Levene's Test for Equality of Variances,,t-test for Equality of Means,,,,,,
,,,,,,,,,95% Confidence Interval of the Difference,
,,F,Sig.,t,df,Sig. (2-tailed),Mean Difference,Std. Error Difference,Lower,Upper
-x,Equal variances assumed,1.13,.33,-2.32,6.00,.060,-.90,.39,-1.85,.05
+x,Equal variances assumed,1.13,.329,-2.32,6.00,.060,-.90,.39,-1.85,.05
,Equal variances not assumed,,,-2.38,4.70,.067,-.90,.38,-1.89,.09
])
AT_CLEANUP
AT_CHECK([pspp t-test-crs.sps], [0],[ignore], [ignore])
AT_CLEANUP
+
+
+
+dnl Tests for a bug assert failed when a non-number was passes as the p value
+AT_SETUP([T-TEST non number p value])
+AT_DATA([t.sps], [dnl
+data list list /age d_frage_1 weight height *.
+begin data.
+1 2 3 1
+4 5 6 2
+end data.
+
+T-TEST /VARIABLES=age weight height
+ /GROUPS=d_frage_1(1,0) /MISSING=ANALYSIS /CRITERIA=CIN(p.95).
+])
+
+AT_CHECK([pspp t.sps], [1],[ignore], [ignore])
+
+AT_CLEANUP
+
+
+
+dnl Another crash on invalid input
+AT_SETUP([T-TEST unterminated string - paired])
+AT_DATA([t.sps], [dnl
+data list list /id * a * b * c * d *.
+begin data.
+5 2.0 3.0 4.0 4.0
+3 1.0 2.0 5.1 3.9
+3 2.0 4.5 5.2(3.8
+4 2.0 4.5 5n3 3.7
+5 3.0 6.0 5.9 3.6
+6 3.4 6.0 5.9 .
+end data.
+
+
+t-test /MISSING=listwise /PAIRS a"b with c d (PA RED).
+])
+
+AT_CHECK([pspp t.sps],[1],[ignore],[ignore])
+
+AT_CLEANUP
+
+
+
+