77a39db0103305ac7e22262438aef7cabfa01ce5
[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_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py date d-m-y])
259 AT_FAIL_IF([test ! -s date.sps || test ! -s date.input || test ! -s expout])
260 AT_CHECK([pspp -O format=csv date.sps])
261 AT_CHECK([cat date.output], [0], [expout])
262 AT_CLEANUP
263
264 AT_SETUP([ADATE input format])
265 AT_KEYWORDS([data-in])
266 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py adate m-d-y])
267 AT_FAIL_IF([test ! -s adate.sps || test ! -s adate.input || test ! -s expout])
268 AT_CHECK([pspp -O format=csv adate.sps])
269 AT_CHECK([cat adate.output], [0], [expout])
270 AT_CLEANUP
271
272 AT_SETUP([EDATE input format])
273 AT_KEYWORDS([data-in])
274 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py edate d-m-y])
275 AT_FAIL_IF([test ! -s edate.sps || test ! -s edate.input || test ! -s expout])
276 AT_CHECK([pspp -O format=csv edate.sps])
277 AT_CHECK([cat edate.output], [0], [expout])
278 AT_CLEANUP
279
280 AT_SETUP([JDATE input format])
281 AT_KEYWORDS([data-in])
282 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py jdate j])
283 AT_FAIL_IF([test ! -s jdate.sps || test ! -s jdate.input || test ! -s expout])
284 AT_CHECK([pspp -O format=csv jdate.sps])
285 AT_CHECK([cat jdate.output], [0], [expout])
286 AT_CLEANUP
287
288 AT_SETUP([SDATE input format])
289 AT_KEYWORDS([data-in])
290 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py sdate y-m-d])
291 AT_FAIL_IF([test ! -s sdate.sps || test ! -s sdate.input || test ! -s expout])
292 AT_CHECK([pspp -O format=csv sdate.sps])
293 AT_CHECK([cat sdate.output], [0], [expout])
294 AT_CLEANUP
295
296 AT_SETUP([QYR input format])
297 AT_KEYWORDS([data-in])
298 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py qyr qQy])
299 AT_FAIL_IF([test ! -s qyr.sps || test ! -s qyr.input || test ! -s expout])
300 AT_CHECK([pspp -O format=csv qyr.sps])
301 AT_CHECK([cat qyr.output], [0], [expout])
302 AT_CLEANUP
303
304 AT_SETUP([MOYR input format])
305 AT_KEYWORDS([data-in])
306 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py moyr m-y])
307 AT_FAIL_IF([test ! -s moyr.sps || test ! -s moyr.input || test ! -s expout])
308 AT_CHECK([pspp -O format=csv moyr.sps])
309 AT_CHECK([cat moyr.output], [0], [expout])
310 AT_CLEANUP
311
312 AT_SETUP([WKYR input format])
313 AT_KEYWORDS([data-in])
314 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py wkyr wWy])
315 AT_FAIL_IF([test ! -s wkyr.sps || test ! -s wkyr.input || test ! -s expout])
316 AT_CHECK([pspp -O format=csv wkyr.sps])
317 AT_CHECK([cat wkyr.output], [0], [expout])
318 AT_CLEANUP
319
320 AT_SETUP([DATETIME input format])
321 AT_KEYWORDS([data-in slow])
322 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py datetime "d-m-y +H:M" "d-m-y +H:M:S"])
323 AT_FAIL_IF([test ! -s datetime.sps || test ! -s datetime.input || \
324             test ! -s expout])
325 AT_CHECK([pspp -O format=csv datetime.sps])
326 AT_CHECK([cat datetime.output], [0], [expout])
327 AT_CLEANUP
328
329 AT_SETUP([YMDHMS input format])
330 AT_KEYWORDS([data-in slow])
331 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py ymdhms "y-m-d +H:M" "y-m-d +H:M:S"])
332 AT_FAIL_IF([test ! -s ymdhms.sps || test ! -s ymdhms.input || \
333             test ! -s expout])
334 AT_CHECK([pspp -O format=csv ymdhms.sps])
335 AT_CHECK([cat ymdhms.output], [0], [expout])
336 AT_CLEANUP
337
338 AT_SETUP([MTIME input format])
339 AT_KEYWORDS([data-in])
340 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-time-input.py mtime +M:S])
341 AT_FAIL_IF([test ! -s mtime.sps || test ! -s mtime.input || test ! -s expout])
342 AT_CHECK([pspp -O format=csv mtime.sps])
343 AT_CHECK([cat mtime.output], [0], [expout])
344 AT_CLEANUP
345
346 AT_SETUP([TIME input format])
347 AT_KEYWORDS([data-in])
348 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-time-input.py time +H:M +H:M:S])
349 AT_FAIL_IF([test ! -s time.sps || test ! -s time.input || test ! -s expout])
350 AT_CHECK([pspp -O format=csv time.sps])
351 AT_CHECK([cat time.output], [0], [expout])
352 AT_CLEANUP
353
354 AT_SETUP([DTIME input format])
355 AT_KEYWORDS([data-in])
356 AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-time-input.py dtime  '+D H:M' '+D H:M:S'])
357 AT_FAIL_IF([test ! -s dtime.sps || test ! -s dtime.input || test ! -s expout])
358 AT_CHECK([pspp -O format=csv dtime.sps])
359 AT_CHECK([cat dtime.output], [0], [expout])
360 AT_CLEANUP
361
362 AT_SETUP([binary and hexadecimal input (IB, PIB, and PIBHEX formats)])
363 AT_KEYWORDS([slow])
364 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > binhex-in.data])
365 AT_CHECK([[wc -c < binhex-in.data | sed 's/[    ]//g']], [0], [131072
366 ])
367 AT_DATA([binhex-in.sps], [dnl
368 SET RIB=MSBFIRST.
369 SET ERRORS=NONE.
370 SET MXWARNS=10000000.
371 SET MXERRS=10000000.
372 FILE HANDLE data/NAME='binhex-in.data'/MODE=IMAGE/LRECL=2.
373 DATA LIST FILE=data NOTABLE/ib 1-2 (IB) pib 1-2 (PIB) pibhex 1-2 (PIBHEX).
374 COMPUTE x=$CASENUM - 1.
375 PRINT OUTFILE='binhex-in.out'/x (PIBHEX4) ' ' ib pib pibhex.
376 EXECUTE.
377 ])
378 AT_CHECK([gzip -cd < $top_srcdir/tests/data/binhex-in.expected.cmp.gz | \
379             $PERL -pe "printf ' %04X ', $.-1" > expout])
380 AT_CHECK([pspp -O format=csv binhex-in.sps], [0])
381 AT_CHECK([cat binhex-in.out], [0], [expout])
382 AT_CLEANUP
383
384 AT_SETUP([BCD input (P and PK formats)])
385 AT_KEYWORDS([slow])
386 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > bcd-in.data])
387 AT_CHECK([[wc -c < bcd-in.data | sed 's/[       ]//g']], [0], [131072
388 ])
389 AT_DATA([bcd-in.sps], [dnl
390 SET ERRORS=NONE.
391 SET MXWARNS=10000000.
392 SET MXERRS=10000000.
393 FILE HANDLE data/NAME='bcd-in.data'/MODE=IMAGE/LRECL=2.
394 DATA LIST FILE=data NOTABLE/p 1-2 (P) pk 1-2 (PK).
395 COMPUTE x=$CASENUM - 1.
396 PRINT OUTFILE='bcd-in.out'/x (PIBHEX4) ' ' P PK.
397 EXECUTE.
398 ])
399 AT_CHECK([gzip -cd < $top_srcdir/tests/data/bcd-in.expected.cmp.gz | \
400             $PERL -pe "printf ' %04X ', $.-1" > expout])
401 AT_CHECK([pspp -O format=csv bcd-in.sps])
402 AT_CHECK([cat bcd-in.out], [0], [expout])
403 AT_CLEANUP
404
405 AT_SETUP([legacy input (N and Z formats)])
406 AT_KEYWORDS([slow])
407 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > legacy-in.data])
408 AT_CHECK([[wc -c < legacy-in.data | sed 's/[    ]//g']], [0], [131072
409 ])
410 AT_DATA([legacy-in.sps], [dnl
411 SET ERRORS=NONE.
412 SET MXWARNS=10000000.
413 SET MXERRS=10000000.
414 FILE HANDLE data/NAME='legacy-in.data'/MODE=IMAGE/LRECL=2.
415 DATA LIST NOTABLE FILE=data/n 1-2 (N) z 1-2 (z).
416 COMPUTE x=$CASENUM - 1.
417 PRINT OUTFILE='legacy-in.out'/x (PIBHEX4) ' ' N Z.
418 EXECUTE.
419 ])
420 AT_CHECK([gzip -cd < $top_srcdir/tests/data/legacy-in.expected.cmp.gz | \
421             $PERL -pe "printf ' %04X ', $.-1" > expout])
422 AT_CHECK([pspp -O format=csv legacy-in.sps])
423 AT_CHECK([cat legacy-in.out], [0], [expout])
424 AT_CLEANUP
425
426 AT_SETUP([WKDAY input format])
427 AT_DATA([wkday.sps], [dnl
428 DATA LIST NOTABLE /wkday2 1-2 (wkday)
429                    wkday3 1-3 (wkday)
430                    wkday4 1-4 (wkday)
431                    wkday5 1-5 (wkday)
432                    wkday6 1-6 (wkday)
433                    wkday7 1-7 (wkday)
434                    wkday8 1-8 (wkday)
435                    wkday9 1-9 (wkday)
436                    wkday10 1-10 (wkday).
437 BEGIN DATA.
438
439 .
440 monady
441 tuseday
442 WEDENSDAY
443 Thurdsay
444 fRidya
445 SAturady
446 sudnay
447 sturday
448 END DATA.
449 FORMATS ALL (WKDAY2).
450 PRINT OUTFILE='wkday.out'/ALL.
451 EXECUTE.
452 ])
453 AT_CHECK([pspp -O format=csv wkday.sps], [0], [dnl
454 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.
455
456 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.
457
458 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.
459
460 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.
461
462 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.
463
464 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.
465
466 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.
467
468 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.
469
470 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.
471 ])
472 AT_CHECK([cat wkday.out], [0], [dnl
473   .  .  .  .  .  .  .  .  . @&t@
474   .  .  .  .  .  .  .  .  . @&t@
475  MO MO MO MO MO MO MO MO MO @&t@
476  TU TU TU TU TU TU TU TU TU @&t@
477  WE WE WE WE WE WE WE WE WE @&t@
478  TH TH TH TH TH TH TH TH TH @&t@
479  FR FR FR FR FR FR FR FR FR @&t@
480  SA SA SA SA SA SA SA SA SA @&t@
481  SU SU SU SU SU SU SU SU SU @&t@
482   .  .  .  .  .  .  .  .  . @&t@
483 ])
484 AT_CLEANUP
485
486 AT_SETUP([MONTH input format])
487 AT_DATA([month.sps], [dnl
488 DATA LIST NOTABLE /month3 1-3 (MONTH)
489                    month4 1-4 (MONTH)
490                    month5 1-5 (MONTH)
491                    month6 1-6 (MONTH)
492                    month7 1-7 (MONTH)
493                    month8 1-8 (MONTH)
494                    month9 1-9 (MONTH)
495                    month10 1-10 (MONTH).
496 BEGIN DATA.
497
498 .
499 i
500 ii
501 iii
502 iiii
503 iv
504 v
505 vi
506 vii
507 viii
508 ix
509 viiii
510 x
511 xi
512 xii
513 0
514 1
515 2
516 3
517 4
518 5
519 6
520 7
521 8
522 9
523 10
524 11
525 12
526 13
527 january
528 JANAURY
529 February
530 fEbraury
531 MArch
532 marhc
533 apRIL
534 may
535 june
536 july
537 august
538 september
539 october
540 november
541 decmeber
542 december
543 END DATA.
544 FORMATS ALL (MONTH3).
545 PRINT OUTFILE='month.out'/ALL.
546 EXECUTE.
547 ])
548 AT_CHECK([pspp -O format=csv month.sps], [0], [dnl
549 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.
550
551 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.
552
553 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.
554
555 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.
556
557 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.
558
559 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.
560
561 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.
562
563 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.
564
565 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.
566
567 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.
568
569 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.
570
571 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.
572
573 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.
574
575 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.
576
577 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.
578
579 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.
580
581 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.
582
583 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.
584
585 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.
586
587 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.
588
589 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.
590
591 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.
592
593 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.
594 ])
595 AT_CHECK([cat month.out], [0], [dnl
596    .   .   .   .   .   .   .   . @&t@
597    .   .   .   .   .   .   .   . @&t@
598  JAN JAN JAN JAN JAN JAN JAN JAN @&t@
599  FEB FEB FEB FEB FEB FEB FEB FEB @&t@
600  MAR MAR MAR MAR MAR MAR MAR MAR @&t@
601  MAR   .   .   .   .   .   .   . @&t@
602  APR APR APR APR APR APR APR APR @&t@
603  MAY MAY MAY MAY MAY MAY MAY MAY @&t@
604  JUN JUN JUN JUN JUN JUN JUN JUN @&t@
605  JUL JUL JUL JUL JUL JUL JUL JUL @&t@
606  JUL AUG AUG AUG AUG AUG AUG AUG @&t@
607  SEP SEP SEP SEP SEP SEP SEP SEP @&t@
608  JUL AUG AUG AUG AUG AUG AUG AUG @&t@
609  OCT OCT OCT OCT OCT OCT OCT OCT @&t@
610  NOV NOV NOV NOV NOV NOV NOV NOV @&t@
611  DEC DEC DEC DEC DEC DEC DEC DEC @&t@
612    .   .   .   .   .   .   .   . @&t@
613  JAN JAN JAN JAN JAN JAN JAN JAN @&t@
614  FEB FEB FEB FEB FEB FEB FEB FEB @&t@
615  MAR MAR MAR MAR MAR MAR MAR MAR @&t@
616  APR APR APR APR APR APR APR APR @&t@
617  MAY MAY MAY MAY MAY MAY MAY MAY @&t@
618  JUN JUN JUN JUN JUN JUN JUN JUN @&t@
619  JUL JUL JUL JUL JUL JUL JUL JUL @&t@
620  AUG AUG AUG AUG AUG AUG AUG AUG @&t@
621  SEP SEP SEP SEP SEP SEP SEP SEP @&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  JAN JAN JAN JAN JAN JAN JAN JAN @&t@
628  FEB FEB FEB FEB FEB FEB FEB FEB @&t@
629  FEB FEB FEB FEB FEB FEB FEB FEB @&t@
630  MAR MAR MAR MAR MAR MAR MAR MAR @&t@
631  MAR MAR MAR MAR MAR MAR MAR MAR @&t@
632  APR APR APR APR APR APR APR APR @&t@
633  MAY MAY MAY MAY MAY MAY MAY MAY @&t@
634  JUN JUN JUN JUN JUN JUN JUN JUN @&t@
635  JUL JUL JUL JUL JUL JUL JUL JUL @&t@
636  AUG AUG AUG AUG AUG AUG AUG AUG @&t@
637  SEP SEP SEP SEP SEP SEP SEP SEP @&t@
638  OCT OCT OCT OCT OCT OCT OCT OCT @&t@
639  NOV NOV NOV NOV NOV NOV NOV NOV @&t@
640  DEC DEC DEC DEC DEC DEC DEC DEC @&t@
641  DEC DEC DEC DEC DEC DEC DEC DEC @&t@
642 ])
643 AT_CLEANUP