Beispiel #1
0
def try_create_meta_curriculum(
    curriculum_config: Optional[Dict], env: SubprocessEnvManager, restore: bool = False
) -> Optional[MetaCurriculum]:
    if curriculum_config is None or len(curriculum_config) <= 0:
        return None
    else:
        meta_curriculum = MetaCurriculum(curriculum_config)
        if restore:
            meta_curriculum.try_restore_all_curriculum()
        return meta_curriculum
def test_restore_curriculums(mock_trainingstatus):
    meta_curriculum = MetaCurriculum(test_meta_curriculum_config)
    # Test restore to value
    mock_trainingstatus.get_parameter_state.return_value = 2
    meta_curriculum.try_restore_all_curriculum()
    mock_trainingstatus.get_parameter_state.assert_has_calls(
        [
            call("Brain1", StatusType.LESSON_NUM),
            call("Brain2", StatusType.LESSON_NUM)
        ],
        any_order=True,
    )
    assert meta_curriculum.brains_to_curricula["Brain1"].lesson_num == 2
    assert meta_curriculum.brains_to_curricula["Brain2"].lesson_num == 2

    # Test restore to None
    mock_trainingstatus.get_parameter_state.return_value = None
    meta_curriculum.try_restore_all_curriculum()

    assert meta_curriculum.brains_to_curricula["Brain1"].lesson_num == 0
    assert meta_curriculum.brains_to_curricula["Brain2"].lesson_num == 0