1 dnl PSPP - a program for statistical analysis.
2 dnl Copyright (C) 2017 Free Software Foundation, Inc.
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.
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.
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/>.
17 AT_BANNER([data input (data-in)])
19 m4_divert_push([PREPARE_TESTS])
21 cat > my-rand.pl <<'EOF'
22 # This random number generator and the test for it below are drawn
23 # from Park and Miller, "Random Number Generators: Good Ones are Hard
24 # to Come By", Communications of the ACM 31:10 (October 1988). It is
25 # documented to function properly on systems with a 46-bit or longer
26 # real significand, which includes systems that have 64-bit IEEE reals
27 # (with 53-bit significand). The test should catch any systems for
28 # which this is not true, in any case.
35 my ($tmp) = $a * $seed;
36 $seed = $tmp - $m * int ($tmp / $m);
37 return $seed % $modulo;
40 cat > test-my-rand.pl <<'EOF'
45 my_rand (1) foreach 1...10000;
47 die $seed if $seed != 1043618065;
52 cat > date-in.pl << 'EOF'
60 my ($fmt_name, @templates) = @ARGV;
62 my @dates = (#yyyy mm dd jjj HH MM SS
63 [1648, 6, 10, 162, 0, 0, 0],
64 [1680, 6, 30, 182, 4, 50, 38],
65 [1716, 7, 24, 206, 12, 31, 35],
66 [1768, 6, 19, 171, 12, 47, 53],
67 [1819, 8, 2, 214, 1, 26, 0],
68 [1839, 3, 27, 86, 20, 58, 11],
69 [1903, 4, 19, 109, 7, 36, 5],
70 [1929, 8, 25, 237, 15, 43, 49],
71 [1941, 9, 29, 272, 4, 25, 9],
72 [1943, 4, 19, 109, 6, 49, 27],
73 [1943, 10, 7, 280, 2, 57, 52],
74 [1992, 3, 17, 77, 16, 45, 44],
75 [1996, 2, 25, 56, 21, 30, 57],
76 [1941, 9, 29, 272, 4, 25, 9],
77 [1943, 4, 19, 109, 6, 49, 27],
78 [1943, 10, 7, 280, 2, 57, 52],
79 [1992, 3, 17, 77, 16, 45, 44],
80 [1996, 2, 25, 56, 21, 30, 57],
81 [2038, 11, 10, 314, 22, 30, 4],
82 [2094, 7, 18, 199, 1, 56, 51]);
84 open (SYNTAX, '>', "$fmt_name.sps") or die "$fmt_name.sps: create: $!\n";
85 print SYNTAX "SET EPOCH 1930.\n";
86 print SYNTAX "DATA LIST NOTABLE FILE='$fmt_name.in'/$fmt_name 1-40 ($fmt_name).\n";
87 print SYNTAX "PRINT OUTFILE='$fmt_name.out'/$fmt_name (F16.2).\n";
88 print SYNTAX "EXECUTE.\n";
91 my ($fn) = "$fmt_name.in";
92 open (DATA, '>', $fn) or die "$fn: create: $!\n";
94 for my $template (@templates) {
95 for my $date (@dates) {
96 print_date_with_template ($date, $template) for 1...10;
101 sub print_date_with_template {
102 my ($date, $template) = @_;
103 my ($year, $month, $day, $julian, $hour, $minute, $second) = @$date;
104 my ($quarter) = int (($month - 1) / 3) + 1;
105 my ($week) = int (($julian - 1) / 7) + 1;
106 my (@year_types) = ('full');
107 push (@year_types, '2digit') if $year >= 1930 && $year < 2030;
108 for my $c (split ('', $template)) {
110 printf (+pick ('%d', '%02d'), $day);
111 } elsif ($c eq 'm') {
112 my ($type) = pick ('arabic', 'roman', 'abbrev', 'full');
113 if ($type eq 'arabic') {
114 printf (+pick ('%d', '%02d'), $month);
115 } elsif ($type eq 'roman') {
116 my ($mmm) = ('i', 'ii', 'iii',
119 'x', 'xi', 'xii')[$month - 1];
120 print_rand_case ($mmm);
121 } elsif ($type eq 'abbrev') {
122 my ($mmm) = qw (jan feb mar apr may jun
123 jul aug sep oct nov dec)[$month - 1];
124 print_rand_case ($mmm);
125 } elsif ($type eq 'full') {
126 my ($mmm) = qw (january february march
128 july august september
129 october november december)[$month - 1];
130 print_rand_case ($mmm);
134 } elsif ($c eq 'y') {
135 my ($type) = pick (@year_types);
136 if ($type eq '2digit') {
137 printf (+pick ('%d', '%02d'), $year % 100);
138 } elsif ($type eq 'full') {
143 } elsif ($c eq 'j') {
144 my ($type) = pick (@year_types);
145 if ($type eq '2digit') {
146 printf ("%02d%03d", $year % 100, $julian);
147 } elsif ($type eq 'full') {
148 printf ("%04d%03d", $year, $julian);
152 } elsif ($c eq 'q') {
154 } elsif ($c eq 'w') {
156 } elsif ($c eq 'H') {
157 printf (+pick ('%d', '%02d'), $hour);
158 } elsif ($c eq 'M') {
159 printf (+pick ('%d', '%02d'), $minute);
160 } elsif ($c eq 'S') {
161 printf (+pick ('%d', '%02d'), $second);
162 } elsif ($c eq '-') {
163 print +pick (' ', '-', '.', ',', '/');
164 } elsif ($c eq ':') {
165 print +pick (' ', ':');
166 } elsif ($c eq ' ') {
168 } elsif ($c eq 'Q') {
169 maybe_print_space ();
170 print_rand_case ('q');
171 maybe_print_space ();
172 } elsif ($c eq 'W') {
173 maybe_print_space ();
174 print_rand_case ('wk');
175 maybe_print_space ();
176 } elsif ($c eq '+') {
177 print +pick ('', '-', '+');
185 sub print_rand_case {
187 my ($case) = pick (qw (uc lc tc));
190 } elsif ($case eq 'lc') {
192 } elsif ($case eq 'tc') {
199 sub maybe_print_space {
200 print +pick ('', ' ');
204 return $_[int (my_rand ($#_
211 cat > time-in.pl << 'EOF'
219 my ($skip, $fmt_name, @templates) = @ARGV;
221 my_rand (1) foreach 1...$skip;
223 my @times = (# D HH MM SS
231 [ 52, 15, 43, 49.27],
235 [555, 16, 45, 44.12],
236 [120, 21, 30, 57.27],
243 [ 22, 1, 56, 51.18]);
245 open (SYNTAX, '>', "$fmt_name.sps") or die "$fmt_name.sps: create: $!\n";
246 print SYNTAX "DATA LIST NOTABLE FILE='$fmt_name.data'/$fmt_name 1-40 ($fmt_name).\n";
247 print SYNTAX "PRINT OUTFILE='$fmt_name.out'/$fmt_name (F16.2).\n";
248 print SYNTAX "EXECUTE.\n";
251 my ($fn) = "$fmt_name.data";
252 open (DATA, '>', $fn) or die "$fn: create: $!\n";
254 for my $template (@templates) {
255 for my $time (@times) {
256 print_time_with_template ($time, $template) for 1...10;
261 sub print_time_with_template {
262 my ($time, $template) = @_;
263 my ($day, $hour, $minute, $second) = @$time;
264 for my $c (split ('', $template)) {
266 print +pick ('', '-', '+');
267 } elsif ($c eq 'D') {
268 printf (+pick ('%d', '%02d'), $day);
270 } elsif ($c eq 'H') {
271 printf (+pick ('%d', '%02d'), $hour + 24 * $day);
272 } elsif ($c eq 'M') {
273 printf (+pick ('%d', '%02d'), $minute);
274 } elsif ($c eq 'S') {
275 printf (+pick ('%.0f', '%02.0f', '%.1f', '%.2f'), $second);
276 } elsif ($c eq ':') {
277 print +pick (' ', ':');
278 } elsif ($c eq ' ') {
288 return $_[int (my_rand ($#_
293 m4_divert_pop([PREPARE_TESTS])
295 AT_SETUP([numeric input formats])
296 AT_KEYWORDS([data-in])
298 AT_CHECK([$PERL test-my-rand.pl])
308 for my $number (0, 1, .5, .015625, 123) {
309 my ($base_exp) = floor ($number ? log10 ($number) : 0);
310 for my $offset (-3...3) {
311 my ($exponent) = $base_exp + $offset;
312 my ($fraction) = $number / 10**$offset;
314 permute_zeros ($fraction, $exponent);
319 my ($fraction, $exponent) = @_;
321 my ($frac_rep) = sprintf ("%f", $fraction);
322 my ($leading_zeros) = length (($frac_rep =~ /^(0*)/)[0]);
323 my ($trailing_zeros) = length (($frac_rep =~ /(\.?0*)$/)[0]);
324 for my $i (0...$leading_zeros) {
325 for my $j (0...$trailing_zeros) {
326 my ($trimmed) = substr ($frac_rep, $i,
327 length ($frac_rep) - $i - $j);
328 next if $trimmed eq '.' || $trimmed eq '';
330 permute_commas ($trimmed, $exponent);
336 my ($frac_rep, $exponent) = @_;
337 permute_dot_comma ($frac_rep, $exponent);
338 my ($pos) = int (my_rand (length ($frac_rep) + 1));
339 $frac_rep = substr ($frac_rep, 0, $pos) . "," . substr ($frac_rep, $pos);
340 permute_dot_comma ($frac_rep, $exponent);
343 sub permute_dot_comma {
344 my ($frac_rep, $exponent) = @_;
345 permute_exponent_syntax ($frac_rep, $exponent);
346 if ($frac_rep =~ /[,.]/) {
347 $frac_rep =~ tr/.,/,./;
348 permute_exponent_syntax ($frac_rep, $exponent);
352 sub permute_exponent_syntax {
353 my ($frac_rep, $exponent) = @_;
355 if ($exponent == 0) {
356 @exp_reps = pick ('', 'e0', 'e-0', 'e+0', '-0', '+0');
357 } elsif ($exponent > 0) {
358 @exp_reps = pick ("e$exponent", "e+$exponent", "+$exponent");
360 my ($abs_exp) = -$exponent;
361 @exp_reps = pick ("e-$abs_exp", , "e-$abs_exp", "-$abs_exp");
363 permute_sign_and_affix ($frac_rep, $_) foreach @exp_reps;
366 sub permute_sign_and_affix {
367 my ($frac_rep, $exp_rep) = @_;
368 for my $prefix (pick ('', '$'),
369 pick ('-', '-$', '$-', '$-$'),
370 pick ('+', '+$', '$+', '$+$')) {
371 for my $suffix ('', '%') {
372 permute_spaces ("$prefix$frac_rep$exp_rep$suffix");
379 $s =~ s/([-+\$e%])/ $1 /g;
380 my (@fields) = split (' ', $s);
381 print join ('', @fields), "\n";
384 my ($pos) = int (my_rand ($#fields)) + 1;
385 print join ('', @fields[0...$pos - 1]);
387 print join ('', @fields[$pos...$#fields]);
393 return $_[int (my_rand ($#_ + 1))];
396 AT_CHECK([$PERL num-in.pl > num-in.data])
397 AT_DATA([num-in.sps], [dnl
400 SET MXWARNS=10000000.
401 DATA LIST FILE='num-in.data' NOTABLE/
408 PRINT OUTFILE='num-in.out'/all (6f10.4).
411 AT_CHECK([pspp -O format=csv num-in.sps])
412 AT_CHECK([gzip -cd < $top_srcdir/tests/data/num-in.expected.gz > expout])
413 AT_CHECK([cat num-in.out], [0], [expout])
416 dnl Some very old version of PSPP crashed reading big numbers,
417 dnl so this checks for regressions.
418 AT_SETUP([reading big numbers])
419 AT_KEYWORDS([data-in])
420 AT_DATA([bignum.txt], [dnl
451 199999999999999999999
452 1234567890123456789012
453 19999999999999999999999
454 123456789012345678901234
455 1999999999999999999999999
456 12345678901234567890123456
457 199999999999999999999999999
458 1234567890123456789012345678
459 19999999999999999999999999999
460 123456789012345678901234567890
461 1999999999999999999999999999999
462 12345678901234567890123456789012
463 199999999999999999999999999999999
464 1234567890123456789012345678901234
465 19999999999999999999999999999999999
466 123456789012345678901234567890123456
467 1999999999999999999999999999999999999
468 12345678901234567890123456789012345678
469 199999999999999999999999999999999999999
470 1234567890123456789012345678901234567890
471 1999999999999999999999999999999999999999
485 AT_DATA([bignum.sps], [dnl
486 title 'Test use of big numbers'.
488 *** Do the portable output.
489 data list file='bignum.txt'/BIGNUM 1-40.
492 *** Do the nonportable output for fun.
495 AT_CHECK([pspp -o pspp.csv bignum.sps], [0], [ignore])
498 AT_SETUP([DATE input format])
499 AT_KEYWORDS([data-in])
501 AT_CHECK([$PERL test-my-rand.pl])
502 AT_CHECK([$PERL date-in.pl date d-m-y])
503 AT_CHECK([test -s date.sps])
504 AT_CHECK([test -s date.in])
505 AT_CHECK([pspp -O format=csv date.sps])
506 AT_CHECK([cat date.out], [0], [dnl
710 AT_SETUP([ADATE input format])
711 AT_KEYWORDS([data-in])
713 AT_CHECK([$PERL test-my-rand.pl])
714 AT_CHECK([$PERL date-in.pl adate m-d-y])
715 AT_CHECK([test -s adate.sps])
716 AT_CHECK([test -s adate.in])
717 AT_CHECK([pspp -O format=csv adate.sps])
718 AT_CHECK([cat adate.out], [0], [dnl
922 AT_SETUP([EDATE input format])
923 AT_KEYWORDS([data-in])
925 AT_CHECK([$PERL test-my-rand.pl])
926 AT_CHECK([$PERL date-in.pl edate d-m-y])
927 AT_CHECK([test -s edate.sps])
928 AT_CHECK([test -s edate.in])
929 AT_CHECK([pspp -O format=csv edate.sps])
930 AT_CHECK([cat edate.out], [0], [dnl
1134 AT_SETUP([JDATE input format])
1135 AT_KEYWORDS([data-in])
1137 AT_CHECK([$PERL test-my-rand.pl])
1138 AT_CHECK([$PERL date-in.pl jdate j])
1139 AT_CHECK([test -s jdate.sps])
1140 AT_CHECK([test -s jdate.in])
1141 AT_CHECK([pspp -O format=csv jdate.sps])
1142 AT_CHECK([cat jdate.out], [0], [dnl
1346 AT_SETUP([SDATE input format])
1347 AT_KEYWORDS([data-in])
1349 AT_CHECK([$PERL test-my-rand.pl])
1350 AT_CHECK([$PERL date-in.pl sdate y-m-d])
1351 AT_CHECK([test -s sdate.sps])
1352 AT_CHECK([test -s sdate.in])
1353 AT_CHECK([pspp -O format=csv sdate.sps])
1354 AT_CHECK([cat sdate.out], [0], [dnl
1558 AT_SETUP([QYR input format])
1559 AT_KEYWORDS([data-in])
1561 AT_CHECK([$PERL test-my-rand.pl])
1562 AT_CHECK([$PERL date-in.pl qyr qQy])
1563 AT_CHECK([test -s qyr.sps])
1564 AT_CHECK([test -s qyr.in])
1565 AT_CHECK([pspp -O format=csv qyr.sps])
1566 AT_CHECK([cat qyr.out], [0], [dnl
1770 AT_SETUP([MOYR input format])
1771 AT_KEYWORDS([data-in])
1773 AT_CHECK([$PERL test-my-rand.pl])
1774 AT_CHECK([$PERL date-in.pl moyr m-y])
1775 AT_CHECK([test -s moyr.sps])
1776 AT_CHECK([test -s moyr.in])
1777 AT_CHECK([pspp -O format=csv moyr.sps])
1778 AT_CHECK([cat moyr.out], [0], [dnl
1982 AT_SETUP([WKYR input format])
1983 AT_KEYWORDS([data-in])
1985 AT_CHECK([$PERL test-my-rand.pl])
1986 AT_CHECK([$PERL date-in.pl wkyr wWy])
1987 AT_CHECK([test -s wkyr.sps])
1988 AT_CHECK([test -s wkyr.in])
1989 AT_CHECK([pspp -O format=csv wkyr.sps])
1990 AT_CHECK([cat wkyr.out], [0], [dnl
2194 AT_SETUP([DATETIME input format])
2195 AT_KEYWORDS([data-in])
2197 AT_CHECK([$PERL test-my-rand.pl])
2198 AT_CHECK([$PERL date-in.pl datetime "d-m-y +H:M" "d-m-y +H:M:S"])
2199 AT_CHECK([test -s datetime.sps])
2200 AT_CHECK([test -s datetime.in])
2201 AT_CHECK([pspp -O format=csv datetime.sps])
2202 AT_CHECK([cat datetime.out], [0], [dnl
2606 AT_SETUP([TIME input format])
2607 AT_KEYWORDS([data-in])
2609 AT_CHECK([$PERL test-my-rand.pl])
2610 AT_CHECK([$PERL time-in.pl 0 time +H:M +H:M:S])
2611 AT_CHECK([test -s time.sps])
2612 AT_CHECK([test -s time.data])
2613 AT_CHECK([pspp -O format=csv time.sps])
2614 AT_CHECK([cat time.out], [0], [dnl
3018 AT_SETUP([DTIME input format])
3019 AT_KEYWORDS([data-in])
3021 AT_CHECK([$PERL test-my-rand.pl])
3022 AT_CHECK([$PERL time-in.pl 2000 dtime '+D H:M' '+D H:M:S'])
3023 AT_CHECK([test -s dtime.sps])
3024 AT_CHECK([test -s dtime.data])
3025 AT_CHECK([pspp -O format=csv dtime.sps])
3026 AT_CHECK([cat dtime.out], [0], [dnl
3430 AT_SETUP([binary and hexadecimal input (IB, PIB, and PIBHEX formats)])
3431 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > binhex-in.data])
3432 AT_CHECK([[wc -c < binhex-in.data | sed 's/[ ]//g']], [0], [131072
3434 AT_DATA([binhex-in.sps], [dnl
3437 SET MXWARNS=10000000.
3438 SET MXERRS=10000000.
3439 FILE HANDLE data/NAME='binhex-in.data'/MODE=IMAGE/LRECL=2.
3440 DATA LIST FILE=data NOTABLE/ib 1-2 (IB) pib 1-2 (PIB) pibhex 1-2 (PIBHEX).
3441 COMPUTE x=$CASENUM - 1.
3442 PRINT OUTFILE='binhex-in.out'/x (PIBHEX4) ' ' ib pib pibhex.
3445 AT_CHECK([gzip -cd < $top_srcdir/tests/data/binhex-in.expected.cmp.gz | \
3446 $PERL -pe "printf ' %04X ', $.-1" > expout])
3447 AT_CHECK([pspp -O format=csv binhex-in.sps], [0])
3448 AT_CHECK([cat binhex-in.out], [0], [expout])
3451 AT_SETUP([BCD input (P and PK formats)])
3452 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > bcd-in.data])
3453 AT_CHECK([[wc -c < bcd-in.data | sed 's/[ ]//g']], [0], [131072
3455 AT_DATA([bcd-in.sps], [dnl
3457 SET MXWARNS=10000000.
3458 SET MXERRS=10000000.
3459 FILE HANDLE data/NAME='bcd-in.data'/MODE=IMAGE/LRECL=2.
3460 DATA LIST FILE=data NOTABLE/p 1-2 (P) pk 1-2 (PK).
3461 COMPUTE x=$CASENUM - 1.
3462 PRINT OUTFILE='bcd-in.out'/x (PIBHEX4) ' ' P PK.
3465 AT_CHECK([gzip -cd < $top_srcdir/tests/data/bcd-in.expected.cmp.gz | \
3466 $PERL -pe "printf ' %04X ', $.-1" > expout])
3467 AT_CHECK([pspp -O format=csv bcd-in.sps])
3468 AT_CHECK([cat bcd-in.out], [0], [expout])
3471 AT_SETUP([legacy input (N and Z formats)])
3472 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > legacy-in.data])
3473 AT_CHECK([[wc -c < legacy-in.data | sed 's/[ ]//g']], [0], [131072
3475 AT_DATA([legacy-in.sps], [dnl
3477 SET MXWARNS=10000000.
3478 SET MXERRS=10000000.
3479 FILE HANDLE data/NAME='legacy-in.data'/MODE=IMAGE/LRECL=2.
3480 DATA LIST NOTABLE FILE=data/n 1-2 (N) z 1-2 (z).
3481 COMPUTE x=$CASENUM - 1.
3482 PRINT OUTFILE='legacy-in.out'/x (PIBHEX4) ' ' N Z.
3485 AT_CHECK([gzip -cd < $top_srcdir/tests/data/legacy-in.expected.cmp.gz | \
3486 $PERL -pe "printf ' %04X ', $.-1" > expout])
3487 AT_CHECK([pspp -O format=csv legacy-in.sps])
3488 AT_CHECK([cat legacy-in.out], [0], [expout])
3491 AT_SETUP([WKDAY input format])
3492 AT_DATA([wkday.sps], [dnl
3493 DATA LIST NOTABLE /wkday2 1-2 (wkday)
3501 wkday10 1-10 (wkday).
3514 FORMATS ALL (WKDAY2).
3515 PRINT OUTFILE='wkday.out'/ALL.
3518 AT_CHECK([pspp -O format=csv wkday.sps], [0], [dnl
3519 wkday.sps:20.1-20.2: warning: Data for variable wkday2 is not valid as format WKDAY: Unrecognized weekday name. At least the first two letters of an English weekday name must be specified.
3521 wkday.sps:20.1-20.3: warning: Data for variable wkday3 is not valid as format WKDAY: Unrecognized weekday name. At least the first two letters of an English weekday name must be specified.
3523 wkday.sps:20.1-20.4: warning: Data for variable wkday4 is not valid as format WKDAY: Unrecognized weekday name. At least the first two letters of an English weekday name must be specified.
3525 wkday.sps:20.1-20.5: warning: Data for variable wkday5 is not valid as format WKDAY: Unrecognized weekday name. At least the first two letters of an English weekday name must be specified.
3527 wkday.sps:20.1-20.6: warning: Data for variable wkday6 is not valid as format WKDAY: Unrecognized weekday name. At least the first two letters of an English weekday name must be specified.
3529 wkday.sps:20.1-20.7: warning: Data for variable wkday7 is not valid as format WKDAY: Unrecognized weekday name. At least the first two letters of an English weekday name must be specified.
3531 wkday.sps:20.1-20.8: warning: Data for variable wkday8 is not valid as format WKDAY: Unrecognized weekday name. At least the first two letters of an English weekday name must be specified.
3533 wkday.sps:20.1-20.9: warning: Data for variable wkday9 is not valid as format WKDAY: Unrecognized weekday name. At least the first two letters of an English weekday name must be specified.
3535 wkday.sps:20.1-20.10: warning: Data for variable wkday10 is not valid as format WKDAY: Unrecognized weekday name. At least the first two letters of an English weekday name must be specified.
3537 AT_CHECK([cat wkday.out], [0], [dnl
3538 . . . . . . . . . @&t@
3539 . . . . . . . . . @&t@
3540 MO MO MO MO MO MO MO MO MO @&t@
3541 TU TU TU TU TU TU TU TU TU @&t@
3542 WE WE WE WE WE WE WE WE WE @&t@
3543 TH TH TH TH TH TH TH TH TH @&t@
3544 FR FR FR FR FR FR FR FR FR @&t@
3545 SA SA SA SA SA SA SA SA SA @&t@
3546 SU SU SU SU SU SU SU SU SU @&t@
3547 . . . . . . . . . @&t@
3551 AT_SETUP([MONTH input format])
3552 AT_DATA([month.sps], [dnl
3553 DATA LIST NOTABLE /month3 1-3 (MONTH)
3560 month10 1-10 (MONTH).
3609 FORMATS ALL (MONTH3).
3610 PRINT OUTFILE='month.out'/ALL.
3613 AT_CHECK([pspp -O format=csv month.sps], [0], [dnl
3614 month.sps:15.1-15.4: warning: Data for variable month4 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3616 month.sps:15.1-15.5: warning: Data for variable month5 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3618 month.sps:15.1-15.6: warning: Data for variable month6 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3620 month.sps:15.1-15.7: warning: Data for variable month7 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3622 month.sps:15.1-15.8: warning: Data for variable month8 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3624 month.sps:15.1-15.9: warning: Data for variable month9 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3626 month.sps:15.1-15.10: warning: Data for variable month10 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3628 month.sps:26.1-26.3: warning: Data for variable month3 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3630 month.sps:26.1-26.4: warning: Data for variable month4 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3632 month.sps:26.1-26.5: warning: Data for variable month5 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3634 month.sps:26.1-26.6: warning: Data for variable month6 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3636 month.sps:26.1-26.7: warning: Data for variable month7 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3638 month.sps:26.1-26.8: warning: Data for variable month8 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3640 month.sps:26.1-26.9: warning: Data for variable month9 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3642 month.sps:26.1-26.10: warning: Data for variable month10 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3644 month.sps:39.1-39.3: warning: Data for variable month3 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3646 month.sps:39.1-39.4: warning: Data for variable month4 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3648 month.sps:39.1-39.5: warning: Data for variable month5 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3650 month.sps:39.1-39.6: warning: Data for variable month6 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3652 month.sps:39.1-39.7: warning: Data for variable month7 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3654 month.sps:39.1-39.8: warning: Data for variable month8 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3656 month.sps:39.1-39.9: warning: Data for variable month9 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3658 month.sps:39.1-39.10: warning: Data for variable month10 is not valid as format MONTH: Unrecognized month format. Months may be specified as Arabic or Roman numerals or as at least 3 letters of their English names.
3660 AT_CHECK([cat month.out], [0], [dnl
3661 . . . . . . . . @&t@
3662 . . . . . . . . @&t@
3663 JAN JAN JAN JAN JAN JAN JAN JAN @&t@
3664 FEB FEB FEB FEB FEB FEB FEB FEB @&t@
3665 MAR MAR MAR MAR MAR MAR MAR MAR @&t@
3666 MAR . . . . . . . @&t@
3667 APR APR APR APR APR APR APR APR @&t@
3668 MAY MAY MAY MAY MAY MAY MAY MAY @&t@
3669 JUN JUN JUN JUN JUN JUN JUN JUN @&t@
3670 JUL JUL JUL JUL JUL JUL JUL JUL @&t@
3671 JUL AUG AUG AUG AUG AUG AUG AUG @&t@
3672 SEP SEP SEP SEP SEP SEP SEP SEP @&t@
3673 JUL AUG AUG AUG AUG AUG AUG AUG @&t@
3674 OCT OCT OCT OCT OCT OCT OCT OCT @&t@
3675 NOV NOV NOV NOV NOV NOV NOV NOV @&t@
3676 DEC DEC DEC DEC DEC DEC DEC DEC @&t@
3677 . . . . . . . . @&t@
3678 JAN JAN JAN JAN JAN JAN JAN JAN @&t@
3679 FEB FEB FEB FEB FEB FEB FEB FEB @&t@
3680 MAR MAR MAR MAR MAR MAR MAR MAR @&t@
3681 APR APR APR APR APR APR APR APR @&t@
3682 MAY MAY MAY MAY MAY MAY MAY MAY @&t@
3683 JUN JUN JUN JUN JUN JUN JUN JUN @&t@
3684 JUL JUL JUL JUL JUL JUL JUL JUL @&t@
3685 AUG AUG AUG AUG AUG AUG AUG AUG @&t@
3686 SEP SEP SEP SEP SEP SEP SEP SEP @&t@
3687 OCT OCT OCT OCT OCT OCT OCT OCT @&t@
3688 NOV NOV NOV NOV NOV NOV NOV NOV @&t@
3689 DEC DEC DEC DEC DEC DEC DEC DEC @&t@
3690 . . . . . . . . @&t@
3691 JAN JAN JAN JAN JAN JAN JAN JAN @&t@
3692 JAN JAN JAN JAN JAN JAN JAN JAN @&t@
3693 FEB FEB FEB FEB FEB FEB FEB FEB @&t@
3694 FEB FEB FEB FEB FEB FEB FEB FEB @&t@
3695 MAR MAR MAR MAR MAR MAR MAR MAR @&t@
3696 MAR MAR MAR MAR MAR MAR MAR MAR @&t@
3697 APR APR APR APR APR APR APR APR @&t@
3698 MAY MAY MAY MAY MAY MAY MAY MAY @&t@
3699 JUN JUN JUN JUN JUN JUN JUN JUN @&t@
3700 JUL JUL JUL JUL JUL JUL JUL JUL @&t@
3701 AUG AUG AUG AUG AUG AUG AUG AUG @&t@
3702 SEP SEP SEP SEP SEP SEP SEP SEP @&t@
3703 OCT OCT OCT OCT OCT OCT OCT OCT @&t@
3704 NOV NOV NOV NOV NOV NOV NOV NOV @&t@
3705 DEC DEC DEC DEC DEC DEC DEC DEC @&t@
3706 DEC DEC DEC DEC DEC DEC DEC DEC @&t@