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