
    >ieeX              	      .   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 d dlmZ d dlmZmZmZ  ej        g dg dd	g d
           ej        g dg dd	g d           ej        g dg dd	g d          dZ eddd	 ej        g d           ej                              Z ej        edeg d          Ze                                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" Z,d# Z-d$ Z.d% Z/d& Z0d' Z1d( Z2d) Z3erd*nd+Z4d, Z5d- Z6d. Z7d/ Z8ej9        :                    d0 ej;        d1d2d34           e<d3          g          d5             Z=ej9        :                    d0 ej;        d1d2d34           e<d3          g          d6             Z>ej9        :                    d7d d gd d8gd8d gg d9g          d:             Z?d; Z@d< ZAd= ZBd> ZCd? ZDd@ ZEdA ZFdB ZGej9        jH        dC             ZIdS )D    )annotationsN)tokenize)PANDAS_GE_210PANDAS_GE_220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_metar   )r   r   r   r   c                 n	   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                  k    sJ d S )Nr   r   r   r   )r   r   c                 &    t           j        d         S )N  )dloc     Blib/python3.11/site-packages/dask/dataframe/tests/test_indexing.py<lambda>ztest_loc.<locals>.<lambda>0   s    AE$K r%   r!   i  ii0r   )r"   r#   	divisionsr
   fullr   nparraypytestraisesKeyErrorsorteddaskr$   r%   r&   test_locr1      s3   51:"a''''51:#q((((58''''aeAh1&&&aeAaCj$(1Q3-(((aeBQBi"1"&&&aeABBi!""&&&aeQCj$(A3-(((acgaj$&*QqS/***acgaclDFJqsO,,,acgbqbk46:bqb>***acgabbk46:abb>***acgqclDFJsO,,,acgbk46:b>***acgbhrll#TVZ%=>>>
M(//000aeDEElDHTUUO,,,aeDId 3444aeFUFmTXfuf-...aeE%K $(5;"7888!%(-  F158=$9$99999!%(-  F158=$9$9999999r%   c                    t          j        dg dig d          } t          j        | dd          }d|_        |j        rJ |j        d	d
                             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	                    d S )Nr   )r   r   r   r   )
         (   r   r   T)npartitionssort)NNNr4   r5   sync)	scheduler)r3   r4   r4   r6   )	pd	DataFrameddfrom_pandasr(   known_divisionsr#   computer
   dfddfs     r&   test_loc_non_informative_indexrD   :   s    	sLLL)1A1A1A	B	B	BB
.
6
6
6CCM""""GBrENV,,,cgbenbfRUm,,,	sLLL)1A1A1A	B	B	BB
.
6
6
6Ccgbk26"R%=)))))r%   c            	     V   t           j                                        j        d d         } t           j                                        j        dd          }t          j        | |dd| | j                                        |j                                        |j                                        g          }|j        dd         j	        |j	        k    sJ t          |j        dd         |           t          |j        dd                                                   dk    sJ d S )	Nr   ))rB   r   )rB   r   rB   20002010z
2000-01-03z
2000-01-05r   )r=   _compatmakeTimeSeriesilocSeriesr   minmaxr#   r(   r
   lenr@   )ABss      r&   test_loc_with_text_datesrR   I   s    

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

!!##(,A
	!$$		
qw{{}}5		 	A 5)Q[8888aeF6M"A&&&qu\,./7799::a??????r%   c                 b   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                  k    sJ d S Nr   r   r   )r
   r"   r#   r   r)   r/   r0   r$   r%   r&   test_loc_with_seriesrU   X   s    aeAC!GqL!48DFQJ!O#<===!%a1%*++vaeAC!GqL6I6N/O/OOOOO!%a1%*++vaeAC!GqL6I6N/O/OOOOOOOr%   c                    t          t          j        t          j        dz  dk    j                 t
          j        t
          j        dz  dk    j                            t          t          j        t          j        dz  dk    j                 j                  t          t          j        t          j        dz  dk    j                 j                  k    sJ t          t          j        t          j        dz  dk    j                 j                  t          t          j        t          j        dz  dk    j                 j                  k    sJ d S rT   )r
   r"   r#   r   valuesr)   r/   r0   r$   r%   r&   test_loc_with_arrayrX   _   s    aeQS1W\)*DHdfqjAo5M,NOOO!%qA-.344	qsQw!|#$)9 9     !%qA-.344	qsQw!|#$)9 9      r%   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                    d S )Nc                    | d         dk    S Nr   r   r$   rB   s    r&   r'   z(test_loc_with_function.<locals>.<lambda>k   s    r#w{ r%   c                    | d         dk    S r[   r$   r\   s    r&   r'   z(test_loc_with_function.<locals>.<lambda>k   s    BsGaK r%   c                @    | j         j                            d          S )Nr   )columnsstrcontains)_dfs    r&   _col_loc_funz,test_loc_with_function.<locals>._col_loc_funm   s    {'',,,r%   )r
   r"   r#   r)   )rc   s    r&   test_loc_with_functionrd   j   s    ae**AAA-.9O9OQRQRQR9R0STTT- - - aeAAA|O$dhqqq,&?@@@@@r%   c                    t          j        t          j                            dd          t          d          t          d                    } t          j        | d          }t          |j	        |j
        dk    j                 | j	        | j
        dk    j                            t          j        t                    5  |j	        |j
        dk                        g d          j                  d d d            d S # 1 swxY w Y   d S 	Nr4   r   abcdefghijklmnopqrstABCDEr   r_   r   r   )r   gkot)r;   r<   r*   randomrandnlistr=   r>   r
   r#   rO   rW   r,   r-   
ValueErrorrepartitionrA   s     r&   'test_loc_with_array_different_partitionrs   s   s6   	
	A)**W
 
 
B
 .Q

Ccgsuqy()2624!82C+DEEE	z	"	" K K''(A(A(ABBIJJK K K K K K K K K K K K K K K K K Ks    1C>>DDc                    t          j        t          j                            dd          t          d          t          d                    } t          j        | d          }t          |j	        |j
        dk             | j	        | j
        dk                        t          |j	        |j
        dk                        g d                   | j	        | j
        dk                        d S rf   )r;   r<   r*   rn   ro   rp   r=   r>   r
   r#   rO   rr   rA   s     r&   (test_loc_with_series_different_partitionru      s    	
	A)**W
 
 
B
 .Q

Ccgceai "&"2333''(A(A(ABBCRVBDSTHEU    r%   c                    t          j        t          j                            d          t          d                    } t          j        | d          }t          j        t          d                    }t          j        |d          }d}t          j	        t          |          5  |j        |          d d d            n# 1 swxY w Y   t          |j        |         | j        |                    t          j                    }t                      rt          j        t"          d	          }|5  t          j	        t          |          5  |j        |j                  d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          |j        |j                 | j        |                    |                                }t          j	        t          |          5  |j        |          d d d            n# 1 swxY w Y   t          j	        t          d
          5  |j        |          d d d            d S # 1 swxY w Y   d S )Nr4   rg   r   r   bdmnatr7   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;   rK   r*   rn   ro   rp   r=   r>   r,   r-   r.   r#   r
   
contextlibnullcontextr   warnsUserWarningrW   clear_divisions)rB   rC   rQ   dsmsgctxs         r&    test_loc_with_non_boolean_seriesr      sV   	
	)**
 
 
B .Q

C
	$x..!!A	q	)	)	)B 	Y  
xs	+	+	+                 cgaj"&)$$$

 
"
"C   
lM
 
 
 
  ]83/// 	 	GBI	 	 	 	 	 	 	 	 	 	 	 	 	 	 	               cgah+++




C	xs	+	+	+                 
I
 
 
   	

                 sl   *CCC3FE."F.E2	2F5E2	6FF	F	*HHH*II	I	c                 \   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            n# 1 swxY w Y   t	          j        t                    5  t          j        j        d          d d d            n# 1 swxY w Y   t	          j        t                    5  t          j        j        dd df          d d d            n# 1 swxY w Y   t	          j        t                    5  t          j        j        t          j        dz  d	k    df          d d d            d S # 1 swxY w Y   d S )
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      s   aeFmTXac3h/000aeAuHotx!cU
3444 aeAaCHotx!S1222aeBQBGndhrr3w/000aeABBGndhqrr3w/000aeQCHotxS1222aeAaC#J!A#u*!5666aeBQBI!cU 3444aeABBIcU 3444 
}	%	%  	g               
}	%	%  	               
}	%	%  	A               
}	%	% ! !	a1a  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sH   H11H58H5I99I= I=KK	K	)+L!!L%(L%c                    t          j        t          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                    d S )Nr4   r   rg   rh   ri   r   r   rO   r   rO   rl   n)r   cr   rm   r   )rr   r   rj   h)
r;   r<   r*   rn   ro   rp   r=   r>   r
   r#   rA   s     r&   test_loc2d_with_known_divisionsr      s   	
	A)**W
 
 
B
 .Q

Ccghs
!3444cgcC5j!263%#,#7888cgc#gsl#RVCGSL%9:::cgc#gun%rvc#gun'=>>>cgsecUl#RVSEC5L%9:::cgooou,-rvooou6L/MNNNcgsCj3%'("&#scU1B*CDDD)))C501
(((3%/0    r%   c                    t          j        t          j                            dd          t          d          t          d                    } t          j        | d          }dt          |j	                  z  |_	        |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                    d S )Nr4   r   rg   rh   ri   r   NFr   r   rO   rl   )r;   r<   r*   rn   ro   rp   r=   r>   rN   r(   r?   r
   r#   rA   s     r&   !test_loc2d_with_unknown_divisionsr      s3   	
	A)**W
 
 
B
 .Q

Cc#-000CM%''''cghs
!3444cgcC5j!263%#,#7888cgc#gsl#RVCGSL%9:::cgc#gun%rvc#gun'=>>>>>r%   c                 &   t          j        t          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
         | 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ddf         | j	        dddf                    t          |j	        dddgf         | j	        dddgf                    t          |j	        ddddf         | j	        ddddf                    t          |j	        ddddf         | j	        ddddf                    t          |j	        dddd	f         | j	        dddd	f                    t          |j	        dddd	f         | j	        dddd	f                    t          |j	        |j
        dk    df         | j	        | j
        dk    df                    t          |j	        |j
        dk    d	dgf         | j	        | j
        dk    d	dgf                    d S )Nr4   r   rg   AABCDri   r   r   r   rO   )jrP   r   rP   rl   qDr   C)r;   r<   r*   rn   ro   rp   r=   r>   r
   r#   rP   rA   s     r&   test_loc2d_duplicated_columnsr      s   	
	A)**W
 
 
B
 .Q

Ccghs
!3444cgcC5j!263%#,#7888cghs
!3444cgcC5j!263%#,#7888cgc#gsl#RVCGSL%9:::cgc#gun%rvc#gun'=>>>cgc#gsl#RVCGSL%9:::cgc#gun%rvc#gun'=>>>cgc#gs3w&'CS0@)ABBBcgc#gs3w&'CS0@)ABBBcgc#gs3w&'CS0@)ABBBcgc#gs3w&'CS0@)ABBBcgceain%rvbdQhm'<===cgceai#s+,bfRTAXSz5I.JKKKKKr%   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
                            g d                   j
                            t          j        t          fd           t          j        t          fd           t          j        t          fd           t          j        t           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           d S )N	r   r   r   r   r   r   r   r   r   	r   r   r   r   r   r   r   r   r   TFTr   rO   rP   r   ABCr_   r   rO   rP   )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 )NrO   r   r$   r\   s   r&   r'   ztest_getitem.<locals>.<lambda>,  s    BSzN r%   c                      j         S r   )r   r\   s   r&   r'   ztest_getitem.<locals>.<lambda>-  s	    "$ r%   r3   r   r   r   c                      d         S )Nr   r$   r\   s   r&   r'   ztest_getitem.<locals>.<lambda>5  s    BqE r%   c                      ddg         S )Nr   r   r$   r\   s   r&   r'   ztest_getitem.<locals>.<lambda>6  s    B1vJ r%   )r;   r<   rp   r=   r>   r
   r   assert_series_equal_metaassert_frame_equalr   rr   r,   r-   r.   AttributeErrorr*   rn   ro   )rC   rB   s    @r&   test_getitemr     s7   	,,,,,,$$$q(	
 	

 U
 
 
B .Q

Cc#h3   3s8>39S>:::c3*or3*~...#sCj//C:1FGGGc#%j"RT(###35;	444c#%##LLL112BrtH===
M(OOOO,,,
M(2222333
M.,,,,/// 
bioob!,,	-	-B
.Q

Cc!fbec1a&k2q!f:&&&
M(MMMM***
M(..../////r%   c                 P   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                     d S )Nr   r   r   r   r   	abcdefghir   r   er   f)r;   r<   rp   r=   r>   r
   rA   s     r&   test_getitem_slicer   9  s    	,,,,,,$$$q(	
 	

 ;
 
 
B .Q

Cc#c'lBs3wK(((c#c'lBs3wK(((c#$$iCDD"""""r%   c                 ,   t          j        dt          d          i          } t          j        | d          }t          j        t                    5  |dd          d d d            n# 1 swxY w Y   t          j        dt          d          ig d          } t          j        | d          }t          j	                    }t          rt          j        t          d	          }|5  t          |dd
         | dd
                    d d d            n# 1 swxY w Y   |5  t          |dd          | dd                     d d d            n# 1 swxY w Y   |5  t          |d d
         | d d
                    d d d            d S # 1 swxY w Y   d S )NrO   r   r   r   r   )g      ?g       @g      @g      @g      $@g      &@r   zfloat-dtype indexry   r   )r;   r<   ranger=   r>   r,   r-   NotImplementedErrorr{   r|   r   r}   FutureWarningr
   )rB   rC   r   s      r&   test_getitem_integer_slicer   H  s   	sE!HHo	&	&B
.Q

C	*	+	+  AaC               
sE!HHo-M-M-M	N	N	NB
.Q

C

 
"
"C El=0CDDD	 % %#ac(BqsG$$$% % % % % % % % % % % % % % %	 # ##abb'2abb6"""# # # # # # # # # # # # # # #	 # ##bqb'2bqb6"""# # # # # # # # # # # # # # # # # #sH   A))A-0A-'!DDD!!EEE!F		FFc            
     h   t          j        dg dit          t          t          j        g d                              } t          j        | d          }t          t          t          j        |j	                            |_	        t          |j        dd         |j        dd                    d S Nr   r   )201420152016r   r   r   r   )r;   r<   rp   mapr*   
datetime64r=   r>   tupler(   r
   r#   rB   r   s     r&   test_loc_on_numpy_datetimesr   ]  s    		iiiS8P8P8P%Q%Q R R
 
 
B 	r1ABM1;7788AKaeF6M"AE&-$899999r%   c            
     h   t          j        dg dit          t          t           j        g d                              } t          j        | d          }t          t          t           j        |j                            |_        t          |j
        dd         |j
        dd                    d S r   )r;   r<   rp   r   	Timestampr=   r>   r   r(   r
   r#   r   s     r&   test_loc_on_pandas_datetimesr   g  s    		iiiS7O7O7O%P%P Q Q
 
 
B 	r1ABL!+6677AKaeF6M"AE&-$899999r%   c                 V   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          ||           d S )Nz
2016-01-01z
2016-01-3112h)freqnumr   r   rx   z
2016-01-03z
2016-01-05)r;   
date_ranger   r<   r   rN   r=   r>   slicer#   r
   )datetime_indexrB   rC   slice_resultexpecteds         r&   test_loc_datetime_no_freqr   q  s     ]<EJJJNN	ueC$7$7889	P	P	PB
.
+
+
+C<..FWVQQQYFvfaaai Hfhr%   c                     t           j        t          j        fD ],} t	          t           | d          gd          |           sJ -d S )Nr   )r;   r   r*   r   
isinstancer	   )rm   s    r&   test_coerce_loc_indexr     sV    lBM* E E+QQvYYK@@!DDDDDDE Er%   MEMc                 6	   t          j        t          j                            d          t          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	        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	        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	        t          j        d
                   d           t          j        t          j                            d          t          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                    d S )Nd   rO   rP   
2011-01-01r   r   periodsr   r3   
2011-01-02
2011-01-10z2011-01-02 10:00F)
check_freq2   2011-0120112012-05r   )r;   r<   r*   rn   ro   r   r=   r>   r
   r#   to_frameTrO   r   r   rP   rA   s     r&   test_loc_timestamp_strr     s   	iooc"")=)=>>mLsC@@@
 
 
B .R
 
 C bf\"CGL$9:::bf\,./l9R1STTT
!"++--/"#    bdh|$cei&=%PPPP
l*+	,|+,    
r|L))*33557\**+   
 
r|L))BL,F,FFG\**R\,-G-GGH   
 
r|.//099;;=/001    
iooc"")=)=>>mLr3???
 
 
B .R
 
 CbfY!3444bfVncgfo...bfYy()379Y3F+GHHHbfVF]#SWVF]%;<<< bdhy!359Y#7888bdhv	& 1222bdhy*+SUYy7J-KLLLbdhvf}%suy'?@@@@@r%   c                    t          j        t          j                            d          t          j                            d          dt          j        ddd                    } t          j        | d          }t          j	        t          d	          5  t          | j        d
         |d
                    d d d            n# 1 swxY w Y   t          | d
d         |d
d                    t          j        t          j                            d          t          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                    d S Nr   r   r   r   r   r   r3   z(Indexing a DataFrame with a datetimelikery   r   r   r   r   r   r   r   r   )r;   r<   r*   rn   ro   r   r=   r>   r,   r}   r   r
   r#   rA   s     r&   test_getitem_timestamp_strr     s   	iooc"")=)=>>mLsC@@@
 
 
B .R
 
 C	m+U	V	V	V ; ;"&&L(9:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;bl*+Sl1J-KLLL	iooc"")=)=>>mLsC@@@
 
 
B .R
 
 CbfY!3444bfVncgfo...b9$%s9Y+>'?@@@bVF]!344444s   "CCCc                    t          j        t          j                            d          t          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                            d          t          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                    d S )Nr   r   r   r   r   r   r3   r   r   r   r   r   r   r   r   )
r;   r<   r*   rn   ro   period_ranger=   r>   r
   r#   rA   s     r&   test_loc_period_strr     s    
iooc"")=)=>>olcBBB
 
 
B .R
 
 C bf\"CGL$9:::bf\,./l9R1STTT 
iooc"")=)=>>olcBBB
 
 
B .R
 
 CbfY!3444bfVncgfo...bfYy()379Y3F+GHHHbfVF]#SWVF]%;<<<<<r%   c                    t          j        t          j                            d          t          j                            d          dt          j        ddd                    } t          j        | d          }t          j	        t          d	          5  t          | j        d
         |d
                    d d d            n# 1 swxY w Y   t          | d
d         |d
d                    t          j        t          j                            d          t          j                            d          dt          j        ddd                    } t          j        | d          }t          j	        t          d	          5  t          | j        d         |d                    d d d            n# 1 swxY w Y   t          j	        t          d	          5  t          | j        d         |d                    d d d            n# 1 swxY w Y   t          | dd         |dd                    t          | dd         |dd                    d S r   )r;   r<   r*   rn   ro   r   r=   r>   r,   r}   r   r
   r#   rA   s     r&   test_getitem_period_strr     s   	iooc"")=)=>>olcBBB
 
 
B .R
 
 C 
m+U	V	V	V ; ;"&&L(9:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;bl*+Sl1J-KLLL 
iooc"")=)=>>olcBBB
 
 
B .R
 
 C	m+U	V	V	V 5 5"&#S^4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 
m+U	V	V	V / /"&.#f+.../ / / / / / / / / / / / / / / b9$%s9Y+>'?@@@bVF]!344444s6   "CCC
"F88F<?F<"HHHr   r   r   r   r   c                0   t          j        dt          j                            d          i|           }t          j        |d          }|j                                        }|j                                        }|j	        sJ t          ||           d S )NrO   r   r   r3   )r;   r<   r*   rn   ro   r=   r>   r   	to_seriesr?   r
   r   rB   rC   r   actuals        r&   test_to_seriesr     s     
sBIOOC001	?	?	?B
.R
 
 Cx!!##HY  ""F!!!!hr%   c                   t          j        dt          j                            d          i|           }t          j        |d          }|j                                        }|j                                        }|j	        sJ t          ||           t          |j                            d          |j                            d                     d S )NrO   r   r   r3   foo)name)r;   r<   r*   rn   ro   r=   r>   r   r   r?   r
   r   s        r&   test_to_framer   %  s     
sBIOOC001	?	?	?B
.R
 
 Cx  ""HY!!F!!!!h bhU++SY-?-?U-?-K-KLLLL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          ||           d S )Nr   r   r   r   r   r   r   )r;   r<   r=   r>   rJ   r
   )r   rB   rC   r   r   s        r&   	test_ilocr   :  sv    	QF!Qq!f==	>	>B
.Q

CXaaaj!Fwqqq'z"Hfhr%   c                     t          j        g d          } t          j        | d          }t	          j        t                    5  |j        d d           d d d            d S # 1 swxY w Y   d S )Nr   r   )r;   rK   r=   r>   r,   r-   r   rJ   )rQ   r   s     r&   test_iloc_seriesr   E  s    
	)))A	1		B	~	&	&  


                 s   A""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            n# 1 swxY w Y   t	          j        t                    5  |j        ddgddgf          d d d            n# 1 swxY w Y   t	          j        t                    5  |j        ddgddgddgf          d d d            n# 1 swxY w Y   t	          j        t                    5  |j        d d ddgf          d d d            d S # 1 swxY w Y   d S )	Nr   r   r   r   r   r   r   r   )
r;   r<   r=   r>   r,   r-   r   rJ   rq   
IndexErrorrA   s     r&   test_iloc_raisesr   L  sN   	QF!Qq!f==	>	>B
.Q

C	*	+	+  !Q               
*	+	+ ! !!Q!Q  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 
z	"	" ) )!Q!Q!Q'(() ) ) ) ) ) ) ) ) ) ) ) ) ) ) 
z	"	"  QF                 sH   A--A14A1B11B58B5C88C<?C<D==EEc                    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          d	 |j        j        	                                D                       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                    d S )Nr   r   r   r   r   r   r   )rO   rO   r   c                8    g | ]}|                     d           S rJ   
startswith.0keys     r&   
<listcomp>z/test_iloc_duplicate_columns.<locals>.<listcomp>e  s$    OOO3v&&OOOr%   r   r   )r;   r<   r=   r>   r_   rJ   anyr0   layerskeysr
   rB   rC   	selectionselect_firstselect_zerothselect_list_colsselect_negatives          r&   test_iloc_duplicate_columnsr  ]  sy   	QF!Qq!f==	>	>B
.Q

C BJ!//CKAIOO).2G2L2L2N2NOOOPPPPP8AAAqD>LlBGAAAqDM***HQQQTNMmRWQQQT]+++xAq6	*Aq6	 2333hqqq"R({+Oorwqqq"R({344444r%   c                    t          j        ddgddgddgd          } t          j        | d          }|j        d d df         }t          d |j        j                                        D                       sJ t          d	 |j        j                                        D                       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                    d S )Nr   r   r   r   r   r   r   c                :    g | ]}|                     d            S r   r   r   s     r&   r  z1test_iloc_dispatch_to_getitem.<locals>.<listcomp>z  s'    SSSsCNN6***SSSr%   c                8    g | ]}|                     d           S )getitemr   r   s     r&   r  z1test_iloc_dispatch_to_getitem.<locals>.<listcomp>{  s$    RRRcy))RRRr%   r   r   r  )r;   r<   r=   r>   rJ   allr0   r  r  r  r
   r  s          r&   test_iloc_dispatch_to_getitemr  t  s   	QF!Qq!f==	>	>B
.Q

CAISSin6K6P6P6R6RSSSTTTTTRRY^5J5O5O5Q5QRRRSSSSS8AAAqD>LlBGAAAqDM***HQQQTNMmRWQQQT]+++xAq6	*Aq6	 2333hqqq"R({+Oorwqqq"R({34444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 d S )Nr   r   r   r   r   )rO   rP   r   r   )r   rO   rP   r   r   rO   rP   )r;   r<   r=   r>   rJ   r   r0   r@   )rB   rC   r   r   r   a1b1c1s           r&    test_iloc_out_of_order_selectionr    s   	QC#IQC#IQC#IQCRUIVV	W	WB
.Q

C
ooo
CAAAAAA6S====6S====6S====aA&&JBB7c>>>>7c>>>>7c>>>>>>r%   c                 T   t          j        g d          } t          j        ddt           j        gd          }t          j        | d          }t          j        |d          }t          ||         | |                    t          |j        |         | j        |                    d S )Nr   r   r   TFboolean)dtyper   rx   )r;   rK   NAr=   r>   r
   r#   )s1s2ddf1ddf2s       r&   &test_pandas_nullable_boolean_data_typer!    s    	999		B	D%'y	9	9	9B>"!,,,D>"!,,,Dd4j"R&!!!dhtnbfRj)))))r%   c                 @   t          j        g d          } t          j        | d          }|j        dd         }|j        dd         }t          |          t          |          k    sJ |j        dd         }t          |          t          |          k    sJ d S )Nr  r   rx   r   r   )r;   rK   r=   r>   r#   r   objdask_dfr  r   s       r&   !test_deterministic_hashing_seriesr&    s    
)III

CnSa000G;qsD;qsDD>>Xd^^++++;qsDD>>Xd^^++++++r%   c                    t          j        g dg dgg d          } t          j        | d          }|j        dddd	gf         }|j        dddd	gf         }t          |          t          |          k    sJ |j        ddd	f         }|j        ddd	f         }t          |          t          |          k    sJ |j        d d ddgf         }|j        d d ddgf         }t          |          t          |          k    sJ |j        d d dd
gf         }t          |          t          |          k    sJ d S )N)r   r   r   r   )r   r   r   r   )r   r   r   r   r   r   rx   r   r   r   r   )r;   r<   r=   r>   r#   r   rJ   r#  s       r&   $test_deterministic_hashing_dataframer(    sX   
,lll3=Q=Q=Q
R
R
RCnSa000G;qsS#J'D;qsS#J'DD>>Xd^^++++;qsCx D;qsCx DD>>Xd^^++++<Aq6	"D<Aq6	"DD>>Xd^^++++<Aq6	"DD>>Xd^^++++++r%   c                    t          j        d          } t          j        d          }g d}|                     t          d          |d                              d          }t          j        |d          }|                     g d	          }|                    g d	          }t          |j
        |         |j
        |                    t          |j
        |         |j
        |                    d S )
Ncudfcupy)r   r   r3         r      ,  r   )r   r   r   r   rx   )r   r   r/  )r,   importorskipr<   r   	set_indexr=   r>   rK   r+   r
   r#   )r*  r+  r   rB   rC   	cdf_index
cupy_indexs          r&   test_gpu_locr4    s    v&&Dv&&D---E	eAhh77	8	8	B	B7	K	KB
.
+
+
+CMMM**IMMM**Jcgi "&"4555cgj!26*#566666r%   )J
__future__r   r{   numpyr*   pandasr;   r,   r0   dask.dataframe	dataframer=   	dask.baser   dask.dataframe._compatr   r   r   r   dask.dataframe.indexingr	   dask.dataframe.utilsr
   r   r   r<   dskIndexmetar"   r@   r)   r1   rD   rR   rU   rX   rd   rs   ru   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   r   r   r  r  r  r!  r&  r(  gpur4  r$   r%   r&   <module>rD     s   " " " " " "                           R R R R R R R R R R R R 5 5 5 5 5 5 N N N N N N N N N N bl;;999MMMbl;;999MMMbl;;999MMM 
 y
T("(2t"4"4,",..   BLc4..yy{{: : :<* * *@ @ @P P P  A A A
K 
K 
K  $ $ $N! ! !>  *? ? ?"L L L6!0 !0 !0H# # ## # #*: : :: : :     E E E
 #TT:A :A :Az5 5 5.= = =65 5 5: lc:::c

       lc:::c

 M M M QaVaV=P=P=P$QRR    SR     "5 5 5.5 5 5,  &* * *, , ,, , ,2 7 7 7 7 7r%   