
    bMhi                         d dl m Z mZ d dlZd dlZd dlmZ d dlZd dlm	Z	m
Z
mZmZmZ d dlmZ d dlmZ  G d d          ZdS )    datetime	timedeltaN)UnsortedIndexError)	DataFrameIndex
MultiIndexSeries	Timestamp)_mklblc                      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ej                            dd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fd eddd           eddd          fg          d             ZdS )TestMultiIndexSlicersc           	         t          j        t          dd          t          dd          t          dd          t          dd          g          }t          t	          j        t          |                                                    |	          }|j        t          d
d          t          d           ddgfd d f         }|j        d |j
        j        D                      }t          j        ||           |j        d |j
        j        D                      }|j        t          d
d          t          d           t          dd          fd d f         }t          j        ||           t          j        g dddg          }t          j        g dddg          }t          t	          j        dd                              dd          ||          }|                    d                              d          }|j        t          d           t          d           fd d f         }t          j        ||           |j        t          d           t          d           ft          d           t          d           ff         }t          j        ||           |j        d d t          d           t          d           ff         }t          j        ||           |j        t          d           dgfd d f         }|j        ddg         }t          j        ||           |j        t          d           dfd d f         }|j        ddg         }t          j        ||           |j        d d t          d           dgff         }|j        d d ddgf         }t          j        ||           |j        t          d           dft          d           dgff         }|j        ddgddgf         }t          j        ||           |j        d          }t          g d!g d"d#t%          g d$d%          t%          d&dgd%                    }t          j        ||           |j        t          d           ddgfd d f         }|j        g d'         }t          j        ||           t'          t	          j        t          |                                                    |	          }|j        d
dd d ddgf         }|j        d( |j
        j        D                      }t          j        ||           |j        t          d           |j        d d d)f         dk    fd d f         }|j        ddg         }t          j        ||           d*}t+          j        t.          |+          5  |j        t          d           t	          j        d,d-g          fd d f          d d d            n# 1 swxY w Y   t+          j        t2          d.+          5  |j        t          d           dgf          d d d            n# 1 swxY w Y   |j
        j        dk    sJ |                    dd/          }|j
        j        dk    sJ d0}t+          j        t6          |+          5  |j        t          d           t          d&          fd d f          d d d            n# 1 swxY w Y   |j        t          d           |j        d d d)f         dk    fd d f         }t          j        ||j        ddgd d f                    d S )1NA   B   C   D   indexA1A3C1C3c                 4    g | ]\  }}}}|d v |dv ||||fS r   A2r   r   r    .0abcds        k/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/indexing/multiindex/test_slice.py
<listcomp>zITestMultiIndexSlicers.test_per_axis_per_level_getitem.<locals>.<listcomp>"   S     	 	 	 Aq!Q***qL/@/@ 	 0A/@/@    c                 4    g | ]\  }}}}|d v |dv ||||fS )r    )r   C2r   r#   r$   s        r*   r+   zITestMultiIndexSlicers.test_per_axis_per_level_getitem.<locals>.<listcomp>0   sT     	 	 	 Aq!Q***q4F/F/F 	 0G/F/Fr-   )r      )r   r   )r      )r   r1   onetwonames)r&   foor&   bar)r'   r8   )r'   bahlvl0lvl1   int64dtyper   columnsr   axisr1   r2   r8   r   r&   )r1   r   	   )r   r      )r:   r8   )r1   r   r2   namer:   )r   r1   r2   c                 4    g | ]\  }}}}|d v |dv ||||fS r   r#   r$   s        r*   r+   zITestMultiIndexSlicers.test_per_axis_per_level_getitem.<locals>.<listcomp>w   r,   r-   r9   zLcannot index with a boolean indexer that is not the same length as the indexmatchTFz\[1\] not in index)levelrE   z_MultiIndex slicing requires the index to be lexsorted: slicing on levels \[1\], lexsort depth 0)r	   from_productr   r   nparangelento_numpylocslicer   valuestmassert_frame_equalfrom_tuplesreshape
sort_indexilocr   r
   assert_series_equalpytestraises
ValueErrorarrayKeyError_lexsort_depthr   )	selfixdfresultexpectedr   rC   smsgs	            r*   test_per_axis_per_level_getitemz5TestMultiIndexSlicers.test_per_axis_per_level_getitem   s    $C^^VC^^VC^^VC^^L
 
 ryR[[]]!3!344B???tT**E$KK$FIJ6	 	 #%(/	 	 	
 	fh///6	 	 #%(/	 	 	
 tT**E$KKtT9J9JKQQQNO
fh/// &444UEN
 
 
 (DDD6"
 
 

 Ib(((00A66eW
 
 
 ]]]""--1-55 teDkk2AAA56
fb)))teDkk2U4[[%++4NNO
fb)))E$KKt556
fb))) tqc*AAA-.7Aq6?
fh///ta(!!!+,7Aq6?
fh/// E$KK%1127111q!f9%
fh/// ta(5;;*@@A7Aq6Aq6>*
fh///!IIiii00			...5%.v666
 
 

 	fh///tq!f-qqq017999%
fh/// 29S//00;;;tDy!!!dD\125	 	 #$'.	 	 	
 	vx000 tbfQQQ_&=&ABAAAEF7Aq6?
fh///7 	 ]:S111 	> 	>FE$KK4-!8!89111<==	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> ]8+@AAA 	% 	% F5;;#$$		% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% x&!++++]]]++x&!++++C 	 ]-S999 	3 	3FE$KKu.122	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 tbfQQQ_&=&ABAAAEF
fbgq!faaai&899999s6   25W33W7:W7YY
Y&.[  [$'[$c                 d   t          g dg dg dg dd                              g d                                          }|j        j        rJ t          ddgddgd	d	gd	d
gd                              g d                                          }|j        t          d           t          d           d	fd d f         }t          j        ||           |	                    d	dd          }t          j        ||           t          g dg dg dg dd                              g d                                          }|j        j        rJ t          ddgddgd	d	gd	d
gd                              g d                                          }|j        t          d           t          d           d	fd d f         }|j        j        rJ t          j        ||           g d}t          |          }t          j        dg|z  |g          }t          d	g|z  |          }|                                }|j        t          d           t          d          f         }t          d	g|dz
  z  |d d                                                   }t          j        ||           d S )N)r8   r8   r8   r8   )r&   r&   r&   r&   )r1   r   r1   r2   )r1   r   r2   r   )r   r   r   r   )r   r   r   r8   r&   r1   r2   r   F)rN   
drop_level)r1   r   r1   r   )r1   r   r2   r   r      r   rH   rG   
         rq         rs   r>            @ rw   r   i )r   	set_indexr[   r   	is_uniquerT   rU   rW   rX   xsrR   r	   from_arraysr
   r]   )rd   rf   rh   rg   intsnidxs          r*   "test_multiindex_slicers_non_uniquez8TestMultiIndexSlicers.test_multiindex_slicers_non_unique   s    555---%%	   Y''Z\\ 	 8%%%%UEN#s1a&PQSTvVVWWY''Z\\ 	
 teDkk15qqq89
fh/// qe44
fh/// 555---%%	   Y''Z\\ 	 8%%%%UEN#s1a&PQSTvVVWWY''Z\\ 	
 teDkk15qqq89<))))
fh///
 
 
0 II$seai%677as+++""$$U4[[%--891#Q-s3B3x888CCEE
vx00000r-   c                    d t          d          D             }ddg}t          j        ||gddg          }t          t	          j        dd	
                              dd          |t          d                    }t          j	        }|j
        g dddgf         }|j        t          t          d          t          d                    t          dd          ft          dd          f         }t          j        ||           |j        |t          d          t          d                   |dd         ft          dd          f         }t          j        ||           |j        t          t          d          t          d                    dft          dd          f         }t          j        ||           |j        t          dd          t          dd          ft          dd          f         }t          j        ||           |j        |dd         df|d         f         }t          j        ||           d S )Nc           
      X    g | ]'}t          d ddddd          t          |          z   (S )i  r1   rq   )daysr   )r%   is     r*   r+   zNTestMultiIndexSlicers.test_multiindex_slicers_datetimelike.<locals>.<listcomp>   s:    XXX!$1b"b11I14E4E4EEXXXr-   rn   r1   r   date	frequencyr5   0   r?   r@   r   ABCDrB   )r   r   r   r   z2012-01-01 12:12:12z2012-01-03 12:12:12r   r   )r   r   )ranger	   rO   r   rP   rQ   rZ   listpd
IndexSlicer\   rT   rU   r   rW   rX   )rd   datesfreqr   rf   r   rh   rg   s           r*   $test_multiindex_slicers_datetimelikez:TestMultiIndexSlicers.test_multiindex_slicers_datetimelike   sn    YXuUVxxXXX1v'fk=RSSSIiw///77A>>LL
 
 
 m7999q!f,-344i@U6V6V  a	 #sOO
 	fh///344yAV7W7WW AaC	 #sOO
 	fh///344i@U6V6V  	 #sOO
 	fh/// (*?@@%1++N#sOO
 	fh///&'<<=qA3x=P
 	fh/////r-   c                    t          dgdz  dgdz  z   dgdz  z   g ddz  g dg dd	          }t          j        |d
                   |d
<   |                    g d          }|                                }|j        t          d          d d f         }|j        dd         }t          j	        ||           |j        t          d          d d f         }|}t          j	        ||           |j        t          d           t          dd          fd d f         }|j        g d         }t          j	        ||           |j        t          d           t          d           t          dd          fd d f         }|j        g d         }t          j	        ||           |j        t          d          t          d          fd d f         }|j        g d         }t          j	        ||           |j        t          d           t          d          fd d f         }|}t          j	        ||           |j        t          d           t          dd          t          d          fd d f         }|j        g d         }t          j	        ||           |j        t          d           t          d           t          dd          fd d f         }|j        g d         }t          j	        ||           d S )NA0r   r   r!   )B0r   B1r   B2r2   )
2013-06-11
2013-07-02
2013-07-09
2013-07-30
2013-08-06r   r   r   r   r   
2013-09-03z
2013-10-01r   r   r   )   #   rs   rG   r   (   ru   r   r   r   r1   r   r2   r   r   )r   r   DATEVALUESr   )r   r   r   r   ro   r   r   )	r   r2   r   r   rH   rG   rq   rr   rs   2013070220130709)r1   r   rn   r   rq   r   )r   r1   r   rn   ro   rp   r   )r   r2   r   r   rH   rG   rq   rr   20130701)
r   r   to_datetimery   r[   rT   rU   r\   rW   rX   )rd   rf   df1rg   rh   s        r*   test_multiindex_slicers_edgesz3TestMultiIndexSlicers.test_multiindex_slicers_edges7  s    VaZ4&1*,vz9333a7  " MLL) 
 
2 ^BvJ//6
ll---..nn %++)*8AbD>
fh/// %++)*
fh/// %++uT4'8'89111<=8:::;
fh/// %++uT{{E*j4Q4QRTUTUTUUV8,,,-
fh/// %++uT{{3QQQ6780001
fh/// %++uT{{3QQQ67
fh/// %++uT4'8'8%:M:MNPQPQPQQR86667
fh/// %++uT{{E*j4Q4QRTUTUTUUV8,,,-
fh/////r-   c           	         t           j        }t          j        t	          dd          t	          dd          t	          dd          t	          dd          g          }t          j        g ddd	g
          }t          t          j        t          |          t          |          z  d          
                    t          |          t          |          f          ||          }|j        t          dd          t          d           ddgfd d f         }|j        d |j        j        D                      }t          j        ||           |j        |ddd d ddgf         d d f         }t          j        ||           |j        t          d           t          d           ddgfd d f         }|j        d |j        j        D                      }t          j        ||           |j        |d d d d ddgf         d d f         }t          j        ||           d}t#          j        t&          |          5  |j        ddt          d          ff          d d d            n# 1 swxY w Y   t          j        |j        dt          d           dff         |j        d         j        d d ddgf                    |                    d          }|j        dt          d           dff          |j        t          d           t          d           ddgft          d           dff          d|                    d          d d d d ddgf<   d S )Nr   r   r   r   r   r   r7   r<   r=   r5   r?   r@   rB   r   r   r   r   c                 4    g | ]\  }}}}|d v |dv ||||fS r   r#   r$   s        r*   r+   zNTestMultiIndexSlicers.test_per_axis_per_level_doc_examples.<locals>.<listcomp>  r,   r-   c                 ,    g | ]\  }}}}|d v ||||fS r"   r#   r$   s        r*   r+   zNTestMultiIndexSlicers.test_per_axis_per_level_doc_examples.<locals>.<listcomp>  G     	 	 	 Aq!Q$$ 	 %$$r-   z_MultiIndex slicing requires the index to be lexsorted: slicing on levels \[1\], lexsort depth 1rL   r&   r8   r   r1   rD   i)r   r   r	   rO   r   rY   r   rP   rQ   rR   rZ   rT   rU   r   rV   rW   rX   r^   r_   r   r\   r[   )rd   r   r   rC   rf   rg   rh   rj   s           r*   $test_per_axis_per_level_doc_examplesz:TestMultiIndexSlicers.test_per_axis_per_level_doc_examples  s   m 'C^^VC^^VC^^VC^^L
 
 (DDD6"
 
 
 Ic%jj3w<</w???GGUS\\*  
 
 
 tT**E$KK$FIJ6	 	 #%(/	 	 	
 	fh///DIqqq4,67:;
fh///teDkkD$<@!!!CD6	 	 #%(/	 	 	
 	fh///AAAqqq4,./23
fh///8 	 ]-S999 	. 	.F4#uU||,,--	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	F4%++u--.t0A!!!aV)0L	
 	
 	
 ]]]"" 	teDkk5))**
dU4[[4,7%++u9MMNN .1Aqqq!!!dD\)***s   =I((I,/I,c           	         t          j        t          dd          t          dd          t          dd          t          dd          g          }t          j        g ddd	g
          }t	          t          j        t          |          t          |          z  d                              t          |          t          |          f          ||          	                                	                    d          }|
                    d          ddd d ddgf         }|j
        d |j        j        D                      }t          j        ||           |
                    d          d d d d ddgf         }|j
        d |j        j        D                      }t          j        ||           |
                    d          d d df         }|j
        d d t          d           dff         }t          j        ||           |
                    d          d d df         }|j
        d d t          d           dff         }t          j        ||           dD ]`}d| d}t!          j        t$          |          5  |
                    |          d d d d ddgf          d d d            n# 1 swxY w Y   ad S )Nr   r   r   r   r   r   r7   r<   r=   r5   r?   r@   rB   r1   rD   r   r   r   r   r   c                 4    g | ]\  }}}}|d v |dv ||||fS r   r#   r$   s        r*   r+   zATestMultiIndexSlicers.test_loc_axis_arguments.<locals>.<listcomp>  r,   r-   r   c                 ,    g | ]\  }}}}|d v ||||fS r   r#   r$   s        r*   r+   zATestMultiIndexSlicers.test_loc_axis_arguments.<locals>.<listcomp>  r   r-   r8   rC   )r   r   r8   zNo axis named z for object type DataFramerL   )r	   rO   r   rY   r   rP   rQ   rR   rZ   r[   rT   r   rV   rW   rX   rU   r^   r_   r`   )rd   r   rC   rf   rg   rh   r   rj   s           r*   test_loc_axis_argumentsz-TestMultiIndexSlicers.test_loc_axis_arguments  s.   'C^^VC^^VC^^VC^^L
 
 (DDD6"
 
 

 	#e**s7||37CCCKKZZW.     Z\\ZQZ 	 QT	111tTl :;6	 	 #%(/	 	 	
 	fh///W%%aaaT4L&896	 	 #%(/	 	 	
 	fh/// Q5)6!!!eDkk5112
fh///Y''516!!!eDkk5112
fh///   	3 	3A@1@@@Cz555 3 3Aqqq!!!dD\1223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	3 	3s   &J::J>	J>	c                 0   t          t          j        d                              dd          t	          j        g dg dg                    }|                    d          d	d
         }|j        d d d df         }t          j	        ||           d S )N   r2   rG   a1a2a3b1b2b3rC   r1   rD   r   r   )
r   rP   rQ   rZ   r	   rO   rT   r\   rW   rX   rd   rf   rg   rh   s       r*   ?test_loc_axis_single_level_multi_col_indexing_multiindex_col_dfzUTestMultiIndexSlicers.test_loc_axis_single_level_multi_col_indexing_multiindex_col_df  s    IbMM!!!Q''+-?-?-?ASASAS,TUU
 
 
 QT	*7111crc6?
fh/////r-   c                 >   t          t          j        d                              dd          t	          j        g dg dg                    }|                    d          d	         }|j        d d d df         }g d|_        t          j
        ||           d S )
Nr   r2   rG   r   r   r   r1   rD   r   )r   rP   rQ   rZ   r	   rO   rT   r\   rC   rW   rX   r   s       r*   @test_loc_axis_single_level_single_col_indexing_multiindex_col_dfzVTestMultiIndexSlicers.test_loc_axis_single_level_single_col_indexing_multiindex_col_df  s    IbMM!!!Q''+-?-?-?ASASAS,TUU
 
 
 Q%7111bqb5>---
fh/////r-   c                 $   t          t          j        d                              dd          g d          }|                    d          d         }t          t          j        g d          d	          }t          j        ||           d S )
NrG   r2   )r&   r'   r(   r   r1   rD   r&   )r   r2   rn   rI   )	r   rP   rQ   rZ   rT   r
   ra   rW   r]   r   s       r*   *test_loc_ax_single_level_indexer_simple_dfz@TestMultiIndexSlicers.test_loc_ax_single_level_indexer_simple_df%  s     ry||++Aq11???KKKQ$"(999--C888
vx00000r-   c                    t           j        }t          j        g dddg          }t          j        g dddg          }t	          t          j        dd	
                              dd          ||          }|                    d                              d          }|	                                }d|j
        t          d           t          d           fd d f<   |	                                }d|j        d d d d f<   t          j        ||           |	                                }d|
                    d          d d d d f<   |	                                }d|j        d d d d f<   t          j        ||           |	                                }d|j
        t          d           t          d           ft          d           t          d           ff<   |	                                }d|j        d d d d f<   t          j        ||           |	                                }d|j
        d d t          d           t          d           ff<   |	                                }d|j        d d d d f<   t          j        ||           |	                                }d|j
        t          d           dgfd d f<   |	                                }d|j        ddg<   t          j        ||           |	                                }d|j
        t          d           dfd d f<   |	                                }d|j        ddg<   t          j        ||           |	                                }d|
                    d          d d df<   |	                                }d|j        ddg<   t          j        ||           |	                                }d|j
        d d t          d           dgff<   |	                                }d|j        d d ddgf<   t          j        ||           |	                                }d|j
        t          d           dft          d           dgff<   |	                                }d|j        ddgddgf<   t          j        ||           |	                                }d|j
        |d d df         |d d dgf         f<   |	                                }d|j        ddgddgf<   t          j        ||           |	                                }d|j
        d<   |	                                }d|j        ddddf<   t          j        ||           |	                                }t          j        ddgddggd	
          |j
        t          d           dft          d           dgff<   |	                                }d|j        ddgddgf<   t          j        ||           |	                                }d}t!          j        t$          |          5  t          j        dgddggd	
          |j
        t          d           dft          d           dgff<   d d d            n# 1 swxY w Y   d}t!          j        t$          |          5  t          j        g dd	
          |j
        t          d           dft          d           dgff<   d d d            n# 1 swxY w Y   |	                                }|j
        t          d           dft          d           dgff         dz  |j
        t          d           dft          d           dgff<   |	                                }|j        ddgddgf         dz  |j        ddgddgf<   t          j        ||           |	                                }|j
        t          d           dft          d           dgffxx         |j
        t          d           dft          d           dgff         z  cc<   |	                                }|j        ddgddgfxx         |j        ddgddgf         z  cc<   t          j        ||           |j
        t          d           dft          d           dgff         	                                }d|j
        d d df<   |	                                }|j
        t          d           dft          d           dgffxx         |z  cc<   |	                                }|j        ddgddgfxx         |j        ddgddgf         z  cc<   t          j        ||           d S )Nr0   r3   r4   r5   r7   r<   r=   r>   r?   r@   r   rB   r   rD   r1   d   r2   r8   rF   r   z)setting an array element with a sequence.rL   z@Must have equal len keys and value when setting with an iterable)r   r   r   r   r   ro   )r(   r;   )r   r   r	   rY   r   rP   rQ   rZ   r[   copyrT   rU   r\   rW   rX   ra   r^   r_   r`   )	rd   r   r   rC   df_origrf   rh   rj   rhss	            r*   test_per_axis_per_level_setitemz5TestMultiIndexSlicers.test_per_axis_per_level_setitem-  s	   m &444UEN
 
 
 (DDD6"
 
 

 Ib(((00A66eW
 
 
 $$!$,,77Q7?? \\^^03dU4[[)111,-<<>>!aaad
b(+++\\^^"Aqqq!!!t<<>>!aaad
b(+++\\^^ILdU4[[)E$KKt+EEF<<>>!aaad
b(+++\\^^03qqq5;;d,,-<<>>!aaad
b(+++ \\^^(+daS!111$%<<>> #q!f
b(+++\\^^&)dQ"#<<>> #q!f
b(+++\\^^"Aqqq!t<<>> #q!f
b(+++ \\^^,/qqq5;;(()<<>>#&aaa!Qi 
b(+++ \\^^;>dQ%++w!778<<>>(+q!fq!fn%
b(+++\\^^-0s111a4y#aaa%j/)*<<>>(+q!fq!fn%
b(+++\\^^x<<>>"%ac1Q3h
b(+++ \\^^;=83Z#s$G<
 <
 <
dQ%++w!778 <<>>(+q!fq!fn%
b(+++ \\^^9]:S111 	 	?Axc
#7@ @ @BFE$KK#eDkkE7%;;<	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 Q]:S111 	 	?Ax$$$G@ @ @BFE$KK#eDkkE7%;;<	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 \\^^FE$KK#eDkkE7%;;<q@ 	dQ%++w!778 <<>>(0q!fq!fn(E(Iq!fq!fn%
b(+++\\^^
dQ%++w!77888BF4[[!uT{{UG44=
 	
888 <<>>q!fq!fn%%%1v1v~)FF%%%
b(+++k5;;*U4[[5',BBCHHJJ#%< \\^^
dQ%++w!77888C?888<<>>q!fq!fn%%%1v1v~)FF%%%
b(+++++s&   .AY??ZZ'A[55[9<[9c           	         t          t          j        d          t          j        t          d          t          j        d          g                    }t          j        }t          j	        ||d d d         |d d d                    t          j	        ||dd d         |dd d                    t          j	        ||dd d         |dd d                    t          j	        ||d dd         |d dd                    t          j	        ||d dd         |d dd                    t          j	        ||dd	d         |dd
d                    t          j	        ||dd	d         |dd
d                    t          j	        ||ddd         |dd
d                    t          j	        ||ddd         |dd
d                    t          j	        ||d	dd         |d d                    t          j	        ||dd d         |dd d                    t          j	        ||d dd         |d dd                    t          j	        ||ddd         |ddd                    d S )N   abcder   r   r)      )r)   rp   r'   r2   )r'   r   )r(   r   ro   rG   )er   r>   )
r
   rP   rQ   r	   rO   r   r   r   rW   !assert_indexing_slices_equivalent)rd   serSLCs      r*   0test_multiindex_label_slicing_with_negative_stepzFTestMultiIndexSlicers.test_multiindex_label_slicing_with_negative_step  ss   IbMM:2DMM29Q<<3PQQ
 
 m
,S#ddd)S2YGGG
,S#cg2g,BFFLLL
,S#fjbj/3rv2v;OOO
,S#gs2g,FRFLLL
,S#jvbj/3v2v;OOO
,S#c#bj/3r!Bw<PPP
,S#fSm2Dc"Qr'lSSS
,S#c&m2Dc"Qr'lSSS
,S#fVB6F2GRPQRTWVVV
,S#c#bj/3rr7KKK
,S#hll2CSR[QQQ
,S#lxl2CS!BZPPP
,Xhr)*C1RL	
 	
 	
 	
 	
r-   c                 t   g d}t          j        |t          d          g          }t          t	          t          d                    |dg          }|j        t          j        d d ddf         d d f         }|j        d         }t          t	          t          dd	                    dgt          dd	          
          }t          j	        ||           |j        d         }t          t	          t          dd                    dgt          dd	          
          }t          j	        ||           d S )N)r&   r'   r(   r)   i  i  TestrB      F   r&   G   )rC   r   r)   i  i#  )
r	   rO   r   r   r   rT   r   r   rW   rX   )rd   r   r   rf   df_slicerg   rh   s          r*   !test_multiindex_slice_first_levelz7TestMultiIndexSlicers.test_multiindex_slice_first_level  s!   ###%tU3ZZ&899tE$KK((fXFFF6"-2b5111145c"T%B--006(%PRTV--XXX
fh///c"tT""##fXU2r]]
 
 
 	fh/////r-   c                    |}|d         }|dd          }|                     |j        dd                    }t          j        ||           |d                                         }|d                                         }d|dd <   d|j        dd <   t          j        |j        |j                   |dd          }|                     |j        dd                    }t          j        ||           d S )Nr   r   r   )	reindexr   rW   r]   r   r\   assert_numpy_array_equalrV   rX   )rd   /multiindex_year_month_day_dataframe_random_dataymdri   rg   rh   exps          r*   test_int_series_slicingz-TestMultiIndexSlicers.test_int_series_slicing  s    =H12299QWQRR[))
vx000HMMOO#hmmoo!""
#AHcj999QRR;;qwqrr{++
fh/////r-   zdtype, loc, ilocintNr   r2   r1   r   rx   strr)   r'   c                    t          d          t          d          d|         }t          j        |gdz            }t	          d|dg          }t
          j        }|j        |d d f         }|j        ||         d d f         }	|j        ||d d f         d d f         }
|j        |d d |f         d d f         }t          j
        |	|           t          j
        |
|           t          j
        ||           d S )Nr   r   )r   r   r   g      ?r   rB   )r   r   r	   r|   r   r   r   r\   rT   rW   rX   )rd   rA   rT   r\   labelsmirf   r   rh   result_get_locresult_get_locs_level_0result_get_locs_level_1s               r*    test_loc_slice_negative_stepsizez6TestMultiIndexSlicers.test_loc_slice_negative_stepsize  s   8 ==88
 
 
 #VHqL11s"se444m747#C!!!,"$&S!!!Vaaa"8"$&QQQVaaa"8
nh777
5x@@@
5x@@@@@r-   )__name__
__module____qualname__rk   r   r   r   r   r   r   r   r   r   r   r   r   r^   markparametrizerU   r   r#   r-   r*   r   r      s       L: L: L:\R1 R1 R1h;0 ;0 ;0zH0 H0 H0TI1 I1 I1V@3 @3 @3D	0 	0 	0
0 
0 
01 1 1G, G, G,R
 
 
40 0 00 0 0" [ EE$b))55tR+@+@AEE!T2&&ar(:(:;EE$2&&dAr(:(:;EE!QOOUU1a__5EE$b))55tR+@+@AEE!T2&&ar(:(:;EE$2&&dAr(:(:;EE!QOOUU1a__5EE$b))55tR+@+@AEE#tR((%%4*<*<=EE$R((%%a*<*<=EE#sB''q!R9EE$b))55tR+@+@AEE#tR((%%4*<*<=EE$R((%%a*<*<=EE#sB''q!R9)	
 2A A3 2A A Ar-   r   )r   r   numpyrP   r^   pandas.errorsr   pandasr   r   r   r	   r
   r   pandas._testing_testingrW   pandas.tests.indexing.commonr   r   r#   r-   r*   <module>r      s         
      , , , , , ,                        / / / / / /EA EA EA EA EA EA EA EA EA EAr-   