public void ExpressionExtensions_Evaluate_Lambda_Cached()
        {
            var cache = new AssertionCache();
            Expression <Func <int> > f = () => 42;
            var result = f.Evaluate <int>(cache);

            Assert.AreEqual(42, result);
            Assert.AreEqual(1, cache.GetOrAddCount);
        }
        public void ExpressionExtensions_Evaluate_NonLambda_Typed_Cached()
        {
            var cache  = new AssertionCache();
            var e      = Expression.Add(Expression.Constant(41), Expression.Constant(1));
            var result = e.Evaluate <int>(cache);

            Assert.AreEqual(42, result);
            Assert.AreEqual(1, cache.GetOrAddCount);
        }