Exemplo n.º 1
0
        private void LogResult(Model model, SafetyAnalysisResults <SafetySharpRuntimeModel> result, string mode)
        {
            var faultCount     = result.Faults.Count() - result.SuppressedFaults.Count();
            var cardinalitySum = result.MinimalCriticalSets.Sum(set => set.Count);
            var minimalSetCardinalityAverage = cardinalitySum == 0 ? -1 : cardinalitySum / (double)result.MinimalCriticalSets.Count;
            var minimalSetCardinalityMinimum = result.MinimalCriticalSets.Count == 0 ? -1 : result.MinimalCriticalSets.Min(set => set.Count);
            var minimalSetCardinalityMaximum = result.MinimalCriticalSets.Count == 0 ? -1 : result.MinimalCriticalSets.Max(set => set.Count);

            var exception     = result.Exceptions.Values.FirstOrDefault();
            var exceptionText = exception == null ? null : exception.GetType().Name + " (" + exception.Message + ")";

            object[] columns =
            {
                GetCurrentFault(),                                                      // tested fault
                mode,                                                                   // testing mode
                model.Name,                                                             // model name
                exceptionText,                                                          // thrown exception (if any)
                faultCount,                                                             // # faults
                (int)result.Time.TotalMilliseconds,                                     // required time
                result.CheckedSetCount,                                                 // # checked sets
                result.CheckedSetCount * 100.0 / (1L << faultCount),                    // % checked sets
                result.TrivialChecksCount,                                              // # trivial checks
                result.HeuristicSuggestionCount,                                        // # suggestions
                result.HeuristicNonTrivialSafeCount * 100.0                             // % good suggestions
                / result.HeuristicSuggestionCount,
                (result.HeuristicSuggestionCount                                        // % non-trivially critical (bad) suggestions
                 - result.HeuristicTrivialCount - result.HeuristicNonTrivialSafeCount) * 100.0 / result.HeuristicSuggestionCount,
                result.MinimalCriticalSets.Count,                                       // # minimal-critical sets
                minimalSetCardinalityAverage,                                           // avg. cardinality of minimal-critical sets
                minimalSetCardinalityMinimum,                                           // min. cardinality of minimal-critical sets
                minimalSetCardinalityMaximum                                            // max. cardinality of minimal-critical sets
            };
            _csv.WriteLine(string.Join(",", columns));
            _csv.Flush();
        }
Exemplo n.º 2
0
 public SafetySharpOrderAnalysis(SafetyAnalysisResults <SafetySharpRuntimeModel> results, AnalysisConfiguration configuration)
     : base(results, configuration)
 {
 }
Exemplo n.º 3
0
 public SimpleOrderAnalysis(SafetyAnalysisResults <SimpleExecutableModel> results, AnalysisConfiguration configuration)
     : base(results, configuration)
 {
 }