def test_emitting(self): times_emitted = [0] def increment_times_emitted(): times_emitted[0] += 1 emitter = emitting.Emitter(outputs=increment_times_emitted) emitting_ordered_set = self.ordered_set_type(range(7), emitter=emitter) assert times_emitted == [0] emitting_ordered_set.add(7) assert times_emitted == [1] emitting_ordered_set.add(7) assert times_emitted == [1] emitting_ordered_set.discard(17) assert times_emitted == [1] assert emitting_ordered_set.get_without_emitter() == \ OrderedSet(range(8)) emitting_ordered_set |= (8, 9, 10) assert times_emitted == [4] emitting_ordered_set |= (8, 9, 10) assert times_emitted == [4] assert emitting_ordered_set.get_without_emitter() == \ OrderedSet(range(11)) emitting_ordered_set.move_to_end(4) assert times_emitted == [5] assert tuple(emitting_ordered_set) == \ (0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 4)
def test_sort(): ordered_set = OrderedSet([5, 61, 2, 7, 2]) assert ordered_set == {5, 61, 2, 7} ordered_set.move_to_end(61) assert list(ordered_set) == [5, 2, 7, 61] ordered_set.sort() assert list(ordered_set) == [2, 5, 7, 61] ordered_set.sort(key=lambda x: -x, reverse=True) assert list(ordered_set) == [2, 5, 7, 61]
def test(): '''Test the basic workings of `OrderedSet`.''' ordered_set = OrderedSet(xrange(4)) assert list(ordered_set) == list(range(4)) assert len(ordered_set) == 4 assert 1 in ordered_set assert 3 in ordered_set assert 7 not in ordered_set ordered_set.add(8) assert list(ordered_set)[-1] == 8 ordered_set.discard(2) assert 2 not in ordered_set assert list(reversed(ordered_set)) == [8, 3, 1, 0] assert ordered_set.pop() == 8 assert ordered_set.pop(last=False) == 0
def test_operations_on_different_types(): x1 = OrderedSet(range(0, 4)) | FrozenOrderedSet(range(2, 6)) x2 = OrderedSet(range(0, 4)) & FrozenOrderedSet(range(2, 6)) x3 = FrozenOrderedSet(range(0, 4)) | OrderedSet(range(2, 6)) x4 = FrozenOrderedSet(range(0, 4)) & OrderedSet(range(2, 6)) assert type(x1) == OrderedSet assert type(x2) == OrderedSet assert type(x3) == FrozenOrderedSet assert type(x4) == FrozenOrderedSet assert x1 == OrderedSet(range(0, 6)) assert x2 == OrderedSet(range(2, 4)) assert x3 == FrozenOrderedSet(range(0, 6)) assert x4 == FrozenOrderedSet(range(2, 4)) assert logic_tools.all_equivalent((x1, x2, x3, x4), relation=operator.ne)