def test_make_iterable_iterable(): test_list = [1, 2, 3] assert make_iterable(test_list) is test_list test_set = {1, 2, 3} assert make_iterable(test_set) is test_set test_tuple = (1, 2, 3) assert make_iterable(test_tuple) is test_tuple
def get_components_intersection( self, components: t.IComponentKey) -> Set[Entity]: components = make_iterable(components) entity_sets = list() for component_type in components: component_objects = self.orm.get_type(component_type) entity_set = { self.orm.get_relation(c.entity) for c in component_objects } entity_sets.append(entity_set) return set.intersection(*entity_sets)
def test_make_iterable_none(): assert make_iterable(None) == list()
def test_make_iterable_default(): test_object = object() iterable_test_object = make_iterable(test_object) assert iterable_test_object == [test_object] assert test_object is iterable_test_object[0]
def remove_components(self, components) -> None: components = make_iterable(components) for component in components: # todo: ObjectRelation powinien sam wyciągnąć te entity i je sobie usunąć na poziomie relacji entity = self.orm.get_relation(component.entity) self.orm.remove(component, entity)
def add_components(self, entity, components: t.IterableIComponent): components = make_iterable(components) for component in components: self.orm.add(entity, component)