Beispiel #1
0
        private void TestInverse <aType, PathType>(string expr, string exceptedResult, bool reverse = false)
        {
            var inverse     = new Inverter(CreateParser());
            var interpreter = new Interpreter();

            String argName = "a", resName = "Path";

            if (reverse)
            {
                Swap(ref argName, ref resName);
                //swap(ref expr, ref exceptedResult);
            }

            var aParam    = new Parameter(argName, typeof(aType));
            var resParam  = Expression.Parameter(typeof(PathType), resName);
            var resParam2 = new Parameter(resName, typeof(PathType));

            var realInverseExpr     = inverse.InverseExpression(interpreter.Parse(expr, aParam).Expression, resParam).Expression.ToString();
            var expectedInverseExpr = interpreter.Parse(exceptedResult, resParam2).Expression.ToString();

            Assert.AreEqual(expectedInverseExpr, realInverseExpr);
        }