#!/bin/sh
# probar: dibuja los circuitos de pruebas/ y compara el netlist de
# netlistsvg (--json) con el de esperado/; si netlistsvg esta instalado,
# ademas tiene que salir un SVG con una celda por rama. Estado 0 si todo bien.
aqui=$(cd "$(dirname "$0")" && pwd)
d="$aqui/../dibuja"
t=$(mktemp -d); trap 'rm -rf "$t"' EXIT
mal=0
# dia2formas: el .formas que sale del .dia tiene que ser el versionado
for dia in "$aqui"/*.dia; do
  b=$(basename "$dia" .dia)
  cp "$dia" "$t/$b.dia"; cp "$aqui/$b.d" "$t/$b.d" 2>/dev/null
  "$aqui/../dia2formas" "$t/$b.dia" >/dev/null && cmp -s "$t/$b.formas" "$aqui/$b.formas" \
    && echo "  ok    $b: formas" || { echo "  FALLA $b: formas"; mal=$((mal + 1)); }
done
for c in "$aqui"/*.d; do
  b=$(basename "$c" .d)
  "$d" "$c" --json -o "$t/$b.json" >/dev/null && cmp -s "$t/$b.json" "$aqui/esperado/$b.json" \
    && echo "  ok    $b: netlist" || { echo "  FALLA $b: netlist"; mal=$((mal + 1)); }
  if [ -x "$aqui/../node_modules/.bin/netlistsvg" ] || command -v netlistsvg >/dev/null; then
    "$d" "$c" -o "$t/$b.svg" >/dev/null && grep -q '<svg' "$t/$b.svg" \
      && echo "  ok    $b: svg" || { echo "  FALLA $b: svg"; mal=$((mal + 1)); }
  fi
done
[ $mal -eq 0 ]
