コード例 #1
0
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
コード例 #2
0
 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)
コード例 #3
0
def test_make_iterable_none():
    assert make_iterable(None) == list()
コード例 #4
0
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]
コード例 #5
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)
コード例 #6
0
 def add_components(self, entity, components: t.IterableIComponent):
     components = make_iterable(components)
     for component in components:
         self.orm.add(entity, component)