
    {hh5              
       >   d dl m Z  d dlZd dl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 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j!        "                    dd dg          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+                         Z0e#ej!        "                    dg d          d,                         Z1e#ej!        "                    dg d          d-                         Z2ej!        "                    d. eg d/d01           e	g d02           eg d02          g          ej!        "                    d3e3e4e5d4g          d5                         Z6e#ej!        "                    dg d          d6                         Z7e#d7             Z8e#d8             Z9ej!        "                    d9d:d;g          d<             Z:dS )=    )datetimeN)is_extension_array_dtype)	DataFrameDatetimeIndex
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     V/var/www/histauto/venv/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_asfreqr2   3   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         @)
fill_value)
r'   r(   r)   r*   r+   assert_series_equalastypeto_frameilocassert_frame_equal)seriesr    serr/   r0   r1   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1min)r'   r(   interpolater+   r<   )r?   dfr/   r1   s       r   test_resample_interpolaterE   V   sh     
B[[  ''))5577F{{6""..00H&(+++++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YE)r   pytestraises	TypeErrorr'   )xpmsgs     r   %test_raises_on_non_datetimelike_indexrO   _   s    	B	.  
y	,	,	,  
D                 s   AAA)MEDhc                 V   |}| dk    rft          |j        t                    rLd}t          j        t
          |          5  |                    |            d d d            n# 1 swxY w Y   d S | dk    rt          |j        t                    rd} |                    |           } 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 )NrP   aResampling on a TimedeltaIndex requires fixed-duration `freq`, e.g. '24h' or '3D', not <MonthEnd>rG   Mohlcr   openhighlowcloser)   columnsFcheck_dtype)
isinstancer)   r   rJ   rK   
ValueErrorr'   r	   getattrr   copyr   r+   r<   r8   assert_index_equalr!   )r!   empty_series_dtiresample_methodr>   rN   rsr/   r1   s           r   test_resample_empty_seriesrh   j   s   
 Ct||
39n==|1 	 ]:S111 	 	LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 		*SY<<	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&	min_countc                 P   | }t          t          j        t          g d          |          }|                    d          }|                    |          }|dk    rdnt          j        }t          ddd	          }t          |||          }t          j        ||           d S )
N)z2000-01-01 00:00:00z2000-01-01 00:00:10z2000-01-01 00:00:20z2000-01-01 00:00:30r)   dtype20s)rj   r    z
2000-01-01   )startr!   periods)	r
   pdNAr   r'   sumr   r+   r8   )	string_dtype_no_objectrj   rm   r>   rg   r/   r5   r)   r1   s	            r   test_resample_empty_sum_stringrw      s     #E

  
 
   C 
e		BVViV((Fq..BBbeE\qAAAEe5666H68,,,,,r   rP   zDon't know why this fails)reason)marksrQ   rR   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&   rV   r   rW   r\   Fr^   )rc   r	   r   lenr)   r'   rb   r   r+   r<   r8   rd   r!   )r!   r=   rf   r>   rg   r/   r1   s          r   test_resample_nat_index_seriesr|      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   rf   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 | dk    rt          |j        t                    rd} |                    |           } t          ||                      }t          |j        |           }t          g d||j                  }t          j        ||           d S )NrP   rT   rG   rU   int64)rm   r)   name)r`   r)   r   rJ   rK   ra   r'   r	   rb   r   r
   r   r+   r8   )	r!   re   rf   r>   rN   rg   r/   r)   r1   s	            r    test_resample_count_empty_seriesr      s7   
 Ct||
39n==|1 	 ]:S111 	 	LL	 	 	 	 	 	 	 	 	 	 	 	 	 	 		*SY<<	d		B)WR))++F39d++Ebu38DDDH68,,,,,ri   c                    | }|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k    rt          |j        t                    rd}|                    |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 )NrP   rT   rG   F
group_keysrU   rV   rW   r   )r)   r]   rm   r~   rm   )r`   r)   r   rJ   rK   ra   r'   r	   rb   r   from_productr]   r   rc   npfloat64r   r
   r   r+   rd   r!   r,   )	empty_frame_dtir!   rf   rD   rN   rg   r/   mir1   s	            r   test_resample_empty_dataframer      s     
Bt||
28^<<|1 	 ]:S111 	0 	0KKK///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0	*RX{;;	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 | dk    rt          |j        t                    rd} |                    |                                           }t          |j        |           }t          d|dg          }t          j        ||           d S )NarP   rT   rG   rU   r   )rm   r)   r]   )r`   r)   r   rJ   rK   ra   r'   r	   r}   r   r   r+   r<   r!   r   rN   r/   r)   r1   s         r   #test_resample_count_empty_dataframer   
  s6   
 OCt||
?#8.II|1 	 ]:S111 	+ 	+$$T***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+	*_%:KHH%%d++1133F?0$77EwecUCCCH&(+++++   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 | dk    rt          |j        t                    rd} |                    |                                           }t          |j        |           }t          g d|          }t          j        ||           d S )Nr   rP   rT   rG   rU   r   )rm   r)   )r`   r)   r   rJ   rK   ra   r'   r	   r~   r   r
   r+   r8   r   s         r   "test_resample_size_empty_dataframer   %  s4   
 OCt||
?#8.II|1 	 ]:S111 	+ 	+$$T***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+	*_%:KHH%%d++0022F?0$77Ebu555H68,,,,,r   r)   rU   r   )r!   r   )r   rm   zdatetime64[ns]c                     t          g | |          }|                    dd          }	  t          ||                       d S # t          $ r Y d S w xY w)NdFr   )r
   r'   rb   r   )r)   rm   rf   re   rg   s        r   test_resample_empty_dtypesr   @  su     b%//		"	"35	"	9	9B$O$$&&&&&    	s   A 
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k    rt          | j        t                    rd}|                    |d                              d           }|                    |                              d          }t          j
        ||d	           d S )
NrP   rT   rG   rU   Fr   c                     dS )Nr   r   )xs    r   <lambda>z,test_apply_to_empty_series.<locals>.<lambda>i  s    ! r   ru   r^   )r`   r)   r   rJ   rK   ra   r'   r	   applyr+   r8   )re   r!   r>   rN   r/   r1   s         r   test_apply_to_empty_seriesr   W  s5    Ct||
#3#9>JJ|1 	 ]:S111 	, 	,%%d+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,	*%5%;[II\\$5\1177DDF||D!!''..H68??????ri   c                     d}t          |d          }|                     |          }|                     |          }t          ||          D ](\  \  }}\  }}||k    sJ t	          j        ||           )d S )NrR   rq   )r!   
convention)r   groupbyr'   zipr+   r8   )	r=   r!   tggrouped	resampledrkrvgkgvs	            r   test_resampler_is_iterabler   o  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      ?rR   c                 .    |                                S )N)quantile)r   qs    r   r   z(test_resample_quantile.<locals>.<lambda>  s    

1 r   )r'   r   aggrenamer   r+   r8   )r=   r>   r!   r/   r1   r   s        @r   test_resample_quantiler   {  s     CAD\\$((++F||D!!%%&=&=&=&=>>EEchO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          }t          ||          } ||          }|
                    |j        d         t          j        d          gz            } t          ||          |          }	d|	j        _        t!          j        ||	           d S )Nr   )rp   r   r   rp   g      @r6   )r   bcz
2020-01-01   rQ   )rr   r!   rl   rP   )skipnar   z
2020-01-31)r   r
   rm   na_valuer   nanr   r   r'   rb   r   shapers   to_datetimer)   r!   r+   r<   )
any_real_nullable_dtyper   r   r   rD   rg   methodr/   gbr1   s
             r   test_first_last_skipnar     s%      788  7888>G6	C3/C3/	
 	

 qs;;;%
 
 
B 
T		BRFV6"""F	BHQK2>,#?#?"@@	A	ABwr3v...HHN&(+++++r   );r   numpyr   rJ   pandas.core.dtypes.commonr   pandasrs   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   
DATE_RANGEPERIOD_RANGETIMEDELTA_RANGEmarkparametrizeall_tsfixturer    r2   r@   rE   rO   rh   rw   paramxfailr|   r   r   r   r   r4   intobjectr   r   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!1224 4 32 4B q!f--- - .--0 
T!2!2:U!2!V!VWWW 4 4  4* !1!1!122*Wf,=>>- - ?> 32 -2 !1!1!122#- #- 32 #-P !1!1!122, , 32 ,2 !1!1!122- - 32 -2 BSs+++bs###r$$$  5#v7G"HII  JI  !1!1!122@ @ 32 @, ' ' ' - - - & 122, , 32, , ,r   