Beispiel #1
0
        public void Case02()
        {
            var random = new Random();

            foreach (var _ in Enumerable.Range(0, 10))
            {
                int a = random.Next(-100, 100);
                int b = random.Next(-100, 100);
                TestContext.WriteLine($"a={a}, b={b}");

                Expression <Func <int, int, int> > expr1 = (x, y) => x - y;
                Expression <Func <int, int> >      expr2 = x => x / 2;

                var expr3 = ExpressionOperators.Then <int, int, int>(expr1, expr2);

                Assert.AreEqual((a - b) / 2, expr3.Compile().Invoke(a, b));
            }
        }
Beispiel #2
0
        public void Case01()
        {
            var random = new Random();

            foreach (var _ in Enumerable.Range(0, 10))
            {
                int a = random.Next(-100, 100);
                TestContext.WriteLine($"a={a}");

                Expression <Func <int, int> > expr1 = x => x - 1;
                Expression <Func <int, int> > expr2 = x => x / 2;

                var expr3 = ExpressionOperators.Then <int, int>(expr1, expr2);
                var expr4 = ExpressionOperators.Then <int, int>(expr2, expr1);

                Assert.AreEqual((a - 1) / 2, expr3.Compile().Invoke(a));
                Assert.AreEqual(a / 2 - 1, expr4.Compile().Invoke(a));
            }
        }