/// <summary> /// Initializes a new instance. /// </summary> /// <param name="result">The result of the analysis</param> /// <param name="firstFault">The fault that must be activated first.</param> /// <param name="secondFault">The fault that must be activated subsequently.</param> /// <param name="kind">Determines the kind of the order relationship.</param> internal OrderRelationship(AnalysisResult result, Fault firstFault, Fault secondFault, OrderRelationshipKind kind) { Requires.NotNull(result, nameof(result)); Requires.NotNull(firstFault, nameof(firstFault)); Requires.NotNull(secondFault, nameof(secondFault)); Requires.InRange(kind, nameof(kind)); Witness = result.CounterExample; FirstFault = firstFault; SecondFault = secondFault; Kind = kind; }
/// <summary> /// Initializes a new instance. /// </summary> /// <param name="result">The result of the analysis</param> /// <param name="firstFault">The fault that must be activated first.</param> /// <param name="secondFault">The fault that must be activated subsequently.</param> /// <param name="kind">Determines the kind of the order relationship.</param> internal OrderRelationship(InvariantAnalysisResult result, Fault firstFault, Fault secondFault, OrderRelationshipKind kind) { Requires.NotNull(result, nameof(result)); Requires.NotNull(firstFault, nameof(firstFault)); Requires.NotNull(secondFault, nameof(secondFault)); Requires.InRange(kind, nameof(kind)); Witness = result.CounterExample; FirstFault = firstFault; SecondFault = secondFault; Kind = kind; }
protected void ShouldContain(OrderRelationship <SafetySharpRuntimeModel>[] relationships, Fault fault1, Fault fault2, OrderRelationshipKind kind) { foreach (var relationship in relationships) { if (kind == OrderRelationshipKind.Simultaneously) { if (relationship.Kind != OrderRelationshipKind.Simultaneously) { continue; } if (relationship.FirstFault == fault1 && relationship.SecondFault == fault2) { return; } if (relationship.FirstFault == fault2 && relationship.SecondFault == fault1) { return; } } if (relationship.FirstFault == fault1 && relationship.SecondFault == fault2 && relationship.Kind == kind) { return; } } throw new TestException("Relationship is not contained in set."); }
protected void ShouldContain(OrderRelationship[] relationships, Fault fault1, Fault fault2, OrderRelationshipKind kind) { foreach (var relationship in relationships) { if (kind == OrderRelationshipKind.Simultaneously) { if (relationship.Kind != OrderRelationshipKind.Simultaneously) continue; if (relationship.FirstFault == fault1 && relationship.SecondFault == fault2) return; if (relationship.FirstFault == fault2 && relationship.SecondFault == fault1) return; } if (relationship.FirstFault == fault1 && relationship.SecondFault == fault2 && relationship.Kind == kind) return; } throw new TestException("Relationship is not contained in set."); }