Spaces:
Sleeping
Sleeping
""" | |
Test script to verify the new ML Polymer Aging features are working correctly | |
""" | |
import numpy as np | |
import sys | |
import os | |
# Add modules to path | |
sys.path.append(os.path.dirname(os.path.abspath(__file__))) | |
def test_advanced_spectroscopy(): | |
"""Test advanced spectroscopy module""" | |
print("Testing Advanced Spectroscopy Module...") | |
try: | |
from modules.advanced_spectroscopy import ( | |
MultiModalSpectroscopyEngine, | |
AdvancedPreprocessor, | |
SpectroscopyType, | |
SPECTRAL_CHARACTERISTICS, | |
) | |
# Create engine | |
engine = MultiModalSpectroscopyEngine() | |
# Generate sample spectrum | |
wavenumbers = np.linspace(400, 4000, 1000) | |
intensities = np.random.normal(0.1, 0.02, len(wavenumbers)) | |
# Add some peaks | |
peaks = [1715, 2920, 2850] | |
for peak in peaks: | |
peak_idx = np.argmin(np.abs(wavenumbers - peak)) | |
intensities[peak_idx - 5 : peak_idx + 5] += 0.5 | |
# Register spectrum | |
spectrum_id = engine.register_spectrum( | |
wavenumbers, intensities, SpectroscopyType.FTIR | |
) | |
# Preprocess | |
result = engine.preprocess_spectrum(spectrum_id) | |
print(f"β Spectrum registered: {spectrum_id}") | |
print(f"β Quality score: {result['quality_score']:.3f}") | |
print( | |
f"β Processing steps: {len(result['processing_metadata']['steps_applied'])}" | |
) | |
return True | |
except Exception as e: | |
print(f"β Advanced Spectroscopy test failed: {e}") | |
return False | |
def test_modern_ml_architecture(): | |
"""Test modern ML architecture module""" | |
print("\nTesting Modern ML Architecture...") | |
try: | |
from modules.modern_ml_architecture import ( | |
ModernMLPipeline, | |
SpectralTransformer, | |
prepare_transformer_input, | |
) | |
# Create pipeline with minimal configuration | |
pipeline = ModernMLPipeline() | |
# Test basic functionality without full initialization | |
print(f"β Modern ML Pipeline imported successfully") | |
print(f"β SpectralTransformer class available") | |
print(f"β Utility functions working") | |
# Test transformer input preparation | |
spectral_data = np.random.random(500) | |
X_transformer = prepare_transformer_input(spectral_data, max_length=500) | |
print(f"β Transformer input shape: {X_transformer.shape}") | |
return True | |
except Exception as e: | |
print(f"β Modern ML Architecture test failed: {e}") | |
return False | |
def test_enhanced_data_pipeline(): | |
"""Test enhanced data pipeline module""" | |
print("\nTesting Enhanced Data Pipeline...") | |
try: | |
from modules.enhanced_data_pipeline import ( | |
EnhancedDataPipeline, | |
DataQualityController, | |
SyntheticDataAugmentation, | |
) | |
# Create pipeline | |
pipeline = EnhancedDataPipeline() | |
# Test quality controller | |
quality_controller = DataQualityController() | |
# Generate sample spectrum | |
wavenumbers = np.linspace(400, 4000, 1000) | |
intensities = np.random.normal(0.1, 0.02, len(wavenumbers)) | |
# Assess quality | |
assessment = quality_controller.assess_spectrum_quality( | |
wavenumbers, intensities | |
) | |
print(f"β Data pipeline initialized") | |
print(f"β Quality assessment score: {assessment['overall_score']:.3f}") | |
print(f"β Validation status: {assessment['validation_status']}") | |
# Test synthetic data augmentation | |
augmentation = SyntheticDataAugmentation() | |
augmented = augmentation.augment_spectrum( | |
wavenumbers, intensities, num_variations=3 | |
) | |
print(f"β Generated {len(augmented)} synthetic variants") | |
return True | |
except Exception as e: | |
print(f"β Enhanced Data Pipeline test failed: {e}") | |
return False | |
def test_database_functionality(): | |
"""Test database functionality""" | |
print("\nTesting Database Functionality...") | |
try: | |
from modules.enhanced_data_pipeline import EnhancedDataPipeline | |
pipeline = EnhancedDataPipeline() | |
# Get database statistics | |
stats = pipeline.get_database_statistics() | |
print(f"β Database initialized") | |
print(f"β Total spectra: {stats['total_spectra']}") | |
print(f"β Database tables created successfully") | |
return True | |
except Exception as e: | |
print(f"β Database test failed: {e}") | |
return False | |
def main(): | |
"""Run all tests""" | |
print("π§ͺ ML Polymer Aging Feature Validation Tests") | |
print("=" * 50) | |
tests = [ | |
test_advanced_spectroscopy, | |
test_modern_ml_architecture, | |
test_enhanced_data_pipeline, | |
test_database_functionality, | |
] | |
passed = 0 | |
total = len(tests) | |
for test in tests: | |
if test(): | |
passed += 1 | |
print("\n" + "=" * 50) | |
print(f"π― Test Results: {passed}/{total} tests passed") | |
if passed == total: | |
print("π ALL TESTS PASSED - ML Polymer Aging features are working correctly!") | |
print("\nβ Critical features validated:") | |
print(" β’ FTIR integration and multi-modal spectroscopy") | |
print(" β’ Modern ML architecture with transformers and ensembles") | |
print(" β’ Enhanced data pipeline with quality control") | |
print(" β’ Database functionality for synthetic data generation") | |
else: | |
print("β οΈ Some tests failed - please check the implementation") | |
return passed == total | |
if __name__ == "__main__": | |
main() | |