Skip to content

Commit 4193614

Browse files
uncomment
1 parent bed8f40 commit 4193614

1 file changed

Lines changed: 73 additions & 70 deletions

File tree

Lines changed: 73 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
"""Test helper functions for nevergrad optimizers."""
22

3-
import warnings
3+
from typing import get_args
44

5-
from optimagic import mark
5+
import numpy as np
6+
import pytest
7+
from numpy.testing import assert_array_almost_equal as aaae
8+
9+
from optimagic import algorithms, mark
610
from optimagic.config import IS_NEVERGRAD_INSTALLED
11+
from optimagic.optimization.optimize import minimize
12+
from optimagic.parameters.bounds import Bounds
713

814
if IS_NEVERGRAD_INSTALLED:
9-
import cma
10-
11-
## Skip warnings during tests
12-
warnings.simplefilter("ignore", cma.evolution_strategy.InjectionWarning)
15+
import nevergrad as ng
1316

1417

1518
@mark.least_squares
@@ -66,67 +69,67 @@ def sos(x):
6669
# expected = [[np.array([-2.0]), np.array([-1.0])]] * 2
6770
# assert got == expected
6871
###
69-
###################################################################################
70-
71-
# # test if all optimizers listed in Literal type hint are valid attributes
72-
# @pytest.mark.skipif(not IS_NEVERGRAD_INSTALLED, reason="nevergrad not installed")
73-
# def test_meta_optimizers_are_valid():
74-
# opt = algorithms.NevergradMeta
75-
# optimizers = get_args(opt.__annotations__["optimizer"])
76-
# for optimizer in optimizers:
77-
# try:
78-
# getattr(ng.optimizers, optimizer)
79-
# except AttributeError:
80-
# pytest.fail(f"Optimizer '{optimizer}' not found in Nevergrad")
81-
82-
83-
# @pytest.mark.skipif(not IS_NEVERGRAD_INSTALLED, reason="nevergrad not installed")
84-
# def test_ngopt_optimizers_are_valid():
85-
# opt = algorithms.NevergradNGOpt
86-
# optimizers = get_args(opt.__annotations__["optimizer"])
87-
# for optimizer in optimizers:
88-
# try:
89-
# getattr(ng.optimizers, optimizer)
90-
# except AttributeError:
91-
# pytest.fail(f"Optimizer '{optimizer}' not found in Nevergrad")
92-
93-
94-
# # list of available optimizers in nevergrad_meta
95-
# NEVERGRAD_META = get_args(algorithms.NevergradMeta.__annotations__["optimizer"])
96-
# # list of available optimizers in nevergrad_ngopt
97-
# NEVERGRAD_NGOPT = get_args(algorithms.NevergradNGOpt.__annotations__["optimizer"])
98-
99-
100-
# # test stochastic_global_algorithm_on_sum_of_squares
101-
# @pytest.mark.slow
102-
# @pytest.mark.parametrize("algorithm", NEVERGRAD_META)
103-
# @pytest.mark.skipif(not IS_NEVERGRAD_INSTALLED, reason="nevergrad not installed")
104-
# def test_meta_optimizers_with_stochastic_global_algorithm_on_sos(algorithm):
105-
# res = minimize(
106-
# fun=sos,
107-
# params=np.array([0.35, 0.35]),
108-
# bounds=Bounds(lower=np.array([0.2, -0.5]), upper=np.array([1, 0.5])),
109-
# algorithm=algorithms.NevergradMeta(algorithm),
110-
# collect_history=False,
111-
# skip_checks=True,
112-
# algo_options={"seed": 12345},
113-
# )
114-
# assert res.success in [True, None]
115-
# aaae(res.params, np.array([0.2, 0]), decimal=1)
116-
117-
118-
# @pytest.mark.slow
119-
# @pytest.mark.parametrize("algorithm", NEVERGRAD_NGOPT)
120-
# @pytest.mark.skipif(not IS_NEVERGRAD_INSTALLED, reason="nevergrad not installed")
121-
# def test_ngopt_optimizers_with_stochastic_global_algorithm_on_sos(algorithm):
122-
# res = minimize(
123-
# fun=sos,
124-
# params=np.array([0.35, 0.35]),
125-
# bounds=Bounds(lower=np.array([0.2, -0.5]), upper=np.array([1, 0.5])),
126-
# algorithm=algorithms.NevergradNGOpt(algorithm),
127-
# collect_history=False,
128-
# skip_checks=True,
129-
# algo_options={"seed": 12345},
130-
# )
131-
# assert res.success in [True, None]
132-
# aaae(res.params, np.array([0.2, 0]), decimal=1)
72+
73+
74+
# test if all optimizers listed in Literal type hint are valid attributes
75+
@pytest.mark.skipif(not IS_NEVERGRAD_INSTALLED, reason="nevergrad not installed")
76+
def test_meta_optimizers_are_valid():
77+
opt = algorithms.NevergradMeta
78+
optimizers = get_args(opt.__annotations__["optimizer"])
79+
for optimizer in optimizers:
80+
try:
81+
getattr(ng.optimizers, optimizer)
82+
except AttributeError:
83+
pytest.fail(f"Optimizer '{optimizer}' not found in Nevergrad")
84+
85+
86+
@pytest.mark.skipif(not IS_NEVERGRAD_INSTALLED, reason="nevergrad not installed")
87+
def test_ngopt_optimizers_are_valid():
88+
opt = algorithms.NevergradNGOpt
89+
optimizers = get_args(opt.__annotations__["optimizer"])
90+
for optimizer in optimizers:
91+
try:
92+
getattr(ng.optimizers, optimizer)
93+
except AttributeError:
94+
pytest.fail(f"Optimizer '{optimizer}' not found in Nevergrad")
95+
96+
97+
# list of available optimizers in nevergrad_meta
98+
NEVERGRAD_META = get_args(algorithms.NevergradMeta.__annotations__["optimizer"])
99+
# list of available optimizers in nevergrad_ngopt
100+
NEVERGRAD_NGOPT = get_args(algorithms.NevergradNGOpt.__annotations__["optimizer"])
101+
102+
103+
# test stochastic_global_algorithm_on_sum_of_squares
104+
@pytest.mark.slow
105+
@pytest.mark.parametrize("algorithm", NEVERGRAD_META)
106+
@pytest.mark.skipif(not IS_NEVERGRAD_INSTALLED, reason="nevergrad not installed")
107+
def test_meta_optimizers_with_stochastic_global_algorithm_on_sum_of_squares(algorithm):
108+
res = minimize(
109+
fun=sos,
110+
params=np.array([0.35, 0.35]),
111+
bounds=Bounds(lower=np.array([0.2, -0.5]), upper=np.array([1, 0.5])),
112+
algorithm=algorithms.NevergradMeta(algorithm),
113+
collect_history=False,
114+
skip_checks=True,
115+
algo_options={"seed": 12345},
116+
)
117+
assert res.success in [True, None]
118+
aaae(res.params, np.array([0.2, 0]), decimal=1)
119+
120+
121+
@pytest.mark.slow
122+
@pytest.mark.parametrize("algorithm", NEVERGRAD_NGOPT)
123+
@pytest.mark.skipif(not IS_NEVERGRAD_INSTALLED, reason="nevergrad not installed")
124+
def test_ngopt_optimizers_with_stochastic_global_algorithm_on_sum_of_squares(algorithm):
125+
res = minimize(
126+
fun=sos,
127+
params=np.array([0.35, 0.35]),
128+
bounds=Bounds(lower=np.array([0.2, -0.5]), upper=np.array([1, 0.5])),
129+
algorithm=algorithms.NevergradNGOpt(algorithm),
130+
collect_history=False,
131+
skip_checks=True,
132+
algo_options={"seed": 12345},
133+
)
134+
assert res.success in [True, None]
135+
aaae(res.params, np.array([0.2, 0]), decimal=1)

0 commit comments

Comments
 (0)