# 🧪 TESTS - Scripts de Verificación Snap7 V2 Este directorio contiene los scripts de test esenciales para validar el sistema de optimización snap7 v2. ## 📋 Scripts Principales ### 🚀 `test_snap7v2_comprehensive.py` **Función**: Control de diferencias de velocidad y performance entre métodos legacy y optimizado - ✅ Comparación de rendimiento con diferentes tamaños de datasets (5, 10, 100 variables) - ✅ Stress testing con múltiples iteraciones - ✅ Medición de mejoras de performance (hasta 96% de optimización) - ✅ Generación de reportes detallados de rendimiento - ✅ Validación de todas las áreas de memoria (DB, M, E) ### 🔍 `test_simple_data_integrity.py` **Función**: Control de integridad de datos usando sistema de 2 fases - ✅ Verificación de que ambos métodos lean exactamente los mismos valores - ✅ Sistema de doble pasada para descartar variables cambiantes - ✅ Detección automática de variables que cambien durante las pruebas - ✅ Validación de consistencia entre lecturas - ✅ Reporte de integridad con 100% de precisión ### 🎯 `test_db1001_specific_values.py` **Función**: Verificación de valores hexadecimales específicos en DB1001 - ✅ Validación de 17 valores hexadecimales específicos predefinidos - ✅ Comparación exacta entre métodos legacy y optimizado - ✅ Verificación de tipos WORD (16-bit unsigned) - ✅ Control de precisión hexadecimal exacta - ✅ Validación de chunking automático ## 📊 Archivos de Reporte ### Reportes JSON - `snap7v2_test_report_*.json` - Reportes de performance comprehensivos - `data_integrity_simple_*.json` - Reportes de integridad de datos - `setup_report_*.json` - Reportes de configuración de tests ### Documentación - `PERFORMANCE_MONITORING.md` - Guía de monitoreo de performance ## 🎯 Casos de Uso ### Para Validar Performance ```bash python test_snap7v2_comprehensive.py ``` - Mide diferencias de velocidad - Genera reportes de mejora de rendimiento - Valida escalabilidad del sistema ### Para Validar Integridad de Datos ```bash python test_simple_data_integrity.py ``` - Verifica que ambos métodos lean valores idénticos - Usa doble pasada para mayor confiabilidad - Detecta variables cambiantes automáticamente ### Para Validar Valores Específicos ```bash python test_db1001_specific_values.py ``` - Verifica valores hexadecimales exactos - Valida lectura correcta de tipos WORD - Control de precisión bit-level ## ✅ Estado de Validación Todos los tests han sido ejecutados exitosamente con los siguientes resultados: - 🚀 **Performance**: Mejora de hasta **96% en datasets grandes** - 🔍 **Integridad**: **100% de precisión** en lectura de datos - 🎯 **Valores Específicos**: **100% de exactitud** en valores hexadecimales ## 🔧 Configuración Los tests utilizan la configuración PLC definida en `config/data/plc_config.json`: - PLC: Siemens S7-315 - IP: 10.1.33.11 - Rack: 0, Slot: 2 ## 📝 Notas Técnicas - **Chunking Automático**: Los tests validan el límite de 20 variables por llamada read_multi_vars - **Buffer Management**: Verificación correcta de allocación de buffers ctypes - **Error Handling**: Manejo robusto de errores con fallback automático - **Threading Safety**: Validación de operaciones thread-safe