Exemplo n.º 1
0
    public void Counts_a_nucleotide_only_once()
    {
        var dna = new Dna("GGTTGG");

        dna.Count('T');
        Assert.That(dna.Count('T'), Is.EqualTo(2));
    }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
    public void Validates_nucleotides()
    {
        var dna = new Dna("GGTTGG");

        Assert.Throws <InvalidNucleotideException>(() => dna.Count('X'));
    }
Exemplo n.º 4
0
    public void Counts_only_thymidine()
    {
        var dna = new Dna("GGGGTAACCCGG");

        Assert.That(dna.Count('T'), Is.EqualTo(1));
    }
Exemplo n.º 5
0
    public void Repetitive_cytidine_gets_counts()
    {
        var dna = new Dna("CCCCC");

        Assert.That(dna.Count('C'), Is.EqualTo(5));
    }
Exemplo n.º 6
0
    public void Has_no_adenosine()
    {
        var dna = new Dna("");

        Assert.That(dna.Count('A'), Is.EqualTo(0));
    }