private static string ResultToString(TestCodeLocationSummaries summary) { if (summary.Exception != null) { if (summary.Summaries != null) { return("Test summary contains both InsInfExc and ordinary Summaries"); } return($"Totally 1 state:\n{summary.Exception.Message}\n"); } int count = 0; if ((count = summary.Summaries.Count()) == 0) { return("No states were obtained!"); } var suffix = count > 1 ? "s" : ""; var sortedResults = summary.Summaries.Select(SummaryToString).OrderBy(x => x.GetDeterministicHashCode()); return($"Totally {count} state{suffix}:\n{String.Join("\n", sortedResults)}"); }
private TestCodeLocationSummaries PrepareAndInvokeWithoutStatistics(IDictionary <MethodInfo, TestCodeLocationSummaries> dict, MethodInfo m, Func <MethodBase, FSharpFunc <CodeLocationSummaries, CodeLocationSummaries>, CodeLocationSummaries> invoke) { _statistics.SetupBeforeMethod(m); if (m == null) { var format = new PrintfFormat <string, Unit, string, Unit>( $"WARNING: metadata method for {m.Name} not found!"); Logger.printLog(Logger.Warning, format); return(null); } dict?.Add(m, null); var id = FSharpFunc <CodeLocationSummaries, CodeLocationSummaries> .FromConverter(x => x); TestCodeLocationSummaries summary = null; try { summary = TestCodeLocationSummaries.WithSummaries(invoke(m, id)); } catch (InsufficientInformationException e) { summary = TestCodeLocationSummaries.WithInsufficientInformationException(e); } _statistics.AddSucceededMethod(m); if (dict != null) { dict[m] = summary; } return(summary); }