Files
crypto_trader/tests/unit/optimization/test_grid_search.py

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