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/>.
16 dnl AT_BANNER([data input (data-in)])
18 m4_divert_push([PREPARE_TESTS])
20 cat > my-rand.pl <<'EOF'
21 # This random number generator and the test for it below are drawn
22 # from Park and Miller, "Random Number Generators: Good Ones are Hard
23 # to Come By", Communications of the ACM 31:10 (October 1988). It is
24 # documented to function properly on systems with a 46-bit or longer
25 # real significand, which includes systems that have 64-bit IEEE reals
26 # (with 53-bit significand). The test should catch any systems for
27 # which this is not true, in any case.
34 my ($tmp) = $a * $seed;
35 $seed = $tmp - $m * int ($tmp / $m);
36 return $seed % $modulo;
39 cat > test-my-rand.pl <<'EOF'
44 my_rand (1) foreach 1...10000;
46 die $seed if $seed != 1043618065;
51 cat > date-in.pl << 'EOF'
59 my ($fmt_name, @templates) = @ARGV;
61 my @dates = (#yyyy mm dd jjj HH MM SS
62 [1648, 6, 10, 162, 0, 0, 0],
63 [1680, 6, 30, 182, 4, 50, 38],
64 [1716, 7, 24, 206, 12, 31, 35],
65 [1768, 6, 19, 171, 12, 47, 53],
66 [1819, 8, 2, 214, 1, 26, 0],
67 [1839, 3, 27, 86, 20, 58, 11],
68 [1903, 4, 19, 109, 7, 36, 5],
69 [1929, 8, 25, 237, 15, 43, 49],
70 [1941, 9, 29, 272, 4, 25, 9],
71 [1943, 4, 19, 109, 6, 49, 27],
72 [1943, 10, 7, 280, 2, 57, 52],
73 [1992, 3, 17, 77, 16, 45, 44],
74 [1996, 2, 25, 56, 21, 30, 57],
75 [1941, 9, 29, 272, 4, 25, 9],
76 [1943, 4, 19, 109, 6, 49, 27],
77 [1943, 10, 7, 280, 2, 57, 52],
78 [1992, 3, 17, 77, 16, 45, 44],
79 [1996, 2, 25, 56, 21, 30, 57],
80 [2038, 11, 10, 314, 22, 30, 4],
81 [2094, 7, 18, 199, 1, 56, 51]);
83 open (SYNTAX, '>', "$fmt_name.sps") or die "$fmt_name.sps: create: $!\n";
84 print SYNTAX "SET EPOCH 1930.\n";
85 print SYNTAX "DATA LIST NOTABLE FILE='$fmt_name.in'/$fmt_name 1-40 ($fmt_name).\n";
86 print SYNTAX "PRINT OUTFILE='$fmt_name.out'/$fmt_name (F16.2).\n";
87 print SYNTAX "EXECUTE.\n";
90 my ($fn) = "$fmt_name.in";
91 open (DATA, '>', $fn) or die "$fn: create: $!\n";
93 for my $template (@templates) {
94 for my $date (@dates) {
95 print_date_with_template ($date, $template) for 1...10;
100 sub print_date_with_template {
101 my ($date, $template) = @_;
102 my ($year, $month, $day, $julian, $hour, $minute, $second) = @$date;
103 my ($quarter) = int (($month - 1) / 3) + 1;
104 my ($week) = int (($julian - 1) / 7) + 1;
105 my (@year_types) = ('full');
106 push (@year_types, '2digit') if $year >= 1930 && $year < 2030;
107 for my $c (split ('', $template)) {
109 printf (+pick ('%d', '%02d'), $day);
110 } elsif ($c eq 'm') {
111 my ($type) = pick ('arabic', 'roman', 'abbrev', 'full');
112 if ($type eq 'arabic') {
113 printf (+pick ('%d', '%02d'), $month);
114 } elsif ($type eq 'roman') {
115 my ($mmm) = ('i', 'ii', 'iii',
118 'x', 'xi', 'xii')[$month - 1];
119 print_rand_case ($mmm);
120 } elsif ($type eq 'abbrev') {
121 my ($mmm) = qw (jan feb mar apr may jun
122 jul aug sep oct nov dec)[$month - 1];
123 print_rand_case ($mmm);
124 } elsif ($type eq 'full') {
125 my ($mmm) = qw (january february march
127 july august september
128 october november december)[$month - 1];
129 print_rand_case ($mmm);
133 } elsif ($c eq 'y') {
134 my ($type) = pick (@year_types);
135 if ($type eq '2digit') {
136 printf (+pick ('%d', '%02d'), $year % 100);
137 } elsif ($type eq 'full') {
142 } elsif ($c eq 'j') {
143 my ($type) = pick (@year_types);
144 if ($type eq '2digit') {
145 printf ("%02d%03d", $year % 100, $julian);
146 } elsif ($type eq 'full') {
147 printf ("%04d%03d", $year, $julian);
151 } elsif ($c eq 'q') {
153 } elsif ($c eq 'w') {
155 } elsif ($c eq 'H') {
156 printf (+pick ('%d', '%02d'), $hour);
157 } elsif ($c eq 'M') {
158 printf (+pick ('%d', '%02d'), $minute);
159 } elsif ($c eq 'S') {
160 printf (+pick ('%d', '%02d'), $second);
161 } elsif ($c eq '-') {
162 print +pick (' ', '-', '.', ',', '/');
163 } elsif ($c eq ':') {
164 print +pick (' ', ':');
165 } elsif ($c eq ' ') {
167 } elsif ($c eq 'Q') {
168 maybe_print_space ();
169 print_rand_case ('q');
170 maybe_print_space ();
171 } elsif ($c eq 'W') {
172 maybe_print_space ();
173 print_rand_case ('wk');
174 maybe_print_space ();
175 } elsif ($c eq '+') {
176 print +pick ('', '-', '+');
184 sub print_rand_case {
186 my ($case) = pick (qw (uc lc tc));
189 } elsif ($case eq 'lc') {
191 } elsif ($case eq 'tc') {
198 sub maybe_print_space {
199 print +pick ('', ' ');
203 return $_[int (my_rand ($#_
210 cat > time-in.pl << 'EOF'
218 my ($skip, $fmt_name, @templates) = @ARGV;
220 my_rand (1) foreach 1...$skip;
222 my @times = (# D HH MM SS
230 [ 52, 15, 43, 49.27],
234 [555, 16, 45, 44.12],
235 [120, 21, 30, 57.27],
242 [ 22, 1, 56, 51.18]);
244 open (SYNTAX, '>', "$fmt_name.sps") or die "$fmt_name.sps: create: $!\n";
245 print SYNTAX "DATA LIST NOTABLE FILE='$fmt_name.data'/$fmt_name 1-40 ($fmt_name).\n";
246 print SYNTAX "PRINT OUTFILE='$fmt_name.out'/$fmt_name (F16.2).\n";
247 print SYNTAX "EXECUTE.\n";
250 my ($fn) = "$fmt_name.data";
251 open (DATA, '>', $fn) or die "$fn: create: $!\n";
253 for my $template (@templates) {
254 for my $time (@times) {
255 print_time_with_template ($time, $template) for 1...10;
260 sub print_time_with_template {
261 my ($time, $template) = @_;
262 my ($day, $hour, $minute, $second) = @$time;
263 for my $c (split ('', $template)) {
265 print +pick ('', '-', '+');
266 } elsif ($c eq 'D') {
267 printf (+pick ('%d', '%02d'), $day);
269 } elsif ($c eq 'H') {
270 printf (+pick ('%d', '%02d'), $hour + 24 * $day);
271 } elsif ($c eq 'M') {
272 printf (+pick ('%d', '%02d'), $minute);
273 } elsif ($c eq 'S') {
274 printf (+pick ('%.0f', '%02.0f', '%.1f', '%.2f'), $second);
275 } elsif ($c eq ':') {
276 print +pick (' ', ':');
277 } elsif ($c eq ' ') {
287 return $_[int (my_rand ($#_
292 m4_divert_pop([PREPARE_TESTS])
294 AT_SETUP([numeric input formats])
295 AT_KEYWORDS([data-in])
297 AT_CHECK([$PERL test-my-rand.pl])
307 for my $number (0, 1, .5, .015625, 123) {
308 my ($base_exp) = floor ($number ? log10 ($number) : 0);
309 for my $offset (-3...3) {
310 my ($exponent) = $base_exp + $offset;
311 my ($fraction) = $number / 10**$offset;
313 permute_zeros ($fraction, $exponent);
318 my ($fraction, $exponent) = @_;
320 my ($frac_rep) = sprintf ("%f", $fraction);
321 my ($leading_zeros) = length (($frac_rep =~ /^(0*)/)[0]);
322 my ($trailing_zeros) = length (($frac_rep =~ /(\.?0*)$/)[0]);
323 for my $i (0...$leading_zeros) {
324 for my $j (0...$trailing_zeros) {
325 my ($trimmed) = substr ($frac_rep, $i,
326 length ($frac_rep) - $i - $j);
327 next if $trimmed eq '.' || $trimmed eq '';
329 permute_commas ($trimmed, $exponent);
335 my ($frac_rep, $exponent) = @_;
336 permute_dot_comma ($frac_rep, $exponent);
337 my ($pos) = int (my_rand (length ($frac_rep) + 1));
338 $frac_rep = substr ($frac_rep, 0, $pos) . "," . substr ($frac_rep, $pos);
339 permute_dot_comma ($frac_rep, $exponent);
342 sub permute_dot_comma {
343 my ($frac_rep, $exponent) = @_;
344 permute_exponent_syntax ($frac_rep, $exponent);
345 if ($frac_rep =~ /[,.]/) {
346 $frac_rep =~ tr/.,/,./;
347 permute_exponent_syntax ($frac_rep, $exponent);
351 sub permute_exponent_syntax {
352 my ($frac_rep, $exponent) = @_;
354 if ($exponent == 0) {
355 @exp_reps = pick ('', 'e0', 'e-0', 'e+0', '-0', '+0');
356 } elsif ($exponent > 0) {
357 @exp_reps = pick ("e$exponent", "e+$exponent", "+$exponent");
359 my ($abs_exp) = -$exponent;
360 @exp_reps = pick ("e-$abs_exp", , "e-$abs_exp", "-$abs_exp");
362 permute_sign_and_affix ($frac_rep, $_) foreach @exp_reps;
365 sub permute_sign_and_affix {
366 my ($frac_rep, $exp_rep) = @_;
367 for my $prefix (pick ('', '$'),
368 pick ('-', '-$', '$-', '$-$'),
369 pick ('+', '+$', '$+', '$+$')) {
370 for my $suffix ('', '%') {
371 permute_spaces ("$prefix$frac_rep$exp_rep$suffix");
378 $s =~ s/([-+\$e%])/ $1 /g;
379 my (@fields) = split (' ', $s);
380 print join ('', @fields), "\n";
383 my ($pos) = int (my_rand ($#fields)) + 1;
384 print join ('', @fields[0...$pos - 1]);
386 print join ('', @fields[$pos...$#fields]);
392 return $_[int (my_rand ($#_ + 1))];
395 AT_CHECK([$PERL num-in.pl > num-in.data])
396 AT_DATA([num-in.sps], [dnl
399 SET MXWARNS=10000000.
400 DATA LIST FILE='num-in.data' NOTABLE/
407 PRINT OUTFILE='num-in.out'/all (6f10.4).
410 AT_CHECK([pspp -O format=csv num-in.sps])
411 AT_CHECK([gzip -cd < $top_srcdir/tests/data/num-in.expected.gz > expout])
412 AT_CHECK([cat num-in.out], [0], [expout])
415 dnl Some very old version of PSPP crashed reading big numbers,
416 dnl so this checks for regressions.
417 AT_SETUP([reading big numbers])
418 AT_KEYWORDS([data-in])
419 AT_DATA([bignum.txt], [dnl
450 199999999999999999999
451 1234567890123456789012
452 19999999999999999999999
453 123456789012345678901234
454 1999999999999999999999999
455 12345678901234567890123456
456 199999999999999999999999999
457 1234567890123456789012345678
458 19999999999999999999999999999
459 123456789012345678901234567890
460 1999999999999999999999999999999
461 12345678901234567890123456789012
462 199999999999999999999999999999999
463 1234567890123456789012345678901234
464 19999999999999999999999999999999999
465 123456789012345678901234567890123456
466 1999999999999999999999999999999999999
467 12345678901234567890123456789012345678
468 199999999999999999999999999999999999999
469 1234567890123456789012345678901234567890
470 1999999999999999999999999999999999999999
484 AT_DATA([bignum.sps], [dnl
485 title 'Test use of big numbers'.
487 *** Do the portable output.
488 data list file='bignum.txt'/BIGNUM 1-40.
491 *** Do the nonportable output for fun.
494 AT_CHECK([pspp -o pspp.csv bignum.sps], [0], [ignore])
497 AT_SETUP([DATE input format])
498 AT_KEYWORDS([data-in])
500 AT_CHECK([$PERL test-my-rand.pl])
501 AT_CHECK([$PERL date-in.pl date d-m-y])
502 AT_CHECK([test -s date.sps])
503 AT_CHECK([test -s date.in])
504 AT_CHECK([pspp -O format=csv date.sps])
505 AT_CHECK([cat date.out], [0], [dnl
709 AT_SETUP([ADATE input format])
710 AT_KEYWORDS([data-in])
712 AT_CHECK([$PERL test-my-rand.pl])
713 AT_CHECK([$PERL date-in.pl adate m-d-y])
714 AT_CHECK([test -s adate.sps])
715 AT_CHECK([test -s adate.in])
716 AT_CHECK([pspp -O format=csv adate.sps])
717 AT_CHECK([cat adate.out], [0], [dnl
921 AT_SETUP([EDATE input format])
922 AT_KEYWORDS([data-in])
924 AT_CHECK([$PERL test-my-rand.pl])
925 AT_CHECK([$PERL date-in.pl edate d-m-y])
926 AT_CHECK([test -s edate.sps])
927 AT_CHECK([test -s edate.in])
928 AT_CHECK([pspp -O format=csv edate.sps])
929 AT_CHECK([cat edate.out], [0], [dnl
1133 AT_SETUP([JDATE input format])
1134 AT_KEYWORDS([data-in])
1136 AT_CHECK([$PERL test-my-rand.pl])
1137 AT_CHECK([$PERL date-in.pl jdate j])
1138 AT_CHECK([test -s jdate.sps])
1139 AT_CHECK([test -s jdate.in])
1140 AT_CHECK([pspp -O format=csv jdate.sps])
1141 AT_CHECK([cat jdate.out], [0], [dnl
1345 AT_SETUP([SDATE input format])
1346 AT_KEYWORDS([data-in])
1348 AT_CHECK([$PERL test-my-rand.pl])
1349 AT_CHECK([$PERL date-in.pl sdate y-m-d])
1350 AT_CHECK([test -s sdate.sps])
1351 AT_CHECK([test -s sdate.in])
1352 AT_CHECK([pspp -O format=csv sdate.sps])
1353 AT_CHECK([cat sdate.out], [0], [dnl
1557 AT_SETUP([QYR input format])
1558 AT_KEYWORDS([data-in])
1560 AT_CHECK([$PERL test-my-rand.pl])
1561 AT_CHECK([$PERL date-in.pl qyr qQy])
1562 AT_CHECK([test -s qyr.sps])
1563 AT_CHECK([test -s qyr.in])
1564 AT_CHECK([pspp -O format=csv qyr.sps])
1565 AT_CHECK([cat qyr.out], [0], [dnl
1769 AT_SETUP([MOYR input format])
1770 AT_KEYWORDS([data-in])
1772 AT_CHECK([$PERL test-my-rand.pl])
1773 AT_CHECK([$PERL date-in.pl moyr m-y])
1774 AT_CHECK([test -s moyr.sps])
1775 AT_CHECK([test -s moyr.in])
1776 AT_CHECK([pspp -O format=csv moyr.sps])
1777 AT_CHECK([cat moyr.out], [0], [dnl
1981 AT_SETUP([WKYR input format])
1982 AT_KEYWORDS([data-in])
1984 AT_CHECK([$PERL test-my-rand.pl])
1985 AT_CHECK([$PERL date-in.pl wkyr wWy])
1986 AT_CHECK([test -s wkyr.sps])
1987 AT_CHECK([test -s wkyr.in])
1988 AT_CHECK([pspp -O format=csv wkyr.sps])
1989 AT_CHECK([cat wkyr.out], [0], [dnl
2193 AT_SETUP([DATETIME input format])
2194 AT_KEYWORDS([data-in])
2196 AT_CHECK([$PERL test-my-rand.pl])
2197 AT_CHECK([$PERL date-in.pl datetime "d-m-y +H:M" "d-m-y +H:M:S"])
2198 AT_CHECK([test -s datetime.sps])
2199 AT_CHECK([test -s datetime.in])
2200 AT_CHECK([pspp -O format=csv datetime.sps])
2201 AT_CHECK([cat datetime.out], [0], [dnl
2605 AT_SETUP([TIME input format])
2606 AT_KEYWORDS([data-in])
2608 AT_CHECK([$PERL test-my-rand.pl])
2609 AT_CHECK([$PERL time-in.pl 0 time +H:M +H:M:S])
2610 AT_CHECK([test -s time.sps])
2611 AT_CHECK([test -s time.data])
2612 AT_CHECK([pspp -O format=csv time.sps])
2613 AT_CHECK([cat time.out], [0], [dnl
3017 AT_SETUP([DTIME input format])
3018 AT_KEYWORDS([data-in])
3020 AT_CHECK([$PERL test-my-rand.pl])
3021 AT_CHECK([$PERL time-in.pl 2000 dtime '+D H:M' '+D H:M:S'])
3022 AT_CHECK([test -s dtime.sps])
3023 AT_CHECK([test -s dtime.data])
3024 AT_CHECK([pspp -O format=csv dtime.sps])
3025 AT_CHECK([cat dtime.out], [0], [dnl
3429 AT_SETUP([binary and hexadecimal input (IB, PIB, and PIBHEX formats)])
3430 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > binhex-in.data])
3431 AT_CHECK([[wc -c < binhex-in.data | sed 's/[ ]//g']], [0], [131072
3433 AT_DATA([binhex-in.sps], [dnl
3436 SET MXWARNS=10000000.
3437 SET MXERRS=10000000.
3438 FILE HANDLE data/NAME='binhex-in.data'/MODE=IMAGE/LRECL=2.
3439 DATA LIST FILE=data NOTABLE/ib 1-2 (IB) pib 1-2 (PIB) pibhex 1-2 (PIBHEX).
3440 COMPUTE x=$CASENUM - 1.
3441 PRINT OUTFILE='binhex-in.out'/x (PIBHEX4) ' ' ib pib pibhex.
3444 AT_CHECK([gzip -cd < $top_srcdir/tests/data/binhex-in.expected.cmp.gz | \
3445 $PERL -pe "printf ' %04X ', $.-1" > expout])
3446 AT_CHECK([pspp -O format=csv binhex-in.sps], [0])
3447 AT_CHECK([cat binhex-in.out], [0], [expout])
3450 AT_SETUP([BCD input (P and PK formats)])
3451 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > bcd-in.data])
3452 AT_CHECK([[wc -c < bcd-in.data | sed 's/[ ]//g']], [0], [131072
3454 AT_DATA([bcd-in.sps], [dnl
3456 SET MXWARNS=10000000.
3457 SET MXERRS=10000000.
3458 FILE HANDLE data/NAME='bcd-in.data'/MODE=IMAGE/LRECL=2.
3459 DATA LIST FILE=data NOTABLE/p 1-2 (P) pk 1-2 (PK).
3460 COMPUTE x=$CASENUM - 1.
3461 PRINT OUTFILE='bcd-in.out'/x (PIBHEX4) ' ' P PK.
3464 AT_CHECK([gzip -cd < $top_srcdir/tests/data/bcd-in.expected.cmp.gz | \
3465 $PERL -pe "printf ' %04X ', $.-1" > expout])
3466 AT_CHECK([pspp -O format=csv bcd-in.sps])
3467 AT_CHECK([cat bcd-in.out], [0], [expout])
3470 AT_SETUP([legacy input (N and Z formats)])
3471 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > legacy-in.data])
3472 AT_CHECK([[wc -c < legacy-in.data | sed 's/[ ]//g']], [0], [131072
3474 AT_DATA([legacy-in.sps], [dnl
3476 SET MXWARNS=10000000.
3477 SET MXERRS=10000000.
3478 FILE HANDLE data/NAME='legacy-in.data'/MODE=IMAGE/LRECL=2.
3479 DATA LIST NOTABLE FILE=data/n 1-2 (N) z 1-2 (z).
3480 COMPUTE x=$CASENUM - 1.
3481 PRINT OUTFILE='legacy-in.out'/x (PIBHEX4) ' ' N Z.
3484 AT_CHECK([gzip -cd < $top_srcdir/tests/data/legacy-in.expected.cmp.gz | \
3485 $PERL -pe "printf ' %04X ', $.-1" > expout])
3486 AT_CHECK([pspp -O format=csv legacy-in.sps])
3487 AT_CHECK([cat legacy-in.out], [0], [expout])
3490 AT_SETUP([WKDAY input format])
3491 AT_DATA([wkday.sps], [dnl
3492 DATA LIST NOTABLE /wkday2 1-2 (wkday)
3500 wkday10 1-10 (wkday).
3513 FORMATS ALL (WKDAY2).
3514 PRINT OUTFILE='wkday.out'/ALL.
3517 AT_CHECK([pspp -O format=csv wkday.sps], [0], [dnl
3518 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.
3520 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.
3522 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.
3524 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.
3526 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.
3528 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.
3530 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.
3532 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.
3534 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.
3536 AT_CHECK([cat wkday.out], [0], [dnl
3537 . . . . . . . . . @&t@
3538 . . . . . . . . . @&t@
3539 MO MO MO MO MO MO MO MO MO @&t@
3540 TU TU TU TU TU TU TU TU TU @&t@
3541 WE WE WE WE WE WE WE WE WE @&t@
3542 TH TH TH TH TH TH TH TH TH @&t@
3543 FR FR FR FR FR FR FR FR FR @&t@
3544 SA SA SA SA SA SA SA SA SA @&t@
3545 SU SU SU SU SU SU SU SU SU @&t@
3546 . . . . . . . . . @&t@
3550 AT_SETUP([MONTH input format])
3551 AT_DATA([month.sps], [dnl
3552 DATA LIST NOTABLE /month3 1-3 (MONTH)
3559 month10 1-10 (MONTH).
3608 FORMATS ALL (MONTH3).
3609 PRINT OUTFILE='month.out'/ALL.
3612 AT_CHECK([pspp -O format=csv month.sps], [0], [dnl
3613 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.
3615 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.
3617 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.
3619 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.
3621 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.
3623 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.
3625 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.
3627 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.
3629 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.
3631 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.
3633 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.
3635 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.
3637 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.
3639 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.
3641 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.
3643 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.
3645 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.
3647 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.
3649 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.
3651 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.
3653 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.
3655 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.
3657 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.
3659 AT_CHECK([cat month.out], [0], [dnl
3660 . . . . . . . . @&t@
3661 . . . . . . . . @&t@
3662 JAN JAN JAN JAN JAN JAN JAN JAN @&t@
3663 FEB FEB FEB FEB FEB FEB FEB FEB @&t@
3664 MAR MAR MAR MAR MAR MAR MAR MAR @&t@
3665 MAR . . . . . . . @&t@
3666 APR APR APR APR APR APR APR APR @&t@
3667 MAY MAY MAY MAY MAY MAY MAY MAY @&t@
3668 JUN JUN JUN JUN JUN JUN JUN JUN @&t@
3669 JUL JUL JUL JUL JUL JUL JUL JUL @&t@
3670 JUL AUG AUG AUG AUG AUG AUG AUG @&t@
3671 SEP SEP SEP SEP SEP SEP SEP SEP @&t@
3672 JUL AUG AUG AUG AUG AUG AUG AUG @&t@
3673 OCT OCT OCT OCT OCT OCT OCT OCT @&t@
3674 NOV NOV NOV NOV NOV NOV NOV NOV @&t@
3675 DEC DEC DEC DEC DEC DEC DEC DEC @&t@
3676 . . . . . . . . @&t@
3677 JAN JAN JAN JAN JAN JAN JAN JAN @&t@
3678 FEB FEB FEB FEB FEB FEB FEB FEB @&t@
3679 MAR MAR MAR MAR MAR MAR MAR MAR @&t@
3680 APR APR APR APR APR APR APR APR @&t@
3681 MAY MAY MAY MAY MAY MAY MAY MAY @&t@
3682 JUN JUN JUN JUN JUN JUN JUN JUN @&t@
3683 JUL JUL JUL JUL JUL JUL JUL JUL @&t@
3684 AUG AUG AUG AUG AUG AUG AUG AUG @&t@
3685 SEP SEP SEP SEP SEP SEP SEP SEP @&t@
3686 OCT OCT OCT OCT OCT OCT OCT OCT @&t@
3687 NOV NOV NOV NOV NOV NOV NOV NOV @&t@
3688 DEC DEC DEC DEC DEC DEC DEC DEC @&t@
3689 . . . . . . . . @&t@
3690 JAN JAN JAN JAN JAN JAN JAN JAN @&t@
3691 JAN JAN JAN JAN JAN JAN JAN JAN @&t@
3692 FEB FEB FEB FEB FEB FEB FEB FEB @&t@
3693 FEB FEB FEB FEB FEB FEB FEB FEB @&t@
3694 MAR MAR MAR MAR MAR MAR MAR MAR @&t@
3695 MAR MAR MAR MAR MAR MAR MAR MAR @&t@
3696 APR APR APR APR APR APR APR APR @&t@
3697 MAY MAY MAY MAY MAY MAY MAY MAY @&t@
3698 JUN JUN JUN JUN JUN JUN JUN JUN @&t@
3699 JUL JUL JUL JUL JUL JUL JUL JUL @&t@
3700 AUG AUG AUG AUG AUG AUG AUG AUG @&t@
3701 SEP SEP SEP SEP SEP SEP SEP SEP @&t@
3702 OCT OCT OCT OCT OCT OCT OCT OCT @&t@
3703 NOV NOV NOV NOV NOV NOV NOV NOV @&t@
3704 DEC DEC DEC DEC DEC DEC DEC DEC @&t@
3705 DEC DEC DEC DEC DEC DEC DEC DEC @&t@