Sha256: 08e40a610980c57358f60446f65991b1ba9a33497de3e76eae82efbe1c163247
Contents?: true
Size: 1.62 KB
Versions: 64
Compression:
Stored size: 1.62 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(count('', 'A'), 0) def test_empty_dna_string_has_no_nucleotides(self): expected = {'A': 0, 'T': 0, 'C': 0, 'G': 0} self.assertEqual(nucleotide_counts(""), expected) def test_repetitive_cytidine_gets_counted(self): self.assertEqual(count('CCCCC', 'C'), 5) def test_repetitive_sequence_has_only_guanosine(self): expected = {'A': 0, 'T': 0, 'C': 0, 'G': 8} self.assertEqual(nucleotide_counts('GGGGGGGG'), expected) def test_counts_only_thymidine(self): self.assertEqual(count('GGGGGTAACCCGG', 'T'), 1) def test_validates_nucleotides(self): with self.assertRaisesWithMessage(ValueError): count("GACT", 'X') def test_counts_all_nucleotides(self): dna = ('AGCTTTTCATTCTGACTGCAACGGGCAATATGTCT' 'CTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC') expected = {'A': 20, 'T': 21, 'G': 17, 'C': 12} self.assertEqual(nucleotide_counts(dna), expected) # Utility functions def setUp(self): try: self.assertRaisesRegex except AttributeError: self.assertRaisesRegex = self.assertRaisesRegexp def assertRaisesWithMessage(self, exception): return self.assertRaisesRegex(exception, r".+") if __name__ == '__main__': unittest.main()
Version data entries
64 entries across 64 versions & 1 rubygems