from ocesavac import ocesat
from collections import deque

def index_koincidence(text, mezery=False):
    t = ocesat(text, mezery)
    if mezery:
        t = t[1:-1]
    deq = deque(t)
    shod = 0
    for i in range(1, len(t)):
        deq.rotate(1)
        shod += sum (x == y for x, y in zip(deq, t))
    return float(shod)/(len(t)*(len(t) - 1))

def index_koincidence2(text1, text2):
    #predpokladam, ze v textech jsou jenom znaky se kterymi pocitam
    shod = sum (x == y for x, y in zip(text1, text2))
    return float(shod)/min(len(text1), len(text2))
    
def index_rozkladu(text, deleni):
    if (deleni == 1):
        return index_koincidence(text)
    t = ocesat(text, False) #zatim bez mezer
    texty = rozklad(t, deleni)
    return sum([index_koincidence(text) for text in texty])/len(texty)

def tabulka_indexu(text):
    return '\n'.join(['{1:>2} {0:.3%}'.format(
        index_rozkladu(text, d), d) for d in range(1, 11)])

def rozklad(text, deleni):
    texty = []
    for i in range(deleni):
        texty.append(''.join(
            [text[j] for j in range(len(text)) if j % deleni == i]))
    return texty
