Fix build requirements by correctly noting that Python is required.
[pspp] / tests / data / data-in.at
index a8526160498aab03304730b0cd922e6642a892a5..77a39db0103305ac7e22262438aef7cabfa01ce5 100644 (file)
@@ -1,19 +1,20 @@
 dnl PSPP - a program for statistical analysis.
 dnl Copyright (C) 2017 Free Software Foundation, Inc.
-dnl 
+dnl
 dnl This program is free software: you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
 dnl the Free Software Foundation, either version 3 of the License, or
 dnl (at your option) any later version.
-dnl 
+dnl
 dnl This program is distributed in the hope that it will be useful,
 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 dnl GNU General Public License for more details.
-dnl 
+dnl
 dnl You should have received a copy of the GNU General Public License
 dnl along with this program.  If not, see <http://www.gnu.org/licenses/>.
-dnl AT_BANNER([data input (data-in)])
+dnl
+AT_BANNER([data input (data-in)])
 
 m4_divert_push([PREPARE_TESTS])
 [data_in_prng () {
@@ -46,253 +47,11 @@ 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])
+AT_KEYWORDS([data-in slow])
 data_in_prng
 AT_CHECK([$PERL test-my-rand.pl])
 AT_DATA([num-in.pl],
@@ -488,7 +247,7 @@ title 'Test use of big numbers'.
 data list file='bignum.txt'/BIGNUM 1-40.
 list.
 
-*** Do the nonportable output for fun. 
+*** Do the nonportable output for fun.
 descriptives BIGNUM.
 ])
 AT_CHECK([pspp -o pspp.csv bignum.sps], [0], [ignore])
@@ -496,2937 +255,112 @@ 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([$PYTHON3 $top_srcdir/tests/data/test-date-input.py date d-m-y])
+AT_FAIL_IF([test ! -s date.sps || test ! -s date.input || test ! -s expout])
 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_CHECK([cat date.output], [0], [expout])
 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([$PYTHON3 $top_srcdir/tests/data/test-date-input.py adate m-d-y])
+AT_FAIL_IF([test ! -s adate.sps || test ! -s adate.input || test ! -s expout])
 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_CHECK([cat adate.output], [0], [expout])
 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([$PYTHON3 $top_srcdir/tests/data/test-date-input.py edate d-m-y])
+AT_FAIL_IF([test ! -s edate.sps || test ! -s edate.input || test ! -s expout])
 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_CHECK([cat edate.output], [0], [expout])
 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([$PYTHON3 $top_srcdir/tests/data/test-date-input.py jdate j])
+AT_FAIL_IF([test ! -s jdate.sps || test ! -s jdate.input || test ! -s expout])
 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_CHECK([cat jdate.output], [0], [expout])
 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([$PYTHON3 $top_srcdir/tests/data/test-date-input.py sdate y-m-d])
+AT_FAIL_IF([test ! -s sdate.sps || test ! -s sdate.input || test ! -s expout])
 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_CHECK([cat sdate.output], [0], [expout])
 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([$PYTHON3 $top_srcdir/tests/data/test-date-input.py qyr qQy])
+AT_FAIL_IF([test ! -s qyr.sps || test ! -s qyr.input || test ! -s expout])
 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_CHECK([cat qyr.output], [0], [expout])
 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([$PYTHON3 $top_srcdir/tests/data/test-date-input.py moyr m-y])
+AT_FAIL_IF([test ! -s moyr.sps || test ! -s moyr.input || test ! -s expout])
 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_CHECK([cat moyr.output], [0], [expout])
 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([$PYTHON3 $top_srcdir/tests/data/test-date-input.py wkyr wWy])
+AT_FAIL_IF([test ! -s wkyr.sps || test ! -s wkyr.input || test ! -s expout])
 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_CHECK([cat wkyr.output], [0], [expout])
 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_KEYWORDS([data-in slow])
+AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py datetime "d-m-y +H:M" "d-m-y +H:M:S"])
+AT_FAIL_IF([test ! -s datetime.sps || test ! -s datetime.input || \
+            test ! -s expout])
 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_CHECK([cat datetime.output], [0], [expout])
+AT_CLEANUP
+
+AT_SETUP([YMDHMS input format])
+AT_KEYWORDS([data-in slow])
+AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-date-input.py ymdhms "y-m-d +H:M" "y-m-d +H:M:S"])
+AT_FAIL_IF([test ! -s ymdhms.sps || test ! -s ymdhms.input || \
+            test ! -s expout])
+AT_CHECK([pspp -O format=csv ymdhms.sps])
+AT_CHECK([cat ymdhms.output], [0], [expout])
+AT_CLEANUP
+
+AT_SETUP([MTIME input format])
+AT_KEYWORDS([data-in])
+AT_CHECK([$PYTHON3 $top_srcdir/tests/data/test-time-input.py mtime +M:S])
+AT_FAIL_IF([test ! -s mtime.sps || test ! -s mtime.input || test ! -s expout])
+AT_CHECK([pspp -O format=csv mtime.sps])
+AT_CHECK([cat mtime.output], [0], [expout])
 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([$PYTHON3 $top_srcdir/tests/data/test-time-input.py time +H:M +H:M:S])
+AT_FAIL_IF([test ! -s time.sps || test ! -s time.input || test ! -s expout])
 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_CHECK([cat time.output], [0], [expout])
 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([$PYTHON3 $top_srcdir/tests/data/test-time-input.py dtime  '+D H:M' '+D H:M:S'])
+AT_FAIL_IF([test ! -s dtime.sps || test ! -s dtime.input || test ! -s expout])
 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_CHECK([cat dtime.output], [0], [expout])
 AT_CLEANUP
 
 AT_SETUP([binary and hexadecimal input (IB, PIB, and PIBHEX formats)])
+AT_KEYWORDS([slow])
 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > binhex-in.data])
 AT_CHECK([[wc -c < binhex-in.data | sed 's/[   ]//g']], [0], [131072
 ])
@@ -3448,6 +382,7 @@ AT_CHECK([cat binhex-in.out], [0], [expout])
 AT_CLEANUP
 
 AT_SETUP([BCD input (P and PK formats)])
+AT_KEYWORDS([slow])
 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > bcd-in.data])
 AT_CHECK([[wc -c < bcd-in.data | sed 's/[      ]//g']], [0], [131072
 ])
@@ -3468,6 +403,7 @@ AT_CHECK([cat bcd-in.out], [0], [expout])
 AT_CLEANUP
 
 AT_SETUP([legacy input (N and Z formats)])
+AT_KEYWORDS([slow])
 AT_CHECK([$PERL -e 'print pack "n", $_ foreach 0...65535' > legacy-in.data])
 AT_CHECK([[wc -c < legacy-in.data | sed 's/[   ]//g']], [0], [131072
 ])