output: New page-setup-item.
[pspp] / tests / language / stats / examine.at
index 54307f4688732abb85c445ae6deb8498d6e254f1..9d4374d376e0e96c731382a8f4bceb0121436189 100644 (file)
@@ -1,6 +1,23 @@
+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([EXAMINE])
 
 AT_SETUP([EXAMINE])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [
 DATA LIST LIST /QUALITY * W * BRAND * .
 BEGIN DATA
@@ -172,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.
@@ -233,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 *.
@@ -309,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.
@@ -401,6 +421,7 @@ X,Empirical with averaging,2.00,2.00,2.00,5.00,8.00,8.00,8.00
 AT_CLEANUP
 
 AT_SETUP([EXAMINE -- missing values])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 DATA LIST LIST /x * y *.
 BEGIN DATA.
@@ -441,6 +462,7 @@ 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.
@@ -467,6 +489,7 @@ y,2,66.6667%,1,33.3333%,3,100%
 AT_CLEANUP
 
 AT_SETUP([EXAMINE -- missing values and percentiles])
+AT_KEYWORDS([categorical categoricals])
 AT_DATA([examine.sps], [dnl
 DATA LIST LIST /X *.
 BEGIN DATA.
@@ -487,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.
@@ -534,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.
@@ -552,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.
@@ -570,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.
@@ -587,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
@@ -606,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.
@@ -615,7 +644,12 @@ BEGIN DATA.
 .
 END DATA.
 
-EXAMINE /x PLOT=HISTOGRAM.
+EXAMINE /x 
+       PLOT=HISTOGRAM BOXPLOT NPPLOT SPREADLEVEL(1) ALL
+       /ID=x
+        /STATISTICS = DESCRIPTIVES EXTREME (5) ALL
+       /PERCENTILE=AEMPIRICAL
+       .
 ])
 AT_CHECK([pspp -o pspp.csv examine.sps], [0], [ignore])
 dnl Ignore output -- this is just a no-crash check.
@@ -623,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])
 AT_DATA([examine.sps], [dnl
 INPUT PROGRAM.
        LOOP #I=1 TO 50000.
@@ -643,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])
 AT_DATA([make-big-input.pl], 
   [for ($i=0; $i<100000; $i++) { print "AB12\n" };
    for ($i=0; $i<100000; $i++) { print "AB04\n" };
@@ -670,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,6 +759,7 @@ 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 *.
@@ -752,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.
@@ -880,6 +918,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,3 +1057,98 @@ X,Mean,,587.6603,23.2665
 ])
 
 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 *
+BEGIN DATA.
+2
+3
+END DATA.
+
+
+EXAMINE
+       x
+       /PLOT = SPREADLEVEL()
+       .
+])
+
+AT_CHECK([pspp -o pspp.csv examine-empty-parens.sps], [1], [ignore])
+
+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 *.
+begin data.
+3 1
+4 1
+5 2
+end data.
+
+EXAMINE
+        /VARIABLES/ h
+        BY  g
+        .
+])
+
+AT_CHECK([pspp -o pspp.csv examine-bad-variable.sps], [1], [ignore])
+
+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 *.
+begin data.
+3 1
+4 .
+5 1
+2 1
+end data.
+
+WEIGHT BY g.
+
+EXAMINE h
+       /STATISTICS extreme(3)
+       .
+])
+
+AT_CHECK([pspp -O format=csv  examine-missing-weights.sps], [0], [dnl
+"examine-missing-weights.sps:13: warning: EXAMINE: At least one case in the data file had a weight value that was user-missing, system-missing, zero, or negative.  These case(s) were ignored."
+
+Table: Case Processing Summary
+,Cases,,,,,
+,Valid,,Missing,,Total,
+,N,Percent,N,Percent,N,Percent
+h,3.00,100%,.00,0%,3.00,100%
+
+Table: Extreme Values
+,,,Case Number,Value
+h,Highest,1,3,5.00
+,,2,2,4.00
+,,3,1,3.00
+,Lowest,1,4,2.00
+,,2,1,3.00
+,,3,2,4.00
+])
+
+AT_CLEANUP 
+
+
+