Add copyright and licence notices to files which lack them.
[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 AT_BANNER([NPAR TESTS])
17
18 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 < 1])
19 AT_DATA([npar.sps], [dnl
20 SET FORMAT F8.3.
21
22 DATA LIST LIST NOTABLE /x * w *.
23 BEGIN DATA.
24 1   6
25 2   15
26 END DATA.
27
28 WEIGHT BY w.
29
30 NPAR TESTS
31         /BINOMIAL(0.3) = x
32         .
33 ])
34 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
35 Table: Binomial Test
36 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
37 x,Group1,1.000,6.000,.286,.300,.551
38 ,Group2,2.000,15.000,.714,,
39 ,Total,,21.000,1.000,,
40 ])
41 AT_CLEANUP
42
43 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 > 1])
44 AT_DATA([npar.sps], [dnl
45 SET FORMAT F8.3.
46
47 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
48 BEGIN DATA.
49 1   7
50 2   6
51 END DATA.
52
53 WEIGHT BY w.
54
55 NPAR TESTS
56         /BINOMIAL(0.4) = x
57         .
58 ])
59 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
60 Table: Binomial Test
61 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
62 x,Group1,1,7,.538,.400,.229
63 ,Group2,2,6,.462,,
64 ,Total,,13,1.000,,
65 ])
66 AT_CLEANUP
67
68 AT_SETUP([NPAR TESTS BINOMIAL P < 0.5; N1/N2 = 1])
69 AT_DATA([npar.sps], [dnl
70 SET FORMAT F8.3.
71
72 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
73 BEGIN DATA.
74 1   8
75 2   8
76 END DATA.
77
78 WEIGHT BY w.
79
80 NPAR TESTS
81         /BINOMIAL(0.4) = x
82         .
83 ])
84 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
85 Table: Binomial Test
86 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
87 x,Group1,1,8,.500,.400,.284
88 ,Group2,2,8,.500,,
89 ,Total,,16,1.000,,
90 ])
91 AT_CLEANUP
92
93 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 < 1])
94 AT_DATA([npar.sps], [dnl
95 SET FORMAT F8.3.
96
97 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
98 BEGIN DATA.
99 1   11
100 2   12
101 END DATA.
102
103 WEIGHT BY w.
104
105 NPAR TESTS
106         /BINOMIAL(0.6) = x
107         .
108 ])
109 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
110 Table: Binomial Test
111 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
112 x,Group1,1,11,.478,.600,.164
113 ,Group2,2,12,.522,,
114 ,Total,,23,1.000,,
115 ])
116 AT_CLEANUP
117
118 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 > 1])
119 AT_DATA([npar.sps], [dnl
120 SET FORMAT F8.3.
121
122 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
123 BEGIN DATA.
124 1   11
125 2   9
126 END DATA.
127
128 WEIGHT BY w.
129
130 NPAR TESTS
131         /BINOMIAL(0.6) = x.
132 ])
133 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
134 Table: Binomial Test
135 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
136 x,Group1,1,11,.550,.600,.404
137 ,Group2,2,9,.450,,
138 ,Total,,20,1.000,,
139 ])
140 AT_CLEANUP
141
142 AT_SETUP([NPAR TESTS BINOMIAL P > 0.5; N1/N2 = 1])
143 AT_DATA([npar.sps], [dnl
144 SET FORMAT F8.3.
145
146 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
147 BEGIN DATA.
148 1   11
149 2   11
150 END DATA.
151
152 WEIGHT BY w.
153
154 NPAR TESTS
155         /BINOMIAL(0.6) = x.
156 ])
157 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
158 Table: Binomial Test
159 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (1-tailed)
160 x,Group1,1,11,.500,.600,.228
161 ,Group2,2,11,.500,,
162 ,Total,,22,1.000,,
163 ])
164 AT_CLEANUP
165
166 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 < 1])
167 AT_DATA([npar.sps], [dnl
168 SET FORMAT F8.3.
169
170 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
171 BEGIN DATA.
172 1   8
173 2   15
174 END DATA.
175
176 WEIGHT BY w.
177
178 NPAR TESTS
179         /BINOMIAL = x
180         .
181 ])
182 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
183 Table: Binomial Test
184 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
185 x,Group1,1,8,.348,.500,.210
186 ,Group2,2,15,.652,,
187 ,Total,,23,1.000,,
188 ])
189 AT_CLEANUP
190
191 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 > 1])
192 AT_DATA([npar.sps], [dnl
193 SET FORMAT F8.3.
194
195 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
196 BEGIN DATA.
197 1   12
198 2   6
199 END DATA.
200
201 WEIGHT BY w.
202
203 NPAR TESTS
204         /BINOMIAL(0.5) = x.
205 ])
206 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
207 Table: Binomial Test
208 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
209 x,Group1,1,12,.667,.500,.238
210 ,Group2,2,6,.333,,
211 ,Total,,18,1.000,,
212 ])
213 AT_CLEANUP
214
215 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1])
216 AT_DATA([npar.sps], [dnl
217 SET FORMAT F8.3.
218
219 DATA LIST LIST NOTABLE /x (F8.0) w (F8.0).
220 BEGIN DATA.
221 1   10
222 2   10
223 END DATA.
224
225 WEIGHT BY w.
226
227 NPAR TESTS
228         /BINOMIAL(0.5) = x
229         .
230 ])
231 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
232 Table: Binomial Test
233 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
234 x,Group1,1,10,.500,.500,1.000
235 ,Group2,2,10,.500,,
236 ,Total,,20,1.000,,
237 ])
238 AT_CLEANUP
239
240 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1 Cutpoint])
241 AT_DATA([npar.sps], [dnl
242 SET FORMAT F8.3.
243
244 DATA LIST LIST NOTABLE /x * w *.
245 BEGIN DATA.
246 9    3
247 10   7
248 11   16
249 END DATA.
250
251 WEIGHT BY w.
252
253 NPAR TESTS
254         /BINOMIAL(0.5) = x (10)
255         .
256 ])
257 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
258 Table: Binomial Test
259 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
260 x,Group1,<= 10,10.000,.385,.500,.327
261 ,Group2,,16.000,.615,,
262 ,Total,,26.000,1.000,,
263 ])
264 AT_CLEANUP
265
266 AT_SETUP([NPAR TESTS BINOMIAL P = 0.5; N1/N2 = 1 Named values])
267 AT_DATA([npar.sps], [dnl
268 SET FORMAT F8.3.
269
270 DATA LIST LIST NOTABLE /x * w *.
271 BEGIN DATA.
272 10   10
273 15   45
274 20   13
275 END DATA.
276
277 WEIGHT BY w.
278
279 NPAR TESTS
280         /BINOMIAL(0.5) = x (10, 20)
281         .
282 ])
283 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
284 Table: Binomial Test
285 ,,Category,N,Observed Prop.,Test Prop.,Exact Sig. (2-tailed)
286 x,Group1,10.000,10.000,.435,.500,.678
287 ,Group2,20.000,13.000,.565,,
288 ,Total,,23.000,1.000,,
289 ])
290 AT_CLEANUP
291
292
293
294 dnl Test for a bug which caused binomial to crash.
295 AT_SETUP([NPAR TESTS BINOMIAL - crash])
296 AT_DATA([nparX.sps], [dnl
297 data list list /range *.
298 begin data.
299 0
300 1
301 end data.
302
303 * This is invalid syntax
304 NPAR TEST
305         /BINOMIAL(0.5) = Range().
306
307 ])
308 AT_CHECK([pspp -O format=csv nparX.sps], [1], [ignore])
309
310 AT_CLEANUP
311
312
313
314 AT_SETUP([NPAR TESTS CHISQUARE])
315 AT_DATA([npar.sps], [dnl
316 DATA LIST NOTABLE LIST /x * y * w *.
317 BEGIN DATA.
318 1   2  1
319 2   1  3
320 3.1 1  4
321 3.2 2  1
322 4   2  2
323 5   3  1
324 1   4  2
325 END DATA.
326
327 WEIGHT BY w.
328
329 NPAR TESTS
330   CHISQUARE=x y
331   .
332
333 NPAR TESTS
334   CHISQUARE=y
335   /EXPECTED=3 4 5 4
336   .
337
338 NPAR TESTS
339   CHISQUARE=x y(2, 4)
340   /EXPECTED = 6 10 3
341   .
342 ])
343
344 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
345 Table: x
346 ,Observed N,Expected N,Residual
347 1.00,3.00,2.33,.67
348 2.00,3.00,2.33,.67
349 3.10,4.00,2.33,1.67
350 3.20,1.00,2.33,-1.33
351 4.00,2.00,2.33,-.33
352 5.00,1.00,2.33,-1.33
353 Total,14.00,,
354
355 Table: y
356 ,Observed N,Expected N,Residual
357 1.00,7.00,3.50,3.50
358 2.00,4.00,3.50,.50
359 3.00,1.00,3.50,-2.50
360 4.00,2.00,3.50,-1.50
361 Total,14.00,,
362
363 Table: Test Statistics
364 ,x,y
365 Chi-Square,3.14,6.00
366 df,5,3
367 Asymp. Sig.,.678,.112
368
369 Table: y
370 ,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 ,y
379 Chi-Square,10.61
380 df,3
381 Asymp. Sig.,.014
382
383 Table: Frequencies
384 ,x,,,,y,,,
385 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
386 1,2.00,3.00,3.16,-.16,2.00,4.00,2.21,1.79
387 2,3.00,5.00,5.26,-.26,3.00,1.00,3.68,-2.68
388 3,4.00,2.00,1.58,.42,4.00,2.00,1.11,.89
389 Total,,10.00,,,,7.00,,
390
391 Table: Test Statistics
392 ,x,y
393 Chi-Square,.13,4.13
394 df,2,2
395 Asymp. Sig.,.936,.127
396 ])
397
398 AT_CLEANUP
399
400 AT_SETUP([NPAR TESTS CHISQUARE expected values missing])
401 AT_DATA([npar.sps], [dnl
402 DATA LIST NOTABLE LIST /x * y * w *.
403 BEGIN DATA.
404 1   2  1
405 2   1  3
406 3.1 1  4
407 3.2 2  1
408 4   2  2
409 5   3  1
410 1   4  2
411 END DATA.
412
413 WEIGHT BY w.
414
415 NPAR TESTS
416   CHISQUARE=y
417   /EXPECTED = 3 4 5 4 3 1
418   .
419 ])
420
421 AT_CHECK([pspp -O format=csv npar.sps], [1], [dnl
422 "error: CHISQUARE test specified 6 expected values, but 4 distinct values were encountered in variable y."
423
424 Table: Test Statistics
425 ,y
426 Chi-Square,.00
427 df,0
428 Asymp. Sig.,1.000
429 ])
430
431 AT_CLEANUP
432
433 AT_SETUP([NPAR TESTS CHISQUARE with DESCRIPTIVES])
434 AT_DATA([npar.sps], [dnl
435 DATA LIST NOTABLE LIST /x * y * w * .
436 BEGIN DATA.
437 1   2  1 
438 2   1  3
439 3.1 1  4
440 3.2 2  1
441 4   2  2
442 5   3  1
443 1   4  2
444 .   5  1
445 END DATA.
446
447 WEIGHT BY w.
448
449 MISSING VALUES x (4).
450
451 NPAR TESTS
452   CHISQUARE=x y(-2,5)
453   /MISSING=ANALYSIS
454   /STATISTICS=DESCRIPTIVES
455   .
456 ])
457
458 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
459 Table: Frequencies
460 ,x,,,,y,,,
461 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
462 1,-2.00,.00,1.50,-1.50,-2.00,.00,1.88,-1.88
463 2,-1.00,.00,1.50,-1.50,-1.00,.00,1.88,-1.88
464 3,.00,.00,1.50,-1.50,.00,.00,1.88,-1.88
465 4,1.00,3.00,1.50,1.50,1.00,7.00,1.88,5.13
466 5,2.00,3.00,1.50,1.50,2.00,4.00,1.88,2.13
467 6,3.00,5.00,1.50,3.50,3.00,1.00,1.88,-.88
468 7,4.00,.00,1.50,-1.50,4.00,2.00,1.88,.13
469 8,5.00,1.00,1.50,-.50,5.00,1.00,1.88,-.88
470 Total,,12.00,,,,15.00,,
471
472 Table: Test Statistics
473 ,x,y
474 Chi-Square,17.33,22.87
475 df,7,7
476 Asymp. Sig.,.015,.002
477
478 Table: Descriptive Statistics
479 ,N,Mean,Std. Deviation,Minimum,Maximum
480 ,,,,,
481 x,12.00,2.47,1.19,1.00,5.00
482 y,15.00,2.07,1.33,1.00,5.00
483 ])
484 AT_CLEANUP
485
486 AT_SETUP([NPAR TESTS CHISQUARE, listwise missing])
487 AT_DATA([npar.sps], [dnl
488 DATA LIST NOTABLE LIST /x * y * w * .
489 BEGIN DATA.
490 1   2  1 
491 2   1  3
492 3.1 1  4
493 3.2 2  1
494 4   2  2
495 5   3  1
496 1   4  2
497 .   5  1
498 END DATA.
499
500 WEIGHT BY w.
501
502 * MISSING VALUES x (4).
503
504 NPAR TESTS
505   CHISQUARE=x y(-2,5)
506   /MISSING=LISTWISE
507   /STATISTICS=DESCRIPTIVES
508   .
509 ])
510
511 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
512 Table: Frequencies
513 ,x,,,,y,,,
514 ,Category,Observed N,Expected N,Residual,Category,Observed N,Expected N,Residual
515 1,-2.00,.00,1.75,-1.75,-2.00,.00,1.75,-1.75
516 2,-1.00,.00,1.75,-1.75,-1.00,.00,1.75,-1.75
517 3,.00,.00,1.75,-1.75,.00,.00,1.75,-1.75
518 4,1.00,3.00,1.75,1.25,1.00,7.00,1.75,5.25
519 5,2.00,3.00,1.75,1.25,2.00,4.00,1.75,2.25
520 6,3.00,5.00,1.75,3.25,3.00,1.00,1.75,-.75
521 7,4.00,2.00,1.75,.25,4.00,2.00,1.75,.25
522 8,5.00,1.00,1.75,-.75,5.00,.00,1.75,-1.75
523 Total,,14.00,,,,14.00,,
524
525 Table: Test Statistics
526 ,x,y
527 Chi-Square,13.43,26.00
528 df,7,7
529 Asymp. Sig.,.062,.001
530
531 Table: Descriptive Statistics
532 ,N,Mean,Std. Deviation,Minimum,Maximum
533 ,,,,,
534 x,14.00,2.69,1.23,1.00,5.00
535 y,14.00,1.86,1.10,1.00,4.00
536 ])
537 AT_CLEANUP
538
539 AT_SETUP([NPAR TESTS WILCOXON])
540 AT_DATA([npar.sps], [dnl
541 data list notable list /foo * bar * w (f8.0).
542 begin data.
543 1.00     1.00   1
544 1.00     2.00   1
545 2.00     1.00   1
546 1.00     4.00   1
547 2.00     5.00   1
548 1.00    19.00   1
549 2.00     7.00   1
550 4.00     5.00   1
551 1.00    12.00   1
552 2.00    13.00   1
553 2.00     2.00   1
554 12.00      .00  2
555 12.00     1.00  1
556 13.00     1.00  1
557 end data
558
559 variable labels foo "first" bar "second".
560
561 weight by w.
562
563 npar test
564  /wilcoxon=foo with bar (paired)
565  /missing analysis
566  /method=exact.
567 ])
568
569 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
570 Table: Ranks
571 ,,N,Mean Rank,Sum of Ranks
572 first - second,Negative Ranks,8,6.00,48.00
573 ,Positive Ranks,5,8.60,43.00
574 ,Ties,2,,
575 ,Total,15,,
576
577 Table: Test Statistics
578 ,first - second
579 Z,-.18
580 Asymp. Sig. (2-tailed),.861
581 Exact Sig. (2-tailed),.893
582 Exact Sig. (1-tailed),.446
583 ])
584
585 AT_CLEANUP
586
587 AT_SETUP([NPAR TESTS WILCOXON with missing values])
588 AT_DATA([npar.sps], [dnl
589 data list notable list /foo * bar * dummy *.
590 begin data.
591 1.00     1.00    1
592 1.00     2.00    1
593 2.00     1.00    1
594 1.00     4.00    .
595 2.00     5.00    .
596 1.00    19.00    .
597 2.00     7.00    1
598 4.00     5.00    1
599 1.00    12.00    1
600 2.00    13.00    1
601 2.00     2.00    1
602 12.00      .00   1
603 12.00      .00   1
604 34.2       .     1
605 12.00     1.00   1  
606 13.00     1.00   1
607 end data
608
609 variable labels foo "first" bar "second".
610
611 npar test
612  /wilcoxon=foo with bar (paired)
613  /missing analysis
614  /method=exact.
615 ])
616
617 dnl This is the same output as the previous test.
618 AT_CHECK([pspp -O format=csv npar.sps], [0], [dnl
619 Table: Ranks
620 ,,N,Mean Rank,Sum of Ranks
621 first - second,Negative Ranks,8,6.00,48.00
622 ,Positive Ranks,5,8.60,43.00
623 ,Ties,2,,
624 ,Total,15,,
625
626 Table: Test Statistics
627 ,first - second
628 Z,-.18
629 Asymp. Sig. (2-tailed),.861
630 Exact Sig. (2-tailed),.893
631 Exact Sig. (1-tailed),.446
632 ])
633 AT_CLEANUP
634
635 AT_SETUP([NPAR TESTS SIGN])
636 AT_DATA([npar.sps], [dnl
637 set format = F9.3.
638
639 data list notable list /age * height rank *.
640 begin data.
641 10 12 11
642 12 13 13 
643 13 14 12
644 12 12 10
645 9   9 10
646 10.3 10.2 12
647 end data.
648
649 npar tests
650         /sign=age height WITH height rank (PAIRED)
651         /MISSING ANALYSIS
652         /METHOD=EXACT
653         .
654 ])
655 AT_CHECK([pspp -o pspp.csv npar.sps])
656 dnl Some machines return .313 instead of .312 
657 dnl (see bug #31611).
658 AT_CHECK([sed -e 's/\.313$/.312/' -e 's/^Exact Sig\. (1-tailed),\.313/Exact Sig. (1-tailed),.312/' pspp.csv], [0], [dnl
659 Table: Frequencies
660 ,,N
661 age - height,Negative Differences,3
662 ,Positive Differences,1
663 ,Ties,2
664 ,Total,6
665 height - rank,Negative Differences,2
666 ,Positive Differences,3
667 ,Ties,1
668 ,Total,6
669
670 Table: Test Statistics
671 ,age - height,height - rank
672 Exact Sig. (2-tailed),.625,1.000
673 Exact Sig. (1-tailed),.312,.500
674 Point Probability,.250,.312
675 ])
676 AT_CLEANUP
677
678
679 AT_SETUP([NPAR Kruskal-Wallis test])
680
681 dnl Simple case
682 AT_DATA([kw-simple.sps], [dnl
683 set format = F9.3.
684
685 data list notable list /gv * xscore *.
686 begin data
687 1 96
688 1 128
689 1 83
690 2 132
691 2 135
692 2 109
693 3 115
694 1 61
695 1 101
696 2 82
697 2 124
698 3 149 
699 3 166
700 3 147
701 end data.
702
703 value label /gv
704        1 "timed out"
705        2 "hit wicket"
706        3 "handled the ball".
707
708 npar tests
709         /kruskal-wallis xscore by gv (1, 3)
710         .
711 ])
712
713 AT_CHECK([pspp -o pspp.csv kw-simple.sps])
714 AT_CHECK([cat pspp.csv], [0], [dnl
715 Table: Ranks
716 ,gv,N,Mean Rank
717 xscore,timed out,5,4.400
718 ,hit wicket,5,7.400
719 ,handled the ball,4,11.500
720 ,Total,14,
721
722 Table: Test Statistics
723 ,,xscore
724 Chi-Square,,6.406
725 df,,2
726 Asymp. Sig.,,.041
727 ])
728
729
730 dnl Now try a missing value in the group variable
731 AT_DATA([kw-missing-group.sps], [dnl
732 set format = F9.3.
733
734 data list notable list /gv * xscore *.
735 begin data
736 1 96
737 1 128
738 1 83
739 1 61
740 1 101
741 2 82
742 2 124
743 2 132
744 2 135
745 2 109
746 3 115
747 3 149 
748 3 166
749 3 147
750 2.5 344
751 end data.
752
753 missing values gv (2.5).
754
755 value label /gv
756        1 "timed out"
757        2 "hit wicket"
758        3 "handled the ball".
759
760 npar tests
761         /kruskal-wallis xscore by gv (1, 3)
762         /missing=exclude
763         .
764 ])
765
766 AT_CHECK([pspp -o pspp2.csv kw-missing-group.sps])
767
768 dnl The result should be the same as before
769 AT_CHECK([diff pspp.csv pspp2.csv], [0])
770
771 AT_CLEANUP
772
773
774 AT_SETUP([NPAR Kruskal-Wallis multiple-variables])
775
776 AT_DATA([kw-multi.sps], [dnl
777 set format = F9.3.
778
779 data list notable list /gv * xscore * yscore.
780 begin data
781 1 96   .
782 1 128  .
783 1 83   . 
784 2 132  132
785 2 135  135
786 2 109  109
787 3 115  115
788 1 61   . 
789 1 101  .
790 2 82   82 
791 2 124  124
792 3 149  149
793 3 166  166
794 3 147  147
795 4 .    96
796 4 .    128
797 4 .    83
798 4 .    61
799 4 .    101
800 end data.
801
802 value label /gv
803        1 "timed out"
804        2 "hit wicket"
805        3 "handled the ball"
806        4 "bowled"
807        5 "lbw"
808        .
809        
810 npar tests
811         /k-w xscore yscore by gv (1, 5)
812         .
813
814 ])
815
816
817 AT_CHECK([pspp -o pspp.csv kw-multi.sps])
818 AT_CHECK([cat pspp.csv], [0], [dnl
819 Table: Ranks
820 ,gv,N,Mean Rank
821 xscore,timed out,5,4.400
822 ,hit wicket,5,7.400
823 ,handled the ball,4,11.500
824 ,Total,14,
825 yscore,hit wicket,5,7.400
826 ,handled the ball,4,11.500
827 ,bowled,5,4.400
828 ,Total,14,
829
830 Table: Test Statistics
831 ,,xscore,yscore,
832 Chi-Square,,6.406,6.406,
833 df,,2,2,
834 Asymp. Sig.,,.041,.041,
835 ])
836
837 AT_CLEANUP
838
839
840
841 AT_SETUP([NPAR TESTS Runs])
842 AT_DATA([npar-runs.sps], [dnl
843 set format F11.4.
844 data list notable list /score * w *.
845 begin data
846 4     6
847 .     4
848 4     3 
849 3    20 
850 2    29 
851 1    42 
852 6    18 
853 5     7 
854 6    78 
855 5    10 
856 6    46 
857 5     5 
858 6    17 
859 5     1 
860 6    11 
861 4     2 
862 3     7 
863 2     6 
864 1    10 
865 4    13 
866 3    22 
867 3    11 
868 2    24 
869 1    18 
870 4     4 
871 3    12 
872 2    10 
873 1    25 
874 4     4 
875 3     7 
876 2     3 
877 1     4 
878 4     2 
879 3     3 
880 2     2 
881 1     4 
882 end data.
883
884 weight by w.
885
886 npar tests
887         /runs (MEDIAN) = score
888         /runs (MEAN) = score
889         /runs (MODE) = score 
890         .
891 ])
892
893 AT_CHECK([pspp -O format=csv npar-runs.sps], [0],
894 [Table: Runs Test
895 ,score
896 Test Value (median),3.0000
897 Cases < Test Value,177.0000
898 Cases ≥ Test Value,309.0000
899 Total Cases,486.0000
900 Number of Runs,12
901 Z,-20.9931
902 Asymp. Sig. (2-tailed),2.000
903
904 Table: Runs Test
905 ,score
906 Test Value (mean),3.6379
907 Cases < Test Value,259.0000
908 Cases ≥ Test Value,227.0000
909 Total Cases,486.0000
910 Number of Runs,12
911 Z,-21.0650
912 Asymp. Sig. (2-tailed),2.000
913
914 Table: Runs Test
915 ,score
916 Test Value (mode),6.0000
917 Cases < Test Value,316.0000
918 Cases ≥ Test Value,170.0000
919 Total Cases,486.0000
920 Number of Runs,11
921 Z,-21.0742
922 Asymp. Sig. (2-tailed),2.000
923 ])
924
925 AT_CLEANUP
926
927
928 dnl Thanks to Douglas Bonett for providing this test case.
929 AT_SETUP([NPAR TESTS Runs (2)])
930 AT_DATA([npar-runs.sps], [dnl
931 data list notable free /y.
932 begin data
933 1 1 2 1 2 1 1 2 1 1 1 2 1 2
934 end data.
935 NPAR TEST /RUNS(1.5) = y.
936 ])
937
938 AT_CHECK([pspp -O format=csv npar-runs.sps], [0], [dnl
939 Table: Runs Test
940 ,y
941 Test Value,1.50
942 Cases < Test Value,9
943 Cases ≥ Test Value,5
944 Total Cases,14
945 Number of Runs,10
946 Z,1.26
947 Asymp. Sig. (2-tailed),.206
948 ])
949 AT_CLEANUP
950
951
952 AT_SETUP([NPAR TESTS Friedman])
953 AT_DATA([npar-friedman.sps], [dnl
954 set format F15.4.
955 data list notable list /x * y * z.
956 begin data
957 9.5 6.5 8.1
958 8.0 6.0 6.0
959 7.0 6.5 4.2
960 9.5 5.0 7.3
961 9.0 7.0 6.2
962 8.5 6.9 6.5
963 7.5 8.0 6.5
964 6.0 8.0 3.1
965 5.0 6.0 4.9
966 7.5 7.5 6.2
967 end data.
968
969 npar tests
970      /friedman = x y z.
971 ])
972
973 AT_CHECK([pspp -O format=csv npar-friedman.sps], [0], [dnl
974 Table: Ranks
975 ,Mean Rank
976 x,2.6500
977 y,2.1000
978 z,1.2500
979
980 Table: Test Statistics
981 N,10
982 Chi-Square,10.4737
983 df,2
984 Asymp. Sig.,.005
985 ])
986
987 AT_CLEANUP
988
989
990
991 AT_SETUP([NPAR TESTS Mann-Whitney])
992 AT_DATA([npar-mann-whitney.sps], [dnl
993 SET FORMAT     = F11.4
994
995 data list notable list /height * sex (f1.0).
996 begin data.
997 201 1            
998 84 1            
999 83 1            
1000 94 1            
1001 88 0            
1002 99 0            
1003 55 0            
1004 69 0            
1005 86 1            
1006 79 1            
1007 91 0            
1008 201 0            
1009 88 1            
1010 85 1            
1011 82 1            
1012 88 0            
1013 75 0            
1014 99 0            
1015 81 0            
1016 72 1            
1017 89 1            
1018 92 1            
1019 80 0            
1020 82 0            
1021 76 0            
1022 65 0            
1023 85 0            
1024 76 1            
1025 145 1            
1026 24 1
1027 1 4
1028 -4 5
1029 34 5
1030 21 4
1031 end data.
1032
1033 NPAR TESTS 
1034      /M-W = height BY sex (0,1).
1035 ])
1036
1037 AT_CHECK([pspp -O format=csv npar-mann-whitney.sps], [0], [dnl
1038 Table: Ranks
1039 ,N,,,Mean Rank,,Sum of Ranks,
1040 ,0,1,Total,0,1,0,1
1041 height,15.0000,15.0000,30.0000,14.5333,16.4667,218.0000,247.0000
1042
1043 Table: Test Statistics
1044 ,Mann-Whitney U,Wilcoxon W,Z,Asymp. Sig. (2-tailed)
1045 height,98.0000,218.0000,-.6020,.547
1046 ])
1047
1048
1049 AT_CLEANUP
1050
1051
1052 AT_SETUP([NPAR TESTS Mann-Whitney Multiple])
1053 dnl Check for a bug where the ranks were inappropriately allocated, when
1054 dnl multiple variables were tested and MISSING=ANALYSIS chosen.
1055
1056 cp $abs_srcdir/language/mann-whitney.txt .
1057
1058 AT_DATA([npar-mann-whitney.sps], [dnl
1059 SET FORMAT     = F11.3
1060
1061 DATA LIST NOTABLE FILE='mann-whitney.txt'
1062      LIST /I002_01 I002_02 I002_03 I002_04 sum_HL *.
1063
1064 VARIABLE LABELS
1065   I002_01 'IOS: Familie'
1066   I002_02 'IOS: Freunde'
1067   I002_03 'IOS: Partner*in'
1068   I002_04 'IOS: Bekannte'.
1069   
1070 MISSING VALUES I002_01 I002_02 I002_03 I002_04 (-9 -1).
1071
1072 NPAR TESTS
1073     /MISSING=ANALYSIS
1074     /M-W=I002_01 I002_02 I002_03 I002_04 BY sum_HL (0 1).
1075 ])
1076
1077 AT_CHECK([pspp -O format=csv npar-mann-whitney.sps], [0], [dnl
1078 Table: Ranks
1079 ,N,,,Mean Rank,,Sum of Ranks,
1080 ,.000,1.000,Total,.000,1.000,.000,1.000
1081 IOS: Familie,114.000,115.000,229.000,110.018,119.939,12542.000,13793.000
1082 IOS: Freunde,115.000,115.000,230.000,108.339,122.661,12459.000,14106.000
1083 IOS: Partner*in,97.000,91.000,188.000,95.351,93.593,9249.000,8517.000
1084 IOS: Bekannte,115.000,115.000,230.000,111.065,119.935,12772.500,13792.500
1085
1086 Table: Test Statistics
1087 ,Mann-Whitney U,Wilcoxon W,Z,Asymp. Sig. (2-tailed)
1088 IOS: Familie,5987.000,12542.000,-1.167,.243
1089 IOS: Freunde,5789.000,12459.000,-1.674,.094
1090 IOS: Partner*in,4331.000,8517.000,-.245,.807
1091 IOS: Bekannte,6102.500,12772.500,-1.046,.296
1092 ])
1093
1094 AT_CLEANUP
1095
1096
1097
1098 AT_SETUP([NPAR TESTS Cochran])
1099 AT_DATA([npar-cochran.sps], [dnl
1100 set format f11.3.
1101
1102 data list notable list /v1 * v2 * v3 * v4 * v5 * v6 * v7 *.
1103 begin data.
1104 2 1 1 2 1 1 2 
1105 2 2 2 2 1 1 1  
1106 1 1 2 2 1 1 2  
1107 2 2 2 2 1 1 2 
1108 2 1 2 1 1 2 1 
1109 1 2 2 1 1 1 1 
1110 1 2 2 2 2 2 2 
1111 2 2 1 2 1 1 1 
1112 1 2 1 2 1 1 2 
1113 end data.     
1114
1115 npar tests 
1116         /cochran = v1 to v7 .
1117
1118 ])
1119
1120 AT_CHECK([pspp -o pspp.csv npar-cochran.sps])
1121
1122 AT_CHECK([cat pspp.csv], [0], [dnl
1123 Table: Frequencies
1124 ,Value,
1125 ,Success (2),Failure (1)
1126 v1,5,4
1127 v2,6,3
1128 v3,6,3
1129 v4,7,2
1130 v5,1,8
1131 v6,2,7
1132 v7,5,4
1133
1134 Table: Test Statistics
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 v1,v2,
1245 ,.000,1.000
1246 .000,4,9
1247 1.000,2,5
1248
1249 Table: v1 & junk
1250 v1,junk,
1251 ,.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