output: Introduce pivot tables.
[pspp] / tests / language / stats / examine.at
index 27248a19dd600a9cf9f0f9e025e761f8bae31f0a..b2afe616b86f5750e670d03b23adb561b885a0aa 100644 (file)
@@ -13,9 +13,11 @@ 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([EXAMINE])
+dnl
+AT_BANNER([EXAMINE])
 
 AT_SETUP([EXAMINE])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [
 DATA LIST LIST /QUALITY * W * BRAND * .
 BEGIN DATA
@@ -85,7 +87,7 @@ Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-Breaking Strain,24.00,100%,.00,0%,24.00,100%
+Breaking Strain,24.00,100.0%,.00,.0%,24.00,100.0%
 
 Table: Extreme Values
 ,,,Case Number,Value
@@ -116,9 +118,9 @@ Table: Case Processing Summary
 ,,Cases,,,,,
 ,,Valid,,Missing,,Total,
 ,Manufacturer,N,Percent,N,Percent,N,Percent
-Breaking Strain,Aspeger,8.00,100%,.00,0%,8.00,100%
-,Bloggs,8.00,100%,.00,0%,8.00,100%
-,Charlies,8.00,100%,.00,0%,8.00,100%
+Breaking Strain,Aspeger,8.00,100.0%,.00,.0%,8.00,100.0%
+,Bloggs,8.00,100.0%,.00,.0%,8.00,100.0%
+,Charlies,8.00,100.0%,.00,.0%,8.00,100.0%
 
 Table: Extreme Values
 ,Manufacturer,,,Case Number,Value
@@ -187,6 +189,7 @@ Breaking Strain,Aspeger,Mean,,2.25,.45
 AT_CLEANUP
 
 AT_SETUP([EXAMINE -- extremes])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 data list free /V1 W
 begin data.
@@ -225,7 +228,7 @@ Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-V1,23.00,100%,.00,0%,23.00,100%
+V1,23.00,100.0%,.00,.0%,23.00,100.0%
 
 Table: Extreme Values
 ,,,Case Number,Value
@@ -248,6 +251,7 @@ AT_CLEANUP
 
 
 AT_SETUP([EXAMINE -- extremes with fractional weights])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([extreme.sps], [dnl
 set format=F20.3.
 data list notable list /w * x *.
@@ -286,7 +290,7 @@ Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-x,19.430,100%,.000,0%,19.430,100%
+x,19.430,100.0%,.000,.0%,19.430,100.0%
 
 Table: Extreme Values
 ,,,Case Number,Value
@@ -324,6 +328,7 @@ dnl Test the PERCENTILES subcommand of the EXAMINE command.
 dnl In particular test that it behaves properly when there are only 
 dnl a few cases.
 AT_SETUP([EXAMINE -- percentiles])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 DATA LIST LIST /X *.
 BEGIN DATA.
@@ -347,7 +352,7 @@ EXAMINE /x
 EXAMINE /x
        /PERCENTILES=AEMPIRICAL.
 ])
-AT_CHECK([pspp -o pspp.csv examine.sps])
+AT_CHECK([pspp -o pspp.csv -o pspp.txt examine.sps])
 AT_CHECK([cat pspp.csv], [0], [dnl
 Table: Reading free-form data from INLINE.
 Variable,Format
@@ -357,19 +362,19 @@ Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-X,3,100%,0,0%,3,100%
+X,3,100.0%,0,.0%,3,100.0%
 
 Table: Percentiles
 ,,Percentiles,,,,,,
 ,,5,10,25,50,75,90,95
-X,HAverage,.40,.80,2.00,5.00,8.00,8.00,8.00
+X,Weighted Average,.40,.80,2.00,5.00,8.00,8.00,8.00
 ,Tukey's Hinges,,,3.50,5.00,6.50,,
 
 Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-X,3,100%,0,0%,3,100%
+X,3,100.0%,0,.0%,3,100.0%
 
 Table: Percentiles
 ,,Percentiles,,,,,,
@@ -381,41 +386,42 @@ Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-X,3,100%,0,0%,3,100%
+X,3,100.0%,0,.0%,3,100.0%
 
 Table: Percentiles
 ,,Percentiles,,,,,,
 ,,5,10,25,50,75,90,95
-X,Rounded,.00,.00,2.00,5.00,5.00,8.00,8.00
+X,Weighted Average,.00,.00,2.00,5.00,5.00,8.00,8.00
 ,Tukey's Hinges,,,3.50,5.00,6.50,,
 
 Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-X,3,100%,0,0%,3,100%
+X,3,100.0%,0,.0%,3,100.0%
 
 Table: Percentiles
 ,,Percentiles,,,,,,
 ,,5,10,25,50,75,90,95
-X,Empirical,2.00,2.00,2.00,5.00,8.00,8.00,8.00
+X,Weighted Average,2.00,2.00,2.00,5.00,8.00,8.00,8.00
 ,Tukey's Hinges,,,3.50,5.00,6.50,,
 
 Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-X,3,100%,0,0%,3,100%
+X,3,100.0%,0,.0%,3,100.0%
 
 Table: Percentiles
 ,,Percentiles,,,,,,
 ,,5,10,25,50,75,90,95
-X,Empirical with averaging,2.00,2.00,2.00,5.00,8.00,8.00,8.00
+X,Weighted Average,2.00,2.00,2.00,5.00,8.00,8.00,8.00
 ,Tukey's Hinges,,,3.50,5.00,6.50,,
 ])
 AT_CLEANUP
 
 AT_SETUP([EXAMINE -- missing values])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 DATA LIST LIST /x * y *.
 BEGIN DATA.
@@ -443,19 +449,20 @@ Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-x,6,85.7143%,1,14.2857%,7,100%
+x,6,85.7%,1,14.3%,7,100.0%
 
 Table: Case Processing Summary
 ,,Cases,,,,,
 ,,Valid,,Missing,,Total,
 ,y,N,Percent,N,Percent,N,Percent
-x,1.00,4,100%,0,0%,4,100%
-,2.00,2,66.6667%,1,33.3333%,3,100%
+x,1.00,4,100.0%,0,.0%,4,100.0%
+,2.00,2,66.7%,1,33.3%,3,100.0%
 ])
 AT_CLEANUP
 
 
 AT_SETUP([EXAMINE -- user missing values])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine-m.sps], [dnl
 DATA LIST notable LIST /x * y *.
 BEGIN DATA.
@@ -476,12 +483,13 @@ Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-x,1,33.3333%,2,66.6667%,3,100%
-y,2,66.6667%,1,33.3333%,3,100%
+x,1,33.3%,2,66.7%,3,100.0%
+y,2,66.7%,1,33.3%,3,100.0%
 ])
 AT_CLEANUP
 
 AT_SETUP([EXAMINE -- missing values and percentiles])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 DATA LIST LIST /X *.
 BEGIN DATA.
@@ -502,6 +510,7 @@ AT_CLEANUP
 dnl Tests the trimmed mean calculation in the case
 dnl where the data is weighted towards the centre.
 AT_SETUP([EXAMINE -- trimmed mean])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 DATA LIST LIST /X * C *.
 BEGIN DATA.
@@ -528,7 +537,7 @@ Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-X,52.00,100%,.00,0%,52.00,100%
+X,52.00,100.0%,.00,.0%,52.00,100.0%
 
 Table: Descriptives
 ,,,Statistic,Std. Error
@@ -549,6 +558,7 @@ X,Mean,,2.02,.03
 AT_CLEANUP
 
 AT_SETUP([EXAMINE -- crash bug])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 data list list /a * x * y *.
 begin data.
@@ -567,6 +577,7 @@ AT_CLEANUP
 
 dnl Test that two consecutive EXAMINE commands don't crash PSPP.
 AT_SETUP([EXAMINE -- consecutive runs don't crash])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 data list list /y * z *.
 begin data.
@@ -585,6 +596,7 @@ AT_CLEANUP
 
 dnl Test that /DESCRIPTIVES does not crash in presence of missing values.
 AT_SETUP([EXAMINE -- missing values don't crash])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 data list list /x * y *.
 begin data.
@@ -602,6 +614,7 @@ AT_CLEANUP
 
 dnl Test that having only a single case doesn't crash.
 AT_SETUP([EXAMINE -- single case doesn't crash])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 DATA LIST LIST /quality * .
 BEGIN DATA
@@ -621,6 +634,7 @@ AT_CLEANUP
 
 dnl Test that all-missing data doesn't crash.
 AT_SETUP([EXAMINE -- all-missing data doesn't crash])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 DATA LIST LIST /x *.
 BEGIN DATA.
@@ -643,6 +657,7 @@ AT_CLEANUP
 
 dnl Test that big input doesn't crash (bug 11307).
 AT_SETUP([EXAMINE -- big input doesn't crash])
+AT_KEYWORDS([categorical categoricals slow])
 AT_DATA([examine.sps], [dnl
 INPUT PROGRAM.
        LOOP #I=1 TO 50000.
@@ -663,6 +678,7 @@ AT_CLEANUP
 dnl Another test that big input doesn't crash.
 dnl The actual bug that this checks for has been lost.
 AT_SETUP([EXAMINE -- big input doesn't crash 2])
+AT_KEYWORDS([categorical categoricals slow])
 AT_DATA([make-big-input.pl], 
   [for ($i=0; $i<100000; $i++) { print "AB12\n" };
    for ($i=0; $i<100000; $i++) { print "AB04\n" };
@@ -690,6 +706,7 @@ AT_CLEANUP
 
 dnl Test that the ID command works with non-numberic variables
 AT_SETUP([EXAMINE -- non-numeric ID])
+AT_KEYWORDS([categorical categoricals])
 
 AT_DATA([examine-id.sps], [dnl
 data list notable list /x * y (a12).
@@ -722,26 +739,27 @@ AT_CHECK([pspp -O format=csv examine-id.sps], [0],
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-x,14,100%,0,0%,14,100%
+x,14,100.0%,0,.0%,14,100.0%
 
 Table: Extreme Values
 ,,,y,Value
 x,Highest,1,threehundred,300.00
-,,2,thirty      ,30.00
-,,3,twelve      ,12.00
-,,4,eleven      ,11.00
-,,5,ten         ,10.00
-,Lowest,1,one         ,1.00
-,,2,two         ,2.00
-,,3,three       ,3.00
-,,4,four        ,4.00
-,,5,five        ,5.00
+,,2,thirty,30.00
+,,3,twelve,12.00
+,,4,eleven,11.00
+,,5,ten,10.00
+,Lowest,1,one,1.00
+,,2,two,2.00
+,,3,three,3.00
+,,4,four,4.00
+,,5,five,5.00
 ])
 
 AT_CLEANUP 
 
 dnl Test for a crash which happened on cleanup from a bad input syntax
 AT_SETUP([EXAMINE -- Bad Input])
+AT_KEYWORDS([categorical categoricals])
 
 AT_DATA([examine-bad.sps], [dnl
 data list list /h * g *.
@@ -772,7 +790,7 @@ AT_CLEANUP
 
 dnl Check the MISSING=REPORT option
 AT_SETUP([EXAMINE -- MISSING=REPORT])
-
+AT_KEYWORDS([categorical categoricals])
 
 AT_DATA([examine-report.sps], [dnl
 set format = F22.0.
@@ -822,8 +840,9 @@ EXAMINE
 ])
 
 
-AT_CHECK([pspp -O format=csv examine-report.sps], [0], [dnl
-Table: Reading free-form data from INLINE.
+AT_CHECK([pspp -o pspp.csv -o pspp.txt examine-report.sps])
+AT_CHECK([cat pspp.csv], [0],
+  [[Table: Reading free-form data from INLINE.
 Variable,Format
 x,F8.0
 g,F8.0
@@ -832,15 +851,18 @@ Table: Case Processing Summary
 ,,Cases,,,,,
 ,,Valid,,Missing,,Total,
 ,g,N,Percent,N,Percent,N,Percent
-x,. (missing),4,100%,0,0%,4,100%
-,1,9,100%,0,0%,9,100%
-,2,9,100%,0,0%,9,100%
-,9 (missing),4,100%,0,0%,4,100%
-,99 (missing),5,100%,0,0%,5,100%
+x,.,4,100.0%,0,.0%,4,100.0%
+,1,9,100.0%,0,.0%,9,100.0%
+,2,9,100.0%,0,.0%,9,100.0%
+,9[a],4,100.0%,0,.0%,4,100.0%
+,99[a],5,100.0%,0,.0%,5,100.0%
+
+Footnotes:
+a,User-missing value.
 
 Table: Extreme Values
 ,g,,,Case Number,Value
-x,. (missing),Highest,1,31,4004
+x,.,Highest,1,31,4004
 ,,,2,30,3003
 ,,,3,29,2002
 ,,,4,28,1001
@@ -870,7 +892,7 @@ x,. (missing),Highest,1,31,4004
 ,,,3,12,30
 ,,,4,13,40
 ,,,5,14,50
-,9 (missing),Highest,1,22,401
+,9[a],Highest,1,22,401
 ,,,2,21,301
 ,,,3,20,201
 ,,,4,19,101
@@ -880,7 +902,7 @@ x,. (missing),Highest,1,31,4004
 ,,,3,21,301
 ,,,4,22,401
 ,,,5,22,401
-,99 (missing),Highest,1,27,901
+,99[a],Highest,1,27,901
 ,,,2,26,801
 ,,,3,25,701
 ,,,4,24,601
@@ -890,8 +912,10 @@ x,. (missing),Highest,1,31,4004
 ,,,3,25,701
 ,,,4,26,801
 ,,,5,27,901
-])
 
+Footnotes:
+a,User-missing value.
+]])
 
 AT_CLEANUP 
 
@@ -900,6 +924,7 @@ dnl Run a test of the basic STATISTICS using a "real"
 dnl dataset and comparing with "real" results kindly
 dnl provided by Olaf Nöhring
 AT_SETUP([EXAMINE -- sample unweighted])
+AT_KEYWORDS([categorical categoricals])
 
 AT_DATA([sample.sps], [dnl
 set format = F22.4.
@@ -1018,7 +1043,7 @@ Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-X,100,100%,0,0%,100,100%
+X,100,100.0%,0,.0%,100,100.0%
 
 Table: Descriptives
 ,,,Statistic,Std. Error
@@ -1043,6 +1068,7 @@ AT_CLEANUP
 
 dnl Test for a crash which happened on bad input syntax
 AT_SETUP([EXAMINE -- Empty Parentheses])
+AT_KEYWORDS([categorical categoricals])
 
 AT_DATA([examine-empty-parens.sps], [dnl
 DATA LIST notable LIST /X *
@@ -1067,6 +1093,7 @@ AT_CLEANUP
 
 dnl Test for another crash which happened on bad input syntax
 AT_SETUP([EXAMINE -- Bad variable])
+AT_KEYWORDS([categorical categoricals])
 
 AT_DATA([examine-bad-variable.sps], [dnl
 data list list /h * g *.
@@ -1090,6 +1117,7 @@ AT_CLEANUP
 
 dnl Test for yet another crash. This time for extremes vs. missing weight values.\0
 AT_SETUP([EXAMINE -- Extremes vs. Missing Weights])
+AT_KEYWORDS([categorical categoricals])
 
 AT_DATA([examine-missing-weights.sps], [dnl
 data list notable list /h * g *.
@@ -1114,7 +1142,7 @@ Table: Case Processing Summary
 ,Cases,,,,,
 ,Valid,,Missing,,Total,
 ,N,Percent,N,Percent,N,Percent
-h,3.00,100%,.00,0%,3.00,100%
+h,3.00,100.0%,.00,.0%,3.00,100.0%
 
 Table: Extreme Values
 ,,,Case Number,Value
@@ -1128,5 +1156,97 @@ h,Highest,1,3,5.00
 
 AT_CLEANUP 
 
+dnl This is an example from doc/tutorial.texi
+dnl So if the results of this have to be changed in any way,
+dnl make sure to update that file.
+AT_SETUP([EXAMINE tutorial example 1])
+cp $top_srcdir/examples/repairs.sav .
+AT_DATA([repairs.sps], [dnl
+GET FILE='repairs.sav'.
+EXAMINE mtbf /STATISTICS=DESCRIPTIVES.
+COMPUTE mtbf_ln = LN (mtbf).
+EXAMINE mtbf_ln /STATISTICS=DESCRIPTIVES.
+])
+AT_CHECK([pspp -o pspp.csv -o pspp.txt repairs.sps])
+AT_CHECK([cat pspp.csv], [0], [dnl
+Table: Case Processing Summary
+,Cases,,,,,
+,Valid,,Missing,,Total,
+,N,Percent,N,Percent,N,Percent
+Mean time between failures (months) ,15,100.0%,0,.0%,15,100.0%
+
+Table: Descriptives
+,,,Statistic,Std. Error
+Mean time between failures (months) ,Mean,,8.32,1.62
+,95% Confidence Interval for Mean,Lower Bound,4.85,
+,,Upper Bound,11.79,
+,5% Trimmed Mean,,7.69,
+,Median,,8.12,
+,Variance,,39.21,
+,Std. Deviation,,6.26,
+,Minimum,,1.63,
+,Maximum,,26.47,
+,Range,,24.84,
+,Interquartile Range,,5.83,
+,Skewness,,1.85,.58
+,Kurtosis,,4.49,1.12
+
+Table: Case Processing Summary
+,Cases,,,,,
+,Valid,,Missing,,Total,
+,N,Percent,N,Percent,N,Percent
+mtbf_ln,15,100.0%,0,.0%,15,100.0%
+
+Table: Descriptives
+,,,Statistic,Std. Error
+mtbf_ln,Mean,,1.88,.19
+,95% Confidence Interval for Mean,Lower Bound,1.47,
+,,Upper Bound,2.29,
+,5% Trimmed Mean,,1.88,
+,Median,,2.09,
+,Variance,,.54,
+,Std. Deviation,,.74,
+,Minimum,,.49,
+,Maximum,,3.28,
+,Range,,2.79,
+,Interquartile Range,,.92,
+,Skewness,,-.16,.58
+,Kurtosis,,-.09,1.12
+])
+AT_CLEANUP
+
+dnl This is an example from doc/tutorial.texi
+dnl So if the results of this have to be changed in any way,
+dnl make sure to update that file.
+AT_SETUP([EXAMINE tutorial example 2])
+cp $top_srcdir/examples/physiology.sav .
+AT_DATA([examine.sps], [dnl
+GET FILE='physiology.sav'.
+EXAMINE height, weight /STATISTICS=EXTREME(3).
+])
+AT_CHECK([pspp -o pspp.csv -o pspp.txt examine.sps])
+AT_CHECK([cat pspp.csv], [0], [dnl
+Table: Case Processing Summary
+,Cases,,,,,
+,Valid,,Missing,,Total,
+,N,Percent,N,Percent,N,Percent
+Height in millimeters   ,40,100.0%,0,.0%,40,100.0%
+Weight in kilograms ,40,100.0%,0,.0%,40,100.0%
 
+Table: Extreme Values
+,,,Case Number,Value
+Height in millimeters   ,Highest,1,14,1903
+,,2,15,1884
+,,3,12,1802
+,Lowest,1,30,179
+,,2,31,1598
+,,3,28,1601
+Weight in kilograms ,Highest,1,13,92.1
+,,2,5,92.1
+,,3,17,91.7
+,Lowest,1,38,-55.6
+,,2,39,54.5
+,,3,33,55.4
+])
+AT_CLEANUP