Exemplo n.º 1
0
        public void ImpliesOperatorConstructedProperly()
        {
            var aImpliesB = a.Implies(b);

            ExpressionTestHelper.CheckExpressionWithChildren(
                aImpliesB.Expression,
                ExpressionKind.Implies,
                Sort.Bool,
                "(=> a b)",
                a.Expression,
                b.Expression);
        }
Exemplo n.º 2
0
        public void NestedOperatorsWorkProperly()
        {
            var nested = (a && b && c) || (b == c) || b.Implies(c);

            var or = nested.Expression;

            ExpressionTestHelper.CheckExpression(
                or,
                ExpressionKind.Or,
                Sort.Bool,
                "(or (and a b c) (= b c) (=> b c))",
                3);

            var and = or.Children.ElementAt(0);

            ExpressionTestHelper.CheckExpressionWithChildren(
                and,
                ExpressionKind.And,
                Sort.Bool,
                "(and a b c)",
                a.Expression,
                b.Expression,
                c.Expression);

            var eq = or.Children.ElementAt(1);

            ExpressionTestHelper.CheckExpressionWithChildren(
                eq,
                ExpressionKind.Equal,
                Sort.Bool,
                "(= b c)",
                b.Expression,
                c.Expression);

            var implies = or.Children.ElementAt(2);

            ExpressionTestHelper.CheckExpressionWithChildren(
                implies,
                ExpressionKind.Implies,
                Sort.Bool,
                "(=> b c)",
                b.Expression,
                c.Expression);
        }