Test the _update_tracker method.
()
| 216 | |
| 217 | |
| 218 | def test_update_tracker(): |
| 219 | """Test the _update_tracker method.""" |
| 220 | optimizer = BayesianOptimization(target_func, PBOUNDS, random_state=1) |
| 221 | logger = ScreenLogger() |
| 222 | |
| 223 | # Initial state |
| 224 | assert logger._iterations == 0 |
| 225 | assert logger._previous_max is None |
| 226 | |
| 227 | # Update with first observation |
| 228 | optimizer.register(params={"p1": 1, "p2": 2}, target=3) |
| 229 | logger._update_tracker(optimizer.max) |
| 230 | assert logger._iterations == 1 |
| 231 | assert logger._previous_max == 3 |
| 232 | assert logger._previous_max_params == {"p1": 1, "p2": 2} |
| 233 | |
| 234 | # Update with lower observation |
| 235 | optimizer.register(params={"p1": 0.5, "p2": 1}, target=1.5) |
| 236 | logger._update_tracker(optimizer.max) |
| 237 | assert logger._iterations == 2 |
| 238 | assert logger._previous_max == 3 # Unchanged |
| 239 | assert logger._previous_max_params == {"p1": 1, "p2": 2} # Unchanged |
| 240 | |
| 241 | # Update with higher observation |
| 242 | optimizer.register(params={"p1": 2, "p2": 2}, target=4) |
| 243 | logger._update_tracker(optimizer.max) |
| 244 | assert logger._iterations == 3 |
| 245 | assert logger._previous_max == 4 # Updated |
| 246 | assert logger._previous_max_params == {"p1": 2, "p2": 2} # Updated |
| 247 | |
| 248 | |
| 249 | @patch("sys.stdout", new_callable=io.StringIO) |
nothing calls this directly
no test coverage detected