# Muestras reproducibles de Transform

Este paquete conserva las entradas sintéticas, seis definiciones y dos CSV esperados de las muestras del repositorio DovaETL. No contiene credenciales ni datos de clientes. La procedencia de cada archivo se conserva en `transform_workflows/source-manifest.json`.

Se necesita un checkout autorizado de DovaETL, Python con las dependencias del proyecto y `openpyxl==3.1.5`. No se incluye el motor DovaETL en este paquete. El wrapper utiliza el motor del checkout y las funciones de oráculo independientes de `samples/transform_workflows/generate_samples.py`.

Desde la carpeta extraída del paquete, sustituya la ruta ilustrativa por su checkout:

```powershell
python .\run_pocs.py --repo C:\ruta\DovaETL --report .\verification.json
```

Si este paquete está en otra ubicación, indique `--repo` con la ruta del checkout. El script fuerza `local_json`, bloquea conexiones de red durante la comprobación y copia las muestras a un directorio temporal. Ejecuta ambos Mappings, valida las definiciones relacionadas de Session y Workflow, compara los bytes con los oráculos independientes y con los CSV incluidos, y elimina los archivos temporales al terminar. No registra objetos, agenda ejecuciones ni llama a un servidor.

`local_json` selecciona un backend; no redirige por sí mismo su almacenamiento. Por eso este wrapper utiliza únicamente las funciones puras del motor y no instancia almacenamiento. Antes de importar código Dova, rechaza módulos de servidor e infraestructura persistente, bloquea aperturas de archivos bajo `app/shared` y desactiva la escritura de bytecode en el checkout. Ejecútelo como proceso Python independiente. Si una versión futura del motor introduce una dependencia persistente, la comprobación debe detenerse en lugar de consultar datos del entorno.

La salida correcta contiene dos resultados `PASS_BYTE_EXACT`, con 667 y 4 filas respectivamente. Es el criterio de aceptación, no una afirmación de que el usuario ya haya ejecutado la prueba. Un error devuelve una excepción y un código de salida distinto de cero. `--report` conserva únicamente el informe sintético en la ruta elegida.

Las entradas completas están en `transform_workflows/inputs/`; los resultados de referencia, en `expected/`. Para interpretar cada transformación consulte las guías POC del manual. Cambiar entradas exige recalcular el resultado esperado con una regla independiente; no sustituya el oráculo por la salida del propio motor.
