static PerfResult PrepareResult(string name, double[] times) { Array.Sort(times); int n = times.Length; var result = new PerfResult() { Name = name, Min = times[0], Max = times[n - 1] }; double total = 0; for (int i = 0; i < n; i++) { total += times[i]; } result.Mean = total / n; if (n == 1) { result.Median = times[0]; } else if (n % 2 == 1) { result.Median = times[n / 2]; } else { result.Median = (times[n / 2] + times[n / 2 - 1]) / 2; } return(result); }
static void PrintResult(PerfResult result) { Console.WriteLine(result.Name); Console.WriteLine("Min: {0:F3} ms", result.Min); Console.WriteLine("Max: {0:F3} ms", result.Max); Console.WriteLine("Avg: {0:F3} ms", result.Mean); Console.WriteLine("Median: {0:F3} ms", result.Median); Console.WriteLine(); }