
    .i                     d   d dl mZ d dlZd dlZd dlmc mZ d dl	Z
d dl	mZmZ d dl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j6                  j9                  dg d      d        Zej6                  j9                  dddg      d        Zd Zd Z  ejB                  d      d        Z"y)    )	timedeltaN)	DataFrameSeries)timedelta_rangec            	      (   t        ddgt               t        d      g      } | j                  d      j                         }t        dt        j
                  t        j
                  dgt        dddd	            }t        j                  ||       y )
N      )minutesdataindex1min0 day   us)periodsfrequnit)	r   r   resampleasfreqnpnanr   tmassert_frame_equal)dfresultexpecteds      b/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/resample/test_timedelta.pytest_asfreq_bugr      ss    	Ay{Ia4H&I	JB[[ '')F#gqvDIH &(+    c                  .   t        j                  dt         j                  dg      } t        dg di|       j	                  d      j                         }t        ddt        j                  dgit        dd	d
            }t        j                  ||       y )N0s2svalue)   r	      1sg      @g      @r   r	   r   r   r   )pdto_timedeltaNaTr   r   meanr   r   r   r   r   )r   r   r   s      r   test_resample_with_natr.      s{    OOT266401E+U3<<TBGGIF	3$%gqt<H &(+r    c                  b   t        ddd      } t        dg di|       }|j                  d      j                         }dd	t        j
                  t        j
                  t        j
                  t        j
                  d
gi}t        |t        ddd            }t        j                  ||       y )Nz00:00:00z00:10:005minr   r$   )r   r&   
   r   2minr   r2   )r   r   r   r   r   r   r   r   )r   r   r   expected_datar   s        r   $test_resample_as_freq_with_subperiodr5   &   s    J
@E	*-U	;B[[ '')Fq"&&"&&"&&"&&"EFM/*jv"VH &(+r    c                  X   t        dt        j                  d      i      } | j                  | j                  dz        j                         } t        ddd      | _        t        dt        j                  d      it        j                  t        j                  d      d	      j                  d
            }|j                  d      j                         }t        j                  ||        |d   }|j                  d      j                         }t        j                  || d          y )NAi     z0 days30min2   r   r   minr   r   r)   )r   r   arangegroupbyr   sumr   r*   r+   as_unitr   r   r   assert_series_equal)r   r   r   ss       r   test_resample_with_timedeltasrD   2   s    #ryy/0H" 4599;H$XGRHHN		biiooobiioE:BB4H
B [[!%%'F&(+
3AZZ $$&F68C=1r    c                      t        t        t        d            t        ddd            } | j	                  d      j                         }t        g dt        ddd            }t        j                  ||       y )	Nr&   1 dayrC   r;   r)   r#   )r   r&   r   r	   )r   listranger   r   r@   r   rB   )rC   r   r   s      r   %test_resample_single_period_timedeltarI   D   s]    tE!H~_W3PQ%RSAZZ!!#FiwTST'UVH68,r    c                      t        ddd      } t        t        d      |       }|j                  d      j	                         }|j                  t              }t        j                  ||       y )N0	   10msr(   r)   )	r   r   rH   r   r-   astypefloatr   rB   )r   seriesr   r   s       r   #test_resample_timedelta_idempotencyrQ   K   sU    C8EE!HE*F__V$))+F}}U#H68,r    c                     t        ddd      } t        t        j                  j	                  d      j                  t        |             |       }|j                  dd	      j                         }|j                  d      j                         }t        dd
d      }t        ddd      }t        j                  |j                  |       t        j                  |j                  |       y )Nr"      rC   startr   r   r%   r)   r#   5s)offset25srU   endr   29s)r   r   r   randomdefault_rngstandard_normallenr   r-   r   assert_index_equalr   )rngts	with_basewithout_baseexp_without_baseexp_with_bases         r   (test_resample_offset_with_timedeltaindexrg   T   s    
bs
;C			%%a(88SB#	NBD.335I;;t$))+L&Tu4H#$EEM,,,.>?)//=9r    c            
         t        ddit        j                  t        t	        d            d            } | d   j                  d      | d<   | j                  d	      j                  d
       }t        j                  t        j                  ddgd      d	      }t        ddgddgd|      }|j                  ddgd      }|d   j                  d      |d<   t        j                  ||       y )N	Group_objr7      rC   r=   r)   categoryGroup10sc                 <    | j                         j                  d   S )Nr   )value_countsr   xs    r   <lambda>zDtest_resample_categorical_data_with_timedeltaindex.<locals>.<lambda>g   s    q~~/?/E/Ea/H r    r   r2   zm8[s]dtyper1   )ri   rl   r   )axis)r   r*   r+   rG   rH   rN   r   aggTimedeltaIndexr   arrayreindexr   r   )r   r   exp_tdir   s       r   2test_resample_categorical_data_with_timedeltaindexr{   c   s    	K%R__T%)_SV-W	XB[/((4BwK[[##$IJF!R @uMGCjC:6H g 6Q?H -44Z@HW&(+r    c                     t        ddd      } t        d| i|       }t        ddd      }t        ||d      }t        j                  |j
                  d	<   |j                  d      j                         d   }t        j                  ||       |d   j                  d      j                         }t        j                  ||       y )
NrF   z6 day4Dr1   timer)   2D)r   namer   )
r   r   r   r*   r,   ilocr   firstr   rB   )timesr   times2express        r   test_resample_timedelta_valuesr   r   s    
 GW48E	FE?%	0BWgD9F
vF
3C&&CHHQK
++d

!
!
#F
+C3$
V*

d
#
)
)
+C3$r    zstart, end, freq, resample_freq))8h21h59min50srm   3h)r   22h1h5h)527D5006D3D10D)1Dr   r   r   )r   r   rm   2h)0hr   rm   r   )r   85DDr   c                    t        | ||      }t        t        j                  t	        |            |      }|j                  |      j                         }t        || |      }t        j                  |j                  |       |j                  j                  |j                  k(  sJ t        j                  |j                  d         rJ y )NrY   r)   )r   rU   rZ   )r   r   r   r>   r_   r   r<   r   r`   r   r   isnanr   )rU   rZ   r   resample_freqidxrC   r   expected_indexs           r   !test_resample_timedelta_edge_caser      s      3T
:CryyS"#.AZZ&**,F$-u#NN&,,7<< 3 3333xxB((((r    
duplicatesTFc           	         t        t        j                  j                  d      j	                  d      t        ddd            }| r	g d	|_        |j                  d
d d d f   j                  d      j                  d       }t        dgdz  gdz  dgdz  gz   t        d
ddd            }|j                  |_        t        j                  ||       y )Nr%   )'  r   )sizer"   r   	3906250nsrT   r)   )r7   Br7   Cr'   3sc                     t        |       S )N)r_   rp   s    r   rr   zEtest_resample_with_timedelta_yields_no_empty_groups.<locals>.<lambda>   s
    SV r    i   r      i     ns)rU   r   r   r   )r   r   r\   r]   normalr   columnslocr   applyr   r   )r   r   r   r   s       r   3test_resample_with_timedelta_yields_no_empty_groupsr      s     

		a ''Z'8D%kJ
B )
VVDE1H&&t,223CDF
bSEAI;&D"4dKH zzH&(+r    c           	         t        j                  d|  d      }t        dt        j                  t        j
                  d      d      j                  |      it        j                  ddd	      
      }|j                  d      j                  d      }t        dt        j                  d      t        j                  d      git        j                  dddd      
      j                  |      }t        j                  ||       y )Nzm8[]r$   r   rC   r=   20200101UTC)r   tzr)   r   gGz?z0 days 00:00:00.990000z0 days 00:00:02.990000r%   )r   r   r   )r   rt   r   r*   r+   r>   rN   
date_ranger   quantile	Timedeltar   r   )r   rt   r   r   r   s        r    test_resample_quantile_timedeltar      s    HHs4&]#E		"//"))A,S9@@GHmmJe<
B [[''-F5656	
 mmJe$G fUm  &(+r    c                     t        j                  t        d      D  cg c]  } t        j                  d| dz  z           c}       }t	        t        d      |      }|j                  ddd      j                         }t	        g d	t        j                  t        d
      D  cg c]  } t        j                  d| dz  z           c} d            }t        j                  ||       y c c} w c c} w )Nr2   x   r8   )secondsr)   r<   right)closedlabel)r   r	            rL      <   r1   )
r*   IndexrH   r   r   r   r@   rw   r   rB   )ir   serr   r   s        r   test_resample_closed_rightr      s    
((b	J1BLLq2v6J
KC
r#
&C\\%w\?CCEF9>qBAR\\#B,/B
H 68, K Cs   #C+##C0pyarrowc                     t        j                  t        dd      d      } t        t	        j
                  dt        j                        |       }|j                  d      j                         }t        j                  ||       y )NrF   r&   )r   zduration[ns][pyarrow]rs   r)   r   )r*   r   r   r   r   r>   float64r   r-   r   rB   )r   r   r   s      r   test_arrow_duration_resampler      s`     ((?7A6>U
VCbii4C@Ht$))+F68,r    )#datetimer   numpyr   pytestpandas.util._test_decoratorsutil_test_decoratorstdpandasr*   r   r   pandas._testing_testingr   pandas.core.indexes.timedeltasr   r   r.   r5   rD   rI   rQ   rg   r{   r   markparametrizer   r   r   r   
skip_if_nor    r    r   <module>r      s       ) )   :,,	,2$--:,%$ %		)	) e}5, 6,(,(- y- -r    