Beispiel #1
0
        public void TestBuildingWhatIsMutualSequenceOfProcesses()
        {
            // arrange
            var language        = Language.Default;
            var semanticNetwork = new TestSemanticNetwork(language);

            var processA = ConceptCreationHelper.CreateConcept();

            processA.WithAttribute(IsProcessAttribute.Value);
            var processB = ConceptCreationHelper.CreateConcept();

            processB.WithAttribute(IsProcessAttribute.Value);
            semanticNetwork.SemanticNetwork.DeclareThat(processA).StartsBeforeOtherStarted(processB);
            semanticNetwork.SemanticNetwork.DeclareThat(processA).FinishesAfterOtherFinished(processB);

            // act
            var questionRegular = new ProcessesQuestion(processA, processB);
            var answerRegular   = (StatementsAnswer <ProcessesStatement>)questionRegular.Ask(semanticNetwork.SemanticNetwork.Context);

            var answerBuilder = (StatementsAnswer <ProcessesStatement>)semanticNetwork.SemanticNetwork.Ask().WhatIsMutualSequenceOfProcesses(processA, processB);

            // assert
            Assert.IsTrue(answerRegular.Result.SequenceEqual(answerBuilder.Result));
            Assert.IsTrue(answerRegular.Explanation.Statements.SequenceEqual(answerBuilder.Explanation.Statements));
        }
Beispiel #2
0
 public ProcessesStatement SwapOperandsToMatchOrder(ProcessesQuestion question)
 {
     return(ProcessA == question.ProcessB || ProcessB == question.ProcessA
                         ? SwapOperands()
                         : this);
 }