Files
python/exercises/hamming/hamming_test.py

58 lines
1.8 KiB
Python
Raw Normal View History

2014-04-07 22:32:31 -03:00
import unittest
import hamming
2014-04-07 22:32:31 -03:00
class HammingTest(unittest.TestCase):
2014-04-07 22:32:31 -03:00
def test_identical_strands(self):
self.assertEqual(0, hamming.distance("A", "A"))
2014-04-07 22:32:31 -03:00
def test_long_identical_strands(self):
self.assertEqual(0, hamming.distance("GGACTGA", "GGACTGA"))
2014-04-07 22:32:31 -03:00
def test_complete_distance_in_single_nucleotide_strands(self):
self.assertEqual(1, hamming.distance("A", "G"))
2014-04-07 22:32:31 -03:00
def test_complete_distance_in_small_strands(self):
self.assertEqual(2, hamming.distance("AG", "CT"))
2014-04-07 22:32:31 -03:00
def test_small_distance_in_small_strands(self):
self.assertEqual(1, hamming.distance("AT", "CT"))
2014-04-07 22:32:31 -03:00
def test_small_distance(self):
self.assertEqual(1, hamming.distance("GGACG", "GGTCG"))
2014-04-07 22:32:31 -03:00
def test_small_distance_in_long_strands(self):
self.assertEqual(2, hamming.distance("ACCAGGG", "ACTATGG"))
def test_non_unique_character_in_first_strand(self):
self.assertEqual(1, hamming.distance("AGA", "AGG"))
def test_non_unique_character_in_second_strand(self):
self.assertEqual(1, hamming.distance("AGG", "AGA"))
def test_same_nucleotides_in_different_positions(self):
self.assertEqual(2, hamming.distance("TAG", "GAT"))
def test_large_distance(self):
self.assertEqual(4, hamming.distance("GATACA", "GCATAA"))
def test_large_distance_in_off_by_one_strand(self):
self.assertEqual(9, hamming.distance("GGACGGATTCTG", "AGGACGGATTCT"))
def test_empty_strands(self):
self.assertEqual(0, hamming.distance("", ""))
def test_disallow_first_strand_longer(self):
with self.assertRaises(ValueError):
hamming.distance("AATG", "AAA")
def test_disallow_second_strand_longer(self):
with self.assertRaises(ValueError):
hamming.distance("ATA", "AGTG")
2014-04-07 22:32:31 -03:00
if __name__ == '__main__':
unittest.main()