X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tests%2Flanguage%2Fstats%2Fquick-cluster.at;h=669fea7b9dd7a7dda00f661690cc7377ed5c8ec1;hb=691a034d7f2139076fa012739dffd40ef5db4a9b;hp=75dd52cb19f89a0a584ab3281bc9c24334ae7953;hpb=56d6f17c81105cffb326be040430fefe53f95eea;p=pspp diff --git a/tests/language/stats/quick-cluster.at b/tests/language/stats/quick-cluster.at index 75dd52cb19..669fea7b9d 100644 --- a/tests/language/stats/quick-cluster.at +++ b/tests/language/stats/quick-cluster.at @@ -1,4 +1,19 @@ -AT_BANNER([QUICK CLUSTER]) +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 . +dnl AT_BANNER([QUICK CLUSTER]) AT_SETUP([QUICK CLUSTER with small data set]) AT_DATA([quick-cluster.sps], [dnl @@ -46,13 +61,13 @@ AT_CLEANUP AT_SETUP([QUICK CLUSTER with large data set]) AT_DATA([quick-cluster.sps], [dnl input program. -loop #i = 1 to 500000. +loop #i = 1 to 50000. compute x = 3. end case. end loop. end file. end input program. -QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (100). +QUICK CLUSTER x /CRITERIA = CLUSTER(4) NOINITIAL. ]) AT_CHECK([pspp -o pspp.csv quick-cluster.sps]) AT_CHECK([cat pspp.csv], [0], [dnl @@ -61,14 +76,14 @@ Table: Final Cluster Centers ,,,, ,1,2,3,4 ,,,, -x,.00,.00,.00,3.00 +x,NaN,NaN,NaN,3.00 Table: Number of Cases in each Cluster Cluster,1,0 ,2,0 ,3,0 -,4,500000 -Valid,,500000 +,4,50000 +Valid,,50000 ]) AT_CLEANUP @@ -91,7 +106,7 @@ end input program. weight by w. -QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (100). +QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (10). ]) AT_CHECK([pspp -o pspp-w.csv qc-weighted.sps]) @@ -106,7 +121,7 @@ end loop. end file. end input program. -QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (100). +QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (10). ]) AT_CHECK([pspp -o pspp-unw.csv qc-unweighted.sps]) @@ -128,7 +143,7 @@ begin data. 2 end data. -QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (100). +QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (10). ]) AT_CHECK([pspp -o pspp-m.csv quick-miss.sps]) @@ -144,7 +159,7 @@ begin data. 2 end data. -QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (100). +QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (10). ]) AT_CHECK([pspp -o pspp-nm.csv quick-nmiss.sps]) @@ -155,6 +170,12 @@ AT_CLEANUP AT_SETUP([QUICK CLUSTER with pairwise missing]) + +dnl This test runs two programs, which are identical except that one +dnl has an extra case with one missing value. Becuase the syntax uses +dnl NOINITIAL and NOUPDATE, the results should be identical except for +dnl the final classification. + AT_DATA([quick-s.sps], [dnl data list notable list /x * y *. begin data. @@ -169,16 +190,15 @@ begin data. 3.4 3 3.5 2.5 3.1 2.0 -3.9 2.5 -3.8 2.0 end data. QUICK CLUSTER x y - /CRITERIA = CLUSTER(3) MXITER (100) + /PRINT = INITIAL + /CRITERIA = CLUSTER(3) NOINITIAL NOUPDATE . ]) -AT_CHECK([pspp -O format=csv quick-s.sps | tail -5 > pspp-s.csv]) +AT_CHECK([pspp -O format=csv quick-s.sps > pspp-s.csv]) AT_DATA([quick-pw.sps], [dnl data list notable list /x * y *. @@ -194,19 +214,28 @@ begin data. 3.4 3 3.5 2.5 3.1 2.0 -3.9 . -3.8 . +. 2.3 end data. QUICK CLUSTER x y - /CRITERIA = CLUSTER(3) MXITER (100) + /CRITERIA = CLUSTER(3) NOINITIAL NOUPDATE + /PRINT = INITIAL /MISSING = PAIRWISE . ]) -AT_CHECK([pspp -O format=csv quick-pw.sps | tail -5 > pspp-pw.csv]) +AT_CHECK([pspp -O format=csv quick-pw.sps > pspp-pw.csv]) + +AT_CHECK([head -n 18 pspp-s.csv > top-s.csv]) +AT_CHECK([head -n 18 pspp-pw.csv > top-pw.csv]) +AT_CHECK([diff top-s.csv top-pw.csv]) + + +AT_CHECK([grep Valid pspp-s.csv], [0], [Valid,,11 +]) -AT_CHECK([diff pspp-s.csv pspp-pw.csv], [0]) +AT_CHECK([grep Valid pspp-pw.csv], [0], [Valid,,12 +]) AT_CLEANUP @@ -321,8 +350,8 @@ Table: Initial Cluster Centers ,,, ,1,2,3 ,,, -x,0,0,1 -y,0,1,0 +x,-11,-12,11 +y,-12,11,11 Table: Final Cluster Centers ,Cluster,, @@ -400,3 +429,24 @@ Case Number,Cluster ]) AT_CLEANUP + + +dnl Test for a crash which happened on bad input syntax +AT_SETUP([QUICK CLUSTER -- Empty Parentheses]) + +AT_DATA([empty-parens.sps], [dnl +data list notable list /x * y *. +begin data. +1 2 +1 2.2 +end data. + +QUICK CLUSTER x y + /CRITERIA = CONVERGE() + . +]) + +AT_CHECK([pspp -o pspp.csv empty-parens.sps], [1], [ignore]) + +AT_CLEANUP +