def test_compute_rank_successors(self): # Example from the paper. string = 'abcdacadbab' alphabet = list(set(string)) occurlist = ['a', 'b', 'c', 'd'] ranks = didier.compute_ranks(occurlist, alphabet) expected_succ = [1, 2, 3, None, 1, 3, 1, None, 5, 8, 5] actual_succ = didier.compute_rank_successors(string, ranks) self.assertEqual(expected_succ, actual_succ)
def test_compute_ranks(self): alphabet = ['a', 'b', 'c', 'd', 'e'] occurlist = ['b', 'c', 'd'] inf = float('inf') expected_ranklist = { 'a' : inf, 'b' : 0, 'c' : 1, 'd' : 2, 'e' : inf } actual_ranklist = didier.compute_ranks(occurlist, alphabet) self.assertEqual(len(expected_ranklist), len(actual_ranklist)) for c in expected_ranklist.keys(): self.assertEqual(expected_ranklist[c], actual_ranklist[c])
def test_compute_rank_intervals(self): # Example from the paper. string = 'abcdacadbab' alphabet = list(set(string)) occurlist = ['a', 'b', 'c', 'd'] ranks = didier.compute_ranks(occurlist, alphabet) expected_rank_intervals = { 0 : (0, 1), 1 : (0, 2), 2 : (0, 3), 3 : (0, 11), 4 : (4, 5), 5 : (4, 7), 6 : (6, 7), 7 : (0, 11), 8 : (8, 11), 9 : (9, 10), 10 : (8, 11) } actual_rank_intervals = didier.compute_rank_intervals(string, ranks) self.assertEqual(expected_rank_intervals, actual_rank_intervals)