Modify the random distributions test to verify to 2 more decimal
[pspp-builds.git] / tests / expressions / randist / randist.pl
index 2e1b89d9ce7ad9253da205842e23b8836bd2cfca..461fc54126a08d5ffd8a42c61d9f75ae6c9504b0 100755 (executable)
@@ -37,13 +37,18 @@ while (<>) {
     }
 
     print "DATA LIST LIST/", join (' ', 'P', @vars), ".\n";
+    print "NUMERIC ", join (' ', 'x', @funcs), " (F10.4)\n";
     print "COMPUTE x = IDF.$dist (", join (', ', 'P', @vars), ").\n";
     foreach my $func (@funcs) {
        print "COMPUTE $func = $func.$dist (",
          join (', ', 'x', @vars), ").\n";
     }
+    my (@print) = ('P', @vars, 'x', @funcs);
+    print "DO IF \$CASENUM = 1.\n";
+    print "PRINT OUTFILE='$dist.out'/'", heading (@print), "'\n";
+    print "END IF.\n";
     print "PRINT OUTFILE='$dist.out'/",
-      join (' ', 'P', @vars, 'x', @funcs), ".\n";
+      join (' ', @print), ".\n";
     print "BEGIN DATA.\n";
     print_all_values (['P', @vars], []);
     print "END DATA.\n";
@@ -63,3 +68,16 @@ sub print_all_values {
        }
     }
 }
+
+sub heading {
+    my (@names) = @_;
+    my ($out);
+    $out .= pad_to (shift (@names), 8) while $names[0] ne 'x';
+    $out .= pad_to (shift (@names), 10) while @names;
+    return $out;
+}
+
+sub pad_to {
+    my ($s, $n) = @_;
+    return (' ' x ($n - length ($s))) . $s . ' ';
+}