
    o[we+              
          d dl m Z  d dlZd dlZd dl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d
 e ddd           e ddd          fZed e ddd           e ddd          fZedddfZej                            deeeg          Zej         d             Z!ej                            dddg          ej                            deeg          d                         Z"ej                            deeg          d             Z#ed             Z$d Z%eej                            dg d          d                         Z&eej                            d ej'        dej        (                    d                     d!d"g          d#                         Z)eej                            dg d          ej                            d$d%d&g          d'                                     Z*eej                            dg d          d(                         Z+eej                            dg d          d)                         Z,eej                            dg d          d*                         Z-ej        .                    d+          ej                            d, ej/        d                     ej                            d-e0e1e2d.g          d/                                     Z3eej                            dg d          d0                         Z4ed1             Z5ed2             Z6dS )3    )datetimeN)	DataFrame
MultiIndexNaTPeriodIndexSeriesTimedeltaIndex)	DataError)Grouper)
date_range)period_range)timedelta_range)_asfreq_compatdtii     
   pitdiz1 dayz10 dayz3_index_factory,_series_name,_index_start,_index_endc                       fd}|S )Nc                       | i |S )z8return the _index_factory created using the args, kwargs )argskwargs_index_factorys     ?lib/python3.11/site-packages/pandas/tests/resample/test_base.py_create_indexz#create_index.<locals>._create_index(   s    ~t.v...    r   )r   r   s   ` r   create_indexr   &   s$    / / / / / r   freq2D1Hc                     | }|                     |                                          } ||j        d         |j        d         |          }|                    |          }t	          j        ||           d S )Nr   r   )resampleasfreqindexreindextmassert_almost_equal)series_and_framer   r   objresult	new_indexexpecteds          r   test_asfreqr0   /   sr    
 C\\$&&((FSYq\39R=tDDDI{{9%%H68,,,,,r   c                 J   | }|                     d                                          } ||j        d         |j        d         d          }|                    |          }t	          j        ||           |                    d                              d          }d |j        d<   |                     d                              d	          } ||j        d         |j        d         d          }|                    |d	          }t	          j	        ||           d S )
Nr!   r   r#   r$   floatvaluer   g      @)
fill_value)
r%   r&   r'   r(   r)   assert_series_equalastypeto_frameilocassert_frame_equal)seriesr   serr-   r.   r/   frames          r   test_asfreq_fill_valuer=   <   s
    C\\$&&((FSYq\39R=tDDDI{{9%%H68,,, JJw((11EEJqM^^D!!((C(88FU[^U[_4HHHI}}Y3}77H&(+++++r   c                     | }|                     d                                                                          }|                     d                                          }t          j        ||           d S )N1T)r%   r&   interpolater)   r9   )r<   dfr-   r/   s       r   test_resample_interpolaterB   R   sh     
B[[%%''3355F{{4  ,,..H&(+++++r   c                      t                      } d}t          j        t          |          5  |                     d           d d d            d S # 1 swxY w Y   d S )NzaOnly valid with DatetimeIndex, TimedeltaIndex or PeriodIndex, but got an instance of 'RangeIndex'matchA)r   pytestraises	TypeErrorr%   )xpmsgs     r   %test_raises_on_non_datetimelike_indexrL   [   s    	B	.  
y	,	,	,  
C                 s   AAA)MDHc                    |}| dk    rft          |j        t                    rLd}t          j        t
          |          5  |                    |            d d d            n# 1 swxY w Y   d S |                    |           } t          ||                      }|dk    ret          g |j        d d         	                                g d          }t          |j        |           |_        t          j        ||d	           nE|	                                }t          |j        |           |_        t          j        ||d	           t          j        |j        |j                   |j        j        |j        j        k    sJ d S )
NrM   aResampling on a TimedeltaIndex requires fixed-duration `freq`, e.g. '24H' or '3D', not <MonthEnd>rD   ohlcr   openhighlowcloser'   columnsFcheck_dtype)
isinstancer'   r	   rG   rH   
ValueErrorr%   getattrr   copyr   r)   r9   r5   assert_index_equalr   )r   empty_series_dtiresample_methodr;   rK   rsr-   r/   s           r   test_resample_empty_seriesrd   f   s   
 Cs{{z#)^<<{1 	 ]:S111 	 	LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 		d		B)WR))++F&  cim((**4T4T4T
 
 
 (	488
fhEBBBBB88::'	488
vxUCCCC&,777< 3333333    A""A&)A&rM   zDon't know why this fails)reason)marksrN   rO   c                 ^   |                                 }t          t          gt          |          z  |           |_        |                    |           } t          ||                      }|dk    rKt          g |j        d d                                          g d          }t          j	        ||d           n3|d d                                          }t          j
        ||d           t          j        |j        |j                   |j        j        |j        j        k    sJ d S )Nr$   rR   r   rS   rX   FrZ   )r_   r   r   lenr'   r%   r^   r   r)   r9   r5   r`   r   )r   r:   rb   r;   rc   r-   r/   s          r   test_resample_nat_index_seriesrj      s    ++--CSECHH,4888CI	d		B)WR))++F&  cim((**4T4T4T
 
 
 	fhEBBBBBrr7<<>>
vxUCCCC&,777< 3333333r   rb   countsizec                    |}| dk    rft          |j        t                    rLd}t          j        t
          |          5  |                    |            d d d            n# 1 swxY w Y   d S |                    |           } t          ||                      }t          |j        |           }t          g d||j
                  }t          j        ||           d S )NrM   rQ   rD   int64)dtyper'   name)r\   r'   r	   rG   rH   r]   r%   r^   r   r   rp   r)   r5   )	r   ra   rb   r;   rK   rc   r-   r'   r/   s	            r    test_resample_count_empty_seriesrq      s   
 Cs{{z#)^<<{1 	 ]:S111 	 	LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 		d		B)WR))++F39d++Ebu38DDDH68,,,,,re   c                 x   | }|dk    rht          |j        t                    rNd}t          j        t
          |          5  |                    |d           d d d            n# 1 swxY w Y   d S |                    |d          } t          ||                      }|dk    rtt          j	        |j
        g dg          }t          g |j        d d                                         |t          j        	          }t          |j        |          |_        n6|d
k    r|                                }nt!          g t          j                  }t          |j        |          |_        t%          j        |j        |j                   |j        j        |j        j        k    sJ t%          j        ||           d S )NrM   rQ   rD   F
group_keysrR   rS   r   )r'   rY   ro   rl   )ro   )r\   r'   r	   rG   rH   r]   r%   r^   r   from_productrY   r   r_   npfloat64r   r   rn   r)   r`   r   r*   )	empty_frame_dtir   rb   rA   rK   rc   r-   mir/   s	            r   test_resample_empty_dataframerz      s    
Bs{{z"(N;;{1 	 ]:S111 	0 	0KKK///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0	Te	,	,B)WR))++F&  $bj2R2R2R%STTbhrrl''))2RZ
 
 
 ($77	F	"	"7799 "BH---#BHd33HN&,777< 3333368,,,,,s    A$$A(+A(c                    g |d<   | dk    rft          |j        t                    rLd}t          j        t
          |          5  |                    |            d d d            n# 1 swxY w Y   d S |                    |                                           }t          |j        |           }t          dg id|          }t          j        ||           d S NarM   rQ   rD   rn   )ro   r'   )r\   r'   r	   rG   rH   r]   r%   rk   r   r   r)   r9   r   rx   rK   r-   r'   r/   s         r   #test_resample_count_empty_dataframer      s   
 OCs{{z/"7HH{1 	 ]:S111 	+ 	+$$T***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+%%d++1133F?0$77E#r'???H&(+++++   A%%A),A)c                    g |d<   | dk    rft          |j        t                    rLd}t          j        t
          |          5  |                    |            d d d            n# 1 swxY w Y   d S |                    |                                           }t          |j        |           }t          g d|          }t          j        ||           d S r|   )r\   r'   r	   rG   rH   r]   r%   rl   r   r   r)   r5   r~   s         r   "test_resample_size_empty_dataframer      s   
 OCs{{z/"7HH{1 	 ]:S111 	+ 	+$$T***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+%%d++0022F?0$77Ebu555H68,,,,,r   z3ignore:PeriodDtype\[B\] is deprecated:FutureWarningr'   ro   zdatetime64[ns]c                    t          | t                    rt          g d| j                  } t          g | |          }|                    dd          }	  t          ||                       d S # t          $ r Y d S w xY w)NB)r   rp   dFrs   )r\   r   rp   r   r%   r^   r
   )r'   ro   rb   ra   rc   s        r   test_resample_empty_dtypesr     s     %%% ;BSuz:::b%//		"	"35	"	9	9B$O$$&&&&&    	s   A0 0
A>=A>c                    | }|dk    rft          | j        t                    rLd}t          j        t
          |          5  |                     |           d d d            n# 1 swxY w Y   d S |                    |d                              d           }|                    |                              d          }t          j	        ||d           d S )	NrM   rQ   rD   Frs   c                     dS )Nr   r   )xs    r   <lambda>z,test_apply_to_empty_series.<locals>.<lambda>;  s    ! r   sumrZ   )
r\   r'   r	   rG   rH   r]   r%   applyr)   r5   )ra   r   r;   rK   r-   r/   s         r   test_apply_to_empty_seriesr   ,  s    Cs{{z"2"8.II{1 	 ]:S111 	, 	,%%d+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,\\$5\1177DDF||D!!''..H68??????re   c                     d}t          |d          }|                     |          }|                     |          }t          ||          D ](\  \  }}\  }}||k    sJ t	          j        ||           )d S )NrO   start)r   
convention)r   groupbyr%   zipr)   r5   )	r:   r   tggrouped	resampledrkrvgkgvs	            r   test_resampler_is_iterabler   A  s     D	dw	/	/	/BnnR  G%%I!)W55 ' 'R(2rRxxxx
r2&&&&' 'r   c                    | }dd}|                     |                                        }|                     |                              fd                              |j                  }t          j        ||           d S )Ng      ?rO   c                 .    |                                S )N)quantile)r   qs    r   r   z(test_resample_quantile.<locals>.<lambda>T  s    

1 r   )r%   r   aggrenamerp   r)   r5   )r:   r;   r   r-   r/   r   s        @r   test_resample_quantiler   M  s     CAD\\$((++F||D!!%%&=&=&=&=>>EEchOOH68,,,,,r   )7r   numpyrv   rG   pandasr   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   
DATE_RANGEPERIOD_RANGETIMEDELTA_RANGEmarkparametrizeall_tsfixturer   r0   r=   rB   rL   rd   paramxfailrj   rq   rz   r   r   filterwarningsall_timeseries_index_generatorr2   intobjectr   r   r   r   r   r   r   <module>r      s!                                   1 1 1 1 1 1 / / / / / / 4 4 4 4 4 4 3 3 3 3 3 3 : : : : : : / / / / / / %$1!5!5xxa7L7LM
dHHT1a$8$8((4B:O:OP"E7H=		 	 9/
 
    $..9J;X - -  /.- 9J;X , , ,& , , ,   114 4 21 4> 
S 1 19T 1 U UVVV 4 4  4( 11*Wf,=>>- - ?> 21 -. 11!- !- 21 !-L 11, , 21 ,. 11- - 21 -. RSS"C""CA"F"FGG5#v7G"HII  JI HG TS" 11@ @ 21 @& ' ' ' - - - - -r   