45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""Tests for grid search optimization."""
|
|
|
|
import pytest
|
|
from src.optimization.grid_search import GridSearchOptimizer
|
|
|
|
|
|
class TestGridSearchOptimizer:
|
|
"""Tests for GridSearchOptimizer."""
|
|
|
|
@pytest.fixture
|
|
def optimizer(self):
|
|
"""Create grid search optimizer."""
|
|
return GridSearchOptimizer()
|
|
|
|
def test_optimize_maximize(self, optimizer):
|
|
"""Test optimization with maximize."""
|
|
param_grid = {
|
|
'param1': [1, 2, 3],
|
|
'param2': [10, 20]
|
|
}
|
|
|
|
def objective(params):
|
|
return params['param1'] * params['param2']
|
|
|
|
result = optimizer.optimize(param_grid, objective, maximize=True)
|
|
|
|
assert result['best_params'] is not None
|
|
assert result['best_score'] is not None
|
|
assert result['best_score'] > 0
|
|
|
|
def test_optimize_minimize(self, optimizer):
|
|
"""Test optimization with minimize."""
|
|
param_grid = {
|
|
'param1': [1, 2, 3]
|
|
}
|
|
|
|
def objective(params):
|
|
return params['param1'] * 10
|
|
|
|
result = optimizer.optimize(param_grid, objective, maximize=False)
|
|
|
|
assert result['best_params'] is not None
|
|
assert result['best_score'] is not None
|
|
|