public void usedVariablesTest()
        {
            SequenceData target = new SequenceData(); // TODO: Initialize to an appropriate value
            Assert.AreEqual(0, target.usedVariables().Count);

            target.Variables.Add(new Variable());
            target.Variables[0].VariableName = "Variable Name";
            Assert.AreEqual(0, target.usedVariables().Count); // Unused variables in variable list should still not appear

            target.TimeSteps.Add(new TimeStep());
            target.TimeSteps[0].StepDuration.parameter.variable = target.Variables[0];
            Assert.AreEqual(1, target.usedVariables().Count); // Unused variables in variable list should still not appear

            target.TimeSteps.Add(new TimeStep());
            target.TimeSteps[1].StepDuration.parameter.variable = target.Variables[0];
            Assert.AreEqual(1, target.usedVariables().Count); // Variables should not appear duplicate times even if used in several places
        }
        public string insertSequence(SequenceData insertMe, int insertIndex)
        {
            bool specialUsed = false;
            Dictionary<Variable, string> temp = insertMe.usedVariables();
            foreach (Variable var in temp.Keys)
            {
                if (var.IsSpecialVariable)
                    specialUsed = true;
            }

            commonWaveforms.AddRange(insertMe.commonWaveforms);
            analogGroups.AddRange(insertMe.analogGroups);
            rs232Groups.AddRange(insertMe.rs232Groups);
            gpibGroups.AddRange(insertMe.gpibGroups);
            variables.AddRange(insertMe.variables);
            DigitalPulses.AddRange(insertMe.DigitalPulses);
            TimestepGroups.AddRange(insertMe.TimestepGroups);

            this.TimeSteps.InsertRange(insertIndex, insertMe.TimeSteps);

            this.cleanupSpecialVariables();

            if (specialUsed)
            {
                return "Warning: the inserted sequence made use of a \"Special Variable\" (iterCount, iterNum, etc.). The special variables used in the inserted sequence are now likely to be bound incorrectly. Please check the variables used in the inserted part of the sequence.";
            }
            else
            {
                return null;
            }
        }