Пример #1
0
        public void AddExpression_Simple_Test()
        {
            var firstExpression  = new SimpleLogicExpression("a || b");
            var secondExpression = new SimpleLogicExpression("a && c");

            firstExpression.AddExpression(secondExpression);

            Assert.AreEqual("(a || b) && (a && c)", firstExpression.ToString());
            Assert.AreEqual("a && c", secondExpression.ToString());
        }
Пример #2
0
        public void AddExpression_AllEmpty_Test()
        {
            var firstExpression  = new SimpleLogicExpression(string.Empty);
            var secondExpression = new SimpleLogicExpression(string.Empty);

            firstExpression.AddExpression(secondExpression);

            Assert.AreEqual(string.Empty, firstExpression.ToString());
            Assert.AreEqual(string.Empty, secondExpression.ToString());
        }
Пример #3
0
        public void AddExpression_Complex_Test()
        {
            var firstExpression  = new SimpleLogicExpression("(!a || b) && c");
            var secondExpression = new SimpleLogicExpression("a && c || !(b && !a)");
            var thirdExpression  = new SimpleLogicExpression("!a && !b || (!a)");

            secondExpression.AddExpression(thirdExpression);

            var expected = "(a && c || !(b && !a)) && (!a && !b || (!a))".Trim().Normalize();
            var actual   = secondExpression.ToString().Trim().Normalize();

            Assert.AreEqual(expected, actual);

            firstExpression.AddExpression(secondExpression);

            var expected2 = "((!a || b) && c) && ((a && c || !(b && !a)) && (!a && !b || (!a)))".Trim().Normalize();
            var actual2   = firstExpression.ToString().Trim().Normalize();

            Assert.AreEqual(expected2, actual2);
        }