Exemplo n.º 1
0
 /**
  * Sorter test method.
  *
  * @param object ISorter $sorter The sorter to test.
  * @param integer $n The length of array to test.
  * @param integer $seed A seed for the random number generator.
  * @param integer $m If given, data values are restricted to [0,m-1].
  * (Optional).
  */
 public static function test(ISorter $sorter, $n, $seed, $m = 0)
 {
     //printf("AbstractSorter test program.\n");
     RandomNumberGenerator::setSeed($seed);
     $data = new BasicArray($n);
     for ($i = 0; $i < $n; ++$i) {
         $datum = intval(RandomNumberGenerator::next() * Limits::MAXINT);
         if ($m != 0) {
             $datum = $datum % $m;
         }
         $data[$i] = $datum;
     }
     $timer = new Timer();
     $timer->start();
     $sorter->sort($data);
     $timer->stop();
     $datum = sprintf("%s %d %d %f", $sorter->getClass()->getName(), $n, $seed, $timer->getElapsedTime());
     fprintf(STDOUT, "%s\n", $datum);
     fprintf(STDERR, "%s\n", $datum);
     for ($i = 1; $i < $n; ++$i) {
         if ($data[$i] < $data[$i - 1]) {
             printf("FAILED\n");
             break;
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Main program.
  *
  * @param array $args Command-line arguments.
  * @return integer Zero on success; non-zero on failure.
  */
 public static function main($args)
 {
     printf("RandomNumberGenerator main program.\n");
     $status = 0;
     RandomNumberGenerator::setSeed(1);
     for ($i = 0; $i < 10; ++$i) {
         printf("%.15f\n", RandomNumberGenerator::next());
     }
     return $status;
 }