コード例 #1
0
 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)
コード例 #2
0
  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])
コード例 #3
0
  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)