<?php
/**
 * Smoke de HealthAnalyzer con series sintéticas.
 */

if (php_sapi_name() !== 'cli') { die("CLI only.\n"); }

define('BASE_PATH', dirname(__DIR__) . DIRECTORY_SEPARATOR);
require BASE_PATH . 'core/helpers/Env.php';
Env::load(BASE_PATH . '.env');
require BASE_PATH . 'app/config/Config.php';
require BASE_PATH . 'app/config/ConfigEnv.php';
require BASE_PATH . 'vendor/autoload.php';

use Klee\Core\Ai\HealthAnalyzer;

$an = new HealthAnalyzer(0.20, 1e-6, 0.30, 2.5, 30);

// Caso 1: gaps (recibimos 200 de 288)
$serie1 = [];
for ($i = 0; $i < 200; $i++) { $serie1[] = 25 + sin($i / 10); }
$f1 = $an->analyze($serie1, 288);
echo "Caso 1 (gaps esperados):\n";   print_r($f1);

// Caso 2: flatline
$serie2 = array_fill(0, 100, 22.5);
$f2 = $an->analyze($serie2, 100);
echo "Caso 2 (flatline esperado):\n"; print_r($f2);

// Caso 3: drift ascendente
$serie3 = [];
for ($i = 0; $i < 100; $i++) { $serie3[] = 20 + ($i * 0.15); }
$f3 = $an->analyze($serie3, 100);
echo "Caso 3 (drift esperado):\n";    print_r($f3);

// Caso 4: ruido excesivo (segunda mitad muy ruidosa)
$serie4 = [];
mt_srand(42);
for ($i = 0; $i < 50; $i++) { $serie4[] = 20 + (mt_rand(-100, 100) / 1000); }
for ($i = 0; $i < 50; $i++) { $serie4[] = 20 + (mt_rand(-3000, 3000) / 1000); }
$f4 = $an->analyze($serie4, 100);
echo "Caso 4 (noise esperado):\n";    print_r($f4);

// Caso 5: serie limpia (sin findings)
$serie5 = [];
for ($i = 0; $i < 100; $i++) { $serie5[] = 22 + sin($i / 5) * 0.5; }
$f5 = $an->analyze($serie5, 100);
echo "Caso 5 (limpio, sin findings):\n"; print_r($f5);
