public static function tearDownAfterClass() { if (!self::$timing) { echo "\n"; return; } $class = get_called_class(); echo "Timing results : {$class}\n"; $s = sprintf("%40s %6s %9s %9s %4s\n", 'name', 'count', 'total', 'avg', '% best'); echo str_repeat('=', strlen($s)) . "\n"; echo $s; echo str_repeat('-', strlen($s)) . "\n"; array_walk(self::$timing, function (&$value, $key) { $value['avg'] = round($value['total'] / $value['count'] * 1000000, 3); }); usort(self::$timing, function ($a, $b) { $at = $a['avg']; $bt = $b['avg']; return $at === $bt ? 0 : ($at < $bt ? -1 : 1); }); $best = self::$timing[0]['avg']; foreach (self::$timing as $timing) { printf("%40s %6d %7.3fms %7.3fus %4.1f%%\n", $timing['name'], $timing['count'], round($timing['total'] * 1000, 3), $timing['avg'], round($timing['avg'] / $best * 100, 3)); } echo str_repeat('-', strlen($s)) . "\n\n"; printf("\nTiming compensated for avg overhead for: timeIt of %.3fus and startTimer/endTimer of %.3fus per invocation\n\n", self::$timeItOverhead * 1000000, self::$startEndOverhead * 1000000); parent::tearDownAfterClass(); }
/** * Delete everything out of our testing database. */ public static function tearDownAfterClass() { parent::tearDownAfterClass(); \Definition::truncate(); \CsvDefinition::truncate(); \InstalledDefinition::truncate(); \JsonDefinition::truncate(); \ShpDefinition::truncate(); \SparqlDefinition::truncate(); \XlsDefinition::truncate(); \XmlDefinition::truncate(); \GeoProperty::truncate(); \TabularColumns::truncate(); \Geoprojection::truncate(); }