def testTokenOverlap(self):
        tokens = Tokens()
        tokens.addLettersWithValue(1, "abccd")

        assert tokens.countOverlapForValue(1, "acd") == 3
        assert tokens.countOverlapForValue(1, "accd") == 4
        assert tokens.countOverlapForValue(1, "acdd") == 3
        
        pass
 def testDeltetDecrementTokens(self):   
     tokens = Tokens()
     tokens.addLettersWithValue(1, "ham")
     tokens.addLettersWithValue(3, "spam")
     tokens.addLettersWithValue(5, "shrubbery")
     
     tokens.deleteLowestLetters('shamm')
     tokens.decrement()
     assert tokens.countOverlapForValue(1, "ham") == 0
     assert tokens.countOverlapForValue(0, "ham") == 0
     assert tokens.countOverlapForValue(3, "spam") == 0
     assert tokens.countOverlapForValue(2, "spam") == 2
     assert tokens.countOverlapForValue(5, "shrubbery") == 0
     assert tokens.countOverlapForValue(4, "shrubbery") == 9
     
     tokens.deleteLowestLetters('shamm')
     tokens.decrement()
     assert tokens.countOverlapForValue(3, "spam") == 0
     assert tokens.countOverlapForValue(2, "spam") == 0
     assert tokens.countOverlapForValue(1, "spam") == 1
     assert tokens.countOverlapForValue(5, "shrubbery") == 0
     assert tokens.countOverlapForValue(4, "shrubbery") == 0
     assert tokens.countOverlapForValue(3, "shrubbery") == 7
     
     pass
 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
 def testDecrement(self):
     tokens = Tokens()
     tokens.addLettersWithValue(2, "ham")
     tokens.addLettersWithValue(3, "spam")
     
     tokens.decrement()
     assert tokens.countOverlapForValue(1, "ham") == 3
     assert tokens.countOverlapForValue(2, "spam") == 4
     
     tokens.decrement()
     assert tokens.countOverlapForValue(0, "ham") == 3
     assert tokens.countOverlapForValue(1, "spam") == 4
     
     tokens.decrement()
     assert tokens.countOverlapForValue(0, "ham") == 3
     assert tokens.countOverlapForValue(0, "spam") == 4
     
     pass