
    i                     <    d Z ddlZddlmZ d Zedk(  r e        yy)u:   
Test de détection d'outliers en temps réel avec FreqAI
    N)get_freqai_managerc                  	   t        d       t        d       t        d       t               } | st        d       y t        d       t        d       t        d       t        d       g d}g d}| j                  d	||d
dd      \  }}t        d       t        d|dd   d       t        d|dd   d       t        d       t        d|rdnd        |rLt        dt        |dd              t        dt        |dd      d       t        dt        |dd              t        d       t        d        t        d       g d!}g d"}| j                  d#||d$d%d      \  }}t        d&       t        d|dd   d'|d(   |d)   z  d*z
  d+z  d,d-       t        d|dd   d.|d(   t	        j
                  |d d(       z  d,d/       t        d0       t        d|rdnd        |rit        dt        |dd              t        dt        |dd      d       t        dt        |dd              t        |d1d       }|rt        d2|        t        d       t        d3       t        d       g d4}g d5}	| j                  d6||	d7d8d      \  }}t        d9       t        d|dd   d'|d(   |d)   z  d*z
  d+z  d,d-       t        d|	dd   d.|	d(   t	        j
                  |	d d(       z  d,d/       t        d:       t        d|rdnd        |rit        dt        |dd              t        dt        |dd      d       t        dt        |dd              t        |d1d       }|rt        d2|        t        d       t        d;       t        d       g d<}
g d=}| j                  d>|
|d?d@d      \  }}t        dA       t        d|
dd   d.|
d(   |
d)   z  d*z
  d+z  d,d-       t        d|dd   d.|d(   t	        j
                  |d d(       z  d,d/       t        dB       t        d|rdnd        |rit        dt        |dd              t        dt        |dd      d       t        dt        |dd              t        |d1d       }|rt        d2|        t        d       t        dC       t        d       t        dD       y )ENzF======================================================================u7   🧪 TEST FREQAI - DÉTECTION D'OUTLIERS EN TEMPS RÉELu!   ❌ FreqAI Manager non disponibleu   
✅ FreqAI Manager initialisézG
======================================================================u   📊 TEST 1: Données normales)	d   e   c         Y@     X@Y@333333Y@33333X@g33333Y@)	  L          8    i  TESTUSDTg      I@g      ?T)symbolpricesvolumesrsibb_positionblock_on_outlierz   Symbol: TESTUSDTz	   Prix: z...z   Volumes: z   RSI: 50.0, BB Position: 0.5u   
   Résultat: u   🚫 BLOQUÉu   ✅ AUTORISÉu      Méthode: methodzN/Az
   Score: scorer   z.2fz   Raison: reasonu&   📊 TEST 2: Volume spike massif (10x))	r   r   r   r   r	   r
   r   r   i   )	r   r   r   r   r   r   r   r   i.  	SPIKECOINg     @P@g?z   Symbol: SPIKECOINz... (+   r   z.1fz%)z... (zx)z   RSI: 65.0, BB Position: 0.8detailsu      Détails: u&   📊 TEST 3: Prix extrême (pump +20%))	r   r   r   r   r	   r
   r   r   x   )	r   r   r   r   r   r   r   r   i  PUMPCOINg     @U@g333333?z   Symbol: PUMPCOINz   RSI: 85.0, BB Position: 1.2u   📊 TEST 4: Flash crash (-15%))	r   r   r   r   r	   r
   r   r   U   )	r   r   r   r   r   r   r   r   i@  	CRASHCOINg      .@gɿz   Symbol: CRASHCOINz   RSI: 15.0, BB Position: -0.2u   📊 RÉSUMÉ DES TESTSu6  
✅ Test 1: Données normales → Devrait être AUTORISÉ
🚫 Test 2: Volume spike 12x → Devrait être BLOQUÉ
🚫 Test 3: Pump +20% → Devrait être BLOQUÉ
🚫 Test 4: Crash -15% → Devrait être BLOQUÉ

Le système FreqAI protège contre les anomalies de marché avant l'exécution des trades.
    )printr   should_check_outliersgetattrnpmean)managernormal_pricesnormal_volumesshould_blockanalysisspike_pricesspike_volumesr%   pump_pricespump_volumescrash_pricescrash_volumess               ./test_freqai_outlier.pytest_outlier_detectionr;      s   	&M	
CD	&M !"G12	
,- 
-	
*+	&MJMHN$:: ; L( 
!	ImBC()
-.	L,-S
12	*,	|^Q
RSgh%@ABC
78Wa8=>?GHh>?@A 
-	
23	&MGLHM$:: ; L( 
 "	Il23'(b1A,rBR1RST1TVY0Y[^.__a
bc	Lrs+,E-2CBGGMZ][]L^D_2_`c1ddf
gh	*,	|^Q
RSgh%@ABC
78Wa8=>?GHh>?@A(It4M'+, 
-	
23	&MFKFL$:: ; L( 
!	Ik"#&'vBB0OPQ0QSV/VX[-\\^
_`	Lbc*+5b1A"'',WZXZJ[B\1\]`0aac
de	*,	|^Q
RSgh%@ABC
78Wa8=>?GHh>?@A(It4M'+, 
-	
+,	&MFLGM$:: ; L( 
 "	Il23'(R0@bAQ0QRS0SUX/XZ]-^^`
ab	Lrs+,E-2CBGGMZ][]L^D_2_`c1ddf
gh	+-	|^Q
RSgh%@ABC
78Wa8=>?GHh>?@A(It4M'+, 
-	
#$	&M	  	    __main__)__doc__numpyr-   freqai_integrationr   r;   __name__ r<   r:   <module>rC      s.     1Q	f z r<   