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}"); } }
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"); }