Exemplo n.º 1
0
        public void SyntaxTrie_Unchanged5()
        {
            Expression <Action> f = () => Foo(x => x, x => x, x => x, x => x);
            var g = AlphaRenamer.EliminateNameConflicts(f);

            var eq = new ExpressionEqualityComparer();

            Assert.IsTrue(eq.Equals(f, g));
            Assert.AreSame(f, g);
        }
Exemplo n.º 2
0
        public void SyntaxTrie_Unchanged4()
        {
            Expression <Func <int, Func <int, int> > > f = x => y => y;
            var g = AlphaRenamer.EliminateNameConflicts(f.Body);

            var eq = new ExpressionEqualityComparer();

            Assert.IsTrue(eq.Equals(f.Body, g));
            Assert.AreSame(f.Body, g);
        }
Exemplo n.º 3
0
        public void SyntaxTrie_Rename4()
        {
            var x = Expression.Parameter(typeof(int));
            var y = Expression.Parameter(typeof(int));
            var z = Expression.Parameter(typeof(int));

            var f = Expression.Lambda(Expression.Lambda(Expression.Lambda(z, z), y), x);
            var g = AlphaRenamer.EliminateNameConflicts(f);

            Assert.AreEqual("Param_0 => Param_1 => Param_2 => Param_2", f.ToString());
            Assert.AreEqual("Param_0 => Param_1 => Param_2 => Param_2", g.ToString());
        }
Exemplo n.º 4
0
        public void SyntaxTrie_Rename3()
        {
            var x = Expression.Parameter(typeof(int), "x");
            var y = Expression.Parameter(typeof(int), "x0");
            var z = Expression.Parameter(typeof(int), "x");

            var f = Expression.Lambda(Expression.Lambda(Expression.Lambda(z, z), y), x);
            var g = AlphaRenamer.EliminateNameConflicts(f);

            Assert.AreEqual("x => x0 => x => x", f.ToString());
            Assert.AreEqual("x => x0 => x1 => x1", g.ToString());
        }
Exemplo n.º 5
0
        public void SyntaxTrie_Rename1()
        {
            var x = Expression.Parameter(typeof(int), "x");
            var y = Expression.Parameter(typeof(int), "x");

            var f = Expression.Lambda <Func <int, Func <int, int> > >(Expression.Lambda(y, y), x);
            var g = (Expression <Func <int, Func <int, int> > >)AlphaRenamer.EliminateNameConflicts(f);

            Assert.AreEqual(2, f.Compile()(1)(2));
            Assert.AreEqual(2, g.Compile()(1)(2));

            Assert.AreEqual("x => x => x", f.ToString());
            Assert.AreEqual("x => x0 => x0", g.ToString());
        }
Exemplo n.º 6
0
 public void SyntaxTrie_ArgumentChecking()
 {
     AssertEx.ThrowsException <ArgumentNullException>(() => AlphaRenamer.EliminateNameConflicts(expression: null), ex => Assert.AreEqual("expression", ex.ParamName));
 }