Determines whether the list of Preference objects represents complete strict orderings over
        the candidates (soc), incomplete strict orderings (soi), complete orderings with ties (toc), 
        or incomplete orderings with ties (toi). WARNING: elections that do not fall under the 
        above four categories may be falsely identified.

def getElecType(self): 
        """
        Determines whether the list of Preference objects represents complete strict orderings over
        the candidates (soc), incomplete strict orderings (soi), complete orderings with ties (toc), 
        or incomplete orderings with ties (toi). WARNING: elections that do not fall under the 
        above four categories may be falsely identified.
        """

        tiesPresent = False
        incompletePresent = False

        # Go through the list of Preferences and see if any contain a tie or are incomplete.
        for preference in self.preferences:
            if preference.containsTie() == True:
                tiesPresent = True
                break
            if preference.isFullPreferenceOrder(self.candMap.keys()) == False:
                incompletePresent = True
                break

        if tiesPresent == False and incompletePresent == False:
            elecType = "soc"
        elif tiesPresent == False and incompletePresent == True:
            elecType = "soi"
        elif tiesPresent == True and incompletePresent == False:
            elecType = "toc"
        elif tiesPresent == True and incompletePresent == True:
            elecType = "toi"
        return elecType