public void ExtensionShouldBeEqual_SameReduceExpression()
        {
            var x = StubExpression.Extension(Expression.Empty());
            var y = StubExpression.Extension(Expression.Empty());

            AssertAreEqual(x, y);
        }
        public void ExtensionShouldBeNotEqual_DifferentReduceExpression()
        {
            var x = StubExpression.Extension(StubObject.Expressions.Default);
            var y = StubExpression.Extension(StubObject.Expressions.Constant);

            AssertAreNotEqual(x, y);
        }
        public void ShouldBeEqual_ExpressionEqualityComparer_Inheritance()
        {
            var target = new ExtendedExpressionEqualityComparer();
            var x      = Expression.Property(StubExpression.Unknown(5), "Id");
            var y      = Expression.Property(StubExpression.Unknown(5), "Id");

            AssertAreEqual(x, y, target);
        }
        public void ShouldBeEqual_ExpressionEqualityComparer_Composition_UnknownExpressionNode()
        {
            var target = new ExpressionEqualityComparer(UnknownExpression.EqualityComparer);
            var x      = Expression.Property(StubExpression.Unknown(3), "Id");
            var y      = Expression.Property(StubExpression.Unknown(3), "Id");

            AssertAreEqual(x, y, target);
        }
        public void Issue_27_EqualityComparer_Ignored_Lambda_Body_Evaluation()
        {
            var target = new ExpressionEqualityComparer(UnknownExpression.EqualityComparer);
            var x      = Expression.Lambda(StubExpression.Unknown(3));
            var y      = Expression.Lambda(StubExpression.Unknown(3));

            AssertExpressions.Equal(x, y, target);
        }
 public void ShouldBeEqual_EqualityComparableExpression3_And_EqualityComparableExpression3()
 {
     AssertAreEqual(StubExpression.Comparable(3), StubExpression.Comparable(3));
 }
 public void ShouldBeNotEqual_UnknownExpression3_And_UnknownExpression3()
 {
     AssertAreNotEqual(StubExpression.Unknown(3), StubExpression.Unknown(3));
 }