Sha256: ecf0d6afffba95d065e6325ec95239ff48ed9339fdcff0b76bebfc8bb5f54527

Contents?: true

Size: 1.32 KB

Versions: 26

Compression:

Stored size: 1.32 KB

Contents

"""Tests for the nucleotide-count exercise

Implementation note:
The count function must raise a ValueError with a meaningful error message
in case of a bad argument.
"""
import unittest

from nucleotide_count import count, nucleotide_counts


class DNATest(unittest.TestCase):
    def test_empty_dna_string_has_no_adenosine(self):
        self.assertEqual(0, count('', 'A'))

    def test_empty_dna_string_has_no_nucleotides(self):
        expected = {'A': 0, 'T': 0, 'C': 0, 'G': 0}
        self.assertEqual(expected, nucleotide_counts(""))

    def test_repetitive_cytidine_gets_counted(self):
        self.assertEqual(5, count('CCCCC', 'C'))

    def test_repetitive_sequence_has_only_guanosine(self):
        expected = {'A': 0, 'T': 0, 'C': 0, 'G': 8}
        self.assertEqual(expected, nucleotide_counts('GGGGGGGG'))

    def test_counts_only_thymidine(self):
        self.assertEqual(1, count('GGGGGTAACCCGG', 'T'))

    def test_validates_nucleotides(self):
        with self.assertRaises(ValueError):
            count("GACT", 'X')

    def test_counts_all_nucleotides(self):
        dna = ('AGCTTTTCATTCTGACTGCAACGGGCAATATGTCT'
               'CTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC')
        expected = {'A': 20, 'T': 21, 'G': 17, 'C': 12}
        self.assertEqual(expected, nucleotide_counts(dna))

if __name__ == '__main__':
    unittest.main()

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
trackler-2.0.3.0 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.2.0 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.1.2 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.1.1 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.1.0 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.0.10 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.0.9 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.0.8 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.0.7 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.0.6 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.0.5 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.0.4 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.0.3 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.0.2 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.0.1 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-2.0.0.0 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-1.0.4.1 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-1.0.4.0 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-1.0.3.0 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py
trackler-1.0.2.1 tracks/python/exercises/nucleotide-count/nucleotide_count_test.py