public void JumpTest_tooManyJumpBacks() { var genome = new GenomeWrapper("053456789", 1000, 2); genome.Jump(); //jumps to index 05 var g1 = genome.GetGene(); //reads index 05 & 06 genome.JumpBack(); //jumps back to index 2. genome.JumpBack(); //jumps back fails, left at index 2. var g2 = genome.GetGene(); Assert.AreEqual("67", g1); Assert.AreEqual("34", g2); }
//[Tooltip("These components will be configured in order by this behaviour when Configure is called on it.")] //public List<IGeneticConfigurable> ComponentsToConfigure = new List<IGeneticConfigurable>(); protected override GenomeWrapper SubConfigure(GenomeWrapper genomeWrapper) { var componentsToConfigure = GetComponentsInChildren <IGeneticConfigurable>().ToList(); componentsToConfigure.AddRange(ExtraConfigurables.Where(c => c != null).Select(c => c as IGeneticConfigurable)); componentsToConfigure = componentsToConfigure.Distinct().Where(c => c != null && c.GetType() != GetType()).ToList(); foreach (var c in componentsToConfigure) { genomeWrapper.Jump(); genomeWrapper = c.Configure(genomeWrapper); genomeWrapper.JumpBack(); } return(genomeWrapper); }