コード例 #1
0
		/// <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;
		}
コード例 #2
0
        /// <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;
        }
コード例 #3
0
        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.");
        }
コード例 #4
0
		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.");
		}