Example #1
0
        private static void AssertTransformation(
            Expression <Func <TestClass, bool> > input,
            Expression <Func <TestClass, bool> > output)
        {
            var visitor = new BooleanOptimizingExpressionVisitor();

            var result = visitor.Visit(input.Body);

            var inputHash = ExpressionEqualityComparer.Instance.GetHashCode(result);

            var outputHash = ExpressionEqualityComparer.Instance.GetHashCode(output.Body);

            if (inputHash != outputHash)
            {
                Assert.Fail($"Output expression trees do not match.\r\nExpected: {output}\r\nActual: {result}");
            }
        }
Example #2
0
        private static void AssertTransformation(
            Expression <Func <TestClass, bool> > input,
            Expression <Func <TestClass, bool> > output)
        {
            var visitor = new BooleanOptimizingExpressionVisitor();

            var result = visitor.Visit(input.Body);

            var hasher = new HashingExpressionVisitor();

            hasher.Visit(result);

            var inputHash = hasher.HashCode;

            hasher.Reset();

            hasher.Visit(output.Body);

            var outputHash = hasher.HashCode;

            Assert.AreEqual(inputHash, outputHash, "Output expression trees do not match");
        }