| 715 | |
| 716 | |
| 717 | def test_chaining() -> None: |
| 718 | budgets = [7, 19] |
| 719 | optimizer = optlib.Chaining([optlib.LHSSearch, optlib.HaltonSearch, optlib.OnePlusOne], budgets)(2, 40) |
| 720 | optimizer.minimize(_square) |
| 721 | expected = [(7, 7, 0), (19, 19 + 7, 7), (14, 14 + 19 + 7, 19 + 7)] |
| 722 | for (ex_ask, ex_tell, ex_tell_not_asked), opt in zip(expected, optimizer.optimizers): # type: ignore |
| 723 | assert opt.num_ask == ex_ask |
| 724 | assert opt.num_tell == ex_tell |
| 725 | assert opt.num_tell_not_asked == ex_tell_not_asked |
| 726 | optimizer.ask() |
| 727 | assert optimizer.optimizers[-1].num_ask == 15 # type: ignore |
| 728 | |
| 729 | |
| 730 | def test_parametrization_optimizer_reproducibility() -> None: |