# Corpus de Simplot

`entradas-ds/` cubre documentos autocontenidos con/sin PARAPLOT, tablas antes/después del pedido, varias tablas SIMUL/CSV y archivos separados. `tests/entradas-ds.t` comprueba el DAT y los gráficos operativos; los recorridos pendientes de tablas incorporadas y stdin textual llevan TODO explícito. Los documentos nuevos son `.ds`, no archivos de un tipo PARAPLOT separado.

`psicro-punto/` reproduce un estado estacionario de `psicro_5.ds`, sin tiempo: pares TBH/WWW y TEMP/PV con un único punto. El original no tiene PARAPLOT; se añade una especificación gráfica de prueba y se transcriben sus valores comentados, sin recalcular la psicrometría. Véanse su README y `tests/psicro-punto.t`.

Ejemplos autónomos: tablas ya calculadas y órdenes de gráficos. No necesitan ejecutar Simusol ni instalar SCEPTRE. Las pruebas trabajan en temporales: no escriben imágenes ni registros sobre los originales.

## Procedencia y expectativas

Los archivos de `manual/` son copias con historia SVN de `manual/para_manual_2013/simusol_ejemplos/simples/`. Se conservan los nombres, contenido y unidades originales, incluidos los encabezados históricos. No son resultados generados por la versión actual de Simplot.

| Caso | Qué comprueba | Tablas que deben aparecer |
|---|---|---|
| tanque | Dos magnitudes y panel conjunto | tanque.simul |
| tanque_fun | Curva calculada y tres funciones analíticas | tanque_fun.simul |
| tanque_med | Simulación y medición, con conversión de unidades | tanque_med.simul, experien.txt |
| tanque_dur | Tres corridas con distinta duración | tanque_dur.simul, tanque_dur_1.simul, tanque_dur_2.simul |
| tanque_ini | Tres condiciones iniciales y panel conjunto | tanque_ini.simul, tanque_ini_1.simul, tanque_ini_2.simul |
| tanque_par | Tres valores de un parámetro | tanque_par.simul, tanque_par_1.simul, tanque_par_2.simul |
| tanque.caj, tanque_fun.caj, tanque_med.caj | RESULTADOS histórico y encabezados con metadatos | La tabla .simul del mismo nombre |

## Ejecución

Desde la raíz de simplot:

    prove -v tests/corpus.t
    prove tests/*.t

La prueba verifica firma PNG, estado de salida y presencia de cada tabla en las órdenes Gnuplot: producir un PNG no basta si faltan corridas. Los fallos históricos de CAJ y arch_var fueron corregidos y ya no llevan TODO. Las imágenes no se comparan byte a byte porque dependen de la versión de Gnuplot y las fuentes.

`ds/` prueba el DAT compartido con Siru. `plot/` conserva además el ejemplo grande del colector, recuperado del paquete Plot archivado; su README distingue la tabla utilizada del rerun que su PARAPLOT no pide.

`filtros/` contiene la cadena sintética DATOS → ZINTERMEDIO → AFINAL, declarada en orden inverso. `tests/seleccion.t` verifica valores intermedios y finales, el archivo usado por Gnuplot, originales intactos y rechazo de ciclos/padres inexistentes.

`cabeceras/` reproduce el caso T A B del tutorial, con encabezado comentado y sin comentar. `tests/agrupamiento.t` compara modo automático y RESULTADOS explícito con/sin magnitudes y unidades; comprueba columnas, leyendas, imágenes y originales intactos.

`modelo-v2/` prueba el contrato tipado y su dibujo. `tests/modelo.t` valida sin leer tablas; `tests/render-v2.t` recorre slex → DAT → Siru/Simplot, exporta con Tabular2 y genera PNG/EPS/PDF/SVG con Gnuplot. Incluye bloques, precisión, escalas, DS directo, DAT sin DS y errores explícitos.

Los casos sintéticos de `tests/lenguajes.t` y `tests/tabla-simple.t` complementan el corpus histórico. Los nuevos fallos deben tener una reproducción pequeña y una expectativa explícita.
