Esempio n. 1
0
 def test_neighbors_consistant(self):
     # Check to make sure our key relationships are bidirectional
     # because we are using this map to represent a bidirectional
     # graph.
     ed = WeightedEditDistance()
     for neighbor in ed._neighbors:
         for edge in ed._neighbors[neighbor]:
             self.assertTrue(neighbor in ed._neighbors[edge])
Esempio n. 2
0
    def test_key_distance(self):
        ed = WeightedEditDistance()
        self.assertEqual(ed._key_distance('q', 'q'), 0)
        self.assertEqual(ed._key_distance('q', 'w'), 1)
        self.assertEqual(ed._key_distance('u', 'n'), 2)
        self.assertEqual(ed._key_distance('q', 'p'), 9)

        # '~' is not in our graph, so we should get the default maximum
        # used for characters we don't know about.
        self.assertEqual(ed._key_distance('h', '~'), ed._MAX_DISTANCE)
Esempio n. 3
0
    def test_edit_distance(self):
        ed = WeightedEditDistance()
        self.assertEqual(ed.edit_distance('led', 'bed'), 4)
        self.assertEqual(ed.edit_distance('bed', 'led'), 4)
        self.assertEqual(ed.edit_distance('a', 'ab'), 10)
        self.assertEqual(ed.edit_distance('ab', 'a'), 10)

        # Counts the two 'p's in 'apple' as insertions.
        # Edit distance between 'l' and 'd' is 6.
        # Edit distance between 'e' and 'd' is 1.
        # Total edit distance is 20 + 6 + 1 = 27.
        self.assertEqual(ed.edit_distance('apple', 'add'), 27)
        self.assertEqual(ed.edit_distance('add', 'apple'), 27)
 def __init__(self):
     model, dictionary = self._read_corpus(self._corpus)
     self._model = model
     self._dict = dictionary
     self._wed = WeightedEditDistance()