|
|
|
""" |
|
Test script to check what the frontend FRED client returns |
|
""" |
|
|
|
import os |
|
import sys |
|
import pandas as pd |
|
import numpy as np |
|
from datetime import datetime |
|
|
|
|
|
sys.path.append(os.path.join(os.path.dirname(__file__), 'frontend')) |
|
|
|
from frontend.fred_api_client import get_real_economic_data |
|
|
|
def test_frontend_data(): |
|
"""Test what the frontend client returns""" |
|
|
|
api_key = "acf8bbec7efe3b6dfa6ae083e7152314" |
|
|
|
print("=== TESTING FRONTEND FRED CLIENT ===") |
|
|
|
try: |
|
|
|
end_date = datetime.now() |
|
start_date = end_date.replace(year=end_date.year - 1) |
|
|
|
print("1. Fetching data with frontend client...") |
|
real_data = get_real_economic_data( |
|
api_key, |
|
start_date.strftime('%Y-%m-%d'), |
|
end_date.strftime('%Y-%m-%d') |
|
) |
|
|
|
print(f"β
Real data keys: {list(real_data.keys())}") |
|
|
|
|
|
if 'economic_data' in real_data: |
|
df = real_data['economic_data'] |
|
print(f" Economic data shape: {df.shape}") |
|
print(f" Economic data columns: {list(df.columns)}") |
|
print(f" Economic data index: {df.index.min()} to {df.index.max()}") |
|
|
|
if not df.empty: |
|
print(" Sample data:") |
|
print(df.head()) |
|
print() |
|
|
|
|
|
print("2. Testing calculations on frontend data:") |
|
|
|
for column in df.columns: |
|
series = df[column].dropna() |
|
print(f" {column}:") |
|
print(f" Length: {len(series)}") |
|
print(f" Latest value: {series.iloc[-1] if len(series) > 0 else 'N/A'}") |
|
|
|
if len(series) >= 2: |
|
growth_rate = series.pct_change().iloc[-1] * 100 |
|
print(f" Growth rate: {growth_rate:.2f}%") |
|
print(f" Is NaN: {pd.isna(growth_rate)}") |
|
else: |
|
print(f" Growth rate: Insufficient data") |
|
print() |
|
else: |
|
print(" β Economic data is empty!") |
|
else: |
|
print(" β No economic_data in real_data") |
|
|
|
|
|
if 'insights' in real_data: |
|
insights = real_data['insights'] |
|
print(f" Insights keys: {list(insights.keys())}") |
|
|
|
|
|
for series_id, insight in list(insights.items())[:3]: |
|
print(f" {series_id}:") |
|
print(f" Current value: {insight.get('current_value', 'N/A')}") |
|
print(f" Growth rate: {insight.get('growth_rate', 'N/A')}") |
|
print(f" Trend: {insight.get('trend', 'N/A')}") |
|
print() |
|
else: |
|
print(" β No insights in real_data") |
|
|
|
print("=== FRONTEND CLIENT TEST COMPLETE ===") |
|
|
|
except Exception as e: |
|
print(f"β Error testing frontend client: {e}") |
|
import traceback |
|
traceback.print_exc() |
|
|
|
if __name__ == "__main__": |
|
test_frontend_data() |