public void AggregateCodeItUp()
        {
            var result = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int));
            var target = new StatementAggregate(result, new ValSimple("5", typeof(int)));
            Assert.AreEqual(0, target.DependentVariables.Count());
            Assert.AreEqual(result.RawValue, target.ResultVariable.RawValue);
            Assert.AreEqual(result.RawValue, target.ResultVariables.First());

            target.CodeItUp().DumpToConsole();

            Assert.AreEqual(1, target.CodeItUp().Count());
            Assert.IsTrue(target.CodeItUp().First().Contains("="), "the equal sign");
        }
        public void AggregateRenameDependent()
        {
            var result = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int));
            var dep = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int));
            var depname = dep.RawValue;
            var target = new StatementAggregate(result, dep);
            target.CodeItUp().DumpToConsole();

            target.RenameVariable(dep.RawValue, "foot");

            target.CodeItUp().DumpToConsole();

            var r = target.CodeItUp().ToArray();
            Assert.AreEqual(-1, r[0].IndexOf(depname));
            Assert.AreNotEqual(-1, r[0].IndexOf("foot"));

            Assert.AreEqual(result.RawValue, target.ResultVariable.RawValue);
            Assert.AreEqual(1, target.DependentVariables.Count());
            Assert.AreEqual("foot", target.DependentVariables.First());
        }