public void TestGetModifications()
        {
            var parameter = new VariableExpression("variable1");
            var name      = new FunctionNameExpression("func");
            var expr      = new FunctionCallExpression(name, new ExpressionBase[] { parameter });

            var modifications = new HashSet <string>();

            ((INestedExpressions)expr).GetModifications(modifications);

            Assert.That(modifications.Count, Is.EqualTo(0));
        }
        public void TestNestedExpressions()
        {
            var parameter = new VariableExpression("variable1");
            var name      = new FunctionNameExpression("func");
            var expr      = new FunctionCallExpression(name, new ExpressionBase[] { parameter });

            var nested = ((INestedExpressions)expr).NestedExpressions;

            Assert.That(nested.Count(), Is.EqualTo(2));
            Assert.That(nested.Contains(name));
            Assert.That(nested.Contains(parameter));
        }
        public void TestGetDependencies()
        {
            var parameter = new VariableExpression("variable1");
            var name      = new FunctionNameExpression("func");
            var expr      = new FunctionCallExpression(name, new ExpressionBase[] { parameter });

            var dependencies = new HashSet <string>();

            ((INestedExpressions)expr).GetDependencies(dependencies);

            Assert.That(dependencies.Count, Is.EqualTo(2));
            Assert.That(dependencies.Contains("func"));
            Assert.That(dependencies.Contains("variable1"));
        }