
    biN              	         d dl mZ d dlZd dlZd dlZd dlZd dlZd dl	m
Z d dlmZ d dlmZmZmZmZmZ d dlmZ d dlmZmZmZ  ej4                  g dg dd	g d
       ej4                  g dg dd	g d       ej4                  g dg dd	g d      dZ eddd	 ej8                  g d       ej4                               Z ej<                   ej>                  ejA                               g d      Z!e!jE                         Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d  Z.d! Z/d" Z0d# Z1d$ Z2d% Z3d& Z4d' Z5d( Z6erd)nd*Z7d+ Z8d, Z9d- Z:d. Z;ejx                  j{                  d/ ej|                  d0d1d23       e?d2      g      d4        Z@ejx                  j{                  d/ ej|                  d0d1d23       e?d2      g      d5        ZAejx                  j{                  d6d d gd d7gd7d gg d8g      d9        ZBd: ZCd; ZDejx                  j                  d<=      d>        ZFd? ZGd@ ZHdA ZIdB ZJejx                  j                  dC        ZLy)D    )annotationsN)tokenize)PANDAS_GE_210PANDAS_GE_220PANDAS_GE_300IndexingErrortm)_coerce_loc_index)	assert_eq	make_metapyarrow_strings_enabled         )         )ab)r   r   r   index)r   r   r   )r   r      )   r   	   )r   r   r   )r   r   r   ))xr   )r   r   )r   r   i8)r   parent_meta)r   r   r   r   	divisionsc                 z	   t         j                  dd j                  d   dk(  sJ t         j                  dd j                  d   dk(  sJ t         j                  d   j                  dk(  sJ t        t         j                  d   t        j                  dd        t        t         j                  dd t        j                  dd        t        t         j                  d d t        j                  d d        t        t         j                  dd  t        j                  dd         t        t         j                  dg   t        j                  dg          t        t         j
                  j                  d   t        j
                  j                  dd        t        t         j
                  j                  dd t        j
                  j                  dd        t        t         j
                  j                  d d t        j
                  j                  d d        t        t         j
                  j                  dd  t        j
                  j                  dd         t        t         j
                  j                  dg   t        j
                  j                  dg          t        t         j
                  j                  g    t        j
                  j                  g           t        t         j
                  j                  t        j                  g          t        j
                  j                  t        j                  g                 t        j                  t        d        t        t         j                  dd  t        j                  dd         t        t         j                  dd	 t        j                  dd	        t        t         j                  d d
 t        j                  d d
        t        t         j                  dd
 t        j                  dd
        t        t         j                  d   j                        t        t         j                  d   j                        k(  sJ t        t         j                  d   j                        t        t         j                  d   j                        k7  sJ y )Nr   r   r   r   )r   r   c                 (    t         j                  d   S )N  )dloc     ]/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/dask/dataframe/tests/test_indexing.py<lambda>ztest_loc.<locals>.<lambda>6   s    AEE$K r(   r$   i  ii0r   )r%   r&   r    r   fullr   nparraypytestraisesKeyErrorsorteddaskr'   r(   r)   test_locr3   "   s   551:"a'''551:#q(((558'''aeeAh1&aeeAaj$((1Q-(aeeBQi"1&aeeABi!"&aeeQCj$((A3-(accggaj$&&**Qq/*accggalDFFJJqO,accggbqk466::bq>*accggabk466::ab>*accggqclDFFJJsO,accggbk466::b>*accggbhhrl#TVVZZ%=>
MM(/0aeeDElDHHTUO,aeeDd 34aeeFUmTXXfu-.aeeE% $((5"78!%%(-- F1558==$9999!%%(-- F1558==$9999r(   c                    t        j                  dg dig d      } t        j                  | dd      j	                         }|j
                  rJ |j                  dd	 j                  d
       t        |j                  dd	 | j                  dd	        t        j                  dg dig d      } t        j                  | dd      }t        |j                  d   | j                  dd        y )Nr   )r   r   r   r   )
         (   r   r   T)npartitionssortr6   r7   sync)	scheduler)r5   r6   r6   r8   )	pd	DataFrameddfrom_pandasclear_divisionsknown_divisionsr&   computer   dfddfs     r)   test_loc_non_informative_indexrG   @   s    	sL)1A	BB
..
6
F
F
HC""""GGBrNV,cggbnbffRm,	sL)1A	BB
..
6Ccggbk266"R=)r(   c                 v   t         j                  j                         j                  d d } t         j                  j                         j                  dd  }t        j                  t        j                  | |g      | j                  j                         |j                  j                         |j                  j                         g      }|j                  dd j                  |j                  k(  sJ t        |j                  dd |       t        |j                  dd j                               dk(  sJ y )Nr   r   20002010z
2000-01-03z
2000-01-05r   )r?   _compatmakeTimeSeriesilocrepartitionr=   concatr   minmaxr&   r    r   lenrC   )ABss      r)   test_loc_with_text_datesrV   N   s    


!!#((!,A


!!#((,A

		1a&aggkkmQWW[[]AGGKKM%R	A 55))Q[[888aeeF6"A&quu\,/779:a???r(   c                    t        t        j                  t        j                  dz  dk(     t        j                  t        j                  dz  dk(            t        t        j                  t        j                  dz  dk(     j                        t        t        j                  t        j                  dz  dk(     j                        k(  sJ t        t        j                  t        j                  dz  dk(     j                        t        t        j                  t        j                  dz  dk(     j                        k7  sJ y )Nr   r   r   )r   r%   r&   r   r+   r1   r2   r'   r(   r)   test_loc_with_seriesrX   Z   s    aeeACC!GqL!488DFFQJ!O#<=!%%a1%**+vaeeACC!GqL6I6N6N/OOOO!%%a1%**+vaeeACC!GqL6I6N6N/OOOOr(   c                     t        t        j                  t        j                  dz  dk(  j                     t
        j                  t
        j                  dz  dk(  j                            y )Nr   r   )r   r%   r&   r   valuesr+   r'   r(   r)   test_loc_with_arrayr[   a   sB    aeeQSS1W\))*DHHdffqjAo5M5M,NOr(   c                     t        t        j                  d d d f   t        j                  d d d f          d } t        t        j                  d d | f   t        j                  d d | f          y )Nc                    | d   dkD  S Nr   r   r'   rE   s    r)   r*   z(test_loc_with_function.<locals>.<lambda>f   s    r#w{ r(   c                    | d   dkD  S r^   r'   r_   s    r)   r*   z(test_loc_with_function.<locals>.<lambda>f   s    BsGaK r(   c                L    | j                   j                  j                  d      S )Nr   )columnsstrcontains)_dfs    r)   _col_loc_funz,test_loc_with_function.<locals>._col_loc_funh   s    {{'',,r(   )r   r%   r&   r+   )rf   s    r)   test_loc_with_functionrg   e   sV    aee*A-.9OQR9R0ST- aeeA|O$dhhq,&?@r(   c                 2   t        j                  t        j                  j	                  dd      t        d      t        d            } t        j                  | d      }t        |j                  |j                  dkD  j                     | j                  | j                  dkD  j                            t        j                  t              5  |j                  |j                  dkD  j                  g d      j                      d d d        y # 1 sw Y   y xY w	Nr6   r   abcdefghijklmnopqrstABCDEr   rb   r   r   )r   gkot)r=   r>   r,   randomrandnlistr?   r@   r   r&   rS   rZ   r.   r/   
ValueErrorrN   rD   s     r)   'test_loc_with_array_different_partitionru   n   s    	
		A)*W
B
 ..Q
Ccggsuuqy(()266244!82C2C+DE	z	" K''(ABIIJK K Ks   8DDc                    t        j                  t        j                  j	                  dd      t        d      t        d            } t        j                  | d      }t        |j                  |j                  dkD     | j                  | j                  dkD            t        |j                  |j                  dkD  j                  g d         | j                  | j                  dkD            y ri   )r=   r>   r,   rq   rr   rs   r?   r@   r   r&   rS   rN   rD   s     r)   (test_loc_with_series_different_partitionrw   {   s    	
		A)*W
B
 ..Q
Ccggceeai "&&"23''(ABCRVVBDDSTHEUr(   c                    t        j                  t        j                  j	                  d      t        d            } t        j                  | d      }t        j                  t        d            }t        j                  |d      }d}t        j                  t        |      5  |j                  |    d d d        t        |j                  |   | j                  |          t        j                         }t               rt        j                   t"        d	      }|5  t        j                  t        |      5  |j                  |j$                      d d d        d d d        t        |j                  |j$                     | j                  |          |j'                         }t        j                  t        |      5  |j                  |    d d d        t        j                  t        d
      5  |j                  |    d d d        y # 1 sw Y   XxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   y xY w)Nr6   rj   r   r   bdmnatr9   zNCannot index with non-boolean dask Series. Try passing computed values insteadmatchz,converting pandas extension dtypes to arraysz/Cannot index with list against unknown division)r=   Seriesr,   rq   rr   rs   r?   r@   r.   r/   r0   r&   r   
contextlibnullcontextr   warnsUserWarningrZ   rA   )rE   rF   rU   dsmsgctxs         r)    test_loc_with_non_boolean_seriesr      s   	
		)*
B ..Q
C
		$x.!A	q	)B 	Y  
xs	+  cggaj"&&)$

 
 
"C llM
 
 ]]83/ 	GGBII	 cggahh+



C	xs	+  
I
  	
 ) 	 	   sH   &HH%;HH% H13H=HH"	H%%H.1H:=Ic                 H   t        t        j                  d   t        j                  dddf          t        t        j                  ddgf   t        j                  dddgf          t        t        j                  dddf   t        j                  dddf          t        t        j                  d ddf   t        j                  d ddf          t        t        j                  dd df   t        j                  dd df          t        t        j                  dgdf   t        j                  dgdf          t        t        j                  dddgf   t        j                  dddgf          t        t        j                  d ddgf   t        j                  d ddgf          t        t        j                  dd dgf   t        j                  dd dgf          t	        j
                  t              5  t        j                  d    d d d        t	        j
                  t              5  t        j                  j                  d    d d d        t	        j
                  t              5  t        j                  j                  dd df    d d d        t	        j
                  t              5  t        j                  j                  t        j                  dz  d	k(  df    d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   wxY w# 1 sw Y   y xY w)
N)r   r   r   r   r   r   )r   r   r   )r   r   r   r   )r   r%   r&   r+   r.   r/   r   r   r'   r(   r)   
test_loc2dr      sb   aeeFmTXXac3h/0aeeAuHotxx!cU
34 aeeAaCHotxx!S12aeeBQBGndhhrr3w/0aeeABGndhhqr3w/0aeeQCHotxxS12aeeAaC#J!A#u*!56aeeBQBI!cU 34aeeABIcU 34 
}	% 	g 
}	% 	 
}	% 	A 
}	% !	a1a ! !   ! !s0    K45L 4"L74L4K= L	LL!c                    t        j                  t        j                  j	                  dd      t        d      t        d            } t        j                  | d      }t        |j                  d   | j                  dgd	f          t        |j                  dd	gf   | j                  dgd	gf          t        |j                  dd
d	f   | j                  dd
d	f          t        |j                  dd
d	gf   | j                  dd
d	gf          t        |j                  dgd	gf   | j                  dgd	gf          t        |j                  g dd	gf   | j                  g dd	gf          t        |j                  ddgd	gf   | j                  ddgd	gf          t        |j                  g dd	gf   | j                  g dd	gf          y )Nr6   r   rj   rk   rl   r   r   rS   r   rS   ro   n)r   cr   rp   r   )rr   r   rm   h)
r=   r>   r,   rq   rr   rs   r?   r@   r   r&   rD   s     r)   test_loc2d_with_known_divisionsr      s   	
		A)*W
B
 ..Q
Ccgghs
!34cggcC5j!2663%#,#78cggc#gsl#RVVCGSL%9:cggc#gun%rvvc#gun'=>cggsecUl#RVVSEC5L%9:cggou,-rvvou6L/MNcggsCj3%'("&&#scU1B*CD)C501
(3%/0r(   c                 d   t        j                  t        j                  j	                  dd      t        d      t        d            } t        j                  | d      j                         }|j                  du sJ t        |j                  d   | j                  d	gd
f          t        |j                  d	d
gf   | j                  d	gd
gf          t        |j                  d	dd
f   | j                  d	dd
f          t        |j                  d	dd
gf   | j                  d	dd
gf          y )Nr6   r   rj   rk   rl   r   Fr   r   rS   ro   )r=   r>   r,   rq   rr   rs   r?   r@   rA   rB   r   r&   rD   s     r)   !test_loc2d_with_unknown_divisionsr      s	   	
		A)*W
B
 ..Q

/
/
1C%'''cgghs
!34cggcC5j!2663%#,#78cggc#gsl#RVVCGSL%9:cggc#gun%rvvc#gun'=>r(   c                    t        j                  g dg dg ddz  dt        d            t        j                  d      } t        | d	   d	          t        j                  | d	   j                  | j                  d	          t        | d	d
g   d	d
g          t        j                  | d	d
g   j                  | j                  d	d
g          t        | | j                     j                            t        j                  | j                  j                  | j                  j                         t        | | j                  j                  g d         j                            t        j                  t        fd       t        j                  t        fd       t        j                  t        fd       t        j                  t         j"                  j%                  dd            t        j                  d      } t        | d   d          t        | ddg   ddg          t        j                  t        fd       t        j                  t        fd       y )N	r   r   r   r   r   r   r   r   r   	r   r   r   r   r   r   r   r   r   TFTr   rS   rT   CABC)rb   r   rS   rT   )r   r   r   r   c                      d   S )NXr'   r_   s   r)   r*   ztest_getitem.<locals>.<lambda>
  s    BsG r(   c                      ddg   S )NrS   r   r'   r_   s   r)   r*   ztest_getitem.<locals>.<lambda>  s    BSzN r(   c                      j                   S )N)r   r_   s   r)   r*   ztest_getitem.<locals>.<lambda>  s    "$$ r(   r5   r   r   r   c                      d   S )Nr   r'   r_   s   r)   r*   ztest_getitem.<locals>.<lambda>  s    BqE r(   c                      ddg   S )Nr   r   r'   r_   s   r)   r*   ztest_getitem.<locals>.<lambda>  s    B1vJ r(   )r=   r>   rs   r?   r@   r   r	   assert_series_equal_metaassert_frame_equalr   rN   r.   r/   r0   AttributeErrorr,   rq   rr   )rF   rE   s    @r)   test_getitemr      s   	,,$q(	

 U
B ..Q
Cc#h3 3s8>>399S>:c3*or3*~.#sCj///C:1FGc#%%j"RTT(#355;;		4c#%%##L12BrttH=
MM(O,
MM(23
MM.,/ 
biioob!,	-B
..Q
Cc!fbec1a&k2q!f:&
MM(M*
MM(./r(   c                     t        j                  g dg dg ddz  dt        d            } t        j                  | d      }t        |dd	 | dd	        t        |dd
 | dd
        t        |dd  | dd         y )Nr   r   r   r   r   	abcdefghir   r   er   f)r=   r>   rs   r?   r@   r   rD   s     r)   test_getitem_slicer     s    	,,$q(	

 ;
B ..Q
Cc#clBs3K(c#clBs3K(c#$iCD"r(   c                    t        j                  dt        d      i      } t        j                  | d      }t        j                  t              5  |dd  d d d        t        j                  dt        d      ig d      } t        j                  | d      }t        j                         }t        r"t        st        j                  t        d	      }nt        rt        j                  t              }|5  t        |dd
 | dd
        d d d        |5  t        |dd  | dd         d d d        |5  t        |d d
 | d d
        d d d        y # 1 sw Y   xY w# 1 sw Y   PxY w# 1 sw Y   ?xY w# 1 sw Y   y xY w)NrS   r   r   r   r   )g      ?g       @g      @g      @g      $@g      &@r   zfloat-dtype indexr{   r   )r=   r>   ranger?   r@   r.   r/   NotImplementedErrorr~   r   r   r   r   FutureWarningr   )rE   rF   r   s      r)   test_getitem_integer_slicer   '  sC   	sE!Ho	&B
..Q
C	*	+ Aa 
sE!Ho-M	NB
..Q
C

 
 
"C]ll=0CD	mm/0	 %#a(BqG$%	 ##ab'2ab6"#	 ##bq'2bq6"# # % %# ## #s0   E5EE#/E/EE #E,/E8c            
     r   t        j                  dg dit        t        t        j
                  g d                  } t        j                  | d      }|j                  t        t        t        j
                  |j                                    }t        |j                  dd |j                  dd        y 	Nr   r   )201420152016r   r   r   r   r   )r=   r>   rs   mapr,   
datetime64r?   r@   rN   tupler    r   r&   rE   r   s     r)   test_loc_on_numpy_datetimesr   >  s    		iS8P%Q R
B 	r1A	c"--&E FGAaeeF6"AEE&$89r(   c            
     r   t        j                  dg dit        t        t         j                  g d                  } t        j                  | d      }|j                  t        t        t         j                  |j                                    }t        |j                  dd |j                  dd        y r   )r=   r>   rs   r   	Timestampr?   r@   rN   r   r    r   r&   r   s     r)   test_loc_on_pandas_datetimesr   H  s    		iS7O%P Q
B 	r1A	c",,&D EFAaeeF6"AEE&$89r(   c                 B   t        j                  ddd      } d | _        t        j                  dt	        t        |             i|       }t        j                  |d      }t        d	d
      }|j                  |d d f   }|j                  |d d f   }t        ||       y )Nz
2016-01-01z
2016-01-3112h)freqnumr   r   rz   z
2016-01-03z
2016-01-05)r=   
date_ranger   r>   r   rR   r?   r@   slicer&   r   )datetime_indexrE   rF   slice_resultexpecteds         r)   test_loc_datetime_no_freqr   R  s     ]]<EJNN	ueC$789	PB
..
+C<.FWWVQYFvvfai Hfhr(   c                     t         j                  t        j                  fD ]!  } t	        t         | d      gd      |       r!J  y )Nr   )r=   r   r,   r   
isinstancer
   )rp   s    r)   test_coerce_loc_indexr   `  s>    llBMM* E+QvYK@!DDDEr(   MEMc                 	   t        j                  t        j                  j	                  d      t        j                  j	                  d      dt        j
                  ddd            } t        j                  | d      }t        | j                  d   |j                  d          t        | j                  dd	 |j                  dd	        t        | j                  d
   j                         j                  |j                  d
   d       t        | j                  j                  d   |j                  j                  d   d       t        | j                  j                  dd	 |j                  j                  dd	 d       t        | j                  t        j                  d         j                         j                  |j                  t        j                  d         d       t        | j                  t        j                  d      t        j                  d	       |j                  t        j                  d      t        j                  d	       d       t        | j                  t        j                  d
         j                         j                  |j                  t        j                  d
         d       t        j                  t        j                  j	                  d      t        j                  j	                  d      dt        j
                  dt        d            } t        j                  | d      }t        | j                  d   |j                  d          t        | j                  d   |j                  d          t        | j                  dd |j                  dd        t        | j                  dd |j                  dd        t        | j                  j                  d   |j                  j                  d          t        | j                  j                  d   |j                  j                  d          t        | j                  j                  dd |j                  j                  dd        t        | j                  j                  dd |j                  j                  dd        y )Nd   rS   rT   
2011-01-01r   r   periodsr   r5   
2011-01-02
2011-01-10z2011-01-02 10:00F)
check_freq2   2011-0120112012-05r   )r=   r>   r,   rq   rr   r   r?   r@   r   r&   to_frameTrS   r   r   rT   rD   s     r)   test_loc_timestamp_strr   h  s\   	iiooc")=>mmLsC@
B ..R
 C bff\"CGGL$9:bff\,/l1ST
!"++-//"# bddhh|$ceeii&=%P
l+		,|, 
r||L)*33577\*+
 
r||L)BLL,FG\*R\\,-GH
 
r||./099;==/01 
iiooc")=>mmLr3?
B ..R
 CbffY!34bffVncggfo.bffYy)3779Y+GHbffVF#SWWVF%;< bddhhy!35599Y#78bddhhv		& 12bddhhy+SUUYYy-KLbddhhvf%suuyy'?@r(   c                    t        j                  t        j                  j	                  d      t        j                  j	                  d      dt        j
                  ddd            } t        j                  | d      }t        | dd	 |dd	        t        j                  t        j                  j	                  d      t        j                  j	                  d      dt        j
                  dd
d            } t        j                  | d      }t        | j                  d   |j                  d          t        | j                  d   |j                  d          t        | dd |dd        t        | dd |dd        y Nr   r   r   r   r   r   r5   r   r   Dr   r   r   r   r   )
r=   r>   r,   rq   rr   r   r?   r@   r   r&   rD   s     r)   test_getitem_timestamp_strr     s$   	iiooc")=>mmLsC@
B ..R
 Cbl+Sl-KL	iiooc")=>mmLsC@
B ..R
 CbffY!34bffVncggfo.b9%s9Y'?@bVF!34r(   c                    t        j                  t        j                  j	                  d      t        j                  j	                  d      dt        j
                  ddd            } t        j                  | d      }t        | j                  d   |j                  d          t        | j                  dd	 |j                  dd	        t        j                  t        j                  j	                  d      t        j                  j	                  d      dt        j
                  dd
d            } t        j                  | d      }t        | j                  d   |j                  d          t        | j                  d   |j                  d          t        | j                  dd |j                  dd        t        | j                  dd |j                  dd        y r   )
r=   r>   r,   rq   rr   period_ranger?   r@   r   r&   rD   s     r)   test_loc_period_strr     s^    
iiooc")=>oolcB
B ..R
 C bff\"CGGL$9:bff\,/l1ST 
iiooc")=>oolcB
B ..R
 CbffY!34bffVncggfo.bffYy)3779Y+GHbffVF#SWWVF%;<r(   c                 p   t        j                  t        j                  j	                  d      t        j                  j	                  d      dt        j
                  ddd            } t        j                  | d      }t        | dd	 |dd	        t        j                  t        j                  j	                  d      t        j                  j	                  d      dt        j
                  dd
d            } t        j                  | d      }t        | dd |dd        t        | dd |dd        y )Nr   r   r   r   r   r   r5   r   r   r   r   r   r   r   r   )	r=   r>   r,   rq   rr   r   r?   r@   r   rD   s     r)   test_getitem_period_strr     s    	iiooc")=>oolcB
B ..R
 Cbl+Sl-KL 
iiooc")=>oolcB
B ..R
 Cb9%s9Y'?@bVF!34r(   r   r   r   r   r   c                8   t        j                  dt        j                  j	                  d      i|       }t        j                  |d      }|j                  j                         }|j                  j                         }|j                  sJ t        ||       y )NrS   r   r   r5   )r=   r>   r,   rq   rr   r?   r@   r   	to_seriesrB   r   r   rE   rF   r   actuals        r)   test_to_seriesr     ss     
sBIIOOC01	?B
..R
 Cxx!!#HYY  "F!!!!hr(   c                   t        j                  dt        j                  j	                  d      i|       }t        j                  |d      }|j                  j                         }|j                  j                         }|j                  sJ t        ||       t        |j                  j                  d      |j                  j                  d             y )NrS   r   r   r5   foo)name)r=   r>   r,   rq   rr   r?   r@   r   r   rB   r   r   s        r)   test_to_framer     s     
sBIIOOC01	?B
..R
 Cxx  "HYY!F!!!!h bhhU+SYY-?-?U-?-KLr(   indexerr   )FTTc                    t        j                  ddgddgddgd      }t        j                  |d      }|j                  d d | f   }|j                  d d | f   }t        ||       y )Nr   r   r   r   r   r   r   r=   r>   r?   r@   rM   r   )r   rE   rF   r   r   s        r)   	test_ilocr     sa    	QF!Qq!f=	>B
..Q
CXXaj!Fwwq'z"Hfhr(   c                     t        j                  g d      } t        j                  | d      }t	        j
                  t              5  |j                  d d   d d d        y # 1 sw Y   y xY w)Nr   r   )r=   r}   r?   r@   r.   r/   r   rM   )rU   r   s     r)   test_iloc_seriesr     sL    
		)A	1	B	~	& 

  s   A  A)c                    t        j                  ddgddgddgd      } t        j                  | d      }t	        j
                  t              5  |j                  ddgd d f    d d d        t	        j
                  t              5  |j                  ddgddgf    d d d        t	        j
                  t              5  |j                  ddgddgddgf    d d d        t	        j
                  t              5  |j                  d d ddgf    d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   y xY w)	Nr   r   r   r   r   r   r   r   )
r=   r>   r?   r@   r.   r/   r   rM   rt   
IndexErrorrD   s     r)   test_iloc_raisesr      s#   	QF!Qq!f=	>B
..Q
C	*	+ !Q 
*	+ !!Q!Q ! 
z	" )!Q!Q!Q'() 
z	" QF  ! !) ) s0   DD"=D.7D:D"D+.D7:Ezduplicated columns)reasonc                    t        j                  ddgddgddgd      } t        j                  | d      }g d| _        g d|_        |j
                  d d df   }t        |j                  j                  j                         D cg c]  }|j                  d	       c}      sJ |j
                  d d df   }t        || j
                  d d df          |j
                  d d d
f   }t        || j
                  d d d
f          |j
                  d d d
dgf   }t        || j
                  d d d
dgf          |j
                  d d dddf   }t        || j
                  d d dddf          y c c}w )Nr   r   r   r   r   r   r   )rS   rS   r   rM   r   r"   )r=   r>   r?   r@   rb   rM   anyr2   layerskeys
startswithr   )rE   rF   	selectionkeyselect_firstselect_zerothselect_list_colsselect_negatives           r)   test_iloc_duplicate_columnsr  1  sC   	QF!Qq!f=	>B
..Q
C BJ!CKAI)..2G2G2L2L2NO3v&OPPP88AqD>LlBGGAqDM*HHQTNMmRWWQT]+xxAq6	*Aq6	 23hhq"R({+Oorwwq"R({34 Ps   E2c                    t        j                  ddgddgddgd      } t        j                  | d      }|j                  d d df   }t        || j                  d d df          |j                  d d df   }t        || j                  d d df          |j                  d d ddgf   }t        || j                  d d ddgf          |j                  d d d	d
d	f   }t        || j                  d d d	d
d	f          y )Nr   r   r   r   r   r   r   r   r"   r   r   )rE   rF   r   r   r   r  s         r)   test_iloc_dispatch_to_getitemr  I  s    	QF!Qq!f=	>B
..Q
C88AqD>LlBGGAqDM*HHQTNMmRWWQT]+xxAq6	*Aq6	 23hhq"R({+Oorwwq"R({34r(   c                    t        j                  dgdz  dgdz  dgdz  dgdz  d      } t        j                  | d      }|g d   }|j                  d d df   }|j                  d d df   }|j                  d d df   }|j
                  d	k(  sJ |j
                  d
k(  sJ |j
                  dk(  sJ t        j                  |||      \  }}}|j
                  d	k(  sJ |j
                  d
k(  sJ |j
                  dk(  sJ y )Nr   r   r   r   r   )rS   rT   r   r   )r   rS   rT   r   r   rS   rT   )r=   r>   r?   r@   rM   r   r2   rC   )rE   rF   r   r   r   a1b1c1s           r)    test_iloc_out_of_order_selectionr	  Z  s    	QC#IQC#IQC#IQCRUIV	WB
..Q
C
o
CAAAAAA66S==66S==66S==aA&JBB77c>>77c>>77c>>r(   c                 N   t        j                  g d      } t        j                  ddt         j                  gd      }t        j                  | d      }t        j                  |d      }t        ||   | |          t        |j                  |   | j                  |          y )Nr   r   r   TFboolean)dtyper   rz   )r=   r}   NAr?   r@   r   r&   )s1s2ddf1ddf2s       r)   &test_pandas_nullable_boolean_data_typer  m  sw    	9	B	D%'y	9B>>"!,D>>"!,Dd4j"R&!dhhtnbffRj)r(   c                 "   t        j                  g d      } t        j                  | d      }|j                  dd }|j                  dd }t        |      t        |      k(  sJ |j                  dd }|j                  |j                  k7  sJ y )Nr  r   rz   r   r   )r=   r}   r?   r@   r&   r   _name)objdask_dfr  r  s       r)   !test_deterministic_hashing_seriesr  x  s|    
))I
CnnSa0G;;qD;;qDD>Xd^+++;;qD::###r(   c                    t        j                  d      } t        j                  d      }g d}| j                  t        d      |d      j	                  d      }t        j                  |d      }| j                  g d	      }|j                  g d	      }t        |j                  |   |j                  |          t        |j                  |   |j                  |          y )
Ncudfcupy)r   r   r5         r      ,  r   )r   r   r   r   rz   )r   r   r  )r.   importorskipr>   r   	set_indexr?   r@   r}   r-   r   r&   )r  r  r   rE   rF   	cdf_index
cupy_indexs          r)   test_gpu_locr$    s    v&Dv&D-E	eAh7	8	B	B7	KB
..
+CM*IM*Jcggi "&&"45cggj!266*#56r(   )M
__future__r   r~   numpyr,   pandasr=   r.   r2   dask.dataframe	dataframer?   	dask.baser   dask.dataframe._compatr   r   r   r   r	   dask.dataframe.indexingr
   dask.dataframe.utilsr   r   r   r>   dskIndexmetarN   rO   rZ   r%   rC   r+   r3   rG   rV   rX   r[   rg   ru   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   r   r   xfailr  r  r	  r  r  gpur$  r'   r(   r)   <module>r5     s   "         6 N N bll;9Mbll;9Mbll;9M
 
T("((2t"4,",,. BNN9299SZZ\*lCyy{:<*	@PPA
K$N!>*? !0H##.:: E
 T:Az5(=65& lc:c
   lc:c
MM QaVaV=P$QR  S " ./5 05.5"&*$ 7 7r(   