AT_BANNER([QUICK CLUSTER]) AT_SETUP([QUICK CLUSTER with small data set]) AT_DATA([quick-cluster.sps], [dnl DATA LIST LIST /x y z. BEGIN DATA. 22,2930,4099 17,3350,4749 22,2640,3799 20, 3250,4816 15,4080,7827 4,5,4 5,6,5 6,7,6 7,8,7 8,9,8 9,10,9 END DATA. QUICK CLUSTER x y z /CRITERIA=CLUSTER(2) MXITER(20). ]) AT_CHECK([pspp -o pspp.csv quick-cluster.sps]) AT_CHECK([cat pspp.csv], [0], [dnl Table: Reading free-form data from INLINE. Variable,Format x,F8.0 y,F8.0 z,F8.0 Table: Final Cluster Centers ,Cluster, ,, ,1,2 ,, x,6.50,19.20 y,7.50,3250.00 z,6.50,5058.00 Table: Number of Cases in each Cluster Cluster,1,6 ,2,5 Valid,,11 ]) AT_CLEANUP AT_SETUP([QUICK CLUSTER with large data set]) AT_DATA([quick-cluster.sps], [dnl input program. loop #i = 1 to 500000. compute x = 3. end case. end loop. end file. end input program. QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (100). ]) AT_CHECK([pspp -o pspp.csv quick-cluster.sps]) AT_CHECK([cat pspp.csv], [0], [dnl Table: Final Cluster Centers ,Cluster,,, ,,,, ,1,2,3,4 ,,,, x,.00,.00,.00,3.00 Table: Number of Cases in each Cluster Cluster,1,0 ,2,0 ,3,0 ,4,500000 Valid,,500000 ]) AT_CLEANUP AT_SETUP([QUICK CLUSTER with weights]) AT_DATA([qc-weighted.sps], [dnl input program. loop #i = 1 to 400. compute x = mod (#i, 4). compute w = 5. end case. end loop. loop #i = 1 to 400. compute x = mod (#i, 4). compute w = 3. end case. end loop. end file. end input program. weight by w. QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (100). ]) AT_CHECK([pspp -o pspp-w.csv qc-weighted.sps]) AT_DATA([qc-unweighted.sps], [dnl input program. loop #i = 1 to 3200. compute x = mod (#i, 4). end case. end loop. end file. end input program. QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (100). ]) AT_CHECK([pspp -o pspp-unw.csv qc-unweighted.sps]) AT_CHECK([diff pspp-w.csv pspp-unw.csv], [0]) AT_CLEANUP AT_SETUP([QUICK CLUSTER with listwise missing]) AT_DATA([quick-miss.sps], [dnl data list notable list /x *. begin data. 1 1 2 3 4 . 2 end data. QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (100). ]) AT_CHECK([pspp -o pspp-m.csv quick-miss.sps]) AT_DATA([quick-nmiss.sps], [dnl data list notable list /x *. begin data. 1 1 2 3 4 2 end data. QUICK CLUSTER x /CRITERIA = CLUSTER(4) MXITER (100). ]) AT_CHECK([pspp -o pspp-nm.csv quick-nmiss.sps]) AT_CHECK([diff pspp-m.csv pspp-nm.csv], [0]) AT_CLEANUP AT_SETUP([QUICK CLUSTER with pairwise missing]) AT_DATA([quick-s.sps], [dnl data list notable list /x * y *. begin data. 1 2 1 2.2 1.1 1.9 1 9 1 10 1.3 9.5 0.9 8.9 3.5 2 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) . ]) AT_CHECK([pspp -O format=csv quick-s.sps | tail -5 > pspp-s.csv]) AT_DATA([quick-pw.sps], [dnl data list notable list /x * y *. begin data. 1 2 1 2.2 1.1 1.9 1 9 1 10 1.3 9.5 0.9 8.9 3.5 2 3.4 3 3.5 2.5 3.1 2.0 3.9 . 3.8 . end data. QUICK CLUSTER x y /CRITERIA = CLUSTER(3) MXITER (100) /MISSING = PAIRWISE . ]) AT_CHECK([pspp -O format=csv quick-pw.sps | tail -5 > pspp-pw.csv]) AT_CHECK([diff pspp-s.csv pspp-pw.csv], [0]) AT_CLEANUP AT_SETUP([QUICK CLUSTER crash on bad cluster quantity]) AT_DATA([badn.sps], [dnl data list notable list /x * y *. begin data. 1 2 1 2.2 end data. QUICK CLUSTER x y /CRITERIA = CLUSTER(0) . ]) AT_CHECK([pspp -O format=csv badn.sps], [1], [ignore]) AT_CLEANUP AT_SETUP([QUICK CLUSTER infinite loop on bad command name]) AT_DATA([quick-cluster.sps], [dnl data list notable list /x y. begin data. 1 2 1 2.2 end data. QUICK CLUSTER x y /UNSUPPORTED. ]) AT_CHECK([pspp -O format=csv quick-cluster.sps], [1], [dnl quick-cluster.sps:7.20-7.30: error: QUICK CLUSTER: Syntax error at `UNSUPPORTED'. ]) AT_CLEANUP AT_SETUP([QUICK CLUSTER /PRINT subcommand]) AT_DATA([quick-cluster.sps], [dnl data list notable list /cluster (A8) x (F) y (F). begin data. A 10.45 9.38 A 10.67 9.17 A 10.86 9.63 A 8.77 8.45 A 8.04 11.77 A 10.34 9.83 A 10.37 10.54 A 11.49 8.18 A 10.17 11.10 A 11.37 9.16 A 10.25 8.83 A 8.69 9.92 A 10.36 10.39 A 10.89 10.51 A 9.9 11.39 A 11.1 10.91 A 11.77 8.47 A 9.5 10.46 B -11.01 -9.21 B -10.8 -11.76 B -10.03 -10.29 B -9.54 -9.17 B -10.16 -9.82 B -10.01 -8.63 B -9.6 -10.22 B -11.36 -10.93 B -10.63 -10.97 B -9.53 -10.78 B -9.40 -10.26 B -10.76 -9.76 B -9.9 -10.11 B -10.16 -9.75 B -8.65 -11.31 B -10.10 -10.90 B -11.67 -9.89 B -11.11 -9.23 B -8.7 -8.43 B -11.35 -8.68 C -10.20 9.00 C -10.12 9.92 C -10.41 10.16 C -9.86 10.12 C -10.31 10.12 C -9.57 10.16 C -9.69 9.93 C -9.14 10.84 C -9.8 10.19 C -9.97 10.22 C -11.65 10.81 C -9.80 11.39 C -10.31 10.74 C -10.26 10.38 C -11.57 10.02 C -10.50 9.75 C -9.06 9.63 C -10.17 10.82 C -10.22 9.99 end data. QUICK CLUSTER x y /CRITERIA=CLUSTERS(3) /PRINT=INITIAL CLUSTER. ]) AT_CHECK([pspp -O format=csv quick-cluster.sps], [0], [dnl Table: Initial Cluster Centers ,Cluster,, ,,, ,1,2,3 ,,, x,0,0,1 y,0,1,0 Table: Final Cluster Centers ,Cluster,, ,,, ,1,2,3 ,,, x,-10,-10,10 y,-10,10,10 Table: Number of Cases in each Cluster Cluster,1,20 ,2,19 ,3,18 Valid,,57 Table: Cluster Membership Case Number,Cluster 1,3 2,3 3,3 4,3 5,3 6,3 7,3 8,3 9,3 10,3 11,3 12,3 13,3 14,3 15,3 16,3 17,3 18,3 19,1 20,1 21,1 22,1 23,1 24,1 25,1 26,1 27,1 28,1 29,1 30,1 31,1 32,1 33,1 34,1 35,1 36,1 37,1 38,1 39,2 40,2 41,2 42,2 43,2 44,2 45,2 46,2 47,2 48,2 49,2 50,2 51,2 52,2 53,2 54,2 55,2 56,2 57,2 ]) AT_CLEANUP