def test_pso_run(): def square(x): return np.sum(x**2) def hook(optimizer, space, function): return new_function = function.Function(pointer=square) new_pso = pso.PSO() search_space = search.SearchSpace(n_agents=5, n_iterations=20, n_variables=2, lower_bound=[0, 0], upper_bound=[10, 10]) history = new_pso.run(search_space, new_function, pre_evaluation=hook) assert len(history.agents) > 0 assert len(history.best_agent) > 0 assert len(history.local) > 0 best_fitness = history.best_agent[-1][1] assert best_fitness <= constants.TEST_EPSILON, 'The algorithm pso failed to converge.'
def test_opytimizer_update_args(): space = search.SearchSpace(1, 1, 0, 1) func = function.Function(callable) optimizer = pso.PSO() new_opytimizer = opytimizer.Opytimizer(space, optimizer, func) assert len(new_opytimizer.update_args) == 1
def test_opytimizer_save(): space = search.SearchSpace(1, 1, 0, 1) func = function.Function(callable) optimizer = pso.PSO() new_opytimizer = opytimizer.Opytimizer(space, optimizer, func) new_opytimizer.save('out.pkl')
def test_opytimizer_history(): space = search.SearchSpace(1, 1, 0, 1) func = function.Function(callable) optimizer = pso.PSO() new_opytimizer = opytimizer.Opytimizer(space, optimizer, func) assert type(new_opytimizer.history).__name__ == 'History'
def test_opytimizer_total_iterations(): space = search.SearchSpace(1, 1, 0, 1) func = function.Function(callable) optimizer = pso.PSO() new_opytimizer = opytimizer.Opytimizer(space, optimizer, func) assert new_opytimizer.total_iterations == 0
def test_pso_update(): search_space = search.SearchSpace(n_agents=2, n_variables=2, lower_bound=[0, 0], upper_bound=[10, 10]) new_pso = pso.PSO() new_pso.compile(search_space) new_pso.update(search_space)
def test_opytimizer_start(): space = search.SearchSpace(1, 1, 0, 1) func = function.Function(callable) optimizer = pso.PSO() new_opytimizer = opytimizer.Opytimizer(space, optimizer, func) new_opytimizer.start(n_iterations=1)
def test_opytimizer_update(): space = search.SearchSpace(1, 1, 0, 1) func = function.Function(callable) optimizer = pso.PSO() callbacks = callback.CallbackVessel([]) new_opytimizer = opytimizer.Opytimizer(space, optimizer, func) new_opytimizer.update(callbacks)
def test_pso_params(): params = {"w": 2, "c1": 1.7, "c2": 1.7} new_pso = pso.PSO(params=params) assert new_pso.w == 2 assert new_pso.c1 == 1.7 assert new_pso.c2 == 1.7
def test_pso_hyperparams(): hyperparams = {'w': 2, 'c1': 1.7, 'c2': 1.7} new_pso = pso.PSO(hyperparams=hyperparams) assert new_pso.w == 2 assert new_pso.c1 == 1.7 assert new_pso.c2 == 1.7
def test_pso_evaluate(): def square(x): return np.sum(x**2) search_space = search.SearchSpace(n_agents=2, n_variables=2, lower_bound=[0, 0], upper_bound=[10, 10]) new_pso = pso.PSO() new_pso.compile(search_space) new_pso.evaluate(search_space, square)
def test_pso_params(): params = { 'w': 2, 'c1': 1.7, 'c2': 1.7 } new_pso = pso.PSO(params=params) assert new_pso.w == 2 assert new_pso.c1 == 1.7 assert new_pso.c2 == 1.7
def test_opytimizer_history_setter(): space = search.SearchSpace(1, 1, 0, 1) func = function.Function(callable) optimizer = pso.PSO() hist = history.History() new_opytimizer = opytimizer.Opytimizer(space, optimizer, func) try: new_opytimizer.history = 1 except: new_opytimizer.history = hist assert type(new_opytimizer.history).__name__ == 'History'
def test_opytimizer_function_setter(): space = search.SearchSpace(1, 1, 0, 1) func = function.Function(callable) optimizer = pso.PSO() new_opytimizer = opytimizer.Opytimizer(space, optimizer, func) try: func.built = False new_opytimizer.function = func except: func.built = True new_opytimizer.function = func assert type(new_opytimizer.function).__name__ == 'Function'
def test_opytimizer_space_setter(): space = search.SearchSpace(1, 1, 0, 1) func = function.Function(callable) optimizer = pso.PSO() new_opytimizer = opytimizer.Opytimizer(space, optimizer, func) try: space.built = False new_opytimizer.space = space except: space.built = True new_opytimizer.space = space assert type(new_opytimizer.space).__name__ == 'SearchSpace'
def test_opytimizer_build(): def square(x): return np.sum(x**2) assert square(2) == 4 new_function = function.Function(pointer=square) lb = [0] ub = [10] new_space = search.SearchSpace(lower_bound=lb, upper_bound=ub) new_pso = pso.PSO() try: new_space.built = False new_opytimizer = opytimizer.Opytimizer(space=new_space, optimizer=new_pso, function=new_function) except: new_space.built = True new_opytimizer = opytimizer.Opytimizer(space=new_space, optimizer=new_pso, function=new_function) try: new_pso.built = False new_opytimizer = opytimizer.Opytimizer(space=new_space, optimizer=new_pso, function=new_function) except: new_pso.built = True new_opytimizer = opytimizer.Opytimizer(space=new_space, optimizer=new_pso, function=new_function) try: new_function.built = False new_opytimizer = opytimizer.Opytimizer(space=new_space, optimizer=new_pso, function=new_function) except: new_function.built = True new_opytimizer = opytimizer.Opytimizer(space=new_space, optimizer=new_pso, function=new_function)
def test_pso_evaluate(): def square(x): return np.sum(x**2) new_function = function.Function(pointer=square) search_space = search.SearchSpace(n_agents=2, n_iterations=10, n_variables=2, lower_bound=[0, 0], upper_bound=[10, 10]) new_pso = pso.PSO() local_position = np.zeros((2, 2, 1)) new_pso._evaluate(search_space, new_function, local_position) assert search_space.best_agent.fit < sys.float_info.max
def test_opytimizer_start(): def square(x): return np.sum(x**2) new_function = function.Function(pointer=square) lb = [0] ub = [10] new_space = search.SearchSpace(lower_bound=lb, upper_bound=ub) new_pso = pso.PSO() new_opytimizer = opytimizer.Opytimizer(space=new_space, optimizer=new_pso, function=new_function) history = new_opytimizer.start() assert isinstance(history, opytimizer.utils.history.History)
def test_opytimizer_total_iterations_setter(): space = search.SearchSpace(1, 1, 0, 1) func = function.Function(callable) optimizer = pso.PSO() new_opytimizer = opytimizer.Opytimizer(space, optimizer, func) try: new_opytimizer.total_iterations = 'a' except: new_opytimizer.total_iterations = 0 assert new_opytimizer.total_iterations == 0 try: new_opytimizer.total_iterations = -1 except: new_opytimizer.total_iterations = 0 assert new_opytimizer.total_iterations == 0
def test_pso_compile(): search_space = search.SearchSpace(n_agents=2, n_variables=2, lower_bound=[0, 0], upper_bound=[10, 10]) new_pso = pso.PSO() new_pso.compile(search_space) try: new_pso.local_position = 1 except: new_pso.local_position = np.array([1]) assert new_pso.local_position == np.array([1]) try: new_pso.velocity = 1 except: new_pso.velocity = np.array([1]) assert new_pso.velocity == np.array([1])
def test_pso_hyperparams_setter(): new_pso = pso.PSO() try: new_pso.w = 'a' except: new_pso.w = 1 try: new_pso.w = -1 except: new_pso.w = 1 assert new_pso.w == 1 try: new_pso.c1 = 'b' except: new_pso.c1 = 1.5 try: new_pso.c1 = -1 except: new_pso.c1 = 1.5 assert new_pso.c1 == 1.5 try: new_pso.c2 = 'c' except: new_pso.c2 = 1.5 try: new_pso.c2 = -1 except: new_pso.c2 = 1.5 assert new_pso.c2 == 1.5
def test_pso_params_setter(): new_pso = pso.PSO() try: new_pso.w = "a" except: new_pso.w = 1 try: new_pso.w = -1 except: new_pso.w = 1 assert new_pso.w == 1 try: new_pso.c1 = "b" except: new_pso.c1 = 1.5 try: new_pso.c1 = -1 except: new_pso.c1 = 1.5 assert new_pso.c1 == 1.5 try: new_pso.c2 = "c" except: new_pso.c2 = 1.5 try: new_pso.c2 = -1 except: new_pso.c2 = 1.5 assert new_pso.c2 == 1.5
def test_pso_update_position(): new_pso = pso.PSO() position = new_pso._update_position(1, 1) assert position == 2
def test_pso_update_velocity(): new_pso = pso.PSO() velocity = new_pso._update_velocity(1, 1, 1, 1) assert velocity != 0
def test_pso_build(): new_pso = pso.PSO() assert new_pso.built == True