def test_pickle_controller(): names = ["CMAESOptimizer", "REPSOptimizer"] optimizers = [CMAESOptimizer, REPSOptimizer] for name, Optimizer in zip(names, optimizers): opt = Optimizer(initial_params=np.zeros(2)) ctrl = Controller(environment=ObjectiveFunction(), behavior_search=JustOptimizer(opt)) assert_pickle(name, ctrl)
def test_save_black_box_search(): bs = BlackBoxSearch(ConstantBehavior(), NoOptimizer()) bs.init(5, 5) assert_pickle("BlackBoxSearch", bs) path = "." + os.sep bs.write_results(path) bs.get_behavior_from_results(path) filename = path + "BlackBoxSearch.pickle" assert_true(os.path.exists(filename)) if os.path.exists(filename): os.remove(filename)
def test_optimizers_follow_standard_protocol(): for name, Optimizer in ALL_OPTIMIZERS: opt = Optimizer() n_params = 2 opt.init(n_params) assert_false(opt.is_behavior_learning_done()) params = np.empty(n_params) opt.get_next_parameters(params) assert_true(np.isfinite(params).all()) opt.set_evaluation_feedback(np.array([0.0])) params = opt.get_best_parameters() assert_equal(len(params), n_params) assert_true(np.isfinite(params).all()) assert_pickle(name, opt)
def test_contextual_optimizers_follow_standard_protocol(): for name, ContextualOptimizer in ALL_CONTEXTUALOPTIMIZERS: opt = ContextualOptimizer() n_params = 1 n_context_dims = 1 opt.init(n_params, n_context_dims) context = opt.get_desired_context() if context is None: context = np.zeros(n_context_dims) opt.set_context(context) assert_false(opt.is_behavior_learning_done()) params = np.empty(n_params) opt.get_next_parameters(params) assert_true(np.isfinite(params).all()) opt.set_evaluation_feedback(np.array([0.0])) policy = opt.best_policy() assert_true(np.isfinite(policy(context)).all()) assert_pickle(name, opt)