#!/usr/bin/env python3
"""
Test de validation de l'intégration des signaux pragmatiques
"""

import sys
import os
sys.path.append('.')

from simple_trading_system.pragmatic_signals import PragmaticSignalGenerator

def test_pragmatic_signals():
    """Test des signaux pragmatiques"""
    print("🧪 TEST INTÉGRATION SIGNAUX PRAGMATIQUES")
    print("=" * 50)

    try:
        # Créer le générateur
        generator = PragmaticSignalGenerator()
        print("✅ PragmaticSignalGenerator créé")

        # Générer des signaux
        signals = generator.generate_signals()
        print(f"✅ {len(signals)} signaux générés")

        # Analyser les scores
        if signals:
            scores = [signal['quality_score'] for signal in signals]
            print(f"📊 Scores: min={min(scores):.2f}, max={max(scores):.2f}, moy={sum(scores)/len(scores):.2f}")

            # Afficher quelques signaux
            print("\n🎯 EXEMPLES DE SIGNAUX:")
            for i, signal in enumerate(signals[:5]):
                print(f"  {i+1}. {signal['symbol']} {signal['side']} - Score: {signal['quality_score']:.2f} - {signal['reason']}")

            # Vérifier le format de conversion
            print("\n🔄 SIGNAUX DÉJÀ AU BON FORMAT:")
            for signal in signals[:2]:
                print(f"  {signal}")

            # Vérifier si les scores sont > 0.5 (notre nouveau seuil)
            valid_scores = [s for s in scores if s >= 0.5]
            print(f"\n✅ {len(valid_scores)}/{len(scores)} signaux avec score ≥ 0.5 (seuil actuel)")

            invalid_scores = [s for s in scores if s < 0.5]
            if invalid_scores:
                print(f"⚠ {len(invalid_scores)} signaux avec score < 0.5 seraient rejetés")
        else:
            print("⚠ Aucun signal généré")

    except Exception as e:
        print(f"❌ Erreur: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    test_pragmatic_signals()