
    .i).                     H   d dl Zd dlZd dlmZmZ d dlmZmZm	Z	m
Z
mZmZmZmZmZ d dlmZ d Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zej8                  j;                  dddg      d        Zd Zd Z ej8                  j;                  dddejB                  ejB                  ejB                  ejB                  gg dg dejB                  ejB                  ejB                  ejB                  gg dg dg dgfddg dg dg dg dg dg dg d gfg      d!        Z"d" Z#d# Z$d$ Z%y)%    N)	DataErrorSpecificationError)		DataFrameIndex
MultiIndexPeriodSeries	Timestampconcat
date_rangetimedelta_rangec                    t        t        j                  j                  d      j	                  d            }|j                  d|       }t        j                  |j                  j                  |d d |    j                         |j                  d|       d   }|j                  j                  |d d |    j                  d   k(  sJ |j                  d|       d   }t        j                  |j                  j                  |d d |    j                  ddg          |j                  d|       ddg   }t        j                  |j                  j                  |d d |    j                  ddg          y )N   )   r   r   windowstep   )r      r   )r   nprandomdefault_rngstandard_normalrollingtmassert_index_equal_selected_objcolumnsname)r   framers      Z/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/window/test_api.pytest_getitemr#      s8   bii++A.>>vFGEQT*A!//1154=3H3HIQT*1-A??54=#8#8#;;;; 	QT*40A!//1154=3H3H!Q3PQQT*Aq62A!//1154=3H3H!Q3PQ    c                  &   t        ddggddg      } | j                  d      }t        j                  t        d	      5  |d
g    d d d        t        j                  t        d	      5  |dd
g    d d d        y # 1 sw Y   5xY w# 1 sw Y   y xY w)Nr   r   ABr   r   r   zColumns not found: 'C'matchCz^[^A]+$)r   r   pytestraisesKeyError)dfgs     r"   test_select_bad_colsr2   '   s    	QF8c3Z	0B


!
A	x'?	@ 	3%	xy	1  	
3*   s    A;*B;BBc                  F   t        ddggddg      } | j                  d      }t        j                  |j                  j                         |d   j                                d}t        j                  t        |	      5  |j                   d d d        y # 1 sw Y   y xY w)
Nr   r   r&   r'   r(   r   r)   z%'Rolling' object has no attribute 'F'r*   )
r   r   r   assert_series_equalr&   sumr-   r.   AttributeErrorF)r0   r!   msgs      r"   test_attribute_accessr9   2   s{    	QF8c3Z	0B


!
A133779afjjl3
1C	~S	1 	  s   BB c                    t        t        d      t        dd      dd      }|j                  d|       }|ddg   j                         }t        t        j
                  t        j
                  dd	d
gt        j
                  t        j
                  dddgdt        d            d d |    }t        j                  ||       y )Nr   
   foor&   r'   r,   r   r   r&   r'      	            r&   r'   ABr(   )	r   ranger   r5   r   nanlistr   assert_frame_equalr   r0   r!   resultexpecteds        r"   tests_skip_nuisancerL   ;   s    	qa5A	BB


!$
'ASz] Fvvrvvq!Q'rvvrvvr2r.JKT
 fH &(+r$   c                     t        t        d      t        dd      dd      }|j                  d|       }t        j                  t
        d      5  |j                          d d d        y # 1 sw Y   y xY w)	Nr   r;   r<   r=   r   r   z-Cannot aggregate non-numeric type: object|strr*   )r   rE   r   r-   r.   r   r5   )r   r0   r!   s      r"   test_sum_object_str_raisesrN   F   sa    	qa5A	BB


!$
'A	H
  	
	  s   A++A4c                    t        t        d      t        ddd      d      }|j                  d|       }|d   j                         }|d   j	                         }|d   j                         }|d	   j                         }|d	   j	                         }|j                  t        j                  d
 g      }t        ||||gd      }	t        j                  dd	gddgg      |	_        t        j                  ||	       |j                  t        j                  d d      }t        ||gd      }	t        j                  ||	d       |j                  dddgi      }t        ||gd      }	t        j                  ddg      |	_        t        j                  ||	       |d   j                  ddg      }t        ||gd      }	ddg|	_        t        j                  ||	       d}
t        j                   t"        |
      5  |j                  ddddi       d d d        t        j                   t"        |
      5  |j                  ddddddd       d d d        |j                  ddgddgd      }t        ||||gd      }	g d}t        j                  |      |	_        t        j                  ||	d       y # 1 sw Y   xY w# 1 sw Y   uxY w)Nr   r   r;   r   rC   r   r   r&   r'   c                 0    t        j                  | d      S Nr   )ddofr   stdxs    r"   <lambda>ztest_agg.<locals>.<lambda>Z   s    RVVAA-> r$   r   axismeanz<lambda>c                 0    t        j                  | d      S rQ   rS   rU   s    r"   rW   ztest_agg.<locals>.<lambda>_   s    rvvaa7H r$   T
check_likerT   r&   rZ   r&   rT   r5   nested renamer is not supportedr*   )rZ   r5   )mean2sum2)r^   r_   )r'   rZ   )r'   rT   )r   rE   r   rZ   rT   r5   	aggregater   r   r   from_productr   r   rH   from_tuplesr-   r.   r   )r   r0   r!   a_meana_stda_sumb_meanb_stdrJ   rK   r8   exp_colss               r"   test_aggrl   P   s   	qaQ8	9B


!$
'AsV[[]FcFJJLEcFJJLEsV[[]FcFJJLE[["''#>?@Fvufe41=H!..c
VZ<P/QRH&(+[[rww-HIJFvuoA.H&(t<[[#/0FvuoA.H!--}l.KLH&(+sVvuo.FvuoA.HH&(+
+C	)	5 ;	S6%89:; 
)	5 
	!%0QV7WX	


 [[fe_EFFvufe41=HIH!--h7H&(t<; ;
 
s   ?J<9K<KKc                 T   t        t        d      t        ddd      d      }|j                  d      }|d   j                         }|j	                  t
        j                  d	 d      }|d
   j                  d |       }t        ||gd      }t        j                  ||d       y )Nr   r   r;   r   rC   r   r)   r&   c                 0    t        j                  | d      S rQ   rS   rU   s    r"   rW   z test_agg_apply.<locals>.<lambda>   s    qq0A r$   r'   c                 0    t        j                  | d      S rQ   rS   rU   s    r"   rW   z test_agg_apply.<locals>.<lambda>   s    RVVAA%6 r$   )rawr   rX   Tr\   )
r   rE   r   r5   aggr   applyr   r   rH   )rp   r0   r!   rh   rJ   rcustomrK   s          r"   test_agg_applyrt      s    	qaQ8	9B


!
AcFJJLEUU&ABCFfll6Cl@Gug&Q/H&(t<r$   c                    t        t        d      t        ddd      d      }|j                  d|       }|j                  t        j
                  t        j                  g      j                  }t        j                  t        d      d	d
gg      }t        j                  ||       |d   j                  t        j
                  t        j                  g      j                  }t        d	d
g      }t        j                  ||       |j                  dt        j
                  t        j                  gi      j                  }t        j                  ddg      }t        j                  ||       y )Nr   r   r;   r   rC   r   r   rD   r5   rZ   r&   )r&   r5   r^   )r   rE   r   rq   r   r5   rZ   r   r   rd   rG   r   r   r   re   rI   s        r"   test_agg_consistencyrv      s   	qaQ8	9B


!$
'AUUBFFBGG$%--F&&T
UFO'DEH&(+sVZZ)*22FeV_%H&(+UUC"&&"''*+,44F%%|]&CDH&(+r$   c                  &   t        t        d      t        ddd      d      } | j                  d      }d}t        j                  t
        |	      5  |j                  d
ddgidddgid       d d d        t        |d
   j                         |d
   j                         |d   j                         |d   j                         gd      }t        j                  g d      |_        t        j                  t
        |	      5  |d
dg   j                  dddgidddgid       d d d        t        j                  t
        |	      5  |j                  dddgidddgid       d d d        y # 1 sw Y   xY w# 1 sw Y   WxY w# 1 sw Y   y xY w)Nr   r   r;   r   rC   r   r)   r`   r*   r&   rZ   r5   r'   )r1r2r   rX   ))rarZ   )rz   rT   )rbrZ   )r{   rT   rz   rT   r{   )r   rE   r   r-   r.   r   rc   r   rZ   rT   r   re   r   rq   )r0   r!   r8   rK   s       r"   test_agg_nested_dictsr|      s   	qaQ8	9B


!
A
+C	)	5 R	C&%1#9OPQR 	
3#

afkkmQsVZZ\BH "--FH 
)	5 X	3* 7tfe_>UVWX 
)	5 L	TFE?+4&%2IJKL LR RX XL Ls$   E."E;F.E8;FFzfunc,window_size)r   r   )	expandingNc                 "   t        t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      d      } t        ||       |      }|j                         |j                         z
  }|j                  d       }t        j                  ||       |j                         d|j                         z  z
  }|j                  d d      }t        j                  ||       y )Nr   r;   )r'   r,   c                 D    | j                         | j                         z
  S N)maxrZ   rU   s    r"   rW   ztest_pipe.<locals>.<lambda>   s    aeeg0 r$   c                 J    | j                         || j                         z  z
  S r   )r   min)rV   ks     r"   rW   ztest_pipe.<locals>.<lambda>   s    1quuw;!6 r$   )r   )r   r   r   r   r   getattrr   rZ   piper   rH   r   )funcwindow_sizer0   r!   rK   rJ   s         r"   	test_piper      s     
&&q)99"=&&q)99"=	

B 	D+&Auuw!HVV01F&(+uuwQUUW$HVV6!V<F&(+r$   c                 @   g d}t        d      t        d      t        d       g}t        g dg dt        d      t        dd      t	        d	dd
      t        d      t        d      t        d      gddt        j                  gddt        j                  gddt        j                  g|t        d      t        d      t        d       gd|      }t        g dg dg dg dg dg dg dg dg dg dg dd|      d d |    }|j                  dd|       j                         }t        j                  ||       |j                  dd|       j                         }|j                         j                  t              d d |    }t        j                  ||       y )N)intfloatstringdatetime	timedeltaperiodsfl_inffl_nanstr_nandt_natperiods_nat2017010120170203r   r   r   )g      @g      @g      @abcr   )r   z1 ss)r   freqz2012-01z2012-02z2012-03      ?       @aabbr(   )r   r   r   )r   r   r   r   r   r   min_periodsr   r   )r   r   )r
   r   rG   r   r   r   r   infrF   r   countr   rH   notnaastyper   )r   cols
dt_nat_colr0   rK   rJ   s         r"   test_count_nonnumeric_typesr      s   D J':)>	$PJ	$5k":q9(Dy!y!y!
 C(C(dBFF+ y!y!t	
* -
B2 "$%'(&%%&%*	
  fH" ZZqadZ;AACF&(+ZZqtZ4::<Fxxz  '$/H&(+r$   c                     t        t        j                  d      d      } | j                  d      j	                         }| j                  d      j	                         }|j
                  dk(  sJ |j
                  dk(  sJ y )Nd   r<   )r         )r	   r   aranger   r5   r   )r   s2s3s      r"   test_preserve_metadatar     sf    ryy~E*A	
2			B	
2			B77e77er$   zfunc,window_size,expected_valsr   r   )g      .@      4@      9@r   )r         >@     A@r   )r   r   r   r   )r         D@      N@r   )r         T@g     @U@P   r}   )      $@r   r   r   )r   r   r   r   )r   r   r   r   )gRB:@r   g      I@r   )r   r   r   r   c           
         t        g dg dg dg dg dg dg dgg d	      }t        |j                  d
      |       }|r	 ||      }n |       }t        j                  g dd
d g      }t        j                  g d      }t        |||      }|j                  ddgddgd      }	t        j                  |	|       y )N)r&   r;   r   )r&   r   r   )r&   r   (   )r'   r;   r   )r'   r   r   )r'   r   r   )r'   r   Z   )stocklowhighr(   r   ))r&   r   )r&   r   )r&   r   )r'   r   )r'      )r'   r   )r'   r>   )names))r   rZ   )r   r   )r   rZ   )r   r   )indexr   rZ   r   r   )r   r   )r   r   groupbyr   re   rq   r   rH   )
r   r   expected_valsr0   fr   r   r   rK   rJ   s
             r"   test_multiple_agg_funcsr   !  s    B 
	
 )
B 	

7#T*A;""NoE $$LG eWEHZZ&%IJF&(+r$   c                 (   t        t        d            j                  d||||      }|j                  D ci c]  }|t	        ||       }} t	        ||               |j                  D ci c]  }|t	        ||       }}||k(  sJ y c c}w c c}w )Nr   )centerclosedr   r   )r	   rE   r   _attributesr   )	arithmetic_win_operatorsr   r   r   r   roll_objattrrK   rJ   s	            r"   )test_dont_modify_attributes_after_methodsr   c  s     eAh''	&[t ( H ;C:N:NO$gh--OHO/GH./18@8L8LMdGHd++MFMX PMs   B
,Bc                    t        g d      }|j                  dd|       j                         }t        t        j                  t        |                  d d |    }t        j                  ||       d}t        j                  t        |      5  t        g d      j                  dd	|       j                          d d d        y # 1 sw Y   y xY w)
Nr   r   r   r   r   r   r   r   !min_periods 5 must be <= window 3r*   r   r   r   )r	   r   r   r   oneslenr   r4   r-   r.   
ValueErrorr   arJ   rK   r8   s        r"   test_rolling_min_min_periodsr   p  s    AYYcqtY<@@BFbggc!fo&vv.H68,
-C	z	- Ly!!!EIIKL L Ls   .CCc                 |   t        g dt        j                        }|j                  dd|       j	                         }|d d |    }t        j                  ||       d}t        j                  t        |      5  t        g d      j                  d	d
|       j	                          d d d        y # 1 sw Y   y xY w)Nr   )dtyper   r   r   r   r*   r   r   r   )
r	   r   float64r   r   r   assert_almost_equalr-   r.   r   r   s        r"   test_rolling_max_min_periodsr   z  s    bjj1AYYcqtY<@@BF4yH68,
-C	z	- Ly!!!EIIKL L Ls   ;.B22B;)&numpyr   r-   pandas.errorsr   r   pandasr   r   r   r   r	   r
   r   r   r   pandas._testing_testingr   r#   r2   r9   rL   rN   rl   rt   rv   r|   markparametrizer   r   r   rF   r   r   r   r    r$   r"   <module>r      sR    

 
 
 R ,-=`
=,"L, 	
	
	,,&@,F $ 0((0((&	
 (((((-(	
> ,?> ,F
LLr$   