
    bi                       d dl mZ d dlZd dlmZ d dlZd dlZd dlm	Z
 d dlmZmZ d dlmZ erd dlmZ d'dZerdnd	Zej(                  j+                  g d
 e eddgg dddgddddegddgddg                  d        Zej(                  j+                  dg d      d        Zd Zd Zd Zd Zd Zd Zd  Zd! Z d" Z!ej(                  j+                  d#g d$      d%        Z"d& Z#y)(    )annotationsN)product)PANDAS_GE_220PANDAS_GE_300)	assert_eq)Pandas4Warningc                F     t         | j                  |fi ||             S N)getattrresample)dffreqhowkwargss       e/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/dataframe/tseries/tests/test_resample.pyr   r      s$    47;2;;t.v.466    MEM)objmethodnpartitionsr   closedlabelseriesframe)countmeanohlc      30minhDWrightleftc                   t         r|dk(  r|dk(  rt        j                  d       t        j                  ddd      }|j                  t        j                  dd	d            }| d
k(  r*t        j                  t        t        |            |      }n0| dk(  r+t        j                  dt        t        |            i|      }t        j                  |      }t        |||||      }	t        |||||      }
t        |	|
d       |	j                  }|
j                  d   |d   k(  sJ |
j                  d   |d   k(  sJ y )Nr#   r%   z1https://github.com/pandas-dev/pandas/issues/622001-1-2000	2-15-2000r"   r   	4-15-2000	5-15-2000r   indexr   ar   )r   r   r   Fcheck_dtyper   )r   pytestxfailpd
date_rangeunionSeriesrangelen	DataFrameddfrom_pandasr   r   	divisionsr.   )r   r   r   r   r   r   r.   psdsresultexpectedr?   s               r   test_series_resamplerD      s    7):HIMM*k<EKKk;SIJE
hYYuSZ(6	\\3c%j 12%@		4B b$F6GFDfV5IHfhE2  I>>!	!,,,>>"2...r   r   )r   nuniquesizesumc           	        t        j                  ddd      }|j                  t        j                  ddd            }t        j                  t	        t        |            |      }t        j                  |d	      }t         t        |j                  d
      |               t        |j                  d
      |                     y )N
2000-01-01
2000-02-15r"   r*   r+   r,   r-   r   r0   r!   )r6   r7   r8   r9   r:   r;   r=   r>   r   r   r   )r   r.   r@   rA   s       r   $test_resample_has_correct_fill_valuerK   B   s    MM,3?EKKk;SIJE	5U$E	2B		*B-G$f-/1VW9Mv1V1Xr   c                    t        j                  ddd      } t        j                  t        t	        |             |       }t        j                  |d      }t        |j                  d      j                  d	      |j                  d      j                  d	             t        |j                  d      j                  d	d
g      |j                  d      j                  d	d
g             y )NrI   rJ   r"   r*   r-   r   r0   10minr   min)
r6   r7   r9   r:   r;   r=   r>   r   r   aggr.   r@   rA   s      r   test_resample_aggrQ   N   s    MM,3?E	5U$E	2B		*Bbkk'"&&v.G0D0H0H0PQ
G  &%1
G  &%1r   c                    t        j                  ddd      } t        j                  t        t	        |             |       }t        j                  |d      }dd}t        |j                  d	      j                  |d
      |j                  d	      j                  |d
             |j                  d	      j                  |d
      dk(  j                         j                         sJ y )NrI   rJ   r"   r*   r-   r   r0   c                    |S r
    )r   barargsr   s       r   fooz,test_resample_agg_passes_kwargs.<locals>.foo_   s    
r   2h)rU   )   )r6   r7   r9   r:   r;   r=   r>   r   r   rO   computeall)r.   r@   rA   rW   s       r   test_resample_agg_passes_kwargsr\   Z   s    MM,3?E	5U$E	2B		*B bkk$##CQ#/T1B1F1FsPQ1F1RSKK!!#1!-2;;=AACCCr   c                    t        j                  ddd      } | j                  t        j                  ddd            } t        j                  t	        t        |             |       }t        j                  |d	      }t        j                  t        d
      5  |j                  dt               j                         j                          d d d        y # 1 sw Y   y xY w)Nr(   r)   r#   r*   r+   r,   r-   r    r0   z(Index is not contained within new index.match2)r6   r7   r8   r9   r:   r;   r=   r>   r4   raises
ValueErrorr   r   r   rZ   rP   s      r   Ctest_resample_throws_error_when_parition_index_does_not_match_indexrc   f   s    MM*k<EKKk;SIJE	5U$E	2B		*B	z)S	T 0
atH##%--/0 0 0s   5CC"c                    g d} t         rdnd}t        j                  | t        t	        |             d      }t        j
                  |d   d      |d<   |j                  d      j                  |      j                         }t        j                  |d	      j                  d      }|j                  |      j                         j                         }t        ||       y )
N)l   @Brk+ l   @-I$
l+ l   D60l+ l   >Fn+ l   Pln+ l   cn+ l   vn+ l   Y/b;2. l   pWta2. l   O2. l   2. l   .o-2. l    zl@2. l   h#S 3. l   }Fk}/ l   qXk}/ l   (]~;l}/ l   *bl}/ l   06l}/ l   XIl}/ l   Lh\l}/ l   HJGm}/ l   xbOyn	- 1QE1Q)TimeCountsrg   T)utcr   r0   )r   r6   r<   r:   r;   to_datetime	set_indexr   rF   r=   r>   rZ   r   )timesr   r   rC   ddfactuals         r   4test_resample_pads_last_division_to_avoid_off_by_onero   o   s    E4 "5tD	uc%j0AB	CB6
5BvJ||F#,,T2779H
..
+
5
5f
=C\\$$$&..0Ffhr   c                    dd l } t        j                  ddd      }|j                  t        j                  ddd            }t        j                  d| j
                  j                  t        |            i|	      }t        j                  |d
      }|j                  d      j                         }|j                  d      j                         j                         }t        ||       y )Nr   z
2012-01-02z
2012-02-02r"   r*   z
2012-03-02z
2012-04-02pr-   r    r0   2D)numpyr6   r7   r8   r<   randomr;   r=   r>   r   r   rZ   r   )npr.   r   rm   rC   rB   s         r   (test_resample_does_not_evenly_divide_dayrv      s    MM,3?EKKlLsKLE	sBII,,SZ89	GB
..
+C{{4 &&(H\\$%%'//1Ffhr   c                    t        j                  ddd      } | j                  t        j                  ddd            } t        j                  t	        t        |             |       }t        j                  |d	      }|j                  d
      j                         }|j                  d
      j                         j                         }t        ||       y )Nz2012-01-02 00:00:00z2012-01-02 01:00:00rN   r*   z2012-01-02 06:00:00z2012-01-02 08:00:00r-   r    r0   57min)r6   r7   r8   r9   r:   r;   r=   r>   r   r   rZ   r   )r.   srA   rC   rB   s        r   /test_series_resample_does_not_evenly_divide_dayrz      s    MM/1FUSEKK
+-BOE 			%E
#51A	q	)Bzz'"'')H[[!&&(002Ffhr   c                 "   t        j                  dg di      } t        j                  | dd      j	                         }	 |j
                  j                  d      j                          J # t        $ r}dt        |      v sJ Y d }~y d }~ww xY w)Nx)rY   r      r   F)r   sort1mr?   )
r6   r<   r=   r>   clear_divisionsr|   r   r   rb   str)r   rm   es      r   test_unknown_divisions_errorr      su    	sI&	'B
..
7
G
G
IC%t!!#u %c!f$$$%s   +A, ,	B5B		Bc                    ddl m } m} dd l}| j                         }t	        j
                  || |d      z   d      }|j                  j                  ddt        |            }t	        j                  ||d	      }|j                  d
      }t        j                  |d      }|j                  d      j                         j                         j                   j"                  d
k(  sJ y )Nr   )datetime	timedelta   r#   r*   rY   d   )highrF   )datevaluesr      r0   )r   r   rs   nowr6   r7   rt   randintr;   r<   rk   r=   r>   r   r   headr.   name)r   r   ru   
date_todaydaysdatar   rm   s           r   test_resample_index_namer      s    ,J==Z)B-%?cJD99QSs4y9D	tt4	5B	f	B
..
+C<<!!#((*0055???r   c                    t        j                  d      t        j                  d      t        j                  d      g} t        j                  dgdgdgg|       }|j                  j	                  d      |_        t        j                  |d	      }|j                  d
      j                         }|j                  d
      j                         }t        ||d       y )Nz2016-10-15 00:00:00z2016-10-16 10:00:00z2016-10-17 00:00:00rY   r   r}   r-   zAmerica/Sao_Paulor0   1DF)
check_freq)
r6   	Timestampr<   r.   tz_localizer=   r>   r   r   r   )r.   r   rm   rB   rC   s        r   *test_series_resample_non_existent_datetimer      s    
*+
*+
*+E
 
sQC!oU	3Bxx##$78BH
..
+C\\$$$&F{{4 %%'Hfh51r   rO   )rE   r   r   rF   quantilec                8    t        j                  ddd      }t        j                  t        t	        |            |      }t        j                  |d      } fd} ||j                  d	            } ||j                  d	            }t        ||d
       y )NrI   rJ   r"   r*   r-   r   r0   c                &     t        |              S r
   )r   )r   rO   s    r   <lambda>z"test_common_aggs.<locals>.<lambda>   s    #72s#% r   r   Fr1   )	r6   r7   r9   r:   r;   r=   r>   r   r   )rO   r.   r@   rA   fresrC   s   `      r   test_common_aggsr      su    MM,3?E	5U$E	2B		*B%A
BKK
CT"#Hc8/r   c                 B   t        j                  ddd      } t        j                  t        t	        |             |       }t        j                  |d      }t        rt        j                  t        d	      }nt        j                         }|5  |j                  d
      j                         }d d d        |5  |j                  d
      j                         }d d d        |5  t        d       d d d        y # 1 sw Y   MxY w# 1 sw Y   /xY w# 1 sw Y   y xY w)NrI   rJ   r"   r*   r-   r   r0   z'd' is deprecatedr^   1dFr1   )r6   r7   r9   r:   r;   r=   r>   r   r4   warnsr   
contextlibnullcontextr   r   r   )r.   ry   rA   ctxr   rC   s         r   test_rule_deprecatedr      s    MM,3?E
		%E
#51A	q	)Bll>1DE$$&	 'jj$$&'	 -;;t$**,- 
 4#xU34 4' '- -4 4s$    C=; D	%D=D	DD)r   )$
__future__r   r   	itertoolsr   pandasr6   r4   dask.dataframe	dataframer=   dask.dataframe._compatr   r   dask.dataframe.utilsr   pandas.errorsr   r   r   markparametrizelistrD   rK   rQ   r\   rc   ro   rv   rz   r   r   r   r   r   rT   r   r   <module>r      s   "      ? *,7 T ?w%Fc3R(ff	
	//2 #FG H		D0# L  %@"2  PQ
0 R
04r   