a5285b0b6e35669f068b9ac06f25ea417f683601
[pspp] / tests / data / data-in.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([data input (data-in)])
18
19 m4_divert_push([PREPARE_TESTS])
20 [data_in_prng () {
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.
29
30 our ($seed) = 1;
31 sub my_rand {
32   my ($modulo) = @_;
33   my ($a) = 16807;
34   my ($m) = 2147483647;
35   my ($tmp) = $a * $seed;
36   $seed = $tmp - $m * int ($tmp / $m);
37   return $seed % $modulo;
38 }
39 EOF
40   cat > test-my-rand.pl <<'EOF'
41 #! /usr/bin/perl
42 use strict;
43 use warnings;
44 do './my-rand.pl';
45 my_rand (1) foreach 1...10000;
46 our $seed;
47 die $seed if $seed != 1043618065;
48 EOF
49 }
50 ]
51 m4_divert_pop([PREPARE_TESTS])
52
53 AT_SETUP([numeric input formats])
54 AT_KEYWORDS([data-in slow])
55 data_in_prng
56 AT_CHECK([$PERL test-my-rand.pl])
57 AT_DATA([num-in.pl],
58 [[#! /usr/bin/perl
59
60 use POSIX;
61 use strict;
62 use warnings;
63
64 do './my-rand.pl';
65
66 for my $number (0, 1, .5, .015625, 123) {
67     my ($base_exp) = floor ($number ? log10 ($number) : 0);
68     for my $offset (-3...3) {
69         my ($exponent) = $base_exp + $offset;
70         my ($fraction) = $number / 10**$offset;
71
72         permute_zeros ($fraction, $exponent);
73     }
74 }
75
76 sub permute_zeros {
77     my ($fraction, $exponent) = @_;
78
79     my ($frac_rep) = sprintf ("%f", $fraction);
80     my ($leading_zeros) = length (($frac_rep =~ /^(0*)/)[0]);
81     my ($trailing_zeros) = length (($frac_rep =~ /(\.?0*)$/)[0]);
82     for my $i (0...$leading_zeros) {
83         for my $j (0...$trailing_zeros) {
84             my ($trimmed) = substr ($frac_rep, $i,
85                                     length ($frac_rep) - $i - $j);
86             next if $trimmed eq '.' || $trimmed eq '';
87
88             permute_commas ($trimmed, $exponent);
89         }
90     }
91 }
92
93 sub permute_commas {
94     my ($frac_rep, $exponent) = @_;
95     permute_dot_comma ($frac_rep, $exponent);
96     my ($pos) = int (my_rand (length ($frac_rep) + 1));
97     $frac_rep = substr ($frac_rep, 0, $pos) . "," . substr ($frac_rep, $pos);
98     permute_dot_comma ($frac_rep, $exponent);
99 }
100
101 sub permute_dot_comma {
102     my ($frac_rep, $exponent) = @_;
103     permute_exponent_syntax ($frac_rep, $exponent);
104     if ($frac_rep =~ /[,.]/) {
105         $frac_rep =~ tr/.,/,./;
106         permute_exponent_syntax ($frac_rep, $exponent);
107     }
108 }
109
110 sub permute_exponent_syntax {
111     my ($frac_rep, $exponent) = @_;
112     my (@exp_reps);
113     if ($exponent == 0) {
114         @exp_reps = pick ('', 'e0', 'e-0', 'e+0', '-0', '+0');
115     } elsif ($exponent > 0) {
116         @exp_reps = pick ("e$exponent", "e+$exponent", "+$exponent");
117     } else {
118         my ($abs_exp) = -$exponent;
119         @exp_reps = pick ("e-$abs_exp", , "e-$abs_exp", "-$abs_exp");
120     }
121     permute_sign_and_affix ($frac_rep, $_) foreach @exp_reps;
122 }
123
124 sub permute_sign_and_affix {
125     my ($frac_rep, $exp_rep) = @_;
126     for my $prefix (pick ('', '$'),
127                     pick ('-', '-$', '$-', '$-$'),
128                     pick ('+', '+$', '$+', '$+$')) {
129         for my $suffix ('', '%') {
130             permute_spaces ("$prefix$frac_rep$exp_rep$suffix");
131         }
132     }
133 }
134
135 sub permute_spaces {
136     my ($s) = @_;
137     $s =~ s/([-+\$e%])/ $1 /g;
138     my (@fields) = split (' ', $s);
139     print join ('', @fields), "\n";
140
141     if ($#fields > 0) {
142         my ($pos) = int (my_rand ($#fields)) + 1;
143         print join ('', @fields[0...$pos - 1]);
144         print " ";
145         print join ('', @fields[$pos...$#fields]);
146         print "\n";
147     }
148 }
149
150 sub pick {
151     return $_[int (my_rand ($#_ + 1))];
152 }
153 ]])
154 AT_CHECK([$PERL num-in.pl > num-in.data])
155 AT_DATA([num-in.sps], [dnl
156 SET ERRORS=NONE.
157 SET MXERRS=10000000.
158 SET MXWARNS=10000000.
159 DATA LIST FILE='num-in.data' NOTABLE/
160         f 1-40 (f)
161         comma 1-40 (comma)
162         dot 1-40 (dot)
163         dollar 1-40 (dollar)
164         pct 1-40 (pct)
165         e 1-40 (e).
166 PRINT OUTFILE='num-in.out'/all (6f10.4).
167 EXECUTE.
168 ])
169 AT_CHECK([pspp -O format=csv num-in.sps])
170 AT_CHECK([gzip -cd < $top_srcdir/tests/data/num-in.expected.gz > expout])
171 AT_CHECK([cat num-in.out], [0], [expout])
172 AT_CLEANUP
173
174 dnl Some very old version of PSPP crashed reading big numbers,
175 dnl so this checks for regressions.
176 AT_SETUP([reading big numbers])
177 AT_KEYWORDS([data-in])
178 AT_DATA([bignum.txt], [dnl
179 0
180 0.1
181 0.5
182 0.8
183 0.9
184 0.999
185 1
186 2
187 3
188 4
189 5
190 12
191 123
192 1234
193 12345
194 123456
195 1234567
196 12345678
197 123456789
198 1234567890
199 19999999999
200 199999999999
201 1234567890123
202 19999999999999
203 199999999999999
204 1234567890123456
205 19999999999999999
206 123456789012345678
207 1999999999999999999
208 12345678901234567890
209 199999999999999999999
210 1234567890123456789012
211 19999999999999999999999
212 123456789012345678901234
213 1999999999999999999999999
214 12345678901234567890123456
215 199999999999999999999999999
216 1234567890123456789012345678
217 19999999999999999999999999999
218 123456789012345678901234567890
219 1999999999999999999999999999999
220 12345678901234567890123456789012
221 199999999999999999999999999999999
222 1234567890123456789012345678901234
223 19999999999999999999999999999999999
224 123456789012345678901234567890123456
225 1999999999999999999999999999999999999
226 12345678901234567890123456789012345678
227 199999999999999999999999999999999999999
228 1234567890123456789012345678901234567890
229 1999999999999999999999999999999999999999
230 1e40
231 1.1e40
232 1.5e40
233 1e41
234 1e50
235 1e100
236 1e150
237 1e200
238 1e250
239 1e300
240 1.79641e308
241 wizzah
242 ])
243 AT_DATA([bignum.sps], [dnl
244 title 'Test use of big numbers'.
245
246 *** Do the portable output.
247 data list file='bignum.txt'/BIGNUM 1-40.
248 list.
249
250 *** Do the nonportable output for fun.
251 descriptives BIGNUM.
252 ])
253 AT_CHECK([pspp -o pspp.csv bignum.sps], [0], [ignore])
254 AT_CLEANUP
255
256 AT_SETUP([DATE input format])
257 AT_KEYWORDS([data-in])
258 AT_SKIP_IF([test "$PYTHON" = none])
259 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-date-input.py date d-m-y])
260 AT_FAIL_IF([test ! -s date.sps || test ! -s date.input || test ! -s expout])
261 AT_CHECK([pspp -O format=csv date.sps])
262 AT_CHECK([cat date.output], [0], [expout])
263 AT_CLEANUP
264
265 AT_SETUP([ADATE input format])
266 AT_KEYWORDS([data-in])
267 AT_SKIP_IF([test "$PYTHON" = none])
268 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-date-input.py adate m-d-y])
269 AT_FAIL_IF([test ! -s adate.sps || test ! -s adate.input || test ! -s expout])
270 AT_CHECK([pspp -O format=csv adate.sps])
271 AT_CHECK([cat adate.output], [0], [expout])
272 AT_CLEANUP
273
274 AT_SETUP([EDATE input format])
275 AT_KEYWORDS([data-in])
276 AT_SKIP_IF([test "$PYTHON" = none])
277 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-date-input.py edate d-m-y])
278 AT_FAIL_IF([test ! -s edate.sps || test ! -s edate.input || test ! -s expout])
279 AT_CHECK([pspp -O format=csv edate.sps])
280 AT_CHECK([cat edate.output], [0], [expout])
281 AT_CLEANUP
282
283 AT_SETUP([JDATE input format])
284 AT_KEYWORDS([data-in])
285 AT_SKIP_IF([test "$PYTHON" = none])
286 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-date-input.py jdate j])
287 AT_FAIL_IF([test ! -s jdate.sps || test ! -s jdate.input || test ! -s expout])
288 AT_CHECK([pspp -O format=csv jdate.sps])
289 AT_CHECK([cat jdate.output], [0], [expout])
290 AT_CLEANUP
291
292 AT_SETUP([SDATE input format])
293 AT_KEYWORDS([data-in])
294 AT_SKIP_IF([test "$PYTHON" = none])
295 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-date-input.py sdate y-m-d])
296 AT_FAIL_IF([test ! -s sdate.sps || test ! -s sdate.input || test ! -s expout])
297 AT_CHECK([pspp -O format=csv sdate.sps])
298 AT_CHECK([cat sdate.output], [0], [expout])
299 AT_CLEANUP
300
301 AT_SETUP([QYR input format])
302 AT_KEYWORDS([data-in])
303 AT_SKIP_IF([test "$PYTHON" = none])
304 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-date-input.py qyr qQy])
305 AT_FAIL_IF([test ! -s qyr.sps || test ! -s qyr.input || test ! -s expout])
306 AT_CHECK([pspp -O format=csv qyr.sps])
307 AT_CHECK([cat qyr.output], [0], [expout])
308 AT_CLEANUP
309
310 AT_SETUP([MOYR input format])
311 AT_KEYWORDS([data-in])
312 AT_SKIP_IF([test "$PYTHON" = none])
313 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-date-input.py moyr m-y])
314 AT_FAIL_IF([test ! -s moyr.sps || test ! -s moyr.input || test ! -s expout])
315 AT_CHECK([pspp -O format=csv moyr.sps])
316 AT_CHECK([cat moyr.output], [0], [expout])
317 AT_CLEANUP
318
319 AT_SETUP([WKYR input format])
320 AT_KEYWORDS([data-in])
321 AT_SKIP_IF([test "$PYTHON" = none])
322 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-date-input.py wkyr wWy])
323 AT_FAIL_IF([test ! -s wkyr.sps || test ! -s wkyr.input || test ! -s expout])
324 AT_CHECK([pspp -O format=csv wkyr.sps])
325 AT_CHECK([cat wkyr.output], [0], [expout])
326 AT_CLEANUP
327
328 AT_SETUP([DATETIME input format])
329 AT_KEYWORDS([data-in slow])
330 AT_SKIP_IF([test "$PYTHON" = none])
331 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-date-input.py datetime "d-m-y +H:M" "d-m-y +H:M:S"])
332 AT_FAIL_IF([test ! -s datetime.sps || test ! -s datetime.input || \
333             test ! -s expout])
334 AT_CHECK([pspp -O format=csv datetime.sps])
335 AT_CHECK([cat datetime.output], [0], [expout])
336 AT_CLEANUP
337
338 AT_SETUP([YMDHMS input format])
339 AT_KEYWORDS([data-in slow])
340 AT_SKIP_IF([test "$PYTHON" = none])
341 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-date-input.py ymdhms "y-m-d +H:M" "y-m-d +H:M:S"])
342 AT_FAIL_IF([test ! -s ymdhms.sps || test ! -s ymdhms.input || \
343             test ! -s expout])
344 AT_CHECK([pspp -O format=csv ymdhms.sps])
345 AT_CHECK([cat ymdhms.output], [0], [expout])
346 AT_CLEANUP
347
348 AT_SETUP([MTIME input format])
349 AT_KEYWORDS([data-in])
350 AT_SKIP_IF([test "$PYTHON" = none])
351 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-time-input.py mtime +M:S])
352 AT_FAIL_IF([test ! -s mtime.sps || test ! -s mtime.input || test ! -s expout])
353 AT_CHECK([pspp -O format=csv mtime.sps])
354 AT_CHECK([cat mtime.output], [0], [expout])
355 AT_CLEANUP
356
357 AT_SETUP([TIME input format])
358 AT_KEYWORDS([data-in])
359 AT_SKIP_IF([test "$PYTHON" = none])
360 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-time-input.py time +H:M +H:M:S])
361 AT_FAIL_IF([test ! -s time.sps || test ! -s time.input || test ! -s expout])
362 AT_CHECK([pspp -O format=csv time.sps])
363 AT_CHECK([cat time.output], [0], [expout])
364 AT_CLEANUP
365
366 AT_SETUP([DTIME input format])
367 AT_KEYWORDS([data-in])
368 AT_SKIP_IF([test "$PYTHON" = none])
369 AT_CHECK([$PYTHON $top_srcdir/tests/data/test-time-input.py dtime  '+D H:M' '+D H:M:S'])
370 AT_FAIL_IF([test ! -s dtime.sps || test ! -s dtime.input || test ! -s expout])
371 AT_CHECK([pspp -O format=csv dtime.sps])
372 AT_CHECK([cat dtime.output], [0], [expout])
373 AT_CLEANUP
374
375 AT_SETUP([binary and hexadecimal input (IB, PIB, and PIBHEX formats)])
376 AT_KEYWORDS([slow])
377 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > binhex-in.data])
378 AT_CHECK([[wc -c < binhex-in.data | sed 's/[    ]//g']], [0], [131072
379 ])
380 AT_DATA([binhex-in.sps], [dnl
381 SET RIB=MSBFIRST.
382 SET ERRORS=NONE.
383 SET MXWARNS=10000000.
384 SET MXERRS=10000000.
385 FILE HANDLE data/NAME='binhex-in.data'/MODE=IMAGE/LRECL=2.
386 DATA LIST FILE=data NOTABLE/ib 1-2 (IB) pib 1-2 (PIB) pibhex 1-2 (PIBHEX).
387 COMPUTE x=$CASENUM - 1.
388 PRINT OUTFILE='binhex-in.out'/x (PIBHEX4) ' ' ib pib pibhex.
389 EXECUTE.
390 ])
391 AT_CHECK([gzip -cd < $top_srcdir/tests/data/binhex-in.expected.cmp.gz | \
392             $PERL -pe "printf ' %04X ', $.-1" > expout])
393 AT_CHECK([pspp -O format=csv binhex-in.sps], [0])
394 AT_CHECK([cat binhex-in.out], [0], [expout])
395 AT_CLEANUP
396
397 AT_SETUP([BCD input (P and PK formats)])
398 AT_KEYWORDS([slow])
399 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > bcd-in.data])
400 AT_CHECK([[wc -c < bcd-in.data | sed 's/[       ]//g']], [0], [131072
401 ])
402 AT_DATA([bcd-in.sps], [dnl
403 SET ERRORS=NONE.
404 SET MXWARNS=10000000.
405 SET MXERRS=10000000.
406 FILE HANDLE data/NAME='bcd-in.data'/MODE=IMAGE/LRECL=2.
407 DATA LIST FILE=data NOTABLE/p 1-2 (P) pk 1-2 (PK).
408 COMPUTE x=$CASENUM - 1.
409 PRINT OUTFILE='bcd-in.out'/x (PIBHEX4) ' ' P PK.
410 EXECUTE.
411 ])
412 AT_CHECK([gzip -cd < $top_srcdir/tests/data/bcd-in.expected.cmp.gz | \
413             $PERL -pe "printf ' %04X ', $.-1" > expout])
414 AT_CHECK([pspp -O format=csv bcd-in.sps])
415 AT_CHECK([cat bcd-in.out], [0], [expout])
416 AT_CLEANUP
417
418 AT_SETUP([legacy input (N and Z formats)])
419 AT_KEYWORDS([slow])
420 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > legacy-in.data])
421 AT_CHECK([[wc -c < legacy-in.data | sed 's/[    ]//g']], [0], [131072
422 ])
423 AT_DATA([legacy-in.sps], [dnl
424 SET ERRORS=NONE.
425 SET MXWARNS=10000000.
426 SET MXERRS=10000000.
427 FILE HANDLE data/NAME='legacy-in.data'/MODE=IMAGE/LRECL=2.
428 DATA LIST NOTABLE FILE=data/n 1-2 (N) z 1-2 (z).
429 COMPUTE x=$CASENUM - 1.
430 PRINT OUTFILE='legacy-in.out'/x (PIBHEX4) ' ' N Z.
431 EXECUTE.
432 ])
433 AT_CHECK([gzip -cd < $top_srcdir/tests/data/legacy-in.expected.cmp.gz | \
434             $PERL -pe "printf ' %04X ', $.-1" > expout])
435 AT_CHECK([pspp -O format=csv legacy-in.sps])
436 AT_CHECK([cat legacy-in.out], [0], [expout])
437 AT_CLEANUP
438
439 AT_SETUP([WKDAY input format])
440 AT_DATA([wkday.sps], [dnl
441 DATA LIST NOTABLE /wkday2 1-2 (wkday)
442                    wkday3 1-3 (wkday)
443                    wkday4 1-4 (wkday)
444                    wkday5 1-5 (wkday)
445                    wkday6 1-6 (wkday)
446                    wkday7 1-7 (wkday)
447                    wkday8 1-8 (wkday)
448                    wkday9 1-9 (wkday)
449                    wkday10 1-10 (wkday).
450 BEGIN DATA.
451
452 .
453 monady
454 tuseday
455 WEDENSDAY
456 Thurdsay
457 fRidya
458 SAturady
459 sudnay
460 sturday
461 END DATA.
462 FORMATS ALL (WKDAY2).
463 PRINT OUTFILE='wkday.out'/ALL.
464 EXECUTE.
465 ])
466 AT_CHECK([pspp -O format=csv wkday.sps], [0], [dnl
467 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.
468
469 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.
470
471 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.
472
473 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.
474
475 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.
476
477 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.
478
479 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.
480
481 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.
482
483 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.
484 ])
485 AT_CHECK([cat wkday.out], [0], [dnl
486   .  .  .  .  .  .  .  .  . @&t@
487   .  .  .  .  .  .  .  .  . @&t@
488  MO MO MO MO MO MO MO MO MO @&t@
489  TU TU TU TU TU TU TU TU TU @&t@
490  WE WE WE WE WE WE WE WE WE @&t@
491  TH TH TH TH TH TH TH TH TH @&t@
492  FR FR FR FR FR FR FR FR FR @&t@
493  SA SA SA SA SA SA SA SA SA @&t@
494  SU SU SU SU SU SU SU SU SU @&t@
495   .  .  .  .  .  .  .  .  . @&t@
496 ])
497 AT_CLEANUP
498
499 AT_SETUP([MONTH input format])
500 AT_DATA([month.sps], [dnl
501 DATA LIST NOTABLE /month3 1-3 (MONTH)
502                    month4 1-4 (MONTH)
503                    month5 1-5 (MONTH)
504                    month6 1-6 (MONTH)
505                    month7 1-7 (MONTH)
506                    month8 1-8 (MONTH)
507                    month9 1-9 (MONTH)
508                    month10 1-10 (MONTH).
509 BEGIN DATA.
510
511 .
512 i
513 ii
514 iii
515 iiii
516 iv
517 v
518 vi
519 vii
520 viii
521 ix
522 viiii
523 x
524 xi
525 xii
526 0
527 1
528 2
529 3
530 4
531 5
532 6
533 7
534 8
535 9
536 10
537 11
538 12
539 13
540 january
541 JANAURY
542 February
543 fEbraury
544 MArch
545 marhc
546 apRIL
547 may
548 june
549 july
550 august
551 september
552 october
553 november
554 decmeber
555 december
556 END DATA.
557 FORMATS ALL (MONTH3).
558 PRINT OUTFILE='month.out'/ALL.
559 EXECUTE.
560 ])
561 AT_CHECK([pspp -O format=csv month.sps], [0], [dnl
562 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.
563
564 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.
565
566 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.
567
568 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.
569
570 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.
571
572 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.
573
574 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.
575
576 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.
577
578 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.
579
580 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.
581
582 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.
583
584 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.
585
586 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.
587
588 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.
589
590 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.
591
592 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.
593
594 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.
595
596 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.
597
598 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.
599
600 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.
601
602 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.
603
604 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.
605
606 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.
607 ])
608 AT_CHECK([cat month.out], [0], [dnl
609    .   .   .   .   .   .   .   . @&t@
610    .   .   .   .   .   .   .   . @&t@
611  JAN JAN JAN JAN JAN JAN JAN JAN @&t@
612  FEB FEB FEB FEB FEB FEB FEB FEB @&t@
613  MAR MAR MAR MAR MAR MAR MAR MAR @&t@
614  MAR   .   .   .   .   .   .   . @&t@
615  APR APR APR APR APR APR APR APR @&t@
616  MAY MAY MAY MAY MAY MAY MAY MAY @&t@
617  JUN JUN JUN JUN JUN JUN JUN JUN @&t@
618  JUL JUL JUL JUL JUL JUL JUL JUL @&t@
619  JUL AUG AUG AUG AUG AUG AUG AUG @&t@
620  SEP SEP SEP SEP SEP SEP SEP SEP @&t@
621  JUL AUG AUG AUG AUG AUG AUG AUG @&t@
622  OCT OCT OCT OCT OCT OCT OCT OCT @&t@
623  NOV NOV NOV NOV NOV NOV NOV NOV @&t@
624  DEC DEC DEC DEC DEC DEC DEC DEC @&t@
625    .   .   .   .   .   .   .   . @&t@
626  JAN JAN JAN JAN JAN JAN JAN JAN @&t@
627  FEB FEB FEB FEB FEB FEB FEB FEB @&t@
628  MAR MAR MAR MAR MAR MAR MAR MAR @&t@
629  APR APR APR APR APR APR APR APR @&t@
630  MAY MAY MAY MAY MAY MAY MAY MAY @&t@
631  JUN JUN JUN JUN JUN JUN JUN JUN @&t@
632  JUL JUL JUL JUL JUL JUL JUL JUL @&t@
633  AUG AUG AUG AUG AUG AUG AUG AUG @&t@
634  SEP SEP SEP SEP SEP SEP SEP SEP @&t@
635  OCT OCT OCT OCT OCT OCT OCT OCT @&t@
636  NOV NOV NOV NOV NOV NOV NOV NOV @&t@
637  DEC DEC DEC DEC DEC DEC DEC DEC @&t@
638    .   .   .   .   .   .   .   . @&t@
639  JAN JAN JAN JAN JAN JAN JAN JAN @&t@
640  JAN JAN JAN JAN JAN JAN JAN JAN @&t@
641  FEB FEB FEB FEB FEB FEB FEB FEB @&t@
642  FEB FEB FEB FEB FEB FEB FEB FEB @&t@
643  MAR MAR MAR MAR MAR MAR MAR MAR @&t@
644  MAR MAR MAR MAR MAR MAR MAR MAR @&t@
645  APR APR APR APR APR APR APR APR @&t@
646  MAY MAY MAY MAY MAY MAY MAY MAY @&t@
647  JUN JUN JUN JUN JUN JUN JUN JUN @&t@
648  JUL JUL JUL JUL JUL JUL JUL JUL @&t@
649  AUG AUG AUG AUG AUG AUG AUG AUG @&t@
650  SEP SEP SEP SEP SEP SEP SEP SEP @&t@
651  OCT OCT OCT OCT OCT OCT OCT OCT @&t@
652  NOV NOV NOV NOV NOV NOV NOV NOV @&t@
653  DEC DEC DEC DEC DEC DEC DEC DEC @&t@
654  DEC DEC DEC DEC DEC DEC DEC DEC @&t@
655 ])
656 AT_CLEANUP