Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python3 | |
| """Validate forecast results""" | |
| import sys | |
| sys.stdout.reconfigure(encoding='utf-8', errors='replace') | |
| import polars as pl | |
| from pathlib import Path | |
| # Find the most recent forecast file in Windows temp directory | |
| temp_dir = Path(r"C:\Users\evgue\AppData\Local\Temp\gradio") | |
| forecast_files = list(temp_dir.glob("**/forecast_*.parquet")) | |
| if not forecast_files: | |
| print("[ERROR] No forecast files found", flush=True) | |
| sys.exit(1) | |
| # Get the most recent file | |
| latest_forecast = max(forecast_files, key=lambda p: p.stat().st_mtime) | |
| print(f"Examining: {latest_forecast.name}", flush=True) | |
| print(f"Full path: {latest_forecast}", flush=True) | |
| # Load and examine the forecast | |
| df = pl.read_parquet(latest_forecast) | |
| print(f"\n[OK] Forecast loaded successfully", flush=True) | |
| print(f"Shape: {df.shape} (rows x columns)", flush=True) | |
| print(f"\nColumns: {df.columns}", flush=True) | |
| print(f"\nData types:\n{df.dtypes}", flush=True) | |
| # Check for expected structure | |
| print(f"\n--- Validation ---", flush=True) | |
| assert 'timestamp' in df.columns, "Missing timestamp column" | |
| print("[OK] timestamp column present", flush=True) | |
| # Check for forecast columns (median, q10, q90) | |
| forecast_cols = [c for c in df.columns if c != 'timestamp'] | |
| print(f"[OK] Found {len(forecast_cols)} forecast columns", flush=True) | |
| # Check number of rows (should be 168 for 7 days) | |
| expected_rows = 168 # 7 days * 24 hours | |
| print(f"[OK] Rows: {len(df)} (expected: {expected_rows})", flush=True) | |
| # Display first few rows | |
| print(f"\n--- First 5 rows ---", flush=True) | |
| print(df.head(5)) | |
| # Display summary statistics | |
| print(f"\n--- Summary Statistics ---", flush=True) | |
| print(df.select([c for c in df.columns if c != 'timestamp']).describe()) | |
| print(f"\n[SUCCESS] Smoke test validation complete!", flush=True) | |