output: Introduce pivot tables.
[pspp] / tests / language / stats / npar.at
1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017 Free Software Foundation, Inc.
3 dnl 
4 dnl This program is free software: you can redistribute it and/or modify
5 dnl it under the terms of the GNU General Public License as published by
6 dnl the Free Software Foundation, either version 3 of the License, or
7 dnl (at your option) any later version.
8 dnl 
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 dnl GNU General Public License for more details.
13 dnl 
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 dnl
17 AT_BANNER([NPAR TESTS])
18
19 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 < 1])
20 AT_DATA([npar.sps], [dnl
21 SET FORMAT F8.3.
22
23 DATA LIST LIST NOTABLE /x * w *.
24 BEGIN DATA.
25 1   6
26 2   15
27 END DATA.
28
29 WEIGHT BY w.
30
31 NPAR TESTS
32         /BINOMIAL(0.3) = x
33         .
34 ])
35 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
36 Table: Binomial Test
37 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
38 x,Group 1,1.000,6.000,.286,.300,.551
39 ,Group 2,2.000,15.000,.714,,
40 ,Total,,21.000,1.000,,
41 ])
42 AT_CLEANUP
43
44 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 > 1])
45 AT_DATA([npar.sps], [dnl
46 SET FORMAT F8.3.
47
48 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
49 BEGIN DATA.
50 1   7
51 2   6
52 END DATA.
53
54 WEIGHT BY w.
55
56 NPAR TESTS
57         /BINOMIAL(0.4) = x
58         .
59 ])
60 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
61 Table: Binomial Test
62 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
63 x,Group 1,1,7,.538,.400,.229
64 ,Group 2,2,6,.462,,
65 ,Total,,13,1.000,,
66 ])
67 AT_CLEANUP
68
69 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 = 1])
70 AT_DATA([npar.sps], [dnl
71 SET FORMAT F8.3.
72
73 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
74 BEGIN DATA.
75 1   8
76 2   8
77 END DATA.
78
79 WEIGHT BY w.
80
81 NPAR TESTS
82         /BINOMIAL(0.4) = x
83         .
84 ])
85 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
86 Table: Binomial Test
87 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
88 x,Group 1,1,8,.500,.400,.284
89 ,Group 2,2,8,.500,,
90 ,Total,,16,1.000,,
91 ])
92 AT_CLEANUP
93
94 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 < 1])
95 AT_DATA([npar.sps], [dnl
96 SET FORMAT F8.3.
97
98 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
99 BEGIN DATA.
100 1   11
101 2   12
102 END DATA.
103
104 WEIGHT BY w.
105
106 NPAR TESTS
107         /BINOMIAL(0.6) = x
108         .
109 ])
110 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
111 Table: Binomial Test
112 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
113 x,Group 1,1,11,.478,.600,.164
114 ,Group 2,2,12,.522,,
115 ,Total,,23,1.000,,
116 ])
117 AT_CLEANUP
118
119 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 > 1])
120 AT_DATA([npar.sps], [dnl
121 SET FORMAT F8.3.
122
123 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
124 BEGIN DATA.
125 1   11
126 2   9
127 END DATA.
128
129 WEIGHT BY w.
130
131 NPAR TESTS
132         /BINOMIAL(0.6) = x.
133 ])
134 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
135 Table: Binomial Test
136 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
137 x,Group 1,1,11,.550,.600,.404
138 ,Group 2,2,9,.450,,
139 ,Total,,20,1.000,,
140 ])
141 AT_CLEANUP
142
143 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 = 1])
144 AT_DATA([npar.sps], [dnl
145 SET FORMAT F8.3.
146
147 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
148 BEGIN DATA.
149 1   11
150 2   11
151 END DATA.
152
153 WEIGHT BY w.
154
155 NPAR TESTS
156         /BINOMIAL(0.6) = x.
157 ])
158 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
159 Table: Binomial Test
160 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
161 x,Group 1,1,11,.500,.600,.228
162 ,Group 2,2,11,.500,,
163 ,Total,,22,1.000,,
164 ])
165 AT_CLEANUP
166
167 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 < 1])
168 AT_DATA([npar.sps], [dnl
169 SET FORMAT F8.3.
170
171 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
172 BEGIN DATA.
173 1   8
174 2   15
175 END DATA.
176
177 WEIGHT BY w.
178
179 NPAR TESTS
180         /BINOMIAL = x
181         .
182 ])
183 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
184 Table: Binomial Test
185 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
186 x,Group 1,1,8,.348,.500,.210
187 ,Group 2,2,15,.652,,
188 ,Total,,23,1.000,,
189 ])
190 AT_CLEANUP
191
192 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 > 1])
193 AT_DATA([npar.sps], [dnl
194 SET FORMAT F8.3.
195
196 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
197 BEGIN DATA.
198 1   12
199 2   6
200 END DATA.
201
202 WEIGHT BY w.
203
204 NPAR TESTS
205         /BINOMIAL(0.5) = x.
206 ])
207 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
208 Table: Binomial Test
209 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
210 x,Group 1,1,12,.667,.500,.238
211 ,Group 2,2,6,.333,,
212 ,Total,,18,1.000,,
213 ])
214 AT_CLEANUP
215
216 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1])
217 AT_DATA([npar.sps], [dnl
218 SET FORMAT F8.3.
219
220 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
221 BEGIN DATA.
222 1   10
223 2   10
224 END DATA.
225
226 WEIGHT BY w.
227
228 NPAR TESTS
229         /BINOMIAL(0.5) = x
230         .
231 ])
232 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
233 Table: Binomial Test
234 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
235 x,Group 1,1,10,.500,.500,1.000
236 ,Group 2,2,10,.500,,
237 ,Total,,20,1.000,,
238 ])
239 AT_CLEANUP
240
241 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1 Cutpoint])
242 AT_DATA([npar.sps], [dnl
243 SET FORMAT F8.3.
244
245 DATA LIST LIST NOTABLE /x * w *.
246 BEGIN DATA.
247 9    3
248 10   7
249 11   16
250 END DATA.
251
252 WEIGHT BY w.
253
254 NPAR TESTS
255         /BINOMIAL(0.5) = x (10)
256         .
257 ])
258 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
259 Table: Binomial Test
260 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
261 x,Group 1,<= 10,10.000,.385,.500,.327
262 ,Group 2,,16.000,.615,,
263 ,Total,,26.000,1.000,,
264 ])
265 AT_CLEANUP
266
267 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1 Named values])
268 AT_DATA([npar.sps], [dnl
269 SET FORMAT F8.3.
270
271 DATA LIST LIST NOTABLE /x * w *.
272 BEGIN DATA.
273 10   10
274 15   45
275 20   13
276 END DATA.
277
278 WEIGHT BY w.
279
280 NPAR TESTS
281         /BINOMIAL(0.5) = x (10, 20)
282         .
283 ])
284 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
285 Table: Binomial Test
286 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
287 x,Group 1,10.000,10.000,.435,.500,.678
288 ,Group 2,20.000,13.000,.565,,
289 ,Total,,23.000,1.000,,
290 ])
291 AT_CLEANUP
292
293
294
295 dnl Test for a bug which caused binomial to crash.
296 AT_SETUP([NPAR TESTS BINOMIAL - crash])
297 AT_DATA([nparX.sps], [dnl
298 data list list /range *.
299 begin data.
300 0
301 1
302 end data.
303
304 * This is invalid syntax
305 NPAR TEST
306         /BINOMIAL(0.5) = Range().
307
308 ])
309 AT_CHECK([pspp -O format=csv nparX.sps], [1], [ignore])
310
311 AT_CLEANUP
312
313
314
315 AT_SETUP([NPAR TESTS CHISQUARE])
316 AT_DATA([npar.sps], [dnl
317 DATA LIST NOTABLE LIST /x * y * w *.
318 BEGIN DATA.
319 1   2  1
320 2   1  3
321 3.1 1  4
322 3.2 2  1
323 4   2  2
324 5   3  1
325 1   4  2
326 END DATA.
327
328 WEIGHT BY w.
329
330 NPAR TESTS
331   CHISQUARE=x y
332   .
333
334 NPAR TESTS
335   CHISQUARE=y
336   /EXPECTED=3 4 5 4
337   .
338
339 NPAR TESTS
340   CHISQUARE=x y(2, 4)
341   /EXPECTED = 6 10 3
342   .
343 ])
344
345 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
346 Table: x
347 Value,Observed N,Expected N,Residual
348 1.00,3.00,2.33,.67
349 2.00,3.00,2.33,.67
350 3.10,4.00,2.33,1.67
351 3.20,1.00,2.33,-1.33
352 4.00,2.00,2.33,-.33
353 5.00,1.00,2.33,-1.33
354 Total,14.00,,
355
356 Table: y
357 Value,Observed N,Expected N,Residual
358 1.00,7.00,3.50,3.50
359 2.00,4.00,3.50,.50
360 3.00,1.00,3.50,-2.50
361 4.00,2.00,3.50,-1.50
362 Total,14.00,,
363
364 Table: Test Statistics
365 ,Chi-square,df,Asymp. Sig.
366 x,3.14,5,.678
367 y,6.00,3,.112
368
369 Table: y
370 Value,Observed N,Expected N,Residual
371 1.00,7.00,2.63,4.38
372 2.00,4.00,3.50,.50
373 3.00,1.00,4.38,-3.38
374 4.00,2.00,3.50,-1.50
375 Total,14.00,,
376
377 Table: Test Statistics
378 ,Chi-square,df,Asymp. Sig.
379 y,10.61,3,.014
380
381 Table: Frequencies
382 ,x,,,,y,,,
383 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
384 1,2.00,3.00,3.16,-.16,2.00,4.00,2.21,1.79
385 2,3.00,5.00,5.26,-.26,3.00,1.00,3.68,-2.68
386 3,4.00,2.00,1.58,.42,4.00,2.00,1.11,.89
387 Total,,10.00,,,,7.00,,
388
389 Table: Test Statistics
390 ,Chi-square,df,Asymp. Sig.
391 x,.13,2,.936
392 y,4.13,2,.127
393 ])
394
395 AT_CLEANUP
396
397 AT_SETUP([NPAR TESTS CHISQUARE expected values missing])
398 AT_DATA([npar.sps], [dnl
399 DATA LIST NOTABLE LIST /x * y * w *.
400 BEGIN DATA.
401 1   2  1
402 2   1  3
403 3.1 1  4
404 3.2 2  1
405 4   2  2
406 5   3  1
407 1   4  2
408 END DATA.
409
410 WEIGHT BY w.
411
412 NPAR TESTS
413   CHISQUARE=y
414   /EXPECTED = 3 4 5 4 3 1
415   .
416 ])
417
418 AT_CHECK([pspp -O format=csv npar.sps], [1], [dnl
419 "error: CHISQUARE test specified 6 expected values, but variable y has 4 distinct values."
420
421 Table: Test Statistics
422 ,Chi-square,df,Asymp. Sig.
423 y,.00,0,1.000
424 ])
425
426 AT_CLEANUP
427
428 AT_SETUP([NPAR TESTS CHISQUARE with DESCRIPTIVES])
429 AT_DATA([npar.sps], [dnl
430 DATA LIST NOTABLE LIST /x * y * w * .
431 BEGIN DATA.
432 1   2  1 
433 2   1  3
434 3.1 1  4
435 3.2 2  1
436 4   2  2
437 5   3  1
438 1   4  2
439 .   5  1
440 END DATA.
441
442 WEIGHT BY w.
443
444 MISSING VALUES x (4).
445
446 NPAR TESTS
447   CHISQUARE=x y(-2,5)
448   /MISSING=ANALYSIS
449   /STATISTICS=DESCRIPTIVES
450   .
451 ])
452
453 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
454 Table: Frequencies
455 ,x,,,,y,,,
456 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
457 1,-2.00,.00,1.50,-1.50,-2.00,.00,1.88,-1.88
458 2,-1.00,.00,1.50,-1.50,-1.00,.00,1.88,-1.88
459 3,.00,.00,1.50,-1.50,.00,.00,1.88,-1.88
460 4,1.00,3.00,1.50,1.50,1.00,7.00,1.88,5.13
461 5,2.00,3.00,1.50,1.50,2.00,4.00,1.88,2.13
462 6,3.00,5.00,1.50,3.50,3.00,1.00,1.88,-.88
463 7,4.00,.00,1.50,-1.50,4.00,2.00,1.88,.13
464 8,5.00,1.00,1.50,-.50,5.00,1.00,1.88,-.88
465 Total,,12.00,,,,15.00,,
466
467 Table: Test Statistics
468 ,Chi-square,df,Asymp. Sig.
469 x,17.33,7,.015
470 y,22.87,7,.002
471
472 Table: Descriptive Statistics
473 ,N,Mean,Std. Deviation,Minimum,Maximum
474 x,12.00,2.47,1.19,1.00,5.00
475 y,15.00,2.07,1.33,1.00,5.00
476 ])
477 AT_CLEANUP
478
479 AT_SETUP([NPAR TESTS CHISQUARE, listwise missing])
480 AT_DATA([npar.sps], [dnl
481 DATA LIST NOTABLE LIST /x * y * w * .
482 BEGIN DATA.
483 1   2  1 
484 2   1  3
485 3.1 1  4
486 3.2 2  1
487 4   2  2
488 5   3  1
489 1   4  2
490 .   5  1
491 END DATA.
492
493 WEIGHT BY w.
494
495 * MISSING VALUES x (4).
496
497 NPAR TESTS
498   CHISQUARE=x y(-2,5)
499   /MISSING=LISTWISE
500   /STATISTICS=DESCRIPTIVES
501   .
502 ])
503
504 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
505 Table: Frequencies
506 ,x,,,,y,,,
507 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
508 1,-2.00,.00,1.75,-1.75,-2.00,.00,1.75,-1.75
509 2,-1.00,.00,1.75,-1.75,-1.00,.00,1.75,-1.75
510 3,.00,.00,1.75,-1.75,.00,.00,1.75,-1.75
511 4,1.00,3.00,1.75,1.25,1.00,7.00,1.75,5.25
512 5,2.00,3.00,1.75,1.25,2.00,4.00,1.75,2.25
513 6,3.00,5.00,1.75,3.25,3.00,1.00,1.75,-.75
514 7,4.00,2.00,1.75,.25,4.00,2.00,1.75,.25
515 8,5.00,1.00,1.75,-.75,5.00,.00,1.75,-1.75
516 Total,,14.00,,,,14.00,,
517
518 Table: Test Statistics
519 ,Chi-square,df,Asymp. Sig.
520 x,13.43,7,.062
521 y,26.00,7,.001
522
523 Table: Descriptive Statistics
524 ,N,Mean,Std. Deviation,Minimum,Maximum
525 x,14.00,2.69,1.23,1.00,5.00
526 y,14.00,1.86,1.10,1.00,4.00
527 ])
528 AT_CLEANUP
529
530 AT_SETUP([NPAR TESTS WILCOXON])
531 AT_DATA([npar.sps], [dnl
532 data list notable list /foo * bar * w (f8.0).
533 begin data.
534 1.00     1.00   1
535 1.00     2.00   1
536 2.00     1.00   1
537 1.00     4.00   1
538 2.00     5.00   1
539 1.00    19.00   1
540 2.00     7.00   1
541 4.00     5.00   1
542 1.00    12.00   1
543 2.00    13.00   1
544 2.00     2.00   1
545 12.00      .00  2
546 12.00     1.00  1
547 13.00     1.00  1
548 end data
549
550 variable labels foo "first" bar "second".
551
552 weight by w.
553
554 npar test
555  /wilcoxon=foo with bar (paired)
556  /missing analysis
557  /method=exact.
558 ])
559
560 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
561 Table: Ranks
562 ,,N,Mean Rank,Sum of Ranks
563 first - second,Negative Ranks,8,6.00,48.00
564 ,Positive Ranks,5,8.60,43.00
565 ,Ties,2,,
566 ,Total,15,,
567
568 Table: Test Statistics
569 ,first - second
570 Z,-.18
571 Asymp. Sig. (2-tailed),.861
572 Exact Sig. (2-tailed),.893
573 Exact Sig. (1-tailed),.446
574 ])
575
576 AT_CLEANUP
577
578 AT_SETUP([NPAR TESTS WILCOXON with missing values])
579 AT_DATA([npar.sps], [dnl
580 data list notable list /foo * bar * dummy *.
581 begin data.
582 1.00     1.00    1
583 1.00     2.00    1
584 2.00     1.00    1
585 1.00     4.00    .
586 2.00     5.00    .
587 1.00    19.00    .
588 2.00     7.00    1
589 4.00     5.00    1
590 1.00    12.00    1
591 2.00    13.00    1
592 2.00     2.00    1
593 12.00      .00   1
594 12.00      .00   1
595 34.2       .     1
596 12.00     1.00   1  
597 13.00     1.00   1
598 end data
599
600 variable labels foo "first" bar "second".
601
602 npar test
603  /wilcoxon=foo with bar (paired)
604  /missing analysis
605  /method=exact.
606 ])
607
608 dnl This is the same output as the previous test.
609 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
610 Table: Ranks
611 ,,N,Mean Rank,Sum of Ranks
612 first - second,Negative Ranks,8,6.00,48.00
613 ,Positive Ranks,5,8.60,43.00
614 ,Ties,2,,
615 ,Total,15,,
616
617 Table: Test Statistics
618 ,first - second
619 Z,-.18
620 Asymp. Sig. (2-tailed),.861
621 Exact Sig. (2-tailed),.893
622 Exact Sig. (1-tailed),.446
623 ])
624 AT_CLEANUP
625
626 AT_SETUP([NPAR TESTS SIGN])
627 AT_DATA([npar.sps], [dnl
628 set format = F9.3.
629
630 data list notable list /age * height rank *.
631 begin data.
632 10 12 11
633 12 13 13 
634 13 14 12
635 12 12 10
636 9   9 10
637 10.3 10.2 12
638 end data.
639
640 npar tests
641         /sign=age height WITH height rank (PAIRED)
642         /MISSING ANALYSIS
643         /METHOD=EXACT
644         .
645 ])
646 AT_CHECK([pspp -o pspp.csv npar.sps])
647 dnl Some machines return .313 instead of .312 
648 dnl (see bug #31611).
649 AT_CHECK([sed -e 's/\.313$/.312/' -e 's/^Exact Sig\. (1-tailed),\.313/Exact Sig. (1-tailed),.312/' pspp.csv], [0], [dnl
650 Table: Frequencies
651 ,,N
652 age - height,Negative Differences,3
653 ,Positive Differences,1
654 ,Ties,2
655 ,Total,6
656 height - rank,Negative Differences,2
657 ,Positive Differences,3
658 ,Ties,1
659 ,Total,6
660
661 Table: Test Statistics
662 ,age - height,height - rank
663 Exact Sig. (2-tailed),.625,1.000
664 Exact Sig. (1-tailed),.312,.500
665 Point Probability,.250,.312
666 ])
667 AT_CLEANUP
668
669
670 AT_SETUP([NPAR Kruskal-Wallis test])
671
672 dnl Simple case
673 AT_DATA([kw-simple.sps], [dnl
674 set format = F9.3.
675
676 data list notable list /gv * xscore *.
677 begin data
678 1 96
679 1 128
680 1 83
681 2 132
682 2 135
683 2 109
684 3 115
685 1 61
686 1 101
687 2 82
688 2 124
689 3 149 
690 3 166
691 3 147
692 end data.
693
694 value label /gv
695        1 "timed out"
696        2 "hit wicket"
697        3 "handled the ball".
698
699 npar tests
700         /kruskal-wallis xscore by gv (1, 3)
701         .
702 ])
703
704 AT_CHECK([pspp -o pspp.csv -o pspp.txt kw-simple.sps])
705 AT_CHECK([cat pspp.csv], [0], [dnl
706 Table: Ranks
707 ,,N,Mean Rank
708 xscore,timed out,5,4.400
709 ,hit wicket,5,7.400
710 ,handled the ball,4,11.500
711 ,Total,14,
712
713 Table: Test Statistics
714 ,xscore
715 Chi-Square,6.406
716 df,2
717 Asymp. Sig.,.041
718 ])
719
720
721 dnl Now try a missing value in the group variable
722 AT_DATA([kw-missing-group.sps], [dnl
723 set format = F9.3.
724
725 data list notable list /gv * xscore *.
726 begin data
727 1 96
728 1 128
729 1 83
730 1 61
731 1 101
732 2 82
733 2 124
734 2 132
735 2 135
736 2 109
737 3 115
738 3 149 
739 3 166
740 3 147
741 2.5 344
742 end data.
743
744 missing values gv (2.5).
745
746 value label /gv
747        1 "timed out"
748        2 "hit wicket"
749        3 "handled the ball".
750
751 npar tests
752         /kruskal-wallis xscore by gv (1, 3)
753         /missing=exclude
754         .
755 ])
756
757 AT_CHECK([pspp -o pspp2.csv kw-missing-group.sps])
758
759 dnl The result should be the same as before
760 AT_CHECK([diff pspp.csv pspp2.csv], [0])
761
762 AT_CLEANUP
763
764
765 AT_SETUP([NPAR Kruskal-Wallis multiple-variables])
766
767 AT_DATA([kw-multi.sps], [dnl
768 set format = F9.3.
769
770 data list notable list /gv * xscore * yscore.
771 begin data
772 1 96   .
773 1 128  .
774 1 83   . 
775 2 132  132
776 2 135  135
777 2 109  109
778 3 115  115
779 1 61   . 
780 1 101  .
781 2 82   82 
782 2 124  124
783 3 149  149
784 3 166  166
785 3 147  147
786 4 .    96
787 4 .    128
788 4 .    83
789 4 .    61
790 4 .    101
791 end data.
792
793 value label /gv
794        1 "timed out"
795        2 "hit wicket"
796        3 "handled the ball"
797        4 "bowled"
798        5 "lbw"
799        .
800        
801 npar tests
802         /k-w xscore yscore by gv (1, 5)
803         .
804
805 ])
806
807
808 AT_CHECK([pspp -o pspp.csv kw-multi.sps])
809 AT_CHECK([cat pspp.csv], [0], [dnl
810 Table: Ranks
811 ,,N,Mean Rank
812 xscore,timed out,5,4.400
813 ,hit wicket,5,7.400
814 ,handled the ball,4,11.500
815 ,Total,14,
816 yscore,hit wicket,5,7.400
817 ,handled the ball,4,11.500
818 ,bowled,5,4.400
819 ,Total,14,
820
821 Table: Test Statistics
822 ,xscore,yscore
823 Chi-Square,6.406,6.406
824 df,2,2
825 Asymp. Sig.,.041,.041
826 ])
827
828 AT_CLEANUP
829
830
831
832 AT_SETUP([NPAR TESTS Runs])
833 AT_DATA([npar-runs.sps], [dnl
834 set format F11.4.
835 data list notable list /score * w *.
836 begin data
837 4     6
838 .     4
839 4     3 
840 3    20 
841 2    29 
842 1    42 
843 6    18 
844 5     7 
845 6    78 
846 5    10 
847 6    46 
848 5     5 
849 6    17 
850 5     1 
851 6    11 
852 4     2 
853 3     7 
854 2     6 
855 1    10 
856 4    13 
857 3    22 
858 3    11 
859 2    24 
860 1    18 
861 4     4 
862 3    12 
863 2    10 
864 1    25 
865 4     4 
866 3     7 
867 2     3 
868 1     4 
869 4     2 
870 3     3 
871 2     2 
872 1     4 
873 end data.
874
875 weight by w.
876
877 npar tests
878         /runs (MEDIAN) = score
879         /runs (MEAN) = score
880         /runs (MODE) = score 
881         .
882 ])
883
884 AT_CHECK([pspp -O format=csv npar-runs.sps], [0],
885 [Table: Runs Test
886 ,score
887 Test Value (median),3.0000
888 Cases < Test Value,177.0000
889 Cases ≥ Test Value,309.0000
890 Total Cases,486.0000
891 Number of Runs,12
892 Z,-20.9931
893 Asymp. Sig. (2-tailed),2.000
894
895 Table: Runs Test
896 ,score
897 Test Value (mean),3.6379
898 Cases < Test Value,259.0000
899 Cases ≥ Test Value,227.0000
900 Total Cases,486.0000
901 Number of Runs,12
902 Z,-21.0650
903 Asymp. Sig. (2-tailed),2.000
904
905 Table: Runs Test
906 ,score
907 Test Value (mode),6.0000
908 Cases < Test Value,316.0000
909 Cases ≥ Test Value,170.0000
910 Total Cases,486.0000
911 Number of Runs,11
912 Z,-21.0742
913 Asymp. Sig. (2-tailed),2.000
914 ])
915
916 AT_CLEANUP
917
918
919 dnl Thanks to Douglas Bonett for providing this test case.
920 AT_SETUP([NPAR TESTS Runs (2)])
921 AT_DATA([npar-runs.sps], [dnl
922 data list notable free /y.
923 begin data
924 1 1 2 1 2 1 1 2 1 1 1 2 1 2
925 end data.
926 NPAR TEST /RUNS(1.5) = y.
927 ])
928
929 AT_CHECK([pspp -O format=csv npar-runs.sps], [0], [dnl
930 Table: Runs Test
931 ,y
932 Test Value,1.50
933 Cases < Test Value,9
934 Cases ≥ Test Value,5
935 Total Cases,14
936 Number of Runs,10
937 Z,1.26
938 Asymp. Sig. (2-tailed),.206
939 ])
940 AT_CLEANUP
941
942
943 AT_SETUP([NPAR TESTS Friedman])
944 AT_DATA([npar-friedman.sps], [dnl
945 set format F15.4.
946 data list notable list /x * y * z.
947 begin data
948 9.5 6.5 8.1
949 8.0 6.0 6.0
950 7.0 6.5 4.2
951 9.5 5.0 7.3
952 9.0 7.0 6.2
953 8.5 6.9 6.5
954 7.5 8.0 6.5
955 6.0 8.0 3.1
956 5.0 6.0 4.9
957 7.5 7.5 6.2
958 end data.
959
960 npar tests
961      /friedman = x y z.
962 ])
963
964 AT_CHECK([pspp -O format=csv npar-friedman.sps], [0], [dnl
965 Table: Ranks
966 ,Mean Rank
967 x,2.6500
968 y,2.1000
969 z,1.2500
970
971 Table: Test Statistics
972 N,10
973 Chi-Square,10.4737
974 df,2
975 Asymp. Sig.,.005
976 ])
977
978 AT_CLEANUP
979
980
981
982 AT_SETUP([NPAR TESTS Mann-Whitney])
983 AT_DATA([npar-mann-whitney.sps], [dnl
984 SET FORMAT     = F11.4
985
986 data list notable list /height * sex (f1.0).
987 begin data.
988 201 1            
989 84 1            
990 83 1            
991 94 1            
992 88 0            
993 99 0            
994 55 0            
995 69 0            
996 86 1            
997 79 1            
998 91 0            
999 201 0            
1000 88 1            
1001 85 1            
1002 82 1            
1003 88 0            
1004 75 0            
1005 99 0            
1006 81 0            
1007 72 1            
1008 89 1            
1009 92 1            
1010 80 0            
1011 82 0            
1012 76 0            
1013 65 0            
1014 85 0            
1015 76 1            
1016 145 1            
1017 24 1
1018 1 4
1019 -4 5
1020 34 5
1021 21 4
1022 end data.
1023
1024 NPAR TESTS 
1025      /M-W = height BY sex (0,1).
1026 ])
1027
1028 AT_CHECK([pspp -O format=csv npar-mann-whitney.sps], [0], [dnl
1029 Table: Ranks
1030 ,,N,Mean Rank,Sum of Ranks
1031 height,0,15,14.5333,218.0000
1032 ,1,15,16.4667,247.0000
1033 ,Total,30,,
1034
1035 Table: Test Statistics
1036 ,Mann-Whitney U,Wilcoxon W,Z,Asymp. Sig. (2-tailed)
1037 height,98.0000,218.0000,-.6020,.547
1038 ])
1039
1040
1041 AT_CLEANUP
1042
1043
1044 AT_SETUP([NPAR TESTS Mann-Whitney Multiple])
1045 dnl Check for a bug where the ranks were inappropriately allocated, when
1046 dnl multiple variables were tested and MISSING=ANALYSIS chosen.
1047
1048 cp $abs_srcdir/language/mann-whitney.txt .
1049
1050 AT_DATA([npar-mann-whitney.sps], [dnl
1051 SET FORMAT     = F11.3
1052
1053 DATA LIST NOTABLE FILE='mann-whitney.txt'
1054      LIST /I002_01 I002_02 I002_03 I002_04 sum_HL *.
1055
1056 VARIABLE LABELS
1057   I002_01 'IOS: Familie'
1058   I002_02 'IOS: Freunde'
1059   I002_03 'IOS: Partner*in'
1060   I002_04 'IOS: Bekannte'.
1061   
1062 MISSING VALUES I002_01 I002_02 I002_03 I002_04 (-9 -1).
1063
1064 NPAR TESTS
1065     /MISSING=ANALYSIS
1066     /M-W=I002_01 I002_02 I002_03 I002_04 BY sum_HL (0 1).
1067 ])
1068
1069 AT_CHECK([pspp -O format=csv npar-mann-whitney.sps], [0], [dnl
1070 Table: Ranks
1071 ,,N,Mean Rank,Sum of Ranks
1072 IOS: Familie,.000,114,110.018,12542.000
1073 ,1.000,115,119.939,13793.000
1074 ,Total,229,,
1075 IOS: Freunde,.000,115,108.339,12459.000
1076 ,1.000,115,122.661,14106.000
1077 ,Total,230,,
1078 IOS: Partner*in,.000,97,95.351,9249.000
1079 ,1.000,91,93.593,8517.000
1080 ,Total,188,,
1081 IOS: Bekannte,.000,115,111.065,12772.500
1082 ,1.000,115,119.935,13792.500
1083 ,Total,230,,
1084
1085 Table: Test Statistics
1086 ,Mann-Whitney U,Wilcoxon W,Z,Asymp. Sig. (2-tailed)
1087 IOS: Familie,5987.000,12542.000,-1.167,.243
1088 IOS: Freunde,5789.000,12459.000,-1.674,.094
1089 IOS: Partner*in,4331.000,8517.000,-.245,.807
1090 IOS: Bekannte,6102.500,12772.500,-1.046,.296
1091 ])
1092
1093 AT_CLEANUP
1094
1095
1096
1097 AT_SETUP([NPAR TESTS Cochran])
1098 AT_DATA([npar-cochran.sps], [dnl
1099 set format f11.3.
1100
1101 data list notable list /v1 * v2 * v3 * v4 * v5 * v6 * v7 *.
1102 begin data.
1103 2 1 1 2 1 1 2 
1104 2 2 2 2 1 1 1  
1105 1 1 2 2 1 1 2  
1106 2 2 2 2 1 1 2 
1107 2 1 2 1 1 2 1 
1108 1 2 2 1 1 1 1 
1109 1 2 2 2 2 2 2 
1110 2 2 1 2 1 1 1 
1111 1 2 1 2 1 1 2 
1112 end data.     
1113
1114 npar tests 
1115         /cochran = v1 to v7 .
1116
1117 ])
1118
1119 AT_CHECK([pspp -o pspp.csv npar-cochran.sps])
1120
1121 AT_CHECK([cat pspp.csv], [0], [dnl
1122 Table: Frequencies
1123 ,Value,
1124 ,Success (2),Failure (1)
1125 v1,5,4
1126 v2,6,3
1127 v3,6,3
1128 v4,7,2
1129 v5,1,8
1130 v6,2,7
1131 v7,5,4
1132
1133 Table: Test Statistics
1134 ,Value
1135 N,9
1136 Cochran's Q,12.735
1137 df,6
1138 Asymp. Sig.,.047
1139 ])
1140
1141 AT_CLEANUP
1142
1143
1144
1145 AT_SETUP([NPAR TESTS Kendall])
1146 AT_DATA([npar-kendall.sps], [dnl
1147 SET FORMAT F14.3.
1148
1149 data list notable list /v1 * v2 * v3
1150 begin data.
1151  7  7  2 
1152  5  6  5 
1153  8  6  4 
1154  5  7  4 
1155  5  4  4 
1156  8  6  5 
1157  6  3  5 
1158  7  6  5 
1159  8  5  5
1160  .  2  2 
1161  5  4  5 
1162  3  4  4 
1163  5  1  2 
1164  5  2  1 
1165  7  6  5 
1166  6  3  4 
1167  6  6  6 
1168  5  4  5 
1169  4  3  4 
1170  9  1  1 
1171  6  2  1 
1172  3  7  8 
1173  6  3  4 
1174  4  4  4 
1175  5  4  3 
1176  6  5  2 
1177  4  4  8 
1178  4  6  4 
1179  6  5  5 
1180  7  8  6 
1181  5  3  5 
1182 end data.
1183
1184 npar tests
1185         /kendall = all
1186         .
1187 ])
1188
1189 AT_CHECK([pspp -o pspp.csv npar-kendall.sps])
1190
1191 AT_CHECK([cat pspp.csv], [0], [dnl
1192 Table: Ranks
1193 ,Mean Rank
1194 v1,2.500
1195 v2,1.817
1196 v3,1.683
1197
1198 Table: Test Statistics
1199 N,30
1200 Kendall's W,.233
1201 Chi-Square,13.960
1202 df,2
1203 Asymp. Sig.,.001
1204 ])
1205
1206 AT_CLEANUP
1207
1208
1209
1210 AT_SETUP([NPAR TESTS McNemar])
1211
1212 AT_DATA([mcnemar.sps], [dnl
1213 set format = F12.3.
1214 data list notable list /v1 * v2 * junk *.
1215 begin data.
1216 0 0 0
1217 0 0 0
1218 0 0 0
1219 0 0 0
1220 0 1 0
1221 0 1 0
1222 0 1 0
1223 0 1 0
1224 0 1 1
1225 0 1 1
1226 0 1 1
1227 0 1 1
1228 0 1 1
1229 1 0 1
1230 1 0 1
1231 1 1 1
1232 1 1 1
1233 1 1 0
1234 1 1 0
1235 1 1 1
1236 end data.
1237
1238 npar tests 
1239      /mcnemar = v1 WITH v2 junk.
1240 ])
1241
1242 AT_CHECK([pspp -O format=csv mcnemar.sps], [0], [dnl
1243 Table: v1 & v2
1244 ,v2,
1245 v1,.000,1.000
1246 .000,4,9
1247 1.000,2,5
1248
1249 Table: v1 & junk
1250 ,junk,
1251 v1,.000,1.000
1252 .000,8,5
1253 1.000,2,5
1254
1255 Table: Test Statistics
1256 ,N,Exact Sig. (2-tailed),Exact Sig. (1-tailed),Point Probability
1257 v1 & v2,20,.065,.033,.027
1258 v1 & junk,20,.453,.227,.164
1259 ])
1260
1261 AT_CLEANUP
1262
1263
1264 AT_SETUP([NPAR TESTS Kolmogorov-Smirnov Uniform parameters given])
1265
1266 AT_DATA([ks-uniform.sps], [dnl
1267 set format F12.3.
1268 data list notable list /x *.
1269 begin data
1270 .554
1271 .382
1272 .329
1273 .480
1274 .711
1275 .503
1276 .203
1277 .477
1278 .621
1279 .581
1280 end data.
1281
1282 npar tests k-s (uniform 0 1) = x.
1283 ])
1284
1285 AT_CHECK([pspp -O format=csv ks-uniform.sps], [0], [dnl
1286 Table: One-Sample Kolmogorov-Smirnov Test
1287 ,,x
1288 N,,10
1289 Uniform Parameters,Minimum,.000
1290 ,Maximum,1.000
1291 Most Extreme Differences,Absolute,.289
1292 ,Positive,.289
1293 ,Negative,-.229
1294 Kolmogorov-Smirnov Z,,.914
1295 Asymp. Sig. (2-tailed),,.374
1296 ])
1297
1298 AT_CLEANUP
1299
1300
1301 AT_SETUP([NPAR TESTS Kolmogorov-Smirnov Normal parameters imputed])
1302
1303 AT_DATA([ks-normal.sps], [dnl
1304 set format = F12.3.
1305
1306 data list notable list /foo * bar *.
1307 begin data.
1308 65 12.5
1309 59 14.2
1310 43 12.6
1311 57 
1312 68 
1313 79 
1314 51 
1315 62 
1316 57  
1317 73 
1318 58 
1319 58 
1320 68 
1321 75 
1322 47 
1323 70 
1324 59 
1325 71 
1326 52 
1327 48 13.0
1328 58 14.1
1329 37 15.0
1330 39 13.1
1331 58 13.2
1332 43 14.5
1333 58 13.5
1334 86 14.0
1335 63 12.5
1336 80 12.8
1337 70 
1338 63 
1339 53 
1340 53 
1341 48 
1342 49 
1343 51 
1344 47 
1345 81 
1346 66 
1347 78 
1348 65
1349 69 
1350 70 12.1
1351 63 12.5
1352 64 12.4
1353 39 13.8
1354 51 13.2
1355 68 14.0
1356 76 12.6
1357 53 12.1
1358 71 13.5
1359 47 13.8
1360 87 14.1
1361 72 12.9
1362 48 12.1
1363 75 12.8
1364 51 13.4
1365 63 13.9
1366 61 12.5
1367 61 12.4
1368 66 12.8
1369 82 12.9
1370 81 13.6
1371 46 
1372 52 
1373 71 
1374 73 
1375 58 
1376 57 
1377 46 
1378 58 
1379 52 13.5
1380 71 13.2
1381 57 12.8
1382 78 14.1
1383 73 12.1
1384 50 12.6
1385 71
1386 51
1387 51
1388 68
1389 84
1390 64
1391 66
1392 65
1393 52
1394 56
1395 70
1396 68
1397 66
1398 78
1399 65
1400 71
1401 53
1402 81
1403 53
1404 57
1405 64
1406 61
1407 43
1408 56
1409 37
1410 74
1411 66
1412 81
1413 67
1414 80
1415 68
1416 76
1417 70
1418 80
1419 42
1420 74
1421 80
1422 70
1423 60
1424 39
1425 72
1426 69
1427 63
1428 72
1429 63
1430 49
1431 53 13.2
1432 43 13.8
1433 51 12.5
1434 63 12.6
1435 64 12.9
1436 65 13.0
1437 64 12.5
1438 66 12.0
1439 55 
1440 62 
1441 58 
1442 48 
1443 67 
1444 46 
1445 36 
1446 61 
1447 55 
1448 77 
1449 74 
1450 60 
1451 70  
1452 69 
1453 57 
1454 49 
1455 63 
1456 69 
1457 63 
1458 76 
1459 53 
1460 54 
1461 42 
1462 64 
1463 66 
1464 61 
1465 62 
1466 73 
1467 73 
1468 60 
1469 79 
1470 40 
1471 48 
1472 76 
1473 60 
1474 76 
1475 54
1476 69
1477 65
1478 69
1479 51
1480 54
1481 82
1482 end data.
1483
1484 npar tests 
1485         /k-s (normal) = foo bar.
1486 ])
1487
1488 AT_CHECK([pspp -O format=csv ks-normal.sps], [0], [dnl
1489 Table: One-Sample Kolmogorov-Smirnov Test
1490 ,,foo,bar
1491 N,,174,48
1492 Normal Parameters,Mean,62.109,13.108
1493 ,Std. Deviation,11.548,.718
1494 Most Extreme Differences,Absolute,.059,.115
1495 ,Positive,.055,.115
1496 ,Negative,-.059,-.082
1497 Kolmogorov-Smirnov Z,,.785,.795
1498 Asymp. Sig. (2-tailed),,.569,.552
1499 ])
1500
1501
1502 AT_CLEANUP
1503
1504
1505 AT_SETUP([NPAR TESTS Median Test (median imputed)])
1506
1507 AT_DATA([median1.sps], [dnl
1508 set format F12.3.
1509 data list notable list /ignore * animal * years * w *.
1510 begin data
1511 99  1   10  1
1512 99  4    1  1
1513 99  5   11  1
1514 99  5   10  1
1515 99  3    7  1
1516 99  6   10  1
1517 99  0    7  1
1518 99  3   14  1
1519 99  2    3  1
1520 99  1    1  1
1521 99  4    7  1
1522 99  5   12  1
1523 99  3    6  1
1524 99  4    1  1
1525 99  3    5  1
1526 99  5    7  1
1527 99  4    6  1
1528 99  3   14  1
1529 99  4    8  1
1530 99  5   13  1
1531 99  2    0  1
1532 99  4    7  1
1533 99  4    7  1
1534 99  1    0  1
1535 99  2    8  1
1536 99  4   10  1
1537 99  2    3  1
1538 99  2    0  1
1539 99  4    8  1
1540 99  1    8  1
1541 end data.
1542
1543
1544 variable label years 'Years expected'.
1545 variable label animal 'Animal Genus'.
1546
1547 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1548
1549 npar tests
1550      /median = years by animal (1, 5)
1551      .
1552 ])
1553
1554
1555 AT_CHECK([pspp -O format=csv median1.sps], [0], [dnl
1556 Table: Frequencies
1557 ,,Animal Genus,,,,
1558 ,,Animal 1,Animal 2,Animal 3,Animal 4,Animal 5
1559 Years expected,> Median,2,1,2,3,4
1560 ,≤ Median,2,4,3,6,1
1561
1562 Table: Test Statistics
1563 ,N,Median,Chi-Square,df,Asymp. Sig.
1564 Years expected,28,7.000,4.317,4,.365
1565 ])
1566
1567 AT_CLEANUP
1568
1569
1570 AT_SETUP([NPAR TESTS Median Test (median given)])
1571
1572 AT_DATA([median2.sps], [dnl
1573 set format F12.3.
1574 data list notable list /ignore * animal * years * w *.
1575 begin data
1576 99  1   10  1
1577 99  4    1  1
1578 99  5   11  1
1579 99  5   10  1
1580 99  3    7  1
1581 99  3   14  1
1582 99  2    3  1
1583 99  1    1  1
1584 99  4    7  1
1585 99  5   12  1
1586 99  3    6  1
1587 99  4    1  1
1588 99  3    5  1
1589 99  5    7  1
1590 99  4    6  1
1591 99  3   14  1
1592 99  4    8  1
1593 99  5   13  1
1594 99  2    0  1
1595 99  4    7  1
1596 99  4    7  1
1597 99  1    0  1
1598 99  2    8  1
1599 99  4   10  1
1600 99  2    3  1
1601 99  2    0  1
1602 99  4    8  1
1603 99  1    8  1
1604 end data.
1605
1606
1607 variable label years 'Years expected'.
1608 variable label animal 'Animal Genus'.
1609
1610 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1611
1612 npar tests
1613      /median (7) = years by animal (1, 5)
1614      .
1615 ])
1616
1617
1618 AT_CHECK([pspp -O format=csv median2.sps], [0], [dnl
1619 Table: Frequencies
1620 ,,Animal Genus,,,,
1621 ,,Animal 1,Animal 2,Animal 3,Animal 4,Animal 5
1622 Years expected,> Median,2,1,2,3,4
1623 ,≤ Median,2,4,3,6,1
1624
1625 Table: Test Statistics
1626 ,N,Median,Chi-Square,df,Asymp. Sig.
1627 Years expected,28,7.000,4.317,4,.365
1628 ])
1629
1630 AT_CLEANUP
1631
1632
1633 AT_SETUP([NPAR TESTS Median Test (two sample)])
1634
1635 AT_DATA([median3.sps], [dnl
1636 set format F12.3.
1637 data list notable list /xx * animal * years * w *.
1638 begin data
1639 99  1   10  1
1640 99  4    1  1
1641 99  5   11  1
1642 99  5   10  1
1643 99  3    7  1
1644 99  3   14  1
1645 99  2    3  1
1646 99  1    1  1
1647 99  4    7  1
1648 99  5   12  1
1649 99  3    6  1
1650 99  4    1  1
1651 99  3    5  1
1652 99  5    7  1
1653 99  4    6  1
1654 99  3   14  1
1655 99  4    8  1
1656 99  5   13  1
1657 99  2    0  1
1658 99  4    7  1
1659 99  4    7  1
1660 99  1    0  1
1661 99  2    8  1
1662 99  4   10  1
1663 99  2    3  1
1664 99  2    0  1
1665 99  4    8  1
1666 99  1    8  1
1667 end data.
1668
1669
1670 variable label years 'Years expected'.
1671 variable label animal 'Animal Genus'.
1672
1673 add value labels animal 1 'Animal 1' 2 'Animal 2' 3 'Animal 3' 4 'Animal 4' 5 'Animal 5'.
1674
1675 npar tests
1676      /median (7) = xx years by animal (5, 1)
1677      .
1678 ])
1679
1680
1681 AT_CHECK([pspp -O format=csv median3.sps], [0], [dnl
1682 Table: Frequencies
1683 ,,Animal Genus,
1684 ,,Animal 1,Animal 5
1685 xx,> Median,4,5
1686 ,≤ Median,0,0
1687 Years expected,> Median,2,4
1688 ,≤ Median,2,1
1689
1690 Table: Test Statistics
1691 ,N,Median,Chi-Square,df,Asymp. Sig.
1692 xx,9,7.000,NaN,1,NaN
1693 Years expected,9,7.000,.900,1,.343
1694 ])
1695
1696 AT_CLEANUP
1697
1698
1699 AT_SETUP([NPAR TESTS Jonckheere-Terpstra])
1700
1701 AT_DATA([jt.sps], [dnl
1702 set format = F12.3.
1703 data list notable list /x * g * w *.
1704 begin data.
1705 52  2  2
1706 58  2  1
1707 60  2  1
1708 62  2  1
1709 58  0  1
1710 44  2  1
1711 46  2  1
1712 14  3  1
1713 32  2  1
1714 16  3  1
1715 56  2  1
1716 26  3  1
1717 40  3  2
1718 50  4  1
1719 6   5  1
1720 34  2  3
1721 36  2  2
1722 40  2  2
1723 50  2  1
1724 end data.
1725
1726 weight by w.
1727
1728 npar test /jonckheere-terpstra = x by g (5, 2).
1729 ])
1730
1731
1732 AT_CHECK([pspp -O format=csv jt.sps], [0], [dnl
1733 Table: Jonckheere-Terpstra Test
1734 ,Number of levels in g,N,Observed J-T Statistic,Mean J-T Statistic,Std. Deviation of J-T Statistic,Std. J-T Statistic,Asymp. Sig. (2-tailed)
1735 x,4,24.000,29.500,65.000,15.902,-2.232,.026
1736 ])
1737
1738 AT_CLEANUP
1739
1740 dnl Checks that (PAIRED) can have lists where the same 
1741 dnl variable appears more than once.
1742 AT_SETUP([NPAR TESTS (PAIRED)])
1743 AT_DATA([npar.sps], [dnl
1744 set format = F12.3.
1745 data list notable list /a * b * c *.
1746 begin data.
1747 1 2 4
1748 4 5 3
1749 1 2 2
1750 4 5 1
1751 end data.
1752
1753 npar tests /wilcoxon a b with c c (paired).
1754 ])
1755
1756 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
1757 Table: Ranks
1758 ,,N,Mean Rank,Sum of Ranks
1759 a - c,Negative Ranks,2,2.500,5.000
1760 ,Positive Ranks,2,2.500,5.000
1761 ,Ties,0,,
1762 ,Total,4,,
1763 b - c,Negative Ranks,1,1.500,1.500
1764 ,Positive Ranks,2,2.250,4.500
1765 ,Ties,1,,
1766 ,Total,4,,
1767
1768 Table: Test Statistics
1769 ,a - c,b - c
1770 Z,.000,-.816
1771 Asymp. Sig. (2-tailed),1.000,.414
1772 ])
1773
1774
1775 AT_CLEANUP
1776
1777
1778
1779 AT_SETUP([NPAR TESTS CHISQUARE crash])
1780 dnl This syntax had been observed to crash pspp
1781
1782 AT_DATA([npar.sps], [dnl
1783 data list list /x *.
1784 begin data.
1785 1
1786 2
1787 3
1788 4
1789 5
1790 6
1791 7
1792 8
1793 9
1794 10
1795 end data.
1796
1797 * This happens to be invalid syntax.  But should not crash.
1798 NPAR TEST
1799         /CHISQUARE= x(0.098, 99.098)
1800         /EXPECTED =  1.2.
1801 ])
1802
1803 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
1804
1805 AT_CLEANUP
1806
1807
1808 AT_SETUP([NPAR TESTS - crash on invalid syntax])
1809
1810 AT_DATA([npar.sps], [dnl
1811 data list notable list /ev * xscore *.
1812 begin data.
1813 2 109
1814 3 115
1815 1 61
1816 1 101
1817 3 147
1818 end data.
1819
1820
1821 npar tests
1822         /kruskal-wallis xscore by(gv (1, 3).
1823 ])
1824
1825 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
1826
1827 AT_CLEANUP
1828
1829
1830
1831
1832 AT_SETUP([NPAR TESTS - crash on unterminated string])
1833
1834 AT_DATA([npar.sps], [dnl
1835 DATA LIST NOTABLE LIST /x * y * w * .
1836 BEGIN DATA.
1837 3.1 1  4
1838 3.2 2  1
1839 4   2  6
1840 END DATA.
1841
1842
1843 NPAR TESTS
1844 " CHISQUARE=x y(-2,5)
1845   /STATISTICS=DESCRIPTIVES
1846   .
1847 ])
1848
1849 AT_CHECK([pspp -O format=csv npar.sps], [1], [ignore])
1850
1851 AT_CLEANUP
1852