Пример #1
0
            public void Evaluate_WhenCalled_ReturnsExpected()
            {
                var expression = new FuncExpression <SomeClass>()
                {
                    Left      = new ValueExpression <SomeClass>(5.0),
                    Right     = new ValueExpression <SomeClass>(9.0),
                    Operation = new Operation((a, b) => a + b, "+"),
                };

                var someClass = new SomeClass();

                Assert.That(expression.Evaluate(someClass), Is.EqualTo(14.0));
            }
Пример #2
0
            public void Evaluate_WhenClonedAndCloneHasRightChanged_Unchanged()
            {
                var expression = new FuncExpression <SomeClass>()
                {
                    Left      = new ValueExpression <SomeClass>(5.0),
                    Right     = new ValueExpression <SomeClass>(9.0),
                    Operation = new Operation((a, b) => a + b, "+"),
                };

                var clone = (FuncExpression <SomeClass>)expression.Clone();

                clone.Right = new ValueExpression <SomeClass>(3.0);

                var someClass = new SomeClass();

                Assert.That(expression.Evaluate(someClass), Is.EqualTo(14.0));
                Assert.That(clone.Evaluate(someClass), Is.EqualTo(8.0));
            }