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)); }
public ProcessesStatement SwapOperandsToMatchOrder(ProcessesQuestion question) { return(ProcessA == question.ProcessB || ProcessB == question.ProcessA ? SwapOperands() : this); }