public void DccaTest(string modelFile, HeuristicsUsage heuristicsUsage, FaultActivationBehavior faultActivation) { var model = new ModelSetupParser().Parse($"Analysis/{modelFile}"); IFaultSetHeuristic[] heuristics; switch (heuristicsUsage) { case HeuristicsUsage.None: heuristics = new IFaultSetHeuristic[0]; break; case HeuristicsUsage.Subsumption: heuristics = new[] { new SubsumptionHeuristic(model.Faults) }; break; case HeuristicsUsage.Redundancy: heuristics = new[] { RedundancyHeuristic(model) }; break; default: case HeuristicsUsage.Both: heuristics = new[] { new SubsumptionHeuristic(model.Faults), RedundancyHeuristic(model) }; break; } Dcca(model, faultActivation, heuristics); }
public void EnumerateAllStates() { var model = new ModelSetupParser().Parse("Analysis/medium_setup.model"); model.Faults.SuppressActivations(); var checker = new SafetySharpQualitativeChecker { Configuration = { ModelCapacity = new ModelCapacityByModelDensity(1 << 18, ModelDensityLimit.Medium) } }; var result = checker.CheckInvariant(model, true); Console.WriteLine(result); }
public void DccaTest( [Values("complete_network.model", "bidirectional_circle.model", "duplicate_dispenser.model", "simple_circle.model", "trivial_setup.model", "simple_setup.model", "simple_setup3.model", "simple_setup2.model", "medium_setup.model", "complex_setup.model")] string modelFile, [Values(HeuristicsUsage.None, HeuristicsUsage.Subsumption, HeuristicsUsage.Redundancy, HeuristicsUsage.Both)] HeuristicsUsage heuristicsUsage, [Values(FaultActivationBehavior.ForceOnly, FaultActivationBehavior.ForceThenFallback, FaultActivationBehavior.Nondeterministic)] FaultActivationBehavior faultActivation) { var model = new ModelSetupParser().Parse($"Analysis/{modelFile}"); IFaultSetHeuristic[] heuristics; switch (heuristicsUsage) { case HeuristicsUsage.None: heuristics = new IFaultSetHeuristic[0]; break; case HeuristicsUsage.Subsumption: heuristics = new[] { new SubsumptionHeuristic(model) }; break; case HeuristicsUsage.Redundancy: heuristics = new[] { RedundancyHeuristic(model) }; break; default: case HeuristicsUsage.Both: heuristics = new[] { new SubsumptionHeuristic(model), RedundancyHeuristic(model) }; break; } Dcca(model, faultActivation, heuristics); }
public void EnumerateAllStates() { var model = new ModelSetupParser().Parse("Analysis/medium_setup.model"); model.Faults.SuppressActivations(); var checker = new SSharpChecker { Configuration = { StateCapacity = 1 << 18 } }; var result = checker.CheckInvariant(model, true); Console.WriteLine(result.StateVectorLayout); }