def __init__(self, element_type, content=()): """ Initialize a typed sorted set. :param element_type: Expected type for values. :param content: (optional) Sequence of values to initialize sorted set with. """ if not is_sequence(content): raise exceptions.TypeException('sequence', type(content)) self.__type = element_type self.__list = [] for element in content: self.add(element)
def test_is_sequence_and_is_dict(): """Check sorted dict with is_sequence() and is_dict().""" assert common.is_dictionary( SortedDict(str, int, { 'a': 3, 'b': -1, 'c': 12 })) assert common.is_dictionary(SortedDict(int, float), ) assert not common.is_sequence(SortedDict(str, str))
def test_is_sequence(): """ Test sequence type checking function. """ assert common.is_sequence((1, 2, 3)) assert common.is_sequence([1, 2, 3]) assert common.is_sequence({1, 2, 3}) assert common.is_sequence(()) assert common.is_sequence([]) assert common.is_sequence(set()) assert not common.is_sequence('i am a string') assert not common.is_sequence({}) assert not common.is_sequence(1) assert not common.is_sequence(False) assert not common.is_sequence(-2.5)
def validate(self, element): if not is_sequence(element): raise exceptions.TypeException('sequence', type(element)) for seq_element in element: self.element_type.validate(seq_element)
def test_common_utils_with_sorted_set(): """Check sorted set with is_sequence() and is_dictionary().""" assert common.is_sequence(SortedSet(int, (1, 2, 3))) assert common.is_sequence(SortedSet(int)) assert not common.is_dictionary(SortedSet(int, (1, 2, 3))) assert not common.is_dictionary(SortedSet(int))