def test_intuitive_physics_all_objects_diagonal_size(): # The fall-down list should contain the move-across objects as well. for definition in util.retrieve_complete_definition_list( [objects.get_intuitive_physics(True)] )[0]: print(f'{definition}\n========================================') assert ( (definition['dimensions']['x'] * math.sqrt(2)) <= (occluders.OCCLUDER_MAX_SCALE_X + util.MAX_SIZE_DIFFERENCE) )
def test_intuitive_physics_move_across_all_objects_untrained_shapes(): definition_list = util.retrieve_complete_definition_list( [objects.get_intuitive_physics(False)] )[0] trained_list = util.retrieve_trained_definition_list([definition_list])[0] untrained_list = util.retrieve_untrained_definition_list( [definition_list], tags.SCENE.UNTRAINED_SHAPE )[0] for definition_1 in trained_list: option_list = [ definition_2 for definition_2 in untrained_list if util.is_similar_except_in_shape(definition_1, definition_2, True) ] assert len(option_list) >= 2
def test_intuitive_physics_fall_down_complex_objects_untrained_sizes(): definition_list = util.retrieve_complete_definition_list( [objects.get_intuitive_physics(True, False, True)] )[0] trained_list = util.retrieve_trained_definition_list([definition_list])[0] untrained_list = util.retrieve_untrained_definition_list( [definition_list], tags.SCENE.UNTRAINED_SIZE )[0] for definition_1 in trained_list: option_list = [ definition_2 for definition_2 in untrained_list if util.is_similar_except_in_size(definition_1, definition_2, True) ] # We want at least two possible untrained objects. assert len(option_list) >= 2