Esempio n. 1
0
 public void DoubleReversionDoNothing()
 {
     foreach (var sign in ComparisonSigns.All)
     {
         Assert.AreSame(sign, ComparisonSigns.Revert(ComparisonSigns.Revert(sign)));
     }
 }
        protected override Boolean SetCombinationWithDescendants(IConcept valueRow, IConcept valueColumn, IConcept sign)
        {
            Boolean combinationsUpdated = SetCombination(valueRow, valueColumn, sign);

            if (sign.CanBeReverted())
            {
                combinationsUpdated |= SetCombination(valueColumn, valueRow, ComparisonSigns.Revert(sign));
            }
            return(combinationsUpdated);
        }
Esempio n. 3
0
        public void CheckConditionsWithLeAndGe()
        {
            // arrange
            var language        = Language.Default;
            var semanticNetwork = new TestSemanticNetwork(language);

            var comparisons = new[]
            {
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number1or2, semanticNetwork.Number0, ComparisonSigns.IsGreaterThan),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number1or2, semanticNetwork.Number1, ComparisonSigns.IsGreaterThanOrEqualTo),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number1or2, semanticNetwork.Number2, ComparisonSigns.IsLessThanOrEqualTo),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number1or2, semanticNetwork.Number3, ComparisonSigns.IsLessThan),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number1or2, semanticNetwork.Number4, ComparisonSigns.IsLessThan),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number1or2, semanticNetwork.Number2or3, ComparisonSigns.IsLessThanOrEqualTo),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number1or2, semanticNetwork.Number3or4, ComparisonSigns.IsLessThan),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number2or3, semanticNetwork.Number0, ComparisonSigns.IsGreaterThan),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number2or3, semanticNetwork.Number1, ComparisonSigns.IsGreaterThan),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number2or3, semanticNetwork.Number2, ComparisonSigns.IsGreaterThanOrEqualTo),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number2or3, semanticNetwork.Number3, ComparisonSigns.IsLessThanOrEqualTo),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number2or3, semanticNetwork.Number4, ComparisonSigns.IsLessThan),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number2or3, semanticNetwork.Number1or2, ComparisonSigns.IsGreaterThanOrEqualTo),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number2or3, semanticNetwork.Number3or4, ComparisonSigns.IsLessThanOrEqualTo),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number3or4, semanticNetwork.Number0, ComparisonSigns.IsGreaterThan),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number3or4, semanticNetwork.Number1, ComparisonSigns.IsGreaterThan),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number3or4, semanticNetwork.Number2, ComparisonSigns.IsGreaterThan),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number3or4, semanticNetwork.Number3, ComparisonSigns.IsGreaterThanOrEqualTo),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number3or4, semanticNetwork.Number4, ComparisonSigns.IsLessThanOrEqualTo),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number3or4, semanticNetwork.Number1or2, ComparisonSigns.IsGreaterThan),
                new Tuple <IConcept, IConcept, IConcept>(semanticNetwork.Number3or4, semanticNetwork.Number2or3, ComparisonSigns.IsGreaterThanOrEqualTo),
            };

            foreach (var comparison in comparisons)
            {
                // act
                var answer1    = semanticNetwork.SemanticNetwork.Ask().HowCompared(comparison.Item1, comparison.Item2);
                var statement1 = (ComparisonStatement)((StatementAnswer)answer1).Result;

                var answer2    = semanticNetwork.SemanticNetwork.Ask().HowCompared(comparison.Item2, comparison.Item1);
                var statement2 = (ComparisonStatement)((StatementAnswer)answer2).Result;

                // assert
                Assert.AreSame(comparison.Item1, statement1.LeftValue);
                Assert.AreSame(comparison.Item2, statement1.RightValue);
                Assert.AreSame(comparison.Item3, statement1.ComparisonSign);

                Assert.AreSame(comparison.Item2, statement2.LeftValue);
                Assert.AreSame(comparison.Item1, statement2.RightValue);
                Assert.AreSame(ComparisonSigns.Revert(comparison.Item3), statement2.ComparisonSign);
            }
        }
Esempio n. 4
0
        public void OnlyComparisonSignsSuit()
        {
            foreach (var concept in SystemConcepts.GetAll())
            {
                if (!ComparisonSigns.All.Contains(concept))
                {
                    Assert.Throws <InvalidOperationException>(() => { concept.Contradicts(ComparisonSigns.IsEqualTo); });
                    Assert.Throws <InvalidOperationException>(() => { ComparisonSigns.IsEqualTo.Contradicts(concept); });

                    Assert.Throws <InvalidOperationException>(() => { ComparisonSigns.Revert(concept); });

                    Assert.Throws <InvalidOperationException>(() => { concept.CanBeReverted(); });

                    Assert.Throws <InvalidOperationException>(() => { ComparisonSigns.CompareThreeValues(concept, ComparisonSigns.IsEqualTo); });
                    Assert.Throws <InvalidOperationException>(() => { ComparisonSigns.CompareThreeValues(ComparisonSigns.IsEqualTo, concept); });
                }
            }
        }
Esempio n. 5
0
 public ComparisonStatement SwapOperands()
 {
     return(new ComparisonStatement(null, leftValue: RightValue, rightValue: LeftValue, comparisonSign: ComparisonSigns.Revert(ComparisonSign)));
 }