refactor: Reorganize code structure and create tests directory
- Consolidate surrogates module to processors/surrogates/ - Move ensemble_surrogate.py to proper location - Add deprecation shim for old import path - Create tests/ directory with pytest structure - Move test files from archive/test_scripts/ - Add conftest.py with shared fixtures 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -59,6 +59,15 @@ def __getattr__(name):
|
||||
elif name == 'create_exporter_from_config':
|
||||
from .training_data_exporter import create_exporter_from_config
|
||||
return create_exporter_from_config
|
||||
elif name == 'EnsembleSurrogate':
|
||||
from .ensemble_surrogate import EnsembleSurrogate
|
||||
return EnsembleSurrogate
|
||||
elif name == 'OODDetector':
|
||||
from .ensemble_surrogate import OODDetector
|
||||
return OODDetector
|
||||
elif name == 'create_and_train_ensemble':
|
||||
from .ensemble_surrogate import create_and_train_ensemble
|
||||
return create_and_train_ensemble
|
||||
|
||||
raise AttributeError(f"module 'optimization_engine.processors.surrogates' has no attribute '{name}'")
|
||||
|
||||
@@ -76,4 +85,7 @@ __all__ = [
|
||||
'AutoTrainer',
|
||||
'TrainingDataExporter',
|
||||
'create_exporter_from_config',
|
||||
'EnsembleSurrogate',
|
||||
'OODDetector',
|
||||
'create_and_train_ensemble',
|
||||
]
|
||||
|
||||
@@ -1,19 +1,26 @@
|
||||
"""
|
||||
Surrogate models for FEA acceleration.
|
||||
DEPRECATED: This module has been moved to optimization_engine.processors.surrogates
|
||||
|
||||
Available surrogates:
|
||||
- EnsembleSurrogate: Multiple MLPs with uncertainty quantification
|
||||
- OODDetector: Out-of-distribution detection
|
||||
Please update your imports:
|
||||
from optimization_engine.processors.surrogates import EnsembleSurrogate
|
||||
|
||||
This module will be removed in a future version.
|
||||
"""
|
||||
|
||||
from .ensemble_surrogate import (
|
||||
import warnings
|
||||
|
||||
warnings.warn(
|
||||
"optimization_engine.surrogates is deprecated. "
|
||||
"Use optimization_engine.processors.surrogates instead.",
|
||||
DeprecationWarning,
|
||||
stacklevel=2
|
||||
)
|
||||
|
||||
# Redirect imports
|
||||
from optimization_engine.processors.surrogates import (
|
||||
EnsembleSurrogate,
|
||||
OODDetector,
|
||||
create_and_train_ensemble
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
'EnsembleSurrogate',
|
||||
'OODDetector',
|
||||
'create_and_train_ensemble'
|
||||
]
|
||||
__all__ = ['EnsembleSurrogate', 'OODDetector', 'create_and_train_ensemble']
|
||||
|
||||
32
tests/conftest.py
Normal file
32
tests/conftest.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""
|
||||
Pytest configuration and shared fixtures for Atomizer tests.
|
||||
"""
|
||||
|
||||
import pytest
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Add project root to path
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
@pytest.fixture
|
||||
def sample_study_dir(tmp_path):
|
||||
"""Create a temporary study directory structure."""
|
||||
study = tmp_path / "test_study"
|
||||
(study / "1_setup").mkdir(parents=True)
|
||||
(study / "2_iterations").mkdir()
|
||||
(study / "3_results").mkdir()
|
||||
return study
|
||||
|
||||
@pytest.fixture
|
||||
def sample_config():
|
||||
"""Sample optimization config for testing."""
|
||||
return {
|
||||
"study_name": "test_study",
|
||||
"design_variables": [
|
||||
{"name": "param1", "lower": 0, "upper": 10, "type": "continuous"}
|
||||
],
|
||||
"objectives": [
|
||||
{"name": "minimize_mass", "direction": "minimize"}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user