Add copyright and licence notices to files which lack them.
[pspp] / tests / language / stats / frequencies.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([FREQUENCIES procedure])
17
18 AT_SETUP([FREQUENCIES string variable])
19 AT_DATA([frequencies.sps],
20   [DATA LIST FREE/
21    name  (A8) value * quantity .
22 BEGIN DATA.
23 foo 1 5
24 bar 2 6
25 baz 1 9
26 quux 3 1
27 bar 1 2
28 baz 4 3
29 baz 1 4
30 baz 1 1
31 foo 6 0
32 quux 5 8
33 END DATA.
34 EXECUTE.
35
36 FREQUENCIES /VAR = name/ORDER=ANALYSIS.
37 ])
38 AT_CHECK([pspp -O format=csv frequencies.sps], [0], [dnl
39 Table: name
40 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
41 ,bar     ,2,20.00,20.00,20.00
42 ,baz     ,4,40.00,40.00,60.00
43 ,foo     ,2,20.00,20.00,80.00
44 ,quux    ,2,20.00,20.00,100.00
45 Total,,10,100.0,100.0,
46 ])
47 AT_CLEANUP
48
49 # Tests for a bug where pspp would crash if two FREQUENCIES commands
50 # existed in a input file.
51 AT_SETUP([FREQUENCIES two runs crash])
52 AT_DATA([frequencies.sps],
53   [data list free /v1 v2.
54 begin data.
55 0 1
56 2 3 
57 4 5
58 3 4
59 end data.
60
61 frequencies v1 v2/statistics=none/ORDER=VARIABLE.
62 frequencies v1 v2/statistics=none.
63 ])
64 AT_CHECK([pspp -O format=csv frequencies.sps], [0],
65   [Table: v1
66 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
67 ,.00,1,25.00,25.00,25.00
68 ,2.00,1,25.00,25.00,50.00
69 ,3.00,1,25.00,25.00,75.00
70 ,4.00,1,25.00,25.00,100.00
71 Total,,4,100.0,100.0,
72
73 Table: v2
74 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
75 ,1.00,1,25.00,25.00,25.00
76 ,3.00,1,25.00,25.00,50.00
77 ,4.00,1,25.00,25.00,75.00
78 ,5.00,1,25.00,25.00,100.00
79 Total,,4,100.0,100.0,
80
81 Table: v1
82 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
83 ,.00,1,25.00,25.00,25.00
84 ,2.00,1,25.00,25.00,50.00
85 ,3.00,1,25.00,25.00,75.00
86 ,4.00,1,25.00,25.00,100.00
87 Total,,4,100.0,100.0,
88
89 Table: v2
90 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
91 ,1.00,1,25.00,25.00,25.00
92 ,3.00,1,25.00,25.00,50.00
93 ,4.00,1,25.00,25.00,75.00
94 ,5.00,1,25.00,25.00,100.00
95 Total,,4,100.0,100.0,
96 ])
97 AT_CLEANUP
98
99 # Test that the LIMIT specification works.
100 AT_SETUP([FREQUENCIES with LIMIT])
101 AT_DATA([frequencies.sps],
102   [data list free /v1 v2.
103 begin data.
104 0 1
105 2 5
106 4 3
107 3 5
108 end data.
109
110 frequencies v1 v2/statistics=none/FORMAT=LIMIT(3).
111 ])
112 AT_CHECK([pspp -O format=csv frequencies.sps], [0], [dnl
113 Table: v2
114 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
115 ,1.00,1,25.00,25.00,25.00
116 ,3.00,1,25.00,25.00,50.00
117 ,5.00,2,50.00,50.00,100.00
118 Total,,4,100.0,100.0,
119 ])
120 AT_CLEANUP
121
122 # Tests for a bug where PSPP would crash when a FREQUENCIES command
123 # was used with the HTML output driver.
124 AT_SETUP([FREQUENCIES HTML output crash])
125 AT_DATA([frequencies.sps],
126   [data list free /v1 v2.
127 begin data.
128 0 1
129 2 3 
130 4 5
131 3 4
132 end data.
133
134 list.
135
136 frequencies v1/statistics=none.
137 ])
138 AT_CHECK([pspp -o - -O format=csv -o pspp.html frequencies.sps], [0],
139   [Table: Data List
140 v1,v2
141 .00,1.00
142 2.00,3.00
143 4.00,5.00
144 3.00,4.00
145
146 Table: v1
147 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
148 ,.00,1,25.00,25.00,25.00
149 ,2.00,1,25.00,25.00,50.00
150 ,3.00,1,25.00,25.00,75.00
151 ,4.00,1,25.00,25.00,100.00
152 Total,,4,100.0,100.0,
153 ])
154 AT_CHECK([test -s pspp.html])
155 AT_CLEANUP
156
157 # Tests for a bug which crashed PSPP when a piechart with too many
158 # segments was requested.
159 AT_SETUP([FREQUENCIES pie chart crash])
160 AT_DATA([frequencies.sps],
161   [data list list /x * w *.
162 begin data.
163 1  4
164 34 10
165 -9 15
166 232 6
167 11  4
168 134 1
169 9  5
170 32 16
171 -2 6
172 2  16
173 20  6
174 end data.
175
176 weight by w.
177
178 frequencies /x /format=notable /statistics=none
179         /piechart.
180 ])
181 # Cannot use the CSV driver for this because it does not output charts
182 # at all.
183 AT_CHECK([pspp frequencies.sps], [0], [dnl
184 Reading free-form data from INLINE.
185 +--------+------+
186 |Variable|Format|
187 #========#======#
188 |x       |F8.0  |
189 |w       |F8.0  |
190 +--------+------+
191 ])
192 AT_CLEANUP
193
194 dnl Check that histogram subcommand runs wihout crashing
195 AT_SETUP([FREQUENCIES histogram crash])
196 AT_DATA([frequencies.sps],
197   [data list notable list /x * w *.
198 begin data.
199 1  4
200 34 10
201 -9 15
202 232 6
203 11  4
204 134 1
205 9  5
206 32 16
207 -2 6
208 2  16
209 20  6
210 end data.
211
212 weight by w.
213
214 frequencies /x 
215             /format=notable 
216             /statistics=none
217             /histogram=minimum(0) maximum(50) percent(5) normal.
218 ])
219 # Cannot use the CSV driver for this because it does not output charts
220 # at all.
221 AT_CHECK([pspp -O format=pdf frequencies.sps], [0], [ignore])
222 AT_CLEANUP
223
224 # Tests for a bug which crashed PSPP when the median and a histogram
225 # were both requested.
226 AT_SETUP([FREQUENCIES median with histogram crash])
227 AT_DATA([frequencies.sps], [dnl
228 data list list notable /x.
229 begin data.
230 1
231 end data.
232
233 frequencies /x /histogram /STATISTICS=median.
234 ])
235 AT_CHECK([pspp -O format=csv frequencies.sps], [0], [ignore])
236 dnl Ignore output - No crash test.
237 AT_CLEANUP
238
239 # Tests for a bug which caused FREQUENCIES following TEMPORARY to
240 # crash (bug #11492).
241 AT_SETUP([FREQUENCIES crash after TEMPORARY])
242 AT_DATA([frequencies.sps],
243   [DATA LIST LIST /SEX (A1) X *.
244 BEGIN DATA.
245 M 31
246 F 21
247 M 41
248 F 31
249 M 13
250 F 12
251 M 14
252 F 13
253 END DATA.
254
255
256 TEMPORARY
257 SELECT IF SEX EQ 'F'
258 FREQUENCIES /X .
259
260 FINISH
261 ])
262 AT_CHECK([pspp -O format=csv frequencies.sps], [0],
263   [Table: Reading free-form data from INLINE.
264 Variable,Format
265 SEX,A1
266 X,F8.0
267
268 Table: X
269 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
270 ,12.00,1,25.00,25.00,25.00
271 ,13.00,1,25.00,25.00,50.00
272 ,21.00,1,25.00,25.00,75.00
273 ,31.00,1,25.00,25.00,100.00
274 Total,,4,100.0,100.0,
275
276 Table: X
277 N,Valid,4
278 ,Missing,0
279 Mean,,19.25
280 Std Dev,,8.81
281 Minimum,,12.00
282 Maximum,,31.00
283 ])
284 AT_CLEANUP
285
286 m4_define([FREQUENCIES_NTILES_OUTPUT],
287   [Table: x
288 N,Valid,5
289 ,Missing,0
290 Mean,,3.00
291 Std Dev,,1.58
292 Minimum,,1.00
293 Maximum,,5.00
294 Percentiles,0,1.00
295 ,25,2.00
296 ,33,2.33
297 ,50 (Median),3.00
298 ,67,3.67
299 ,75,4.00
300 ,100,5.00
301 ])
302 AT_SETUP([FREQUENCIES basic percentiles])
303 AT_DATA([frequencies.sps],
304   [DATA LIST LIST notable /x * .
305 BEGIN DATA.
306
307
308
309
310 5
311 END DATA.
312
313 FREQUENCIES 
314         VAR=x
315         /FORMAT=NOTABLE
316         /PERCENTILES = 0 25 33.333 50 66.666 75 100.
317 ])
318 AT_CHECK([pspp -O format=csv frequencies.sps], [0],
319   [FREQUENCIES_NTILES_OUTPUT])
320 AT_CLEANUP
321
322 AT_SETUP([FREQUENCIES basic n-tiles])
323 AT_DATA([frequencies.sps],
324   [DATA LIST LIST notable /x * .
325 BEGIN DATA.
326
327
328
329
330 5
331 END DATA.
332
333 FREQUENCIES 
334         VAR=x
335         /FORMAT=NOTABLE
336         /NTILES = 3
337         /NTILES = 4.
338 ])
339 AT_CHECK([pspp -O format=csv frequencies.sps], [0],
340   [FREQUENCIES_NTILES_OUTPUT])
341 AT_CLEANUP
342
343 AT_SETUP([FREQUENCIES compatibility percentiles])
344 AT_DATA([frequencies.sps],
345   [DATA LIST LIST notable /X * .
346 BEGIN DATA.
347
348
349
350
351 5
352 END DATA.
353
354 FREQUENCIES 
355         VAR=x
356         /ALGORITHM=COMPATIBLE
357         /PERCENTILES = 0 25 50 75 100.
358 ])
359 AT_CHECK([pspp -O format=csv frequencies.sps], [0],
360   [Table: X
361 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
362 ,1.00,1,20.00,20.00,20.00
363 ,2.00,1,20.00,20.00,40.00
364 ,3.00,1,20.00,20.00,60.00
365 ,4.00,1,20.00,20.00,80.00
366 ,5.00,1,20.00,20.00,100.00
367 Total,,5,100.0,100.0,
368
369 Table: X
370 N,Valid,5
371 ,Missing,0
372 Mean,,3.00
373 Std Dev,,1.58
374 Minimum,,1.00
375 Maximum,,5.00
376 Percentiles,0,1.00
377 ,25,1.50
378 ,50 (Median),3.00
379 ,75,4.50
380 ,100,5.00
381 ])
382 AT_CLEANUP
383
384 AT_SETUP([FREQUENCIES enhanced percentiles])
385 AT_DATA([frequencies.sps],
386   [DATA LIST LIST notable /X * .
387 BEGIN DATA.
388
389
390
391
392 5
393 END DATA.
394
395 FREQUENCIES 
396         VAR=x
397         /PERCENTILES = 0 25 50 75 100.
398 ])
399 AT_CHECK([pspp -O format=csv frequencies.sps], [0],
400   [Table: X
401 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
402 ,1.00,1,20.00,20.00,20.00
403 ,2.00,1,20.00,20.00,40.00
404 ,3.00,1,20.00,20.00,60.00
405 ,4.00,1,20.00,20.00,80.00
406 ,5.00,1,20.00,20.00,100.00
407 Total,,5,100.0,100.0,
408
409 Table: X
410 N,Valid,5
411 ,Missing,0
412 Mean,,3.00
413 Std Dev,,1.58
414 Minimum,,1.00
415 Maximum,,5.00
416 Percentiles,0,1.00
417 ,25,2.00
418 ,50 (Median),3.00
419 ,75,4.00
420 ,100,5.00
421 ])
422 AT_CLEANUP
423
424 AT_SETUP([FREQUENCIES enhanced percentiles, weighted])
425 AT_DATA([frequencies.sps],
426   [DATA LIST LIST notable /X * F *.
427 BEGIN DATA.
428 1 2
429 2 2
430 3 2
431 4 1
432 4 1
433 5 1
434 5 1
435 END DATA.
436
437 WEIGHT BY f.
438
439 FREQUENCIES 
440         VAR=x
441         /PERCENTILES = 0 25 50 75 100.
442 ])
443 AT_CHECK([pspp -O format=csv frequencies.sps], [0],
444   [Table: X
445 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
446 ,1.00,2.00,20.00,20.00,20.00
447 ,2.00,2.00,20.00,20.00,40.00
448 ,3.00,2.00,20.00,20.00,60.00
449 ,4.00,2.00,20.00,20.00,80.00
450 ,5.00,2.00,20.00,20.00,100.00
451 Total,,10.00,100.0,100.0,
452
453 Table: X
454 N,Valid,10.00
455 ,Missing,.00
456 Mean,,3.00
457 Std Dev,,1.49
458 Minimum,,1.00
459 Maximum,,5.00
460 Percentiles,0,1.00
461 ,25,2.00
462 ,50 (Median),3.00
463 ,75,4.00
464 ,100,5.00
465 ])
466 AT_CLEANUP
467
468 AT_SETUP([FREQUENCIES enhanced percentiles, weighted (2)])
469 AT_DATA([frequencies.sps],
470   [DATA LIST LIST notable /X * F *.
471 BEGIN DATA.
472 1 1
473 3 2
474 4 1
475 5 1
476 5 1
477 END DATA.
478
479 WEIGHT BY f.
480
481 FREQUENCIES 
482         VAR=x
483         /PERCENTILES = 0 25 50 75 100.
484 ])
485 AT_CHECK([pspp -O format=csv frequencies.sps], [0],
486   [Table: X
487 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
488 ,1.00,1.00,16.67,16.67,16.67
489 ,3.00,2.00,33.33,33.33,50.00
490 ,4.00,1.00,16.67,16.67,66.67
491 ,5.00,2.00,33.33,33.33,100.00
492 Total,,6.00,100.0,100.0,
493
494 Table: X
495 N,Valid,6.00
496 ,Missing,.00
497 Mean,,3.50
498 Std Dev,,1.52
499 Minimum,,1.00
500 Maximum,,5.00
501 Percentiles,0,1.00
502 ,25,3.00
503 ,50 (Median),3.50
504 ,75,4.75
505 ,100,5.00
506 ])
507 AT_CLEANUP
508
509 dnl Data for this test case from Fabio Bordignon <bordignon@demos.it>.
510 AT_SETUP([FREQUENCIES enhanced percentiles, weighted (3)])
511 AT_DATA([frequencies.sps],
512   [DATA LIST LIST notable /X * F *.
513 BEGIN DATA.
514 1 7
515 2 16
516 3 12
517 4 5
518 END DATA.
519
520 WEIGHT BY f.
521
522 FREQUENCIES 
523         VAR=x
524         /PERCENTILES = 0 25 50 75 100.
525 ])
526 AT_CHECK([pspp -O format=csv frequencies.sps], [0], [dnl
527 Table: X
528 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
529 ,1.00,7.00,17.50,17.50,17.50
530 ,2.00,16.00,40.00,40.00,57.50
531 ,3.00,12.00,30.00,30.00,87.50
532 ,4.00,5.00,12.50,12.50,100.00
533 Total,,40.00,100.0,100.0,
534
535 Table: X
536 N,Valid,40.00
537 ,Missing,.00
538 Mean,,2.38
539 Std Dev,,.93
540 Minimum,,1.00
541 Maximum,,4.00
542 Percentiles,0,1.00
543 ,25,2.00
544 ,50 (Median),2.00
545 ,75,3.00
546 ,100,4.00
547 ])
548 AT_CLEANUP
549
550 AT_SETUP([FREQUENCIES enhanced percentiles, weighted, missing values])
551 AT_DATA([frequencies.sps],
552   [DATA LIST LIST notable /X * F *.
553 BEGIN DATA.
554 1 1
555 3 2
556 4 1
557 5 1
558 5 1
559 99 4
560 END DATA.
561
562 MISSING VALUE x (99.0) .
563 WEIGHT BY f.
564
565 FREQUENCIES 
566         VAR=x
567         /PERCENTILES = 0 25 50 75 100.
568 ])
569
570 AT_CHECK([pspp -O format=csv frequencies.sps], [0],
571   [Table: X
572 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
573 ,1.00,1.00,10.00,16.67,16.67
574 ,3.00,2.00,20.00,33.33,50.00
575 ,4.00,1.00,10.00,16.67,66.67
576 ,5.00,2.00,20.00,33.33,100.00
577 ,99.00,4.00,40.00,Missing,
578 Total,,10.00,100.0,100.0,
579
580 Table: X
581 N,Valid,6.00
582 ,Missing,4.00
583 Mean,,3.50
584 Std Dev,,1.52
585 Minimum,,1.00
586 Maximum,,5.00
587 Percentiles,0,1.00
588 ,25,3.00
589 ,50 (Median),3.50
590 ,75,4.75
591 ,100,5.00
592 ])
593 AT_CLEANUP
594
595 AT_SETUP([FREQUENCIES dichotomous histogram])
596 AT_DATA([frequencies.sps], [dnl
597 data list notable list /d4 *.
598 begin data.
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616 end data.
617
618 FREQUENCIES
619         /VARIABLES = d4
620         /FORMAT=AVALUE TABLE
621         /HISTOGRAM=NORMAL
622         .
623 ])
624
625 AT_CHECK([pspp frequencies.sps], [0],  [ignore])
626 AT_CLEANUP
627
628
629 AT_SETUP([FREQUENCIES median])
630 AT_DATA([median.sps], [dnl
631 data list notable list /x *.
632 begin data.
633 1
634 2
635 3000000
636 end data.
637
638 FREQUENCIES
639         /VARIABLES = x
640         /STATISTICS = MEDIAN
641         .
642 ])
643
644 AT_CHECK([pspp median.sps -O format=csv], [0],  [dnl
645 Table: x
646 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
647 ,1.00,1,33.33,33.33,33.33
648 ,2.00,1,33.33,33.33,66.67
649 ,3000000.00,1,33.33,33.33,100.00
650 Total,,3,100.0,100.0,
651
652 Table: x
653 N,Valid,3
654 ,Missing,0
655 Percentiles,50 (Median),2.00
656 ])
657 AT_CLEANUP
658
659 AT_SETUP([FREQUENCIES variance])
660 AT_DATA([variance.sps], [dnl
661 data list notable list /forename (A12) height.
662 begin data.
663 Ahmed 188
664 bertram 167
665 Catherine 134
666 David 109
667 end data.
668
669 FREQUENCIES
670    /VARIABLES = height
671    /STATISTICS = VARIANCE.
672 ])
673
674 AT_CHECK([pspp variance.sps -O format=csv], [0],  [dnl
675 Table: height
676 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
677 ,109.00,1,25.00,25.00,25.00
678 ,134.00,1,25.00,25.00,50.00
679 ,167.00,1,25.00,25.00,75.00
680 ,188.00,1,25.00,25.00,100.00
681 Total,,4,100.0,100.0,
682
683 Table: height
684 N,Valid,4
685 ,Missing,0
686 Variance,,1223.00
687 ])
688 AT_CLEANUP
689
690 AT_SETUP([FREQUENCIES default statistics])
691 AT_DATA([median.sps], [dnl
692 data list notable list /x *.
693 begin data.
694 10
695 20
696 3000000
697 end data.
698
699 FREQUENCIES
700         /VARIABLES = x
701         /STATISTICS
702         .
703
704 FREQUENCIES
705         /VARIABLES = x
706         /STATISTICS = DEFAULT
707         .
708 ])
709
710 AT_CHECK([pspp median.sps -O format=csv], [0],  [dnl
711 Table: x
712 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
713 ,10.00,1,33.33,33.33,33.33
714 ,20.00,1,33.33,33.33,66.67
715 ,3000000.00,1,33.33,33.33,100.00
716 Total,,3,100.0,100.0,
717
718 Table: x
719 N,Valid,3
720 ,Missing,0
721 Mean,,1000010.00
722 Std Dev,,1732042.15
723 Minimum,,10.00
724 Maximum,,3000000.00
725
726 Table: x
727 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
728 ,10.00,1,33.33,33.33,33.33
729 ,20.00,1,33.33,33.33,66.67
730 ,3000000.00,1,33.33,33.33,100.00
731 Total,,3,100.0,100.0,
732
733 Table: x
734 N,Valid,3
735 ,Missing,0
736 Mean,,1000010.00
737 Std Dev,,1732042.15
738 Minimum,,10.00
739 Maximum,,3000000.00
740 ])
741 AT_CLEANUP
742
743
744
745 AT_SETUP([FREQUENCIES no valid data])
746 AT_DATA([empty.sps], [dnl
747 data list notable list /x *.
748 begin data.
749 .
750 .
751 .
752 end data.
753
754 FREQUENCIES
755         /VARIABLES = x
756         /STATISTICS = ALL
757         .
758 ])
759
760 AT_CHECK([pspp empty.sps -O format=csv], [0],  [dnl
761 Table: x
762 Value Label,Value,Frequency,Percent,Valid Percent,Cum Percent
763 ,.  ,3,100.00,Missing,
764 Total,,3,100.0,100.0,
765
766 Table: x
767 N,Valid,0
768 ,Missing,3
769 Mean,,.
770 S.E. Mean,,.
771 Mode,,.
772 Std Dev,,.
773 Variance,,.
774 Kurtosis,,.
775 S.E. Kurt,,.
776 Skewness,,.
777 S.E. Skew,,.
778 Range,,.
779 Minimum,,.
780 Maximum,,.
781 Sum,,.
782 Percentiles,,.
783 ])
784
785 AT_CLEANUP
786
787
788 AT_SETUP([FREQUENCIES histogram no valid cases])
789 AT_DATA([empty.sps], [dnl
790 data list notable list /x w *.
791 begin data.
792 1 .
793 2 .
794 3 .
795 end data.
796
797 weight by w.
798
799 FREQUENCIES
800         /VARIABLES = x
801         /histogram
802         .
803 ])
804
805 AT_CHECK([pspp empty.sps -O format=csv], [0],  [ignore])
806
807 AT_CLEANUP
808
809 AT_SETUP([FREQUENCIES percentiles + histogram bug#48128])
810 AT_DATA([bug.sps], [dnl
811 SET FORMAT=F8.0.
812
813 INPUT PROGRAM.
814         LOOP I=1 TO 10.
815                 COMPUTE SCORE=EXP(NORMAL(1)).
816                 END CASE.
817         END LOOP.
818         END FILE.
819 END INPUT PROGRAM.
820
821 FREQUENCIES VARIABLES=SCORE
822 /FORMAT=NOTABLE
823 /STATISTICS=ALL
824 /PERCENTILES=1 10 20 30 40 50 60 70 80 90 99
825 /HISTOGRAM.
826
827 ])
828
829 AT_CHECK([pspp bug.sps], [0],  [ignore])
830
831 AT_CLEANUP