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; } }