Skip to content

Commit

Permalink
Adjust Python tests to new API
Browse files Browse the repository at this point in the history
  • Loading branch information
relf committed Nov 23, 2023
1 parent 993e4a6 commit fcfc964
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 19 deletions.
27 changes: 12 additions & 15 deletions python/egobox/tests/test_egor.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,15 @@ def six_humps(x):

class TestOptimizer(unittest.TestCase):
def test_xsinx(self):
egor = egx.Egor(xsinx, egx.to_specs([[0.0, 25.0]]), seed=42)
res = egor.minimize(max_iters=20)
egor = egx.Egor(egx.to_specs([[0.0, 25.0]]), seed=42)
res = egor.minimize(xsinx, max_iters=20)
print(f"Optimization f={res.y_opt} at {res.x_opt}")
self.assertAlmostEqual(-15.125, res.y_opt[0], delta=1e-3)
self.assertAlmostEqual(18.935, res.x_opt[0], delta=1e-3)

def test_xsinx_with_reclustering(self):
egor = egx.Egor(xsinx, egx.to_specs([[0.0, 25.0]]), seed=42, n_clusters=0)
res = egor.minimize(max_iters=20)
egor = egx.Egor(egx.to_specs([[0.0, 25.0]]), seed=42, n_clusters=0)
res = egor.minimize(xsinx, max_iters=20)
print(f"Optimization f={res.y_opt} at {res.x_opt}")
self.assertAlmostEqual(-15.125, res.y_opt[0], delta=1e-3)
self.assertAlmostEqual(18.935, res.x_opt[0], delta=1e-3)
Expand All @@ -100,14 +100,14 @@ def test_xsinx_with_hotstart(self):
os.remove("./test_dir/egor_doe.npy")
xlimits = egx.to_specs([[0.0, 25.0]])
doe = egx.lhs(xlimits, 10)
egor = egx.Egor(xsinx, xlimits, doe=doe, seed=42, outdir="./test_dir")
res = egor.minimize(max_iters=15)
egor = egx.Egor(xlimits, doe=doe, seed=42, outdir="./test_dir")
res = egor.minimize(xsinx, max_iters=15)
print(f"Optimization f={res.y_opt} at {res.x_opt}")
self.assertAlmostEqual(-15.125, res.y_opt[0], delta=1e-3)
self.assertAlmostEqual(18.935, res.x_opt[0], delta=1e-3)

egor = egx.Egor(xsinx, xlimits, outdir="./test_dir", hot_start=True)
res = egor.minimize(max_iters=5)
egor = egx.Egor(xlimits, outdir="./test_dir", hot_start=True)
res = egor.minimize(xsinx, max_iters=5)
print(f"Optimization f={res.y_opt} at {res.x_opt}")
self.assertAlmostEqual(-15.125, res.y_opt[0], delta=1e-2)
self.assertAlmostEqual(18.935, res.x_opt[0], delta=1e-2)
Expand All @@ -122,15 +122,14 @@ def test_g24(self):
max_iters = 20
n_cstr = 2
egor = egx.Egor(
g24,
egx.to_specs([[0.0, 3.0], [0.0, 4.0]]),
cstr_tol=np.array([1e-3, 1e-3]),
n_cstr=n_cstr,
seed=42,
n_doe=n_doe,
)
start = time.process_time()
res = egor.minimize(max_iters=max_iters)
res = egor.minimize(g24, max_iters=max_iters)
end = time.process_time()
print(f"Optimization f={res.y_opt} at {res.x_opt} in {end-start}s")
self.assertAlmostEqual(-5.5080, res.y_opt[0], delta=1e-2)
Expand All @@ -141,7 +140,6 @@ def test_g24(self):

def test_g24_kpls(self):
egor = egx.Egor(
g24,
egx.to_specs([[0.0, 3.0], [0.0, 4.0]]),
n_cstr=2,
cstr_tol=np.array([1e-3, 1e-3]),
Expand All @@ -151,28 +149,27 @@ def test_g24_kpls(self):
seed=1,
)
start = time.process_time()
res = egor.minimize(max_iters=20)
res = egor.minimize(g24, max_iters=20)
end = time.process_time()
self.assertAlmostEqual(-5.5080, res.y_opt[0], delta=5e-1)
print(f"Optimization f={res.y_opt} at {res.x_opt} in {end-start}s")

def test_six_humps(self):
egor = egx.Egor(
six_humps,
egx.to_specs([[-3.0, 3.0], [-2.0, 2.0]]),
infill_strategy=egx.InfillStrategy.WB2,
seed=42,
)
start = time.process_time()
res = egor.minimize(max_iters=45)
res = egor.minimize(six_humps, max_iters=45)
end = time.process_time()
print(f"Optimization f={res.y_opt} at {res.x_opt} in {end-start}s")
# 2 global optimum value =-1.0316 located at (0.089842, -0.712656) and (-0.089842, 0.712656)
self.assertAlmostEqual(-1.0316, res.y_opt[0], delta=2e-1)

def test_constructor(self):
self.assertRaises(TypeError, egx.Egor)
egx.Egor(xsinx, egx.to_specs([[0.0, 25.0]]), 22, n_doe=10)
egx.Egor(egx.to_specs([[0.0, 25.0]]), 22, n_doe=10)

def test_egor_service(self):
xlimits = egx.to_specs([[0.0, 25.0]])
Expand Down
8 changes: 4 additions & 4 deletions python/egobox/tests/test_mixintegor.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ class TestMixintEgx(unittest.TestCase):
def test_int(self):
xtypes = [egx.XSpec(egx.XType.INT, [0.0, 25.0])]

egor = egx.Egor(xsinx, xtypes, seed=42, n_doe=3)
res = egor.minimize(max_iters=10)
egor = egx.Egor(xtypes, seed=42, n_doe=3)
res = egor.minimize(xsinx, max_iters=10)
print(f"Optimization f={res.y_opt} at {res.x_opt}")
self.assertAlmostEqual(-15.125, res.y_opt[0], delta=5e-3)
self.assertAlmostEqual(19, res.x_opt[0], delta=1)
Expand All @@ -50,8 +50,8 @@ def test_ord_enum(self):
egx.XSpec(egx.XType.ENUM, xlimits=[2]),
egx.XSpec(egx.XType.ORD, [0, 2, 3]),
]
egor = egx.Egor(mixobj, xtypes, seed=42)
res = egor.minimize(max_iters=10)
egor = egx.Egor(xtypes, seed=42)
res = egor.minimize(mixobj, max_iters=10)
self.assertAlmostEqual(-14.25, res.y_opt[0])
self.assertAlmostEqual(-5, res.x_opt[0])
self.assertAlmostEqual(2, res.x_opt[1])
Expand Down

0 comments on commit fcfc964

Please sign in to comment.