
    .iF                        d dl m Z  d dlZd dlZd dlmZ d dlmZ d dlZ	d dlm
Z
mZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlm Z   ejB                  g d      d        Z"ejF                  jI                  dddg      ejF                  jI                  d eddd       e e ddd       e ddd      d      g      d               Z%ejF                  jI                  d eddd       e e ddd       e ddd      d      g      d        Z&ejF                  jI                  d eddd       e e ddd       e ddd      d       e e ddd       e ddd      d      g      d        Z'd Z(d  Z)d! Z*d" Z+ejF                  jI                  d eg dd#$       eg d#%       eg d#%      g      ejF                  jI                  dg d&      d'               Z,ejF                  jI                  d(d dg      d)        Z-ejF                  jI                  d ej\                  d*ejF                  j_                  d+,      -      dd.g      d/        Z0ejF                  jI                  d eg dd#$       eg d#%       eg d#%      g      ejF                  jI                  dg d&      ejF                  jI                  d0d1d2g      d3                      Z1ejF                  jI                  d eg        eg        eg d      g      ejF                  jI                  dg d&      d4               Z2ejF                  jI                  d eg        eg        eg d      g      ejF                  jI                  dg d&      d5               Z3ejF                  jI                  d eg        eg        eg d      g      ejF                  jI                  dg d&      d6               Z4ejF                  jI                  d eg        eg       g      ejF                  jI                  ddd.g      ejF                  jI                  d7g d8      d9                      Z5ejF                  jI                  d eg d:d#$       eg d#%       eg d#%      g      ejF                  jI                  d;e6e7e8d<g      d=               Z9ejF                  jI                  d eg dd#$       eg d#%       eg d#%      g      ejF                  jI                  dg d&      d>               Z:ejF                  jI                  d eddd       e e ddd       e ddd      d       e e ddd       e ddd      d      g      d?        Z;ejF                  jI                  d eddd       e e ddd       e ddd      d       e e ddd       e ddd      d      g      d@        Z<ejF                  jI                  dAdBdCg      dD        Z=y)E    )datetimeN)Pandas4Warning)is_extension_array_dtype)	DataFrameDatetimeIndexIndex
MultiIndexNaTPeriodIndexSeriesTimedeltaIndex)	DataError)Grouper)
date_range)period_range)timedelta_range)_asfreq_compat)lineartimeindexvaluesnearestzeroslinear	quadraticcubicbarycentrickroghfrom_derivativespiecewise_polynomialpchipakima)paramsc                     | j                   S N)param)requests    ]/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/resample/test_base.py#all_1d_no_arg_interpolation_methodsr)      s    ( ==    freq2D1hr   z1 dayz10 dayDr+        
   c                 J    | t        t        |            |      }t        |t              rt        nt
        }|j                  |      j                         } ||j                  d   |j                  d   |      }|j                  |      }t        j                  ||       y )Nr   r   r/   )rangelen
isinstancer   r   r   resampleasfreqr   reindextmassert_almost_equal)frame_or_seriesr   r+   obj	idx_rangeresult	new_indexexpecteds           r(   test_asfreqrD   5   s|     %E
+5
9C(>
OI\\$&&(F#))A,		"DAI{{9%H68,r*   c                    t        t        t        |             | d      }t        | t              rt
        nt        }|j                  d      j                         } ||j                  d   |j                  d   d      }|j                  |      }t        j                  ||       |j                  d      j                  d      }d |j                  d	<   |j                  d      j                  d
      } ||j                  d   |j                  d   d      }|j                  |d
      }t        j                   ||       y )Na)r   namer-   r   r5   r/   floatvaluer1         @)
fill_value)r   r6   r7   r8   r   r   r   r9   r:   r   r;   r<   assert_series_equalastypeto_frameilocassert_frame_equal)r   serr@   rA   rB   rC   frames          r(   test_asfreq_fill_valuerS   G   s    s5z"%c
:C(>
OI\\$&&(F#))A,		"DAI{{9%H68, JJw((1EEJJqM^^D!((C(8F%++a.%++b/EI}}Y3}7H&(+r*   z3 day   c                    t        t        t        |             |       }|j                  d      j	                         j                         }|j                  d      j                         }t        j                  ||       y )Nr4   1min)r   r6   r7   r9   r:   interpolater<   rP   )r   dfrA   rC   s       r(   test_resample_interpolaterY   b   s`     
5U$E	2B[[ '')557F{{6"..0H&(+r*   c                     t        t        ddd      t        ddd      d      } t        t        t	        |             |       }|j                  d      }d}t        j                  t        |	      5  |j                  d
       d d d        d}t        j                  t        |	      5  t        j                  t        |	      5  |j                  d       d d d        d d d        y # 1 sw Y   fxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr0   r1   r2   r.   r/   r4   rV   z;The 'inplace' keyword in DatetimeIndexResampler.interpolatematchF)inplacez0Cannot interpolate inplace on a resampled objectT)r   r   r   r6   r7   r9   r<   assert_produces_warningr   rW   pytestraises
ValueError)dtirX   rsmsgmsg2s        r(   ,test_resample_interpolate_inplace_deprecatedrf   r   s    
XdAq)8D!R+@s
KC	5S?#	.B	V	B
GC		#	#N#	> &
u%& >D	z	. )''cB 	)NN4N(	)) )	& &
	) 	)) )s0   2C**DC6D*C36C?	;DDc                    t        j                  d       t        ddd      }t        t	        j
                  d      |      }| }|j                  d      j                  |      }|dk(  rDt	        j                  t	        j
                  d	d
      d      t	        j                  ddgd      z   }n}|dk(  r.t	        j                  t	        j
                  d	d      d      dd }nJ|dk(  r+t	        j                  t	        j
                  d	d
      d      }ndt	        j
                  d	d
d      z   }t	        j                  |dt        j                        }t        ddd      }t        ||      }t        j                  ||       y )Nscipyz2000-01-01 00:01:00   2h)periodsr+   g      @r-   r           rJ      gUUUUUU?gUUUUUU?   r   r1   r5   r   goaxw?g      ?r   2000-01-01 00:00:00	   r4   )r_   importorskipr   r   nparanger9   rW   repeattileinsertnanr<   rL   )r)   r   rQ   methodrA   r   rC   s          r(   3test_resample_interpolate_regular_sampling_off_gridry      s/     ,adCE
3
'C0F\\$++F3F299S#.2RWWeU^Q5OO	9	299S#.21R8	6	299S#.2BIIc344YYvq"&&)F,adCEfE*H68,r*   c                 j   t        j                  d       t        t        j                  ddd      t        g d            }|j                  d      j                  |       }t        j                  |j                  d         sJ |j                  d	d  j                         j                         rJ y )
Nrh   rl   g      ?ri   )z2000-01-01 00:00:03z2000-01-01 00:00:22z2000-01-01 00:00:24z2000-01-01 00:00:31z2000-01-01 00:00:39r4   5sr   r1   )r_   rq   r   rr   linspacer   r9   rW   isnanrO   isnaany)r)   rQ   ser_resampleds      r(   ,test_resample_interpolate_irregular_samplingr      s    
 

Ca 
C LL&223VWM 88M&&q)***!!!"%**,002222r*   c                      t               } d}t        j                  t        |      5  | j	                  d       d d d        y # 1 sw Y   y xY w)NzaOnly valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'r[   YE)r   r_   r`   	TypeErrorr9   )xprd   s     r(   %test_raises_on_non_datetimelike_indexr      sD    	B	.  
y	, 
D  s   AArF   )r+   rG   )rG   )MEr.   hc                 V   t        |t              }| dk(  rRt        |j                  t              r8d}t        j                  t        |      5  |j                  |        d d d        y | dk(  rt        |j                  t              rd} |j                  |       } t        ||             }|dk(  rQt        g |j                  d d g d	      }t        |j                  |       |_        t        j                  ||d
       nC|j                         }t        |j                  |       |_        t        j                   ||d
       t        j"                  |j                  |j                         |j                  j$                  |j                  j$                  k(  sJ y # 1 sw Y   y xY w)Nr   dtyper   aResampling on a TimedeltaIndex requires fixed-duration `freq`, e.g. '24h' or '3D', not <MonthEnd>r[   Mohlcr   openhighlowcloser   columnsFcheck_dtype)r   rH   r8   r   r   r_   r`   ra   r9   r   getattrr   r   r<   rP   copyrL   assert_index_equalr+   r+   r   resample_methodrQ   rd   rc   rA   rC   s           r(   test_resample_empty_seriesr      sK    uE
*Ct|
399n=1 	 ]]:S1 	LL		*SYY<	d	B)WR)+F& ciim-M
 (		48
fhEB88:'		48
vxUC&,,7<< 3 3333+	s   FF(	min_countc                 0   | }t        t        j                  t        g d      |      }|j	                  d      }|j                  |      }|dk(  rdnt        j                  }t        dddd	
      }t        |||      }t        j                  ||       y )N)ro   z2000-01-01 00:00:10z2000-01-01 00:00:20z2000-01-01 00:00:30r   20s)r   r    z
2000-01-01rm   us)startr+   rk   unit)	r   pdNAr   r9   sumr   r<   rL   )	string_dtype_no_objectr   r   rQ   rc   rA   rI   r   rC   s	            r(   test_resample_empty_sum_stringr      s     #E


 C 
e	BVViV(Fq.BbeeE\qtLEe56H68,r*   r   zDon't know why this fails)reason)marksr   c                    t        t        d      t        t        gdz  |             }|j	                  |       } t        ||             }|dk(  r6t        g |j                  d d g d      }t        j                  ||d	       n+|d d j                         }t        j                  ||d	       t        j                  |j                  |j                         |j                  j                  |j                  j                  k(  sJ y )
Nri   r/   r4   r   r   r   r   Fr   )r   r6   r   r
   r9   r   r   r   r<   rP   r   rL   r   r+   )r+   r   rQ   rc   rA   rC   s         r(   test_resample_nat_index_seriesr     s     qcUQYT!B
CC	d	B)WR)+F& ciim-M
 	fhEBr7<<>
vxUC&,,7<< 3 3333r*   r   countsizec                    t        |      }| dk(  rRt        |j                  t              r8d}t	        j
                  t        |      5  |j                  |        d d d        y | dk(  rt        |j                  t              rd} |j                  |       } t        ||             }t        |j                  |       }t        g d||j                        }t        j                  ||       y # 1 sw Y   y xY w)Nr4   r   r   r[   r   int64)r   r   rG   )r   r8   r   r   r_   r`   ra   r9   r   r   r   rG   r<   rL   r   s           r(    test_resample_count_empty_seriesr     s     u
Ct|
399n=1 	 ]]:S1 	LL		*SYY<	d	B)WR)+F399d+Ebu388DH68,	s   	C--C6c                    t        |       }|dk(  rTt        |j                  t              r:d}t	        j
                  t        |      5  |j                  |d       d d d        y |dk(  rt        |j                  t              rd}|j                  |d      } t        ||             }|dk(  rit        j                  |j                  g d	g      }t        g |j                  d d
 |t        j                        }t        |j                  |      |_        n1|dk7  r|j!                         }nt#        g t        j$                        }t        |j                  |      |_        t'        j(                  |j                  |j                         |j                  j*                  |j                  j*                  k(  sJ t'        j,                  ||       y # 1 sw Y   y xY w)Nr4   r   r   r[   F
group_keysr   r   r   r   )r   r   r   r   r   )r   r8   r   r   r_   r`   ra   r9   r   r   r	   from_productr   rr   float64r   r   r   r   r<   r   r+   r=   )	r   r+   r   rX   rd   rc   rA   mirC   s	            r(   test_resample_empty_dataframer   A  sq    
	Bt|
288^<1 	 ]]:S1 	0KKK/	0	*RXX{;	Te	,B)WR)+F& $$bjj2R%STRrxx|RrzzR'$7	F	"779 "BHH-#BHHd3HN&,,7<< 3 333368,1	0s   	GGc                    t        |t        dgt                    }| dk(  rRt        |j                  t
              r8d}t        j                  t        |      5  |j                  |        d d d        y | dk(  rt        |j                  t              rd} |j                  |       j                         }t        |j                  |       }t        d|t        dgt              	      }t        j                  ||       y # 1 sw Y   y xY w)
NrF   r   r   r   r   r[   r   r   )r   r   r   )r   r   objectr8   r   r   r_   r`   ra   r9   r   r   r   r<   rP   r+   r   empty_frame_dtird   rA   rC   s         r(   #test_resample_count_empty_dataframer   k  s      eUC55OPOt|
?#8#8.I1 	 ]]:S1 	+$$T*	+	*_%:%:KH%%d+113F?00$7EweUC5PV=WXH&(+	+s   D  D	c                    t        |t        dgt                    }| dk(  rRt        |j                  t
              r8d}t        j                  t        |      5  |j                  |        d d d        y | dk(  rt        |j                  t              rd} |j                  |       j                         }t        |j                  |       }t        g d|	      }t        j                  ||       y # 1 sw Y   y xY w)
NrF   r   r   r   r   r[   r   r   )r   r   )r   r   r   r8   r   r   r_   r`   ra   r9   r   r   r   r   r<   rL   r   s         r(   "test_resample_size_empty_dataframer     s      eUC55OPOt|
?#8#8.I1 	 ]]:S1 	+$$T*	+	*_%:%:KH%%d+002F?00$7Ebu5H68,	+s   C00C9rx   )ffillbfillr   r:   rW   meanc                     t        |       }|j                  |      }|j                  t        ||            }t	        |j
                  |      }t        g |      }t        j                  ||       y )Nr4   )r   r9   applyr   r   r   r<   rP   )r   r+   rx   r   rc   rA   expected_indexrC   s           r(   #test_resample_apply_empty_dataframer     sa      e,O		!	!$	'BXXgb&)*F#O$9$94@N>2H&(+r*   r   r   zdatetime64[ns]c                     t        g | |      }|j                  dd      }	  t        ||              y # t        $ r Y y w xY w)Nr.   Fr   )r   r9   r   r   )r   r   r   empty_series_dtirc   s        r(   test_resample_empty_dtypesr     sP     b%/		"	"35	"	9B$O$&  	s   4 	A A c                    t        |       }|dk(  rRt        |j                  t              r8d}t	        j
                  t        |      5  |j                  |       d d d        y |dk(  rt        |j                  t              rd}|j                  |d      j                  d       }|j                  |      j                  d	      }t        j                  ||d
       y # 1 sw Y   y xY w)Nr4   r   r   r[   r   Fr   c                      y)Nr1    )xs    r(   <lambda>z,test_apply_to_empty_series.<locals>.<lambda>  s    r*   r   r   )r   r8   r   r   r_   r`   ra   r9   r   r   r<   rL   )r   r+   rQ   rd   rA   rC   s         r(   test_apply_to_empty_seriesr     s     u
Ct|
399n=1 	 ]]:S1 	LL		*SYY<\\$5\177DF||D!''.H68?	s   	C!!C*c                    t        t        t        |             |       }d}t        |d      }|j	                  |      }|j                  |      }t        ||      D ](  \  \  }}\  }}	||k(  sJ t        j                  ||	       * y )Nr4   r   r   )r+   
convention)	r   r6   r7   r   groupbyr9   zipr<   rL   )
r   seriesr+   tggrouped	resampledrkrvgkgvs
             r(   test_resampler_is_iterabler     s     E#e*%U3FD	dw	/BnnR G%I!)W5 'R(2rRxx
r2&'r*   c                 0   t        t        t        |             |       }dd}|j                  |      j	                        }|j                  |      j                  fd      j                  |j                        }t        j                  ||       y )Nr4   g      ?r   c                 &    | j                        S r%   )quantile)r   qs    r(   r   z(test_resample_quantile.<locals>.<lambda>  s    

1 r*   )
r   r6   r7   r9   r   aggrenamerG   r<   rL   )r   rQ   r+   rA   rC   r   s        @r(   test_resample_quantiler     sv     s5z"%
0CAD\\$((+F||D!%%&=>EEchhOH68,r*   howfirstlastc           	         t        |       r!t        |       j                  j                  }nt        j
                  }t        g d|d|dg|d|dgdt        dddd	
      |       }|j                  d      }t        ||      } ||      }t        j                  d      j                  d	      }|j                  |j                  d   |gz        }	 t        |	|      |      }
d|
j                  _        t#        j$                  ||
       y )Nr   )rm   r1   r1   rm   g      @rJ   )rF   bcz
2020-01-01rn   r.   ns)rk   r+   r   r   r   )skipnaz
2020-01-31r   )r   r   r   na_valuerr   rw   r   r   r9   r   r   to_datetimeas_unitr   shaper   r+   r<   rP   )any_real_nullable_dtyper   r   r   rX   rc   rx   rA   tsgbrC   s              r(   test_first_last_skipnar     s       78 78>>GG66	C3/C3/	

 qsF%
B 
T	BRF6"F		%	-	-d	3B	BHHQK2$&	'Bwr3v.HHNN&(+r*   )>r   numpyrr   r_   pandas.errorsr   pandas.core.dtypes.commonr   pandasr   r   r   r   r	   r
   r   r   r   pandas._testing_testingr<   pandas.core.groupby.groupbyr   pandas.core.groupby.grouperr   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   pandas.core.indexes.timedeltasr   pandas.core.resampler   fixturer)   markparametrizerD   rS   rY   rf   ry   r   r   r   r   r&   xfailr   r   r   r   r   r   rH   intr   r   r   r   r   r   r   r*   r(   <module>r     s      ( > 	 	 	  1 / 4 3 : / &'& $.48D!Q'$2)>SI- /- 48D!Q'$2)>SI,,( s38D!Q'$1)=CHXdAq)8D!Q+?cJ,,) -232 BSs+bs#r$ !124 34B q!f-- .-0 
T!2!2:U!2!VW44( BSs+bs#r$ !12*Wf,=>- ? 3-2 mB!3[#5NO !12!- 3!-L mB!3[#5NO !12, 3,0 mB!3[#5NO !12- 3-2 =#4nR6H"IJ#s,L
, - K

, BSs+bs#r$ 5#v7G"HI J BSs+bs#r$ !12@ 3@* 48D!Q'$2)>SIXdAq)8D!R+@sK	'	' 48D!Q'$2)>SIXdAq)8D!R+@sK-- & 12, 3,r*   