Description:
        Top m - 1 alternatives q = m(m - 1) + 2m moment conditions values calculation
    Parameters:
        votes: ordinal preference data (numpy ndarray of integers)

def top3_full(votes):
    """
    Description:
        Top m - 1 alternatives q = m(m - 1) + 2m moment conditions values calculation
    Parameters:
        votes: ordinal preference data (numpy ndarray of integers)
    """
    #create array of zeros, length = q
    res = np.zeros(2 * len(votes[0]) + (len(votes[0]) * (len(votes[0]) - 1)))

    #iterate through each vote
    for vote in votes:
        #set verification boolean to true
        ver = True
        #check if vote belongs to c1 < c2 < c3, c2 < c3 < c1... moment
        for i in range(0, len(votes[0])):
            if vote[i][0] != vote[i - 1][0] + 1 and vote[i][0] != 0:
                ver = False
                break
        if ver:
            res[len(votes[0]) + (len(votes[0]) * (len(votes[0]) - 1)) + vote[0][0]] += 1

        #increment moment of top ranked choice ranked at the top
        res[vote[0][0]] += 1

        #top two moment
        add = 0
        if vote[0][0] > vote[1][0]:
            add = 1
        res[(vote[0][0] + 1) * (len(votes[0]) - 1) + add + vote[1][0]] += 1

    res /= len(votes) #normalize moments
    
    return res