/// <summary> /// Get the results of this comparison as a list of arrays of strings /// </summary> /// <returns></returns> internal List <string[]> GetComparisonData() { if (!BaseBenchmarkFound) { return(null); } var baseData = new string[] { BaseResult.Method, BaseResult.Graph, "Base", BaseResult.MeanString, BaseResult.ErrorString, BaseResult.StdDevString }; var newData = new string[] { "", "", "New", NewResult.MeanString, NewResult.ErrorString, NewResult.StdDevString }; var deltaData = new string[] { "", "", "", MeanDelta.ToString() + "%", ErrorDelta.ToString() + "%", StdDevDelta.ToString() + "%", Enum.GetName(typeof(ComparisonResultState), ResultState) }; var resultData = new string[] { }; return(new List <string[]> { baseData, newData, deltaData }); }
/// <summary> /// Log the results of this comparison to the console /// </summary> /// <param name="columnWidths"></param> internal void LogComparison(List <int> columnWidths) { // Make sure baseline data has been found. If not, log an error message for this comparison. if (!BaseBenchmarkFound) { var fc = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Baseline bechmark results do not contain data for " + NewResult.Method + "-" + NewResult.Graph); Console.ForegroundColor = fc; return; } // Log Base data var baseData = new string[] { BaseResult.Method, BaseResult.Graph, "Base", BaseResult.MeanString, BaseResult.ErrorString, BaseResult.StdDevString }; for (int i = 0; i < baseData.Length; i++) { baseData[i] = (baseData[i] + " ").PadLeft(columnWidths[i], ' '); } Console.WriteLine("|" + string.Join("|", baseData) + "|"); // Log New data var newData = new string[] { "", "", "New", NewResult.MeanString, NewResult.ErrorString, NewResult.StdDevString }; for (int i = 0; i < newData.Length; i++) { newData[i] = (newData[i] + " ").PadLeft(columnWidths[i], ' '); } Console.WriteLine("|" + string.Join("|", newData) + "|"); // Log Delta data var meanDeltaString = MeanDelta >= 0 ? "+" + MeanDelta.ToString() : MeanDelta.ToString(); var deltaData = new string[] { "", "", "", meanDeltaString + "%", ErrorDelta.ToString() + "%", StdDevDelta.ToString() + "%" }; Console.Write("|"); for (int i = 0; i < deltaData.Length; i++) { var deltaItem = (deltaData[i] + " ").PadLeft(columnWidths[i], ' '); if (i == 3) { var fc = Console.ForegroundColor; Console.ForegroundColor = MeanDelta < 0 ? ConsoleColor.Green : ConsoleColor.Red; Console.Write(deltaItem); Console.ForegroundColor = fc; Console.Write("|"); } else { Console.Write(deltaItem + "|"); } } // log final result of comparison var resultString = Enum.GetName(typeof(ComparisonResultState), this.ResultState); Console.Write(resultString); Console.Write("\n"); }