package main;

  use strict;

# Global variables
#  my @TestSizes = (1, 100, 200, 300, 400, 500);
  my @TestSizes = (300);
#  my @TestLengths = (1, 5, 10, 15, 20, 25, 30, 35);
  my @TestLengths = (20);
#  my @FactSizes = ([5000,2000], [10000, 4000], [15000, 6000], [20000, 8000]);
  my @FactSizes = ([10000, 4000]);
#  my $Runs = 3;
  my $Runs = 1;
  my $dir = "results";

  foreach my $dbSize (@FactSizes) {
    my ($ad, $sd) = @$dbSize;
    print "perl factsGenerate $ad $sd > facts.P\n"; 
    system("perl factsGenerate $ad $sd > facts.P");
    foreach my $testSize (@TestSizes) {
      foreach my $testLength (@TestLengths) {
        my $run = 0;
        for ($run = 0; $run < $Runs; $run++) {
          print "perl generate graph.in $testSize $testLength > guard.in\n"; 
          system ("perl generate graph.in $testSize $testLength > guard.in");
          print "perl codeGenerate dataflow.in update.in guard.in d.P t.P g.P\n";
          system ("perl codeGenerate dataflow.in update.in guard.in d.P t.P g.P");
          print "perl testit.pl $testSize >\& $dir/t.$ad.$testSize.$testLength.$run.txt\n";
          system ("perl testit.pl $testSize >" . '& ' . "$dir/t.$ad.$testSize.$testLength.$run.txt");
          }
        }
      }
    }
