""" 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()