public void Counts_a_nucleotide_only_once() { var dna = new Dna("GGTTGG"); dna.Count('T'); Assert.That(dna.Count('T'), Is.EqualTo(2)); }
private void UpdatePosition(Point a, MoveDir dir) { //trim out redundant back and forth movement if (Dna.Count() > 1 && (int)dir == (int)(Dna.Last() + 2) % 4) { //reset our position back switch (Dna.Last()) { case MoveDir.N: Pos = new Point(Pos.X, Pos.Y + 1); break; case MoveDir.W: Pos = new Point(Pos.X + 1, Pos.Y); break; case MoveDir.S: Pos = new Point(Pos.X, Pos.Y - 1); break; case MoveDir.E: Pos = new Point(Pos.X - 1, Pos.Y); break; } //remove last dna record Dna.RemoveAt(Dna.Count() - 1); Path.RemoveAt(Path.Count() - 1); return; } Path.Add(a); Pos = a; Dna.Add(dir); }
public void Validates_nucleotides() { var dna = new Dna("GGTTGG"); Assert.Throws <InvalidNucleotideException>(() => dna.Count('X')); }
public void Counts_only_thymidine() { var dna = new Dna("GGGGTAACCCGG"); Assert.That(dna.Count('T'), Is.EqualTo(1)); }
public void Repetitive_cytidine_gets_counts() { var dna = new Dna("CCCCC"); Assert.That(dna.Count('C'), Is.EqualTo(5)); }
public void Has_no_adenosine() { var dna = new Dna(""); Assert.That(dna.Count('A'), Is.EqualTo(0)); }