lexer: Reimplement for better testability and internationalization.
[pspp-builds.git] / tests / data / data-in.at
index e9a91bccafe65907589cb17004f1a401b6dc111e..d5595975ec05e6a26c3074cb0ca43b6e70a6cf0b 100644 (file)
@@ -1,5 +1,402 @@
 AT_BANNER([data input (data-in)])
 
+m4_divert_push([PREPARE_TESTS])
+[data_in_prng () {
+  cat > my-rand.pl <<'EOF'
+# This random number generator and the test for it below are drawn
+# from Park and Miller, "Random Number Generators: Good Ones are Hard
+# to Come By", Communications of the ACM 31:10 (October 1988).  It is
+# documented to function properly on systems with a 46-bit or longer
+# real significand, which includes systems that have 64-bit IEEE reals
+# (with 53-bit significand).  The test should catch any systems for
+# which this is not true, in any case.
+
+our ($seed) = 1;
+sub my_rand {
+  my ($modulo) = @_;
+  my ($a) = 16807;
+  my ($m) = 2147483647;
+  my ($tmp) = $a * $seed;
+  $seed = $tmp - $m * int ($tmp / $m);
+  return $seed % $modulo;
+}
+EOF
+  cat > test-my-rand.pl <<'EOF'
+#! /usr/bin/perl
+use strict;
+use warnings;
+do 'my-rand.pl';
+my_rand (1) foreach 1...10000;
+our $seed;
+die $seed if $seed != 1043618065;
+EOF
+}
+date_in () {
+  data_in_prng
+  cat > date-in.pl << 'EOF'
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+
+do 'my-rand.pl';
+
+my ($fmt_name, @templates) = @ARGV;
+
+my @dates = (#yyyy  mm  dd  jjj  HH  MM  SS
+            [1648,  6, 10, 162,  0,  0,  0],
+            [1680,  6, 30, 182,  4, 50, 38],
+            [1716,  7, 24, 206, 12, 31, 35],
+            [1768,  6, 19, 171, 12, 47, 53],
+            [1819,  8,  2, 214,  1, 26,  0],
+            [1839,  3, 27,  86, 20, 58, 11],
+            [1903,  4, 19, 109,  7, 36,  5],
+            [1929,  8, 25, 237, 15, 43, 49],
+            [1941,  9, 29, 272,  4, 25,  9],
+            [1943,  4, 19, 109,  6, 49, 27],
+            [1943, 10,  7, 280,  2, 57, 52],
+            [1992,  3, 17,  77, 16, 45, 44],
+            [1996,  2, 25,  56, 21, 30, 57],
+            [1941,  9, 29, 272,  4, 25,  9],
+            [1943,  4, 19, 109,  6, 49, 27],
+            [1943, 10,  7, 280,  2, 57, 52],
+            [1992,  3, 17,  77, 16, 45, 44],
+            [1996,  2, 25,  56, 21, 30, 57],
+            [2038, 11, 10, 314, 22, 30,  4],
+            [2094,  7, 18, 199,  1, 56, 51]);
+
+open (SYNTAX, '>', "$fmt_name.sps") or die "$fmt_name.sps: create: $!\n";
+print SYNTAX "SET EPOCH 1930.\n";
+print SYNTAX "DATA LIST NOTABLE FILE='$fmt_name.in'/$fmt_name 1-40 ($fmt_name).\n";
+print SYNTAX "PRINT OUTFILE='$fmt_name.out'/$fmt_name (F16.2).\n";
+print SYNTAX "EXECUTE.\n";
+close (SYNTAX);
+
+my ($fn) = "$fmt_name.in";
+open (DATA, '>', $fn) or die "$fn: create: $!\n";
+select DATA;
+for my $template (@templates) {
+    for my $date (@dates) {
+       print_date_with_template ($date, $template) for 1...10;
+    }
+}
+close (DATA);
+
+sub print_date_with_template {
+    my ($date, $template) = @_;
+    my ($year, $month, $day, $julian, $hour, $minute, $second) = @$date;
+    my ($quarter) = int (($month - 1) / 3) + 1;
+    my ($week) = int (($julian - 1) / 7) + 1;
+    my (@year_types) = ('full');
+    push (@year_types, '2digit') if $year >= 1930 && $year < 2030;
+    for my $c (split ('', $template)) {
+       if ($c eq 'd') {
+           printf (+pick ('%d', '%02d'), $day);
+       } elsif ($c eq 'm') {
+           my ($type) = pick ('arabic', 'roman', 'abbrev', 'full');
+           if ($type eq 'arabic') {
+               printf (+pick ('%d', '%02d'), $month);
+           } elsif ($type eq 'roman') {
+               my ($mmm) = ('i', 'ii', 'iii',
+                            'iv', 'v', 'vi',
+                            'vii', 'viii', 'ix',
+                            'x', 'xi', 'xii')[$month - 1];
+               print_rand_case ($mmm);
+           } elsif ($type eq 'abbrev') {
+               my ($mmm) = qw (jan feb mar apr may jun
+                                jul aug sep oct nov dec)[$month - 1];
+               print_rand_case ($mmm);
+           } elsif ($type eq 'full') {
+               my ($mmm) = qw (january february march
+                               april may june
+                               july august september
+                               october november december)[$month - 1];
+               print_rand_case ($mmm);
+           } else {
+               die;
+           }
+       } elsif ($c eq 'y') {
+           my ($type) = pick (@year_types);
+           if ($type eq '2digit') {
+               printf (+pick ('%d', '%02d'), $year % 100);
+           } elsif ($type eq 'full') {
+               print $year;
+           } else {
+               die;
+           }
+       } elsif ($c eq 'j') {
+           my ($type) = pick (@year_types);
+           if ($type eq '2digit') {
+               printf ("%02d%03d", $year % 100, $julian);
+           } elsif ($type eq 'full') {
+               printf ("%04d%03d", $year, $julian);
+           } else {
+               die;
+           }
+       } elsif ($c eq 'q') {
+           print $quarter;
+       } elsif ($c eq 'w') {
+           print $week;
+       } elsif ($c eq 'H') {
+           printf (+pick ('%d', '%02d'), $hour);
+       } elsif ($c eq 'M') {
+           printf (+pick ('%d', '%02d'), $minute);
+       } elsif ($c eq 'S') {
+           printf (+pick ('%d', '%02d'), $second);
+       } elsif ($c eq '-') {
+           print +pick (' ', '-', '.', ',', '/');
+       } elsif ($c eq ':') {
+           print +pick (' ', ':');
+       } elsif ($c eq ' ') {
+           print ' ';
+       } elsif ($c eq 'Q') {
+           maybe_print_space ();
+           print_rand_case ('q');
+           maybe_print_space ();
+       } elsif ($c eq 'W') {
+           maybe_print_space ();
+           print_rand_case ('wk');
+           maybe_print_space ();
+       } elsif ($c eq '+') {
+           print +pick ('', '-', '+');
+       } else {
+           die;
+       }
+    }
+    print "\n";
+}
+
+sub print_rand_case {
+    my ($s) = @_;
+    my ($case) = pick (qw (uc lc tc));
+    if ($case eq 'uc') {
+       print uc ($s);
+    } elsif ($case eq 'lc') {
+       print lc ($s);
+    } elsif ($case eq 'tc') {
+       print ucfirst ($s);
+    } else {
+       die;
+    }
+}
+
+sub maybe_print_space {
+   print +pick ('', ' ');
+}
+
+sub pick {
+   return $_[int (my_rand ($#_
+                           + 1))];
+}
+EOF
+}
+time_in () {
+  data_in_prng
+  cat > time-in.pl << 'EOF'
+#! /usr/bin/perl
+
+use strict;
+use warnings;
+
+do 'my-rand.pl';
+
+my ($skip, $fmt_name, @templates) = @ARGV;
+
+my_rand (1) foreach 1...$skip;
+
+my @times = (#  D  HH  MM     SS
+            [  0,  0,  0,  0.00],
+            [  1,  4, 50, 38.68],
+            [  5, 12, 31, 35.82],
+            [  0, 12, 47, 53.41],
+            [  3,  1, 26,  0.69],
+            [  1, 20, 58, 11.19],
+            [ 12,  7, 36,  5.98],
+            [ 52, 15, 43, 49.27],
+            [  7,  4, 25,  9.24],
+            [  0,  6, 49, 27.89],
+            [ 20,  2, 57, 52.56],
+            [555, 16, 45, 44.12],
+            [120, 21, 30, 57.27],
+            [  0,  4, 25,  9.98],
+            [  3,  6, 49, 27.24],
+            [  5,  2, 57, 52.13],
+            [  0, 16, 45, 44.35],
+            [  1, 21, 30, 57.32],
+            [ 10, 22, 30,  4.27],
+            [ 22,  1, 56, 51.18]);
+
+open (SYNTAX, '>', "$fmt_name.sps") or die "$fmt_name.sps: create: $!\n";
+print SYNTAX "DATA LIST NOTABLE FILE='$fmt_name.data'/$fmt_name 1-40 ($fmt_name).\n";
+print SYNTAX "PRINT OUTFILE='$fmt_name.out'/$fmt_name (F16.2).\n";
+print SYNTAX "EXECUTE.\n";
+close (SYNTAX);
+
+my ($fn) = "$fmt_name.data";
+open (DATA, '>', $fn) or die "$fn: create: $!\n";
+select DATA;
+for my $template (@templates) {
+    for my $time (@times) {
+       print_time_with_template ($time, $template) for 1...10;
+    }
+}
+close (DATA);
+
+sub print_time_with_template {
+    my ($time, $template) = @_;
+    my ($day, $hour, $minute, $second) = @$time;
+    for my $c (split ('', $template)) {
+       if ($c eq '+') {
+           print +pick ('', '-', '+');
+       } elsif ($c eq 'D') {
+           printf (+pick ('%d', '%02d'), $day);
+           $day = 0;
+       } elsif ($c eq 'H') {
+           printf (+pick ('%d', '%02d'), $hour + 24 * $day);
+       } elsif ($c eq 'M') {
+           printf (+pick ('%d', '%02d'), $minute);
+       } elsif ($c eq 'S') {
+           printf (+pick ('%.0f', '%02.0f', '%.1f', '%.2f'), $second);
+       } elsif ($c eq ':') {
+           print +pick (' ', ':');
+       } elsif ($c eq ' ') {
+           print ' ';
+       } else {
+           die;
+       }
+    }
+    print "\n";
+}
+
+sub pick {
+   return $_[int (my_rand ($#_ 
+                           + 1)) ];
+}
+EOF
+}]
+m4_divert_pop([PREPARE_TESTS])
+
+AT_SETUP([numeric input formats])
+AT_KEYWORDS([data-in])
+data_in_prng
+AT_CHECK([$PERL test-my-rand.pl])
+AT_DATA([num-in.pl],
+[[#! /usr/bin/perl
+
+use POSIX;
+use strict;
+use warnings;
+
+do 'my-rand.pl';
+
+for my $number (0, 1, .5, .015625, 123) {
+    my ($base_exp) = floor ($number ? log10 ($number) : 0);
+    for my $offset (-3...3) {
+       my ($exponent) = $base_exp + $offset;
+       my ($fraction) = $number / 10**$offset;
+
+       permute_zeros ($fraction, $exponent);
+    }
+}
+
+sub permute_zeros {
+    my ($fraction, $exponent) = @_;
+
+    my ($frac_rep) = sprintf ("%f", $fraction);
+    my ($leading_zeros) = length (($frac_rep =~ /^(0*)/)[0]);
+    my ($trailing_zeros) = length (($frac_rep =~ /(\.?0*)$/)[0]);
+    for my $i (0...$leading_zeros) {
+       for my $j (0...$trailing_zeros) {
+           my ($trimmed) = substr ($frac_rep, $i,
+                                   length ($frac_rep) - $i - $j);
+           next if $trimmed eq '.' || $trimmed eq '';
+
+           permute_commas ($trimmed, $exponent);
+       }
+    }
+}
+
+sub permute_commas {
+    my ($frac_rep, $exponent) = @_;
+    permute_dot_comma ($frac_rep, $exponent);
+    my ($pos) = int (my_rand (length ($frac_rep) + 1));
+    $frac_rep = substr ($frac_rep, 0, $pos) . "," . substr ($frac_rep, $pos);
+    permute_dot_comma ($frac_rep, $exponent);
+}
+
+sub permute_dot_comma {
+    my ($frac_rep, $exponent) = @_;
+    permute_exponent_syntax ($frac_rep, $exponent);
+    if ($frac_rep =~ /[,.]/) {
+       $frac_rep =~ tr/.,/,./;
+       permute_exponent_syntax ($frac_rep, $exponent);
+    }
+}
+
+sub permute_exponent_syntax {
+    my ($frac_rep, $exponent) = @_;
+    my (@exp_reps);
+    if ($exponent == 0) {
+       @exp_reps = pick ('', 'e0', 'e-0', 'e+0', '-0', '+0');
+    } elsif ($exponent > 0) {
+       @exp_reps = pick ("e$exponent", "e+$exponent", "+$exponent");
+    } else {
+       my ($abs_exp) = -$exponent;
+       @exp_reps = pick ("e-$abs_exp", , "e-$abs_exp", "-$abs_exp");
+    }
+    permute_sign_and_affix ($frac_rep, $_) foreach @exp_reps;
+}
+
+sub permute_sign_and_affix {
+    my ($frac_rep, $exp_rep) = @_;
+    for my $prefix (pick ('', '$'),
+                   pick ('-', '-$', '$-', '$-$'),
+                   pick ('+', '+$', '$+', '$+$')) {
+       for my $suffix ('', '%') {
+           permute_spaces ("$prefix$frac_rep$exp_rep$suffix");
+       }
+    }
+}
+
+sub permute_spaces {
+    my ($s) = @_;
+    $s =~ s/([-+\$e%])/ $1 /g;
+    my (@fields) = split (' ', $s);
+    print join ('', @fields), "\n";
+
+    if ($#fields > 0) {
+       my ($pos) = int (my_rand ($#fields)) + 1;
+       print join ('', @fields[0...$pos - 1]);
+       print " ";
+       print join ('', @fields[$pos...$#fields]);
+       print "\n";
+    }
+}
+
+sub pick {
+    return $_[int (my_rand ($#_ + 1))];
+}
+]])
+AT_CHECK([$PERL num-in.pl > num-in.data])
+AT_DATA([num-in.sps], [dnl
+SET ERRORS=NONE.
+SET MXERRS=10000000.
+SET MXWARNS=10000000.
+DATA LIST FILE='num-in.data' NOTABLE/
+       f 1-40 (f)
+       comma 1-40 (comma)
+       dot 1-40 (dot)
+       dollar 1-40 (dollar)
+       pct 1-40 (pct)
+       e 1-40 (e).
+PRINT OUTFILE='num-in.out'/all (6f10.4).
+EXECUTE.
+])
+AT_CHECK([pspp -O format=csv num-in.sps])
+AT_CHECK([gzip -cd < $top_srcdir/tests/data/num-in.expected.gz > expout])
+AT_CHECK([cat num-in.out], [0], [expout])
+AT_CLEANUP
+
 dnl Some very old version of PSPP crashed reading big numbers,
 dnl so this checks for regressions.
 AT_SETUP([reading big numbers])
@@ -82,9 +479,2941 @@ descriptives BIGNUM.
 AT_CHECK([pspp -o pspp.csv bignum.sps], [0], [ignore])
 AT_CLEANUP
 
+AT_SETUP([DATE input format])
+AT_KEYWORDS([data-in])
+date_in
+AT_CHECK([$PERL test-my-rand.pl])
+AT_CHECK([$PERL date-in.pl date d-m-y])
+AT_CHECK([test -s date.sps])
+AT_CHECK([test -s date.in])
+AT_CHECK([pspp -O format=csv date.sps])
+AT_CHECK([cat date.out], [0], [dnl
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+])
+AT_CLEANUP
+
+AT_SETUP([ADATE input format])
+AT_KEYWORDS([data-in])
+date_in
+AT_CHECK([$PERL test-my-rand.pl])
+AT_CHECK([$PERL date-in.pl adate m-d-y])
+AT_CHECK([test -s adate.sps])
+AT_CHECK([test -s adate.in])
+AT_CHECK([pspp -O format=csv adate.sps])
+AT_CHECK([cat adate.out], [0], [dnl
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+])
+AT_CLEANUP
+
+AT_SETUP([EDATE input format])
+AT_KEYWORDS([data-in])
+date_in
+AT_CHECK([$PERL test-my-rand.pl])
+AT_CHECK([$PERL date-in.pl edate d-m-y])
+AT_CHECK([test -s edate.sps])
+AT_CHECK([test -s edate.in])
+AT_CHECK([pspp -O format=csv edate.sps])
+AT_CHECK([cat edate.out], [0], [dnl
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+])
+AT_CLEANUP
+
+AT_SETUP([JDATE input format])
+AT_KEYWORDS([data-in])
+date_in
+AT_CHECK([$PERL test-my-rand.pl])
+AT_CHECK([$PERL date-in.pl jdate j])
+AT_CHECK([test -s jdate.sps])
+AT_CHECK([test -s jdate.in])
+AT_CHECK([pspp -O format=csv jdate.sps])
+AT_CHECK([cat jdate.out], [0], [dnl
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+])
+AT_CLEANUP
+
+AT_SETUP([SDATE input format])
+AT_KEYWORDS([data-in])
+date_in
+AT_CHECK([$PERL test-my-rand.pl])
+AT_CHECK([$PERL date-in.pl sdate y-m-d])
+AT_CHECK([test -s sdate.sps])
+AT_CHECK([test -s sdate.in])
+AT_CHECK([pspp -O format=csv sdate.sps])
+AT_CHECK([cat sdate.out], [0], [dnl
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    3083529600.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    4221590400.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    5859561600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    7472649600.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+    8092742400.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10114329600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   10945929600.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11327644800.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11376633600.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   11391408000.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   12920169600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   13044585600.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   14392339200.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+   16149628800.00
+])
+AT_CLEANUP
+
+AT_SETUP([QYR input format])
+AT_KEYWORDS([data-in])
+date_in
+AT_CHECK([$PERL test-my-rand.pl])
+AT_CHECK([$PERL date-in.pl qyr qQy])
+AT_CHECK([test -s qyr.sps])
+AT_CHECK([test -s qyr.in])
+AT_CHECK([pspp -O format=csv qyr.sps])
+AT_CHECK([cat qyr.out], [0], [dnl
+    2065910400.00
+    2065910400.00
+    2065910400.00
+    2065910400.00
+    2065910400.00
+    2065910400.00
+    2065910400.00
+    2065910400.00
+    2065910400.00
+    2065910400.00
+    3075753600.00
+    3075753600.00
+    3075753600.00
+    3075753600.00
+    3075753600.00
+    3075753600.00
+    3075753600.00
+    3075753600.00
+    3075753600.00
+    3075753600.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    5852736000.00
+    5852736000.00
+    5852736000.00
+    5852736000.00
+    5852736000.00
+    5852736000.00
+    5852736000.00
+    5852736000.00
+    5852736000.00
+    5852736000.00
+    7469884800.00
+    7469884800.00
+    7469884800.00
+    7469884800.00
+    7469884800.00
+    7469884800.00
+    7469884800.00
+    7469884800.00
+    7469884800.00
+    7469884800.00
+    8085398400.00
+    8085398400.00
+    8085398400.00
+    8085398400.00
+    8085398400.00
+    8085398400.00
+    8085398400.00
+    8085398400.00
+    8085398400.00
+    8085398400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10941177600.00
+   10941177600.00
+   10941177600.00
+   10941177600.00
+   10941177600.00
+   10941177600.00
+   10941177600.00
+   10941177600.00
+   10941177600.00
+   10941177600.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11319868800.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   12913603200.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   13039833600.00
+   14388883200.00
+   14388883200.00
+   14388883200.00
+   14388883200.00
+   14388883200.00
+   14388883200.00
+   14388883200.00
+   14388883200.00
+   14388883200.00
+   14388883200.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+])
+AT_CLEANUP
+
+AT_SETUP([MOYR input format])
+AT_KEYWORDS([data-in])
+date_in
+AT_CHECK([$PERL test-my-rand.pl])
+AT_CHECK([$PERL date-in.pl moyr m-y])
+AT_CHECK([test -s moyr.sps])
+AT_CHECK([test -s moyr.in])
+AT_CHECK([pspp -O format=csv moyr.sps])
+AT_CHECK([cat moyr.out], [0], [dnl
+    2071180800.00
+    2071180800.00
+    2071180800.00
+    2071180800.00
+    2071180800.00
+    2071180800.00
+    2071180800.00
+    2071180800.00
+    2071180800.00
+    2071180800.00
+    3081024000.00
+    3081024000.00
+    3081024000.00
+    3081024000.00
+    3081024000.00
+    3081024000.00
+    3081024000.00
+    3081024000.00
+    3081024000.00
+    3081024000.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    4219603200.00
+    5858006400.00
+    5858006400.00
+    5858006400.00
+    5858006400.00
+    5858006400.00
+    5858006400.00
+    5858006400.00
+    5858006400.00
+    5858006400.00
+    5858006400.00
+    7472563200.00
+    7472563200.00
+    7472563200.00
+    7472563200.00
+    7472563200.00
+    7472563200.00
+    7472563200.00
+    7472563200.00
+    7472563200.00
+    7472563200.00
+    8090496000.00
+    8090496000.00
+    8090496000.00
+    8090496000.00
+    8090496000.00
+    8090496000.00
+    8090496000.00
+    8090496000.00
+    8090496000.00
+    8090496000.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10112774400.00
+   10943856000.00
+   10943856000.00
+   10943856000.00
+   10943856000.00
+   10943856000.00
+   10943856000.00
+   10943856000.00
+   10943856000.00
+   10943856000.00
+   10943856000.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11325225600.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11375078400.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   12918787200.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   13042512000.00
+   14391561600.00
+   14391561600.00
+   14391561600.00
+   14391561600.00
+   14391561600.00
+   14391561600.00
+   14391561600.00
+   14391561600.00
+   14391561600.00
+   14391561600.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+   16148160000.00
+])
+AT_CLEANUP
+
+AT_SETUP([WKYR input format])
+AT_KEYWORDS([data-in])
+date_in
+AT_CHECK([$PERL test-my-rand.pl])
+AT_CHECK([$PERL date-in.pl wkyr wWy])
+AT_CHECK([test -s wkyr.sps])
+AT_CHECK([test -s wkyr.in])
+AT_CHECK([pspp -O format=csv wkyr.sps])
+AT_CHECK([cat wkyr.out], [0], [dnl
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    3083011200.00
+    3083011200.00
+    3083011200.00
+    3083011200.00
+    3083011200.00
+    3083011200.00
+    3083011200.00
+    3083011200.00
+    3083011200.00
+    3083011200.00
+    4221417600.00
+    4221417600.00
+    4221417600.00
+    4221417600.00
+    4221417600.00
+    4221417600.00
+    4221417600.00
+    4221417600.00
+    4221417600.00
+    4221417600.00
+    5859388800.00
+    5859388800.00
+    5859388800.00
+    5859388800.00
+    5859388800.00
+    5859388800.00
+    5859388800.00
+    5859388800.00
+    5859388800.00
+    5859388800.00
+    7472390400.00
+    7472390400.00
+    7472390400.00
+    7472390400.00
+    7472390400.00
+    7472390400.00
+    7472390400.00
+    7472390400.00
+    7472390400.00
+    7472390400.00
+    8092656000.00
+    8092656000.00
+    8092656000.00
+    8092656000.00
+    8092656000.00
+    8092656000.00
+    8092656000.00
+    8092656000.00
+    8092656000.00
+    8092656000.00
+   10114070400.00
+   10114070400.00
+   10114070400.00
+   10114070400.00
+   10114070400.00
+   10114070400.00
+   10114070400.00
+   10114070400.00
+   10114070400.00
+   10114070400.00
+   10945497600.00
+   10945497600.00
+   10945497600.00
+   10945497600.00
+   10945497600.00
+   10945497600.00
+   10945497600.00
+   10945497600.00
+   10945497600.00
+   10945497600.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11327212800.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11376374400.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   11390889600.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   12919651200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   13044067200.00
+   14391907200.00
+   14391907200.00
+   14391907200.00
+   14391907200.00
+   14391907200.00
+   14391907200.00
+   14391907200.00
+   14391907200.00
+   14391907200.00
+   14391907200.00
+   16149456000.00
+   16149456000.00
+   16149456000.00
+   16149456000.00
+   16149456000.00
+   16149456000.00
+   16149456000.00
+   16149456000.00
+   16149456000.00
+   16149456000.00
+])
+AT_CLEANUP
+
+AT_SETUP([DATETIME input format])
+AT_KEYWORDS([data-in])
+date_in
+AT_CHECK([$PERL test-my-rand.pl])
+AT_CHECK([$PERL date-in.pl datetime "d-m-y +H:M" "d-m-y +H:M:S"])
+AT_CHECK([test -s datetime.sps])
+AT_CHECK([test -s datetime.in])
+AT_CHECK([pspp -O format=csv datetime.sps])
+AT_CHECK([cat datetime.out], [0], [dnl
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    3083512200.00
+    3083512200.00
+    3083547000.00
+    3083547000.00
+    3083547000.00
+    3083512200.00
+    3083547000.00
+    3083547000.00
+    3083512200.00
+    3083512200.00
+    4221545340.00
+    4221635460.00
+    4221545340.00
+    4221545340.00
+    4221635460.00
+    4221635460.00
+    4221545340.00
+    4221635460.00
+    4221545340.00
+    4221635460.00
+    5859607620.00
+    5859607620.00
+    5859515580.00
+    5859515580.00
+    5859607620.00
+    5859607620.00
+    5859607620.00
+    5859607620.00
+    5859515580.00
+    5859607620.00
+    7472644440.00
+    7472654760.00
+    7472654760.00
+    7472654760.00
+    7472654760.00
+    7472654760.00
+    7472654760.00
+    7472654760.00
+    7472644440.00
+    7472654760.00
+    8092817880.00
+    8092666920.00
+    8092817880.00
+    8092666920.00
+    8092817880.00
+    8092817880.00
+    8092666920.00
+    8092817880.00
+    8092666920.00
+    8092817880.00
+   10114302240.00
+   10114356960.00
+   10114302240.00
+   10114302240.00
+   10114302240.00
+   10114356960.00
+   10114302240.00
+   10114302240.00
+   10114302240.00
+   10114356960.00
+   10945873020.00
+   10945986180.00
+   10945986180.00
+   10945986180.00
+   10945873020.00
+   10945986180.00
+   10945986180.00
+   10945873020.00
+   10945986180.00
+   10945873020.00
+   11327628900.00
+   11327660700.00
+   11327660700.00
+   11327660700.00
+   11327660700.00
+   11327628900.00
+   11327628900.00
+   11327660700.00
+   11327660700.00
+   11327660700.00
+   11376658140.00
+   11376609060.00
+   11376658140.00
+   11376658140.00
+   11376609060.00
+   11376658140.00
+   11376609060.00
+   11376658140.00
+   11376658140.00
+   11376658140.00
+   11391418620.00
+   11391418620.00
+   11391397380.00
+   11391397380.00
+   11391418620.00
+   11391418620.00
+   11391397380.00
+   11391418620.00
+   11391418620.00
+   11391418620.00
+   12920229900.00
+   12920229900.00
+   12920229900.00
+   12920229900.00
+   12920229900.00
+   12920109300.00
+   12920229900.00
+   12920109300.00
+   12920229900.00
+   12920229900.00
+   13044508200.00
+   13044663000.00
+   13044508200.00
+   13044663000.00
+   13044508200.00
+   13044508200.00
+   13044663000.00
+   13044663000.00
+   13044663000.00
+   13044663000.00
+   11327660700.00
+   11327628900.00
+   11327628900.00
+   11327660700.00
+   11327628900.00
+   11327628900.00
+   11327628900.00
+   11327628900.00
+   11327628900.00
+   11327628900.00
+   11376609060.00
+   11376658140.00
+   11376658140.00
+   11376609060.00
+   11376658140.00
+   11376609060.00
+   11376658140.00
+   11376609060.00
+   11376658140.00
+   11376658140.00
+   11391397380.00
+   11391397380.00
+   11391418620.00
+   11391397380.00
+   11391418620.00
+   11391418620.00
+   11391418620.00
+   11391418620.00
+   11391418620.00
+   11391397380.00
+   12920229900.00
+   12920229900.00
+   12920229900.00
+   12920229900.00
+   12920229900.00
+   12920229900.00
+   12920109300.00
+   12920229900.00
+   12920229900.00
+   12920229900.00
+   13044508200.00
+   13044663000.00
+   13044508200.00
+   13044508200.00
+   13044508200.00
+   13044663000.00
+   13044663000.00
+   13044663000.00
+   13044508200.00
+   13044508200.00
+   14392420200.00
+   14392258200.00
+   14392420200.00
+   14392420200.00
+   14392420200.00
+   14392420200.00
+   14392258200.00
+   14392420200.00
+   14392420200.00
+   14392420200.00
+   16149635760.00
+   16149635760.00
+   16149635760.00
+   16149635760.00
+   16149635760.00
+   16149635760.00
+   16149635760.00
+   16149635760.00
+   16149621840.00
+   16149635760.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    2071958400.00
+    3083512162.00
+    3083512162.00
+    3083512162.00
+    3083547038.00
+    3083512162.00
+    3083512162.00
+    3083547038.00
+    3083512162.00
+    3083547038.00
+    3083547038.00
+    4221635495.00
+    4221545305.00
+    4221635495.00
+    4221635495.00
+    4221635495.00
+    4221545305.00
+    4221635495.00
+    4221635495.00
+    4221635495.00
+    4221635495.00
+    5859607673.00
+    5859515527.00
+    5859607673.00
+    5859607673.00
+    5859607673.00
+    5859607673.00
+    5859515527.00
+    5859607673.00
+    5859607673.00
+    5859607673.00
+    7472654760.00
+    7472644440.00
+    7472654760.00
+    7472654760.00
+    7472654760.00
+    7472644440.00
+    7472654760.00
+    7472654760.00
+    7472644440.00
+    7472654760.00
+    8092817891.00
+    8092817891.00
+    8092666909.00
+    8092817891.00
+    8092817891.00
+    8092817891.00
+    8092817891.00
+    8092817891.00
+    8092817891.00
+    8092817891.00
+   10114302235.00
+   10114302235.00
+   10114302235.00
+   10114356965.00
+   10114356965.00
+   10114356965.00
+   10114356965.00
+   10114356965.00
+   10114356965.00
+   10114302235.00
+   10945986229.00
+   10945986229.00
+   10945872971.00
+   10945872971.00
+   10945986229.00
+   10945986229.00
+   10945872971.00
+   10945986229.00
+   10945986229.00
+   10945986229.00
+   11327660709.00
+   11327660709.00
+   11327660709.00
+   11327660709.00
+   11327660709.00
+   11327660709.00
+   11327660709.00
+   11327660709.00
+   11327660709.00
+   11327660709.00
+   11376658167.00
+   11376658167.00
+   11376658167.00
+   11376658167.00
+   11376658167.00
+   11376658167.00
+   11376658167.00
+   11376658167.00
+   11376658167.00
+   11376658167.00
+   11391397328.00
+   11391418672.00
+   11391418672.00
+   11391418672.00
+   11391397328.00
+   11391418672.00
+   11391397328.00
+   11391418672.00
+   11391418672.00
+   11391418672.00
+   12920229944.00
+   12920229944.00
+   12920109256.00
+   12920229944.00
+   12920229944.00
+   12920109256.00
+   12920109256.00
+   12920109256.00
+   12920229944.00
+   12920109256.00
+   13044663057.00
+   13044663057.00
+   13044663057.00
+   13044508143.00
+   13044663057.00
+   13044663057.00
+   13044663057.00
+   13044508143.00
+   13044663057.00
+   13044663057.00
+   11327628891.00
+   11327628891.00
+   11327660709.00
+   11327660709.00
+   11327660709.00
+   11327628891.00
+   11327628891.00
+   11327660709.00
+   11327660709.00
+   11327628891.00
+   11376658167.00
+   11376658167.00
+   11376658167.00
+   11376658167.00
+   11376658167.00
+   11376609033.00
+   11376658167.00
+   11376609033.00
+   11376658167.00
+   11376658167.00
+   11391418672.00
+   11391397328.00
+   11391418672.00
+   11391397328.00
+   11391397328.00
+   11391397328.00
+   11391397328.00
+   11391397328.00
+   11391397328.00
+   11391397328.00
+   12920229944.00
+   12920229944.00
+   12920229944.00
+   12920109256.00
+   12920229944.00
+   12920229944.00
+   12920229944.00
+   12920229944.00
+   12920229944.00
+   12920229944.00
+   13044663057.00
+   13044663057.00
+   13044663057.00
+   13044663057.00
+   13044508143.00
+   13044663057.00
+   13044508143.00
+   13044508143.00
+   13044663057.00
+   13044663057.00
+   14392258196.00
+   14392420204.00
+   14392420204.00
+   14392420204.00
+   14392258196.00
+   14392420204.00
+   14392420204.00
+   14392258196.00
+   14392420204.00
+   14392420204.00
+   16149635811.00
+   16149635811.00
+   16149635811.00
+   16149635811.00
+   16149635811.00
+   16149621789.00
+   16149621789.00
+   16149621789.00
+   16149635811.00
+   16149635811.00
+])
+AT_CLEANUP
+
+AT_SETUP([TIME input format])
+AT_KEYWORDS([data-in])
+time_in
+AT_CHECK([$PERL test-my-rand.pl])
+AT_CHECK([$PERL time-in.pl 0 time +H:M +H:M:S])
+AT_CHECK([test -s time.sps])
+AT_CHECK([test -s time.data])
+AT_CHECK([pspp -O format=csv time.sps])
+AT_CHECK([cat time.out], [0], [dnl
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+       -103800.00
+        103800.00
+        103800.00
+       -103800.00
+        103800.00
+       -103800.00
+        103800.00
+        103800.00
+       -103800.00
+        103800.00
+        477060.00
+        477060.00
+        477060.00
+        477060.00
+       -477060.00
+        477060.00
+        477060.00
+        477060.00
+        477060.00
+       -477060.00
+         46020.00
+        -46020.00
+        -46020.00
+        -46020.00
+         46020.00
+         46020.00
+        -46020.00
+         46020.00
+         46020.00
+        -46020.00
+        264360.00
+        264360.00
+       -264360.00
+       -264360.00
+        264360.00
+       -264360.00
+        264360.00
+       -264360.00
+       -264360.00
+       -264360.00
+        161880.00
+        161880.00
+        161880.00
+        161880.00
+        161880.00
+       -161880.00
+        161880.00
+        161880.00
+        161880.00
+       -161880.00
+       1064160.00
+       1064160.00
+       1064160.00
+       1064160.00
+       1064160.00
+       1064160.00
+      -1064160.00
+       1064160.00
+       1064160.00
+       1064160.00
+      -4549380.00
+       4549380.00
+       4549380.00
+       4549380.00
+       4549380.00
+       4549380.00
+       4549380.00
+      -4549380.00
+       4549380.00
+       4549380.00
+        620700.00
+       -620700.00
+        620700.00
+        620700.00
+       -620700.00
+        620700.00
+       -620700.00
+       -620700.00
+        620700.00
+        620700.00
+         24540.00
+        -24540.00
+         24540.00
+         24540.00
+         24540.00
+         24540.00
+         24540.00
+         24540.00
+         24540.00
+         24540.00
+      -1738620.00
+       1738620.00
+       1738620.00
+       1738620.00
+       1738620.00
+       1738620.00
+       1738620.00
+       1738620.00
+       1738620.00
+       1738620.00
+      48012300.00
+     -48012300.00
+     -48012300.00
+      48012300.00
+      48012300.00
+      48012300.00
+      48012300.00
+      48012300.00
+      48012300.00
+      48012300.00
+      10445400.00
+     -10445400.00
+     -10445400.00
+      10445400.00
+      10445400.00
+      10445400.00
+     -10445400.00
+      10445400.00
+      10445400.00
+     -10445400.00
+         15900.00
+         15900.00
+        -15900.00
+         15900.00
+        -15900.00
+        -15900.00
+         15900.00
+         15900.00
+         15900.00
+         15900.00
+        283740.00
+       -283740.00
+        283740.00
+        283740.00
+        283740.00
+       -283740.00
+        283740.00
+        283740.00
+       -283740.00
+        283740.00
+        442620.00
+        442620.00
+        442620.00
+        442620.00
+        442620.00
+        442620.00
+        442620.00
+        442620.00
+        442620.00
+       -442620.00
+         60300.00
+         60300.00
+         60300.00
+         60300.00
+         60300.00
+        -60300.00
+        -60300.00
+         60300.00
+        -60300.00
+        -60300.00
+        163800.00
+       -163800.00
+       -163800.00
+       -163800.00
+        163800.00
+        163800.00
+        163800.00
+        163800.00
+       -163800.00
+        163800.00
+        945000.00
+       -945000.00
+       -945000.00
+       -945000.00
+        945000.00
+        945000.00
+        945000.00
+       -945000.00
+        945000.00
+        945000.00
+      -1907760.00
+       1907760.00
+      -1907760.00
+       1907760.00
+      -1907760.00
+       1907760.00
+       1907760.00
+       1907760.00
+       1907760.00
+      -1907760.00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+        103839.00
+        103838.68
+       -103838.70
+       -103838.68
+        103838.70
+        103838.68
+       -103839.00
+        103838.68
+        103838.70
+       -103839.00
+        477095.82
+        477096.00
+        477096.00
+        477095.82
+        477095.82
+        477095.82
+        477095.80
+       -477095.80
+        477095.82
+       -477095.82
+        -46073.00
+        -46073.40
+         46073.00
+         46073.40
+         46073.40
+         46073.00
+        -46073.00
+         46073.00
+         46073.00
+         46073.00
+        264360.69
+       -264360.70
+        264361.00
+        264360.70
+        264360.69
+        264360.70
+        264361.00
+        264360.70
+       -264361.00
+        264361.00
+        161891.00
+       -161891.20
+       -161891.00
+        161891.00
+       -161891.00
+        161891.20
+       -161891.20
+       -161891.20
+        161891.20
+       -161891.19
+      -1064166.00
+       1064165.98
+      -1064166.00
+      -1064166.00
+      -1064165.98
+       1064166.00
+       1064166.00
+      -1064166.00
+      -1064165.98
+       1064166.00
+       4549429.00
+       4549429.27
+       4549429.27
+      -4549429.30
+       4549429.00
+      -4549429.00
+       4549429.00
+       4549429.27
+       4549429.00
+       4549429.30
+        620709.00
+       -620709.24
+        620709.24
+        620709.24
+        620709.24
+        620709.20
+       -620709.24
+        620709.20
+        620709.24
+        620709.24
+         24567.90
+         24567.89
+         24567.90
+         24568.00
+         24567.90
+         24568.00
+         24568.00
+        -24567.90
+         24567.90
+         24568.00
+       1738672.56
+       1738673.00
+      -1738672.60
+      -1738672.56
+       1738673.00
+       1738673.00
+       1738673.00
+       1738672.60
+      -1738672.56
+       1738672.60
+     -48012344.10
+      48012344.12
+     -48012344.10
+     -48012344.00
+     -48012344.00
+      48012344.00
+     -48012344.00
+     -48012344.00
+     -48012344.00
+      48012344.00
+      10445457.27
+      10445457.00
+      10445457.30
+      10445457.00
+      10445457.27
+      10445457.00
+      10445457.27
+      10445457.00
+      10445457.00
+     -10445457.30
+        -15909.98
+         15910.00
+        -15910.00
+         15910.00
+        -15909.98
+         15910.00
+        -15909.98
+         15909.98
+         15910.00
+         15909.98
+       -283767.00
+        283767.20
+        283767.20
+        283767.00
+       -283767.00
+        283767.00
+        283767.24
+        283767.00
+        283767.24
+        283767.00
+       -442672.00
+        442672.13
+        442672.00
+        442672.13
+        442672.00
+        442672.00
+        442672.00
+        442672.00
+       -442672.00
+        442672.13
+        -60344.40
+        -60344.00
+         60344.00
+         60344.35
+         60344.00
+         60344.40
+         60344.40
+        -60344.00
+         60344.00
+         60344.40
+        163857.00
+        163857.00
+        163857.00
+        163857.00
+        163857.30
+       -163857.30
+        163857.30
+       -163857.00
+       -163857.00
+        163857.30
+        945004.30
+        945004.00
+        945004.27
+        945004.30
+        945004.30
+        945004.00
+        945004.30
+        945004.00
+        945004.00
+        945004.00
+       1907811.00
+       1907811.00
+      -1907811.00
+       1907811.18
+       1907811.20
+       1907811.00
+      -1907811.00
+       1907811.18
+      -1907811.00
+      -1907811.00
+])
+AT_CLEANUP
+
+AT_SETUP([DTIME input format])
+AT_KEYWORDS([data-in])
+time_in
+AT_CHECK([$PERL test-my-rand.pl])
+AT_CHECK([$PERL time-in.pl 2000 dtime '+D H:M' '+D H:M:S'])
+AT_CHECK([test -s dtime.sps])
+AT_CHECK([test -s dtime.data])
+AT_CHECK([pspp -O format=csv dtime.sps])
+AT_CHECK([cat dtime.out], [0], [dnl
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+        103800.00
+        103800.00
+       -103800.00
+        103800.00
+        103800.00
+       -103800.00
+        103800.00
+       -103800.00
+        103800.00
+       -103800.00
+        477060.00
+        477060.00
+        477060.00
+        477060.00
+        477060.00
+        477060.00
+       -477060.00
+       -477060.00
+       -477060.00
+        477060.00
+         46020.00
+         46020.00
+         46020.00
+         46020.00
+        -46020.00
+        -46020.00
+        -46020.00
+         46020.00
+         46020.00
+         46020.00
+        264360.00
+        264360.00
+       -264360.00
+        264360.00
+        264360.00
+        264360.00
+        264360.00
+       -264360.00
+       -264360.00
+       -264360.00
+       -161880.00
+       -161880.00
+        161880.00
+        161880.00
+        161880.00
+       -161880.00
+        161880.00
+       -161880.00
+        161880.00
+       -161880.00
+       1064160.00
+       1064160.00
+       1064160.00
+       1064160.00
+       1064160.00
+       1064160.00
+      -1064160.00
+       1064160.00
+       1064160.00
+       1064160.00
+      -4549380.00
+       4549380.00
+      -4549380.00
+      -4549380.00
+      -4549380.00
+       4549380.00
+       4549380.00
+       4549380.00
+       4549380.00
+       4549380.00
+       -620700.00
+        620700.00
+        620700.00
+       -620700.00
+        620700.00
+        620700.00
+        620700.00
+       -620700.00
+        620700.00
+        620700.00
+        -24540.00
+         24540.00
+         24540.00
+         24540.00
+        -24540.00
+         24540.00
+         24540.00
+        -24540.00
+         24540.00
+        -24540.00
+       1738620.00
+       1738620.00
+       1738620.00
+      -1738620.00
+      -1738620.00
+      -1738620.00
+       1738620.00
+       1738620.00
+       1738620.00
+       1738620.00
+      48012300.00
+      48012300.00
+      48012300.00
+      48012300.00
+      48012300.00
+     -48012300.00
+     -48012300.00
+      48012300.00
+     -48012300.00
+     -48012300.00
+     -10445400.00
+      10445400.00
+     -10445400.00
+      10445400.00
+      10445400.00
+      10445400.00
+      10445400.00
+      10445400.00
+      10445400.00
+      10445400.00
+         15900.00
+         15900.00
+         15900.00
+         15900.00
+         15900.00
+        -15900.00
+         15900.00
+         15900.00
+         15900.00
+         15900.00
+       -283740.00
+        283740.00
+       -283740.00
+       -283740.00
+        283740.00
+        283740.00
+        283740.00
+        283740.00
+        283740.00
+       -283740.00
+        442620.00
+       -442620.00
+       -442620.00
+        442620.00
+        442620.00
+       -442620.00
+       -442620.00
+       -442620.00
+        442620.00
+        442620.00
+         60300.00
+        -60300.00
+         60300.00
+         60300.00
+         60300.00
+         60300.00
+         60300.00
+         60300.00
+         60300.00
+         60300.00
+        163800.00
+        163800.00
+       -163800.00
+        163800.00
+       -163800.00
+       -163800.00
+       -163800.00
+        163800.00
+        163800.00
+       -163800.00
+        945000.00
+        945000.00
+        945000.00
+        945000.00
+       -945000.00
+        945000.00
+        945000.00
+        945000.00
+        945000.00
+       -945000.00
+      -1907760.00
+       1907760.00
+       1907760.00
+       1907760.00
+      -1907760.00
+      -1907760.00
+      -1907760.00
+       1907760.00
+      -1907760.00
+      -1907760.00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+              .00
+        103838.70
+        103838.70
+        103839.00
+        103838.68
+        103838.70
+        103839.00
+        103838.70
+       -103839.00
+        103839.00
+        103839.00
+        477095.80
+        477095.80
+       -477095.80
+        477095.82
+        477095.82
+        477095.82
+       -477095.82
+        477095.82
+        477096.00
+       -477096.00
+        -46073.00
+         46073.00
+        -46073.00
+         46073.41
+         46073.00
+         46073.40
+         46073.00
+         46073.41
+         46073.41
+        -46073.00
+        264360.70
+        264360.70
+        264360.69
+        264361.00
+       -264360.70
+        264360.69
+       -264360.70
+        264360.69
+       -264361.00
+        264360.69
+        161891.00
+       -161891.20
+       -161891.19
+        161891.19
+        161891.00
+        161891.20
+        161891.20
+        161891.00
+        161891.00
+        161891.20
+      -1064165.98
+       1064166.00
+       1064166.00
+       1064166.00
+       1064165.98
+       1064166.00
+       1064166.00
+      -1064165.98
+       1064165.98
+      -1064166.00
+       4549429.27
+       4549429.27
+       4549429.27
+       4549429.27
+       4549429.00
+       4549429.27
+      -4549429.27
+       4549429.00
+       4549429.27
+       4549429.27
+       -620709.00
+        620709.20
+        620709.00
+       -620709.20
+       -620709.24
+       -620709.00
+        620709.00
+        620709.24
+       -620709.24
+        620709.00
+        -24567.89
+         24567.90
+         24568.00
+         24567.89
+         24568.00
+         24568.00
+         24567.90
+        -24568.00
+        -24567.89
+        -24568.00
+       1738672.56
+      -1738672.56
+       1738672.56
+      -1738672.60
+      -1738673.00
+       1738672.56
+       1738673.00
+      -1738672.60
+       1738672.60
+       1738672.56
+      48012344.00
+     -48012344.12
+     -48012344.00
+      48012344.12
+     -48012344.12
+     -48012344.00
+      48012344.12
+     -48012344.00
+     -48012344.00
+     -48012344.00
+     -10445457.00
+      10445457.00
+      10445457.00
+      10445457.00
+     -10445457.00
+     -10445457.00
+      10445457.00
+      10445457.00
+      10445457.00
+     -10445457.30
+        -15909.98
+         15910.00
+        -15909.98
+         15910.00
+         15910.00
+        -15910.00
+        -15910.00
+        -15910.00
+        -15910.00
+         15909.98
+       -283767.24
+        283767.20
+        283767.24
+        283767.24
+        283767.00
+        283767.20
+        283767.20
+        283767.24
+       -283767.00
+        283767.24
+        442672.13
+       -442672.13
+        442672.00
+        442672.13
+        442672.10
+        442672.00
+        442672.00
+       -442672.10
+        442672.00
+       -442672.10
+        -60344.35
+         60344.00
+         60344.00
+        -60344.00
+         60344.00
+         60344.35
+         60344.00
+         60344.35
+         60344.00
+         60344.00
+       -163857.00
+       -163857.00
+        163857.32
+        163857.00
+       -163857.30
+       -163857.00
+        163857.30
+        163857.00
+        163857.00
+       -163857.00
+       -945004.00
+       -945004.30
+        945004.27
+        945004.27
+       -945004.27
+       -945004.27
+       -945004.00
+       -945004.27
+       -945004.00
+        945004.30
+       1907811.00
+       1907811.00
+       1907811.00
+       1907811.00
+       1907811.20
+       1907811.18
+       1907811.18
+       1907811.18
+       1907811.18
+       1907811.00
+])
+AT_CLEANUP
+
 AT_SETUP([binary and hexadecimal input (IB, PIB, and PIBHEX formats)])
 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > binhex-in.data])
-AT_CHECK([wc -c < binhex-in.data], [0], [131072
+AT_CHECK([wc -c < binhex-in.data | sed 's/[    ]//g'], [0], [131072
 ])
 AT_DATA([binhex-in.sps], [dnl
 SET RIB=MSBFIRST.
@@ -105,7 +3434,7 @@ AT_CLEANUP
 
 AT_SETUP([BCD input (P and PK formats)])
 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > bcd-in.data])
-AT_CHECK([wc -c < bcd-in.data], [0], [131072
+AT_CHECK([wc -c < bcd-in.data | sed 's/[       ]//g'], [0], [131072
 ])
 AT_DATA([bcd-in.sps], [dnl
 SET ERRORS=NONE.
@@ -125,7 +3454,7 @@ AT_CLEANUP
 
 AT_SETUP([legacy input (N and Z formats)])
 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > legacy-in.data])
-AT_CHECK([wc -c < legacy-in.data], [0], [131072
+AT_CHECK([wc -c < legacy-in.data | sed 's/[    ]//g'], [0], [131072
 ])
 AT_DATA([legacy-in.sps], [dnl
 SET ERRORS=NONE.
@@ -171,23 +3500,23 @@ PRINT OUTFILE='wkday.out'/ALL.
 EXECUTE.
 ])
 AT_CHECK([pspp -O format=csv wkday.sps], [0], [dnl
-wkday.sps:20.1-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.
+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.
 
-wkday.sps:20.1-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.
+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.
 
-wkday.sps:20.1-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.
+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.
 
-wkday.sps:20.1-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.
+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.
 
-wkday.sps:20.1-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.
+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.
 
-wkday.sps:20.1-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.
+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.
 
-wkday.sps:20.1-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.
+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.
 
-wkday.sps:20.1-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.
+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.
 
-wkday.sps:20.1-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.
+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.
 ])
 AT_CHECK([cat wkday.out], [0], [dnl
   .  .  .  .  .  .  .  .  . @&t@
@@ -266,51 +3595,51 @@ PRINT OUTFILE='month.out'/ALL.
 EXECUTE.
 ])
 AT_CHECK([pspp -O format=csv month.sps], [0], [dnl
-month.sps:15.1-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.
+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.
 
-month.sps:15.1-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.
+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.
 
-month.sps:15.1-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.
+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.
 
-month.sps:15.1-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.
+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.
 
-month.sps:15.1-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.
+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.
 
-month.sps:15.1-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.
+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.
 
-month.sps:15.1-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.
+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.
 
-month.sps:26.1-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.
+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.
 
-month.sps:26.1-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.
+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.
 
-month.sps:26.1-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.
+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.
 
-month.sps:26.1-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.
+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.
 
-month.sps:26.1-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.
+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.
 
-month.sps:26.1-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.
+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.
 
-month.sps:26.1-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.
+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.
 
-month.sps:26.1-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.
+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.
 
-month.sps:39.1-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.
+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.
 
-month.sps:39.1-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.
+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.
 
-month.sps:39.1-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.
+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.
 
-month.sps:39.1-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.
+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.
 
-month.sps:39.1-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.
+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.
 
-month.sps:39.1-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.
+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.
 
-month.sps:39.1-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.
+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.
 
-month.sps:39.1-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.
+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.
 ])
 AT_CHECK([cat month.out], [0], [dnl
    .   .   .   .   .   .   .   . @&t@