
    d                        d dl mZ d dlZd dlZd dlZd dlmZmZ d dl	Z
d dl	mZmZmZmZ d dlmZ  G d d          Z G d d          Z G d	 d
          Zd Zd Zej                            ddgdz   edgdz            g          ej                            dg d eg d          g          d                         Zej                            ddg edg          g          ej                            ddg edg          g          d                         Z G d d          Z G d d          Z G d d          Zd Zej                            dej        ddgg dgd ej        d fej        ddgg dgd!ej        d"fd#fg d$d%ej        d%ggd!dej        fd fg          d&             Z ej                            d'ej        d!d(gg d)g e!d d(d          ej        d!fej        d!d(gg d)g e!d d*d          ej        d+fg d,d-ej        dgg e!d!d*d          d(ej        fd*fg d,d-ej        dgg e!d!d*d          d(ej        fd.fg          d/             Z"d0 Z#ej                            d1 e!d          dd-gfd!d gf e!d          d-dgfd d!gfg d2d-d3gfd d(gfg d2d3d-gfd d(gfd(d-dgfd d!gfd(dd-gfd!d gfd(gd-dgfd d!gfd(gdd-gfd!d gfg          d4             Z$d5 Z%dS )6    )	timedeltaN)InvalidIndexErrorPerformanceWarning)CategoricalIndex
MultiIndex
date_rangec                      e Zd Zd Zd Zd Zd Zd Zej	        
                    dej        ddgg d	gd
ej        dfej        ddgg d	gd
ej        dfej        ddgg d	gd
ej        dfg ddej        dggddej        fdfg ddej        dggddej        fdfg ddej        dggddej        fdfg          d             ZdS )TestSliceLocsc                 D   |                     d          \  }}|                    dd          }|dk    sJ |                    d d          }|dk    sJ |                    dd           }|dt          |          fk    sJ |                    dd          }|d	k    sJ d S )
Nr   footwo)quxone)      )r   r   r   barbaz)      )	sortlevel
slice_locslen)selfidx
sorted_idx_results        d/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/indexes/multi/test_indexing.pytest_slice_locs_partialz%TestSliceLocs.test_slice_locs_partial   s    a((
A&&~~FF&&t^<<&&~t<<!S__-----&&ue44    c           	      ~   t          j                    }|                                }|j        }t	          |                    |j        d         |j        d                    }||         }|dd                                         }t          j        |j        |j                   t	          |                    |j        d         t          d          z   |j        d         t          d          z
             }||         }|dd                                         }t          j        |j        |j                   d S )Nr            seconds   )	tmmakeTimeDataFramestackindexslicer   assert_almost_equalvaluesr   )r   dfstackedr   slobslicedexpecteds          r    test_slice_locszTestSliceLocs.test_slice_locs&   s   !##((**mcnnRXa["(2,??@ad8>>##
v}ho>>>^^i3333y4444 
 ad8>>##
v}ho>>>>>r"   c                 r   t          j                    }|                                }|j        }t	          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t	          j        t          d          5  |                    |j        d         t          d          z   d           d d d            n# 1 swxY w Y   t          j	        dd          }|                                }|j        }t	          j        t          d          5  |                    t          d                     d d d            n# 1 swxY w Y   t	          j        t          d          5  |                    |j        d         d	           d d d            d S # 1 swxY w Y   d S )
Nz^Level type mismatchmatchr      r   r&   r'   r   r   r   )r%   a)
r*   r+   r,   r-   pytestraises	TypeErrorr   r   makeCustomDataframe)r   r1   r2   r   s       r    "test_slice_locs_with_type_mismatchz0TestSliceLocs.test_slice_locs_with_type_mismatch:   s   !##((**m]9,BCCC 	# 	#NN6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#]9,BCCC 	H 	HNN28A;2)>)>)>>GGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H#Aq))((**m]9,BCCC 	2 	2NN9R000111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 ]9,BCCC 	3 	3NN28A;	222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3sH   
A,,A03A03CCC'$EEE="F,,F03F0c           	      X   t          t          t          j        d                    t          t          j        d                    t          t          j        d                    gt          j        g d          t          j        g d          t          j        g d          g          }d}t          j        t          |          5  |                    dd	           d d d            n# 1 swxY w Y   |	                    d
          \  }}|                    dd	           d S )Nr   r   r   r   r   r   r   r;   r;   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   levelscodesz4[Kk]ey length.*greater than MultiIndex lexsort depthr8   )r   r   r   )r   r   r   r   )
r   r   nparangearrayr>   r?   KeyErrorr   r   )r   r-   msgsorted_indexr   s        r    test_slice_locs_not_sortedz(TestSliceLocs.test_slice_locs_not_sortedK   sL   ")A,,''ry||)<)<eBIaLL>Q>QR111221112211122
 
 
 E]83/// 	3 	3Y	222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3  //!,,a	955555s   C11C58C5c                    t          g dg dgg dg dg          }|                    dd          }|dk    sJ |                    d	d
          }|dk    sJ |                    dd          }|dk    sJ |                    dd
          }|dk    sJ |                    dd          }|dk    sJ |                    dd          }|dt          |          fk    sJ 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   r   rG   r   r   r<   )r;   r)   r   r   r   r   r   )r)   r;   )r;      
   r   )r   r   r   )r   r-   r   s      r    test_slice_locs_not_containedz+TestSliceLocs.test_slice_locs_not_contained]   s3     LL))),...0K0K0KL
 
 

 !!&&11!!!Q''!!&&11!!!Q''!!&&11!!"b))!SZZ((((((r"   $index_arr,expected,start_idx,end_idxr=   bcde)r   r;   N)rY   r]   r=   rY   r[   r\   r]   r:   r[   )r[   r]   c                 l    t          j        |          }|                    ||          }||k    sJ d S N)startend)r   from_arraysr   )r   	index_arrr5   	start_idxend_idxr   r   s          r    "test_slice_locs_with_missing_valuez0TestSliceLocs.test_slice_locs_with_missing_valuew   s@     $Y//iW==!!!!!!r"   )__name__
__module____qualname__r!   r6   rB   rP   rW   r>   markparametrizerJ   nanrg    r"   r    r   r      sc            ? ? ?(3 3 3"6 6 6$) ) )4 [.vsC ///2FBFDIvsC ///2FBFCHvsC ///2FBFJOooRVS12FS"&M4PooRVS12FS"&M3OooRVS12FS"&M:V	

 
" "
 
" " "r"   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestPutmaskc                 v   d}t          j        t          |          5  |                    t	          j        t          |          dz   t          j                  d           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    t	          j        t          |          dz
  t          j                  d           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    dd           d d d            d S # 1 swxY w Y   d S )Nz,putmask: mask and data must be the same sizer8   r   r   )r>   r?   
ValueErrorputmaskrJ   onesr   bool_r   r   rN   s      r    test_putmask_with_wrong_maskz(TestPutmask.test_putmask_with_wrong_mask   s    =]:S111 	< 	<KKC1bh77;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< ]:S111 	< 	<KKC1bh77;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< ]:S111 	" 	"KKq!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s7   AA..A25A2AC$$C(+C(
D..D25D2c                 d   t          j        t          j        dft          j        dfdg          }t          j        g d          }t          j        g d          }|                    ||          }t          j        |d         |d         |d         g          }t          j        ||           d S )Nr)   )r=   r   )r=   r   ry   )r\   r   )TTFr   r   r   )r   from_tuplesrJ   rm   rL   rs   r*   assert_index_equal)r   leftrightmaskr   r5   s         r    test_putmask_multiindex_otherz)TestPutmask.test_putmask_multiindex_other   s     %{RVQK&JKK&'E'E'EFFx+++,,dE**)58U1XtAw*GHH
fh/////r"   c                 t   t          j        t          j        g d|          g dg          }t          j        t          j        g d|          g dg          }|                    g d|          }t          j        t          j        g d|          g dg          }t          j        ||           d S )	Nr   r   r;   dtyperV         r   r)      )rU   TFFr   r   r;   rU   r   r   r   rc   pdSeriesrs   r*   r{   r   any_numeric_ea_dtypemidxmidx2r   r5   s         r    test_putmask_keep_dtypez#TestPutmask.test_putmask_keep_dtype   s    %Yyyy(<===|||L
 
 &Yyyy(<===|||L
 
 222E::)Yyyy(<===|||L
 
 	fh/////r"   c                 p   t          j        t          j        g d|          g dg          }t          j        t          j        dg|          dgg          }|                    g d|          }t          j        t          j        g d|          g dg          }t          j        ||           d S )	Nr   r   r   r   rU   r   r   r   r   r   s         r    %test_putmask_keep_dtype_shorter_valuez1TestPutmask.test_putmask_keep_dtype_shorter_value   s    %Yyyy(<===|||L
 
 &Ys"6777">
 
 222E::)Yyyy(<===|||L
 
 	fh/////r"   N)rh   ri   rj   rw   r   r   r   rn   r"   r    rp   rp      sP        " " "
0 
0 
00 0 00 0 0 0 0r"   rp   c                      e Zd Zd Zd Zd Zej                            dde	j
        dgg dgde	j
        dg e	j        g de	j        	          fde	j
        dgg dge	j
        d
fg e	j        dge	j        	          fg de	j
        d
dggde	j
        fg e	j        dge	j        	          fg de	j
        d
dgge	j
        d
dg e	j        g de	j        	          fg          d             Zd Zd Zd Zd Zd ZdS )TestGetIndexerc                 :   t          t          j        d                    }t          t          j        d                    }t          j        g dt          j                  }t          j        g dt          j                  }t          ||g||g          }|d d         }|g d         }|                    |          }t          j        |t          j        g d	t          j                             |                    |d
          }t          j        g dt          j                  }	t          j        ||	           |                    |d d d         d
          }
t          j        |
|	d d d                    |                    |d          }t          j        ||           |                    |d          }t          j        g dt          j                  }	t          j        ||	           |                    |d d d         d          }
t          j        |
|	d d d                    |                    |d          }t          j        ||           |                    |j	                  }|                    |          }t          j        ||           |                    g d          }|g dk    
                                sJ t          t          t          d                    t          t          d                    z             }t          t          t          d                              }d}t          j        t          |          5  |                    |           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   r   r   rG   r   )r   r;   r   )r   r;   rU   padmethod)rU   r   r   r   r   rU   ffillbackfill)r   r   r   r   r   bfillr   rU   rU   rU   rV      z8Reindexing only valid with uniquely valued Index objectsr8   )r   rJ   rK   rL   intpr   get_indexerr*   r/   r0   alllistranger>   r?   r   )r   
major_axis
minor_axismajor_codesminor_codesr-   idx1idx2r1e1r2rffill1rbfill1rexp1rN   s                  r    test_get_indexerzTestGetIndexer.test_get_indexer   s   29Q<<((
29Q<<((
h444BGDDDh444BGDDD
+K3M
 
 
 RaRyYYYd##
r28JJJbg#F#F#FGGGd511X&&&bg666
r2&&&d44R4j77
r2ddd8,,,""4"88
r7+++d:66XoooRW555
r2&&&d44R4j<<
r2ddd8,,,""4"88
r7+++ dk**  &&
r5)))iii((lll"''))))) T%))__tE"II677T%))__%%H],C888 	# 	#T"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   -NNNc                 j   t          j        ddg          }d}t          j        t          |          5  |                    dgd           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                    dgd	d
           d d d            d S # 1 swxY w Y   d S )Nry   rY   r   zJmethod='nearest' not implemented yet for MultiIndex; see GitHub issue 9365r8   r=   nearestr   z,tolerance not implemented yet for MultiIndexr   r   )r   	tolerance)r   rz   r>   r?   NotImplementedErrorr   )r   r   rN   s      r    test_get_indexer_nearestz'TestGetIndexer.test_get_indexer_nearest   sE   %x&:;;$ 	 ].c::: 	6 	6cU9555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6<].c::: 	? 	?cU5A>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s#   AA AB((B,/B,c           
         t          j        t          g d          t          t          ddd                    g          }|                    |          }t          j        |t          j        dt          j	                             d S )Nr^   
2012-01-01r;   H)periodsfreq	   r   )
r   from_productr   r	   r   r*   assert_numpy_array_equalrJ   rK   r   )r   r   r   s      r    !test_get_indexer_categorical_timez0TestGetIndexer.test_get_indexer_categorical_time  s    &OOO,,J|QSIIIJJ
 
 !!$''
#FBIarw,G,G,GHHHHHr"   zindex_arr,labels,expectedr   r   r;   r   r   r   r   r   r   r   r   c                     t          j        |          }|                    |          }t          j        ||           d S )N)r   rc   r   r*   r   )r   rd   labelsr5   r   r   s         r    #test_get_indexer_with_missing_valuez2TestGetIndexer.test_get_indexer_with_missing_value  s>    & $Y//((
#FH55555r"   c                 B   t          j        g dg dg          }t          j        dgg dg          }|                    |          }t          j        g d|j                  }t          j        ||           |                    |d          }t          j        g d	|j                  }t          j        ||           |                    |d
          }t          j        g d	|j                  }t          j        ||           |                    |d          }t          j        g d|j                  }t          j        ||           |                    |d          }t          j        g d|j                  }t          j        ||           d S )N)rU   r   r   )r   r   r;   r   r   )r   r;   r   )rU   r)   r   r   r   r   r   r   r   )r   r)   r   r   )r   r   r   rJ   rL   r   r*   r/   r   
mult_idx_1
mult_idx_2indexerr5   backfill_indexerpad_indexers          r    test_get_indexer_methodsz'TestGetIndexer.test_get_indexer_methods%  s   6  ,jjj,,,-GHH
,qc999-=>>
((448JJJgm<<<
x111%11*Z1PP8III-=-CDDD
x)9::: &11*W1MM8III-=-CDDD
x)9::: ,,Z,FF8III[->???
x555 !,,Z,HH8III[->???
x55555r"   c                    t          j        ddgg dddgg          }t          j        g d          }|j        sJ |j        sJ |j        sJ |j        sJ |d         |d         k     sJ |d         |d         cxk     r|d         k     sn J |d         |d	         k    sJ |d         |d         cxk     r|d
         k     sn J |d         |d         cxk     r|d
         k     sn J |d         |d         cxk     r|d
         k     sn J |d         |d
         k     sJ |                    |          }t          j        g d|j                  }t          j
        ||           |                    |d          }t          j        g d|j                  }t          j
        ||           |                    |d          }t          j        g d|j                  }t          j
        ||           |d         |d         cxk     r|d         k     sn J |d         |d         cxk     r|d         k     sn J |d         |d	         cxk     r|d         k     sn J |d         |d         cxk     r|d         k     sn J |d         |d         cxk     r|d	         k     sn J |d	         |d         k    sJ |d         |d
         cxk     r|d
         k     sn J |d         |d         cxk     r|d
         k     sn J |d         |d         cxk     r|d
         k     sn J |d         |d         cxk     r|d
         k     sn J |d         |d         cxk     r|d
         k     sn J |d         |d         cxk     r|d
         k     sn J |                    |          }t          j        g d|j                  }t          j
        ||           |                    |d          }t          j        g d|j                  }t          j
        ||           |                    |d          }	t          j        g d|	j                  }t          j
        ||	           d S )Nr   r;   )r   r   r)   r   r   ))r   r   rT   )r   r   r   )r   r)   r   )r   r   r)   )r   r   r   )r   r   rT   )r;   r)   rT   r   r   r   r)   rU   )rU   rU   r   rU   rU   rU   rU   r   r   r   )r   r   r   r)   r)   r)   rU   r   )rU   r;   r   r   r   r   r   rT   r   rV   r   )rU   rU   rU   rU   rU   r   rU   rU   rU   rU   rU   rU   r   )r   r   r   r   r   r   r)   r)   r)   r)   r)   r)   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   rz   is_monotonic_increasing	is_uniquer   rJ   rL   r   r*   r/   )
r   r   r   indexer_no_fillr5   indexer_backfilledindexer_paddedr   r   r   s
             r    %test_get_indexer_three_or_more_levelsz4TestGetIndexer.test_get_indexer_three_or_more_levelsY  s   4  ,q!fiii!Q-HII
+  

 


 1111####1111#### !}z!},,,,!}z!}<<<<z!}<<<<<<!}
1----!}z!}<<<<z!}<<<<<<!}z!}<<<<z!}<<<<<<!}z!}<<<<z!}<<<<<<"~
1----$00<<8777?TUUU
x999 (33Jz3RR8222:L:RSSS
x);<<< $//
5/II8333>;OPPP
x888 !}z!}<<<<z!}<<<<<<!}z!}<<<<z!}<<<<<<!}z!}<<<<z!}<<<<<<!}z!}<<<<z!}<<<<<<!}z!}<<<<z!}<<<<<<!}
1----!}z!}<<<<z!}<<<<<<!}z!}<<<<z!}<<<<<<!}z!}<<<<z!}<<<<<<!}z!}<<<<z!}<<<<<<!}z"~====
1======!}z"~====
1======((448;;;7=
 
 
 	x111%11*W1MM80008H8N
 
 
 	x)9::: ,,Z,FF80008I
 
 
 	x55555r"   c                    t          j        ddggdz            }t          j        ddg          }|d         |d         cxk     r|d         k     sn J |d	         |d         k     sJ |                    |          }t	          j        d	d	g|j        
          }t          j        ||           |                    |d          }t	          j        dd	g|j        
          }t          j        ||           |                    |d          }t	          j        ddg|j        
          }t          j        ||           d S )Nr   r   r   )r   r;   r   r   )r   r;   r   r   r   r   rT   rU   r   r   r   r   r$   )	r   r   rz   r   rJ   rL   r   r*   r/   r   s          r     test_get_indexer_crossing_levelsz/TestGetIndexer.test_get_indexer_crossing_levels  sT   6  ,q!fX\::
+\<,HII
 !}z!}<<<<z!}<<<<<<"~
1----((448RHGM:::
x111%11*W1MM8QG+;+ABBB
x)9::: ,,Z,HH8QG;+<===
x55555r"   c                    t          j        t          d          ddgg          }d}t          j        t
          |          5  |                    |d d         d           d d d            n# 1 swxY w Y   d	}t          j        t
          |          5  |                    |d d         d
           d d d            d S # 1 swxY w Y   d S )Nr;   ABz;limit argument only valid if doing pad, backfill or nearestr8   rU   r   )limitz?tolerance argument only valid if doing pad, backfill or nearestpiano)r   )r   r   r   r>   r?   rr   r   )r   mirN   s      r    !test_get_indexer_kwarg_validationz0TestGetIndexer.test_get_indexer_kwarg_validation  sM   $eAhhc
%;<<K]:S111 	- 	-NN2crc7!N,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- P]:S111 	7 	7NN2crc7gN666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s$    A//A36A3 CCCc                 j   t          j        dgddggddg          }t          j        dgt          j        dggddg          }t          j        ddg          }|                    |          }t          j        ||d	
           |                    |          }t          j        ||d	
           d S )Nr         ?       @id1id2namesrU   r   F)check_dtype)r   r   rJ   rm   rL   r   r*   r   )r   r   r   r5   r   s        r    test_get_indexer_nanz#TestGetIndexer.test_get_indexer_nan  s    &Sz':5%.QQQ&}'=eU^TTT8RG$$!!$''
#FH%HHHH!!$''
#FH%HHHHHHr"   N)rh   ri   rj   r   r   r   r>   rk   rl   rJ   rm   rL   r   r   r   r   r   r   r   rn   r"   r    r   r      s       2# 2# 2#h
? 
? 
?	I 	I 	I [# RVQ+BFARW555
 "&!niii(BFA;-1#RW9U9U9UVii"&!Q(Arv;-1#RW9U9U9UVRVQN+ARW555	
 "6 6# "626 26 26ha6 a6 a6F,6 ,6 ,6\
7 
7 
7I I I I Ir"   r   c                 4   | d         dk    sJ | dd         }| g d         }|                     |          sJ | g d         }| t          j        g d                   }| g d         }|                     |          sJ |                     |          sJ d S )Nr   )r   r   r   r   r;   r   )TFTFTT)r   r   r   r   )equalsrJ   rL   )r   r   r5   result2s       r    test_getitemr     s    q6^#### 1XF999~H==""""" 7778F"(AAABBCG<<< H==""""">>(#######r"   c                     |                      d          \  }}|                    d          t          dd          k    sJ |                    d          t          dd          k    sJ d S )Nr   r   r;   r   r   r   )r   get_locr.   )r   r   r   s      r    test_getitem_group_selectr     sk    MM!$$MJe$$a3333e$$a333333r"   ind1Tr   ind2)TFTFFc                     t          j        g d          }t          j        ||          |           t          j        ddg          }t          j        ||         |           d S )N)rV   r   )r   r   r&   r;   )(   r   )2   r   r   r   )r   rz   r*   r{   r   r   r   r5   s       r    test_getitem_bool_index_allr     sd     
 !N!N!N
O
OC#d)S)))%w&899H#d)X.....r"   Fc                 >   t          j        dg          }t          j        ||          |           t          t	          j        g t          j                  t	          j        g t          j                  gg g g          }t          j        ||         |           d S )Nr   r   rG   )r   rz   r*   r{   rJ   rL   int64r   s       r    test_getitem_bool_index_singler   &  s     
 '
+
+C#d)S)))28,,,bhr.J.J.JK2h  H #d)X.....r"   c                      e Zd Zd Zd Zd Zej                            de	e
eeg          ej                            de	e
eeg          d                         Zej                            ddd	g          ej                            d
e	e
ge
e	gg          d                         Zej                            deeg          d             Zej                            ddd	g          d             Zd Zd Zd Zd Zd Zd ZdS )
TestGetLocc           	         |                     d          dk    sJ |                     d          dk    sJ t          j        t          d          5  |                     d           d d d            n# 1 swxY w Y   t          j        t          d          5  |                     d	           d d d            n# 1 swxY w Y   t	          t          t          j        d
                    t          t          j        d
                    t          t          j        d
                    gt          j        g d          t          j        g d          t          j        g d          g          }t          j        t          d          5  |                     d           d d d            n# 1 swxY w Y   |                     d          t          dd          k    sJ d S )Nr   r   )r   r   r;   z^15$r8   r   r   z^'quux'$quuxr   rD   rE   rF   rG   z
^\(1, 1\)$)r   r   )r   r   r   )
r   r>   r?   rM   r   r   rJ   rK   rL   r.   )r   r   r-   s      r    test_get_loczTestGetLoc.test_get_loc5  sn   {{>**a////{{>**a////]87333 	( 	(KK'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(]8;777 	  	 KK	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  ")A,,''ry||)<)<eBIaLL>Q>QR111221112211122
 
 
 ]8=999 	" 	"MM&!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"}}V$$a333333s6   A44A8;A8B<<C C F44F8;F8c                 t   t          g d          }|                    d          }t          dd          }||k    sJ t          g d          }|                    d          }d}||k    sJ t          j        t
          d          5  |                    d           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=   rY   rY   r[   2r8   )r   r   r.   r>   r?   rM   )r   r-   r   r5   rsxps         r    test_get_loc_duplicatesz"TestGetLoc.test_get_loc_duplicatesJ  s   lll##q!!A;;!!!!///00]]3Rxxxx]83/// 	 	MM!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   
B--B14B1c           	      $   t          t          t          j        d                    t          t          j        d                    t          t          j        d                    gt          j        g d          t          j        g d          t          j        g d          g          }|                    d          \  }}t          dd          }||                             d	                              d	          }||k    sJ |                    |          sJ |                    d
          \  }}d}||k    sJ |J t          j
        t          d          5  |                    d           d d d            n# 1 swxY w Y   t          j
        t          d          5  |                    d                              d           d d d            n# 1 swxY w Y   t          j
        t          d          5  |                    dd                              dd           d d d            n# 1 swxY w Y   t          dgt          t          d                    gt          j        g d          t          j        g d          g          }|                    dt          d d           f          \  }}t          d d           }||k    sJ |                    |                    d	                    sJ d S )Nr   rD   rE   rF   rG   r   r   r   r   r   )r   r   r   z
^\(2, 2\)$r8   rS   z^2$)leveli  )r   r   r   r   )r   r   r   r;   )r   r   rJ   rK   rL   get_loc_levelr.   	droplevelr   r>   r?   rM   dropr   r   )r   r-   loc	new_indexr5   	exp_indexr   s          r    test_get_loc_levelzTestGetLoc.test_get_loc_levelX  s   ")A,,''ry||)<)<eBIaLL>Q>QR111221112211122
 
 
 ,,V44YA;;(O--a00::1==	h	*****,,Y77Yh   ]8=999 	( 	('''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( ]86222 	+ 	+JJqMM''***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ ]86222 	= 	=JJqJ""00!0<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= FDqNN+8LLL))28LLL+A+AB
 
 
 "//uT47H7H0IJJ	t$$!!!! 2 23333333s6   'F		FF/)G$$G(+G(
-II
Idtype1dtype2c                    t          j        ddg                              |          t          j        ddg                              |          g}t          j        |          }|                    |d                   dk    sJ d S )Nr   r   r   )rJ   rL   astyper   r   r   )r   r  r  rH   r   s        r    test_get_loc_multiple_dtypesz'TestGetLoc.test_get_loc_multiple_dtypes~  s}     (Aq6""))&1128QF3C3C3J3J63R3RS%f--{{3q6""a''''''r"   r
  r   r   dtypesc                     ddgddgg}ddg}|\  }}t          j        ddg|          ||<    |d          ||<   t          j        |          }|                    t          |                    dk    sJ d S )	Nr=   rY   r[   r\   r   r   r   r;   )rJ   rL   r   r   r   tuple)r   r
  r  rH   key	lev_dtype	key_dtyper   s           r    test_get_loc_implicit_castz%TestGetLoc.test_get_loc_implicit_cast  s     *sCj)Cj%	9!Qy999uYq\\E
%f--{{5::&&!++++++r"   r   c                 ^   t          ddg|          t          j        dd          g}t          j        |          }|t
          u rt          j        t          d          5  |	                    d          d	k    sJ 	 d d d            n# 1 swxY w Y   t          j        t          d
          5  |	                    d          dk    sJ 	 d d d            n# 1 swxY w Y   n6|	                    d          d	k    sJ |	                    d          dk    sJ t          j        t          d          5  |	                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  |	                    d           d d d            d S # 1 swxY w Y   d S )NFTr   r   r   z
^\(0, 1\)$r8   r	  r   z
^\(1, 0\)$rR   z^\(False, True\)$)FTz^\(True, False\)$)TF)
r   rJ   rK   r   r   boolr>   r?   rM   r   )r   r   rH   r   s       r    test_get_loc_cast_boolz!TestGetLoc.test_get_loc_cast_bool  s    U333RYq5P5P5PQ%f--D==x}=== 0 0{{6**a/////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0x}=== 0 0{{6**a/////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;;v&&!++++;;v&&!++++]8+?@@@ 	' 	'KK&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	']8+?@@@ 	' 	'KK&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'sH   "BBB1CC!C7EE E?F""F&)F&c                     ddgddgg}ddg}t          j        d|gt          |                    ||<   |||<   t          j        |          }|                    t          |                    dk    sJ d S )Nr=   rY   r[   r\   r   r   r;   )rJ   rL   typer   r   r   r  )r   r
  nulls_fixturerH   r  r   s         r    test_get_loc_nanzTestGetLoc.test_get_loc_nan  s     *sCj)Cj!]!34;N;NOOOu"E
%f--{{5::&&!++++++r"   c                 j   t          j        ddgddgg          }t          |                    d          t                    sJ t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          d	          5  |                    t          j	                   d d d            n# 1 swxY w Y   t          j        t          d
          5  |                    t          j	        g           d d d            d S # 1 swxY w Y   d S )Nr   r   g      @g      @r   z^3$r8   r;   z^nan$z\[nan\])r   rc   
isinstancer   r.   r>   r?   rM   rJ   rm   r   r   r   s     r    test_get_loc_missing_nanz#TestGetLoc.test_get_loc_missing_nan  s   $sCj3*%=>>#++a..%00000]86222 	 	KKNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]88444 	  	 KK	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 ],J??? 	" 	"KK!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s6    BB	B( CCC:!D((D,/D,c                 \   t          j        t          j        dggdz            }t	          ddd           }|                    t          j                  |k    sJ t          j        t          j        ddt          j        gg          }t          j        g d          }t          j	        |                    t          j                  |           t          j        t          j        dggdz            }t	          ddd           }|                    t          j        df          |k    sJ d S )Nr   r   r   )TFFTr;   r   )
r   r   rJ   rm   r.   r   rc   rL   r*   r   )r   r   r5   s      r    1test_get_loc_with_values_including_missing_valuesz<TestGetLoc.test_get_loc_with_values_including_missing_values  s    %{ma&788At$${{26""h....$rvq!RV&<%=>>866677
#CKK$7$7BBB%{ma&788At$${{BFA;''8333333r"   c                     t          g dg dgg dg dgddg          }|                    d          t          d	d
          k    sJ d S )N)Dr   C)r         %   9   C   K   R   )
r   r   r   r   r   r   r   r   r   r   )
r   r;   r   r)   r   r   r   r;   r   r   tagdayrH   rI   r   r,  r   r;   )r   r   r.   )r   r-   s     r    test_get_loc_duplicates2z#TestGetLoc.test_get_loc_duplicates2  sr    #OO%D%D%DE1113Q3Q3QR%.
 
 
 }}S!!U1a[[000000r"   c                    t          dgddgdggddgddgddggg dd          }d}t          j        t                    5  |                    |          }d d d            n# 1 swxY w Y   |t          ddd           k    sJ d S )Nr=   r   r   r   )xyz)rH   rI   r   	sortorder)r=   r   )r   r*   assert_produces_warningr   r   r.   )r   r   r  r   s       r    test_get_loc_past_lexsort_depthz*TestGetLoc.test_get_loc_past_lexsort_depth  s    EAq6A3'q6Aq6Aq6*!//	
 
 
 '(:;; 	& 	&[[%%F	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& q!T********s   A##A'*A'c                     t          j        ddg          }d}t          j        t          |          5  |                    g            d d d            d S # 1 swxY w Y   d S )Nry   r   z\[\]r8   )r   rz   r>   r?   r   r   rv   s      r    #test_multiindex_get_loc_list_raisesz.TestGetLoc.test_multiindex_get_loc_list_raises  s    $h%9::],C888 	 	KKOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   AAAc                 r   t          j        t          d          t          d          t          d          t          d          g          }d}t          j        t
          t          j        t          |                              5  |	                    |           d d d            d S # 1 swxY w Y   d S )Nr;   r   r   r)   )r   r   r8   )
r   r   r   r>   r?   rM   reescapestrr   )r   r   r  s      r    )test_get_loc_nested_tuple_raises_keyerrorz4TestGetLoc.test_get_loc_nested_tuple_raises_keyerror  s    $eAhha%((E!HH%MNN ]829SXX+>+>??? 	 	JJsOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	B,,B03B0N)rh   ri   rj   r  r  r  r>   rk   rl   intfloatr  rF  r  r  objectr   r$  r(  r*  r8  r?  rA  rG  rn   r"   r    r   r   4  s       4 4 4*  $4 $4 $4L [XUD#'>??[XUD#'>??( ( @? @?( [Wq!f--[Xeucl'CDD, , ED .-, [WtVn55' ' 65'* [Wq!f--, , .-,
" 
" 
"4 4 41 1 1+ + +       r"   r   c                       e Zd Zd Zd ZdS )	TestWherec                     t          j        ddg          }d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   2\.where is not supported for MultiIndex operationsr8   Tr   rz   r>   r?   r   where)r   irN   s      r    
test_wherezTestWhere.test_where  s    "Hh#788C].c::: 	 	GGDMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rB  c                     t          j        ddg          }ddg}d}t          j        t          |          5  |                     ||                     d d d            d S # 1 swxY w Y   d S )NrN  rO  FTrP  r8   rQ  )r   listlike_boxr   condrN   s        r    test_where_array_likezTestWhere.test_where_array_like  s    #Xx$899t}C].c::: 	) 	)HH\\$''(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   A$$A(+A(N)rh   ri   rj   rT  rX  rn   r"   r    rL  rL    s2          ) ) ) ) )r"   rL  c                   \    e Zd Zd Zd Zd Zd Zd Zd Ze	j
        j        d             ZdS )	TestContainsc                 \    t          j        ddgddgg          }d|v sJ d|j        vsJ d S )Nr   r   r   r   )r   r   _engine)r   r   s     r    test_contains_top_levelz$TestContains.test_contains_top_level  sE    &c
QF';<<d{{{{$,&&&&&&r"   c                     t          dgt          dd          gg dg dgd dg          }dt          j        d          f|v sJ |j        D ]}||v sJ 	d S )	Nr-  r   r   )r   )r   r   r   r   r   r   )rU   r   r   r   r;   r   r   r7  )r   r	   r   	Timestampr0   )r   r   vals      r    test_contains_with_natz#TestContains.test_contains_with_nat  s    E:lA>>>?%%%':':':;+
 
 

 R\,//0B66669 	 	C"99999	 	r"   c                 *    d|v sJ d|vsJ d |vsJ d S )Nr   r   rn   r'  s     r    test_containszTestContains.test_contains  s5    $$$$S((((3r"   c                     t          j        dt          j        dgg          }t          j        |v sJ t          j        ddgt          j        dgg          }t          j        |vsJ dt          j        f|v sJ d S )Nr   r   r;   )r   rc   rJ   rm   r'  s     r     test_contains_with_missing_valuez-TestContains.test_contains_with_missing_value  s{    $q"&!n%566v}}}}$q!frvqk%:;;vS    26{c!!!!!!r"   c                 6   t          j        ddgddgg          }d|v sJ |                    d          }d|j        d         v sJ d|vsJ t          j        ddgdd	gg          }d|v sJ |                    d          }d|j        d         v sJ d|vsJ d S )
Nr   r   r;   r   r   r=   rY   r[   r\   )r   r   r  rH   r'  s     r     test_multiindex_contains_droppedz-TestContains.test_multiindex_contains_dropped%  s     %1v1v&677Cxxxxhhqkk CJqM!!!!|||| %SzC:&>??czzzzhhsmmcjm#####~~~~~~r"   c                     t          j        ddd          }t          j        |t	          j        t          |                    g          }|d         |v sJ d|vsJ d|v sJ d S )Nz09:30:00z16:00:00z30 min)r   r   element_not_exitz0 day 09:30:00)r   timedelta_ranger   rc   rJ   rK   r   )r   txr   s      r    test_contains_td64_levelz%TestContains.test_contains_td64_level9  sw    
JXFFF$b")CGG*<*<%=>>!u||||!,,,,3&&&&&&r"   c                 r    t          j        t          d          t          d          g          }d|vsJ d S )N@B )rn  r   )r   rc   r   )r   r   s     r    test_large_mi_containsz#TestContains.test_large_mi_containsA  s<     'uuU||(DEE''''''r"   N)rh   ri   rj   r]  ra  rc  re  rg  rl  r>   rk   slowro  rn   r"   r    rZ  rZ    s        ' ' '
	 	 	  
" " "  (' ' ' [( ( ( ( (r"   rZ  c                     t          j        t          dddd          dgdgg          } t          j        dt          j        t          |                     i|           }|j        t          j	        d	d dd d f         df         }t          j        t          d
ddd          dgdgg          }t          j
        t          j        dt          |          dz             |d          }t          j        ||           d S )Nz2019-01-01T00:15:33d   r   date)r   r   namer:  r;   r   z2019-1-2z2019-01-02T00:15:33z2019-01-05T03:15:33)ra   rb   r   rt     )datar-   rt  )r   r   r	   r   	DataFramerJ   rK   r   r  
IndexSlicer   r*   assert_series_equal)r   r1   r   qidx	should_bes        r    !test_timestamp_multiindex_indexerr|  H  s   

!,c&QQQEC	
 C 
ubiC112C	8	8BVBM*++sAAA"56=>F"+)	   EC		
 D 	rySYY^<<DuUUUI69-----r"   zindex_arr,expected,target,algor=   rY   rZ   r|   r   r[   r}   r^   r\   c                 l    t          j        |           }|                    ||          }||k    sJ d S )N)side)r   rc   get_slice_bound)rd   r5   targetalgor   r   s         r    'test_get_slice_bound_with_missing_valuer  c  sC     
 
+
+C  d 33FXr"   rX   r   r   r;   )r   r   r   r   )r;   r   c                 l    t          j        |           }|                    ||          }||k    sJ d S r`   )r   rc   slice_indexer)rd   r5   re   rf   r   r   s         r    %test_slice_indexer_with_missing_valuer  r  sC     
 
+
+CYG<<FXr"   c            	      Z   d} d dgdz  | z  dgdz  | z  dgdz  | z  t           j        g| z  dgdz  | z  z   dg| z  dgdz  | z  z   t           j        g| z  dgdz  | z  z   dg| z  z   fD             t                    D ]\  }}t          j                  }|                    |          |k    sJ t          j        |dz   t           j        	          }|                    fd
|D                       }t          j
        ||           t          t                              }t          j        dgt          |          z   t           j        	          }t          ddgdz  | z            }|                    |gfd|D             z             }t          j
        ||           d S )Nr   c                 ,    g | ]}t          |          S rn   )r  ).0arrs     r    
<listcomp>z%test_pyint_engine.<locals>.<listcomp>  s.     
 
 
 	c


 
 
r"   r   rV   r   r   r   rT   r   c                      g | ]
}|         S rn   rn   r  rS  keyss     r    r  z%test_pyint_engine.<locals>.<listcomp>  s    #>#>#>DG#>#>#>r"   rU   c                      g | ]
}|         S rn   rn   r  s     r    r  z%test_pyint_engine.<locals>.<listcomp>  s    +C+C+CDG+C+C+Cr"   )rJ   rm   	enumerater   rz   r   rK   r   r   r*   r   r   r   rL   r   r  )	Nr   	key_valuer-   r5   r   idcesmissingr  s	           @r    test_pyint_enginer    s    	
A
 
 C"HqLC"HqLC"HqLVHqLA37Q;&C!GqcAgk!VHqLA37Q;&!q0

 
 
D" $D// 6 6Y&t,,}}Y''3....9S1WBG444""#>#>#>#>X#>#>#>??
#FH5555 #d))ExtE{{*"':::HQFQJN##Gy+C+C+C+CU+C+C+CCDDF11111r"   zkeys,expected)TFTr)   c                     t          j        g dg dg          }|                    |           }t          j        |t          j                  }t          j        ||           d S )N)r   r   r   )r   r   r)   r   )r   rc   get_locsrJ   rL   r   r*   r   )r  r5   r   r   s       r    test_get_locs_reorderingr    sk     
 IIII	
 C \\$Fx000H11111r"   c                    t          j        dgddggddg          }t          j        dg| dggddg          }|                    |          }t          j        ddgt          j        	          }t          j        ||           |                    |          }t          j        ddgt          j        	          }t          j        ||           d S )
Nr   r   r   r   r   r   rU   r   r   )r   r   r   rJ   rL   r   r*   r   )r#  r   r   r   r5   s        r    )test_get_indexer_for_multiindex_with_nansr    s    "SEC:#6uenMMMD"SEM3+?#@PUWWWDd##FxQrw///H111d##FxQrw///H11111r"   )&datetimer   rD  numpyrJ   r>   pandas.errorsr   r   pandasr   r   r   r   r	   pandas._testing_testingr*   r   rp   r   r   r   rk   rl   r   r   r   rL  rZ  r|  rm   r  r.   r  r  r  r  rn   r"   r    <module>r     s         				            
                     r" r" r" r" r" r" r" r"j40 40 40 40 40 40 40 40n|I |I |I |I |I |I |I |I~	$ $ $"4 4 4 4&1*eeTFQJ.?.?!@AA
&&&.O.O.O(P(PQ / /	  BA
/ 4&%%--!8995'55%>>!:;;	/ 	/ <; :9	/       D) ) ) ) ) ) ) ) ?( ?( ?( ?( ?( ?( ?( ?(D. . .6 $63
ooo	.266B63
ooo	.BFC='J
//C-	.C=&I    *61a.)))	$eeAq$&7&7C61a.)))	$eeAq$&7&7H
))a^	$eeAq$&7&7!RVaH
))a^	$eeAq$&7&7!RVfM	   #2 #2 #2L 
%++1v	A'
%++1v	A'


1v	&A/


1v	&A/
aVq!f
aVq!f#1vA#1vA	 
2 
2 
22 2 2 2 2r"   