def testAddDeleteTokens(self):
     
     tokens = Tokens()
     tokens.addLettersWithValue(1, "ham")
     tokens.addLettersWithValue(2, "spam")
     
     assert tokens.countOverlapForValue(1, "ham") == 3
     assert tokens.countOverlapForValue(2, "ham") == 2
     assert tokens.countOverlapForValue(1, "spam") == 2
     assert tokens.countOverlapForValue(2, "spam") == 4
     assert tokens.countOverlapForValue(2, "egg") == 0
     
     tokens.addLettersWithValue(3, "egg")
     assert tokens.countCharacterForValue(3, 'g') == 2
     assert tokens.countOverlapForValue(3, "egg") == 3
     tokens.deleteLowestLetters('ag')
     assert tokens.countCharacterForValue(1, 'a') == 0
     assert tokens.countCharacterForValue(2, 'a') == 1
     assert tokens.countCharacterForValue(3, 'g') == 1
     
     tokens.deleteLowestLetters('mm')
     assert tokens.countCharacterForValue(1, 'm') == 0
     assert tokens.countCharacterForValue(2, 'm') == 0
     assert tokens.countCharacterForValue(3, 'm') == 0