
    Owg                         d dl Zd dlZd dlZd dlmZmZ d dlmZ	 d Z
d Zd Zd Zd Zd Zd	 Zej"                  j%                  d
dgdggg g gg      d        Zd Zd Zd Zy)    N)Index
MultiIndexc                    | j                  t        | d d             \  }}t        |t              sJ |j                  ddgk(  sJ |j
                  D cg c]  }|j                   c}ddgk(  sJ | j                  t        |             \  }}t        |t              sJ |J |j                  ddgk(  sJ |j
                  D cg c]  }|j                   c}ddgk(  sJ y c c}w c c}w )N   firstsecond)reindexlist
isinstancer   nameslevelsname)idxresultindexerlevels       ^/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/indexes/multi/test_reindex.pytest_reindexr      s    kk$s2Aw-0OFGfj)))<<GX....$*MM25EJJ2w6IIIIkk$s),OFGfj)))??<<GX....$*MM25EJJ2w6IIII 3 3s   C#C(c                 T   t        dg      }| j                  |d      \  }}|j                  | d      \  }}| j                  |dd      }| j                  |dd      }|j                  |      sJ t	        j
                  g d      }t        j                  ||d	       |j                  |      sJ t	        j
                  g d
      }	t        j                  ||	d	       t        j                  t        d      5  | j                  | dd       d d d        y # 1 sw Y   y xY w)Noner   r   right)r   howleft)r      r   F)check_dtype)r   r   r   r   r   zFill method not supportedmatchpad)methodr   )r   r	   joinequalsnparraytmassert_numpy_array_equalpytestraises	TypeError)
r   indextargetr   target2indexer2	exp_index
exp_index2exp_indexerexp_indexer2s
             r   test_reindex_levelr3      s    5'NEkk%xk8OFGc:GXhG<I%xV<J==###((9%K%H>>*%%%8812L,EJ	y(C	D 7CX67 7 7s    DD'c                 0   | j                         } | j                         }d d gx| _        |_        t        j                  ddgddgg      }| j	                  g       d   j                  d d gk(  sJ | j	                  t        j                  g             d   j                  d d gk(  sJ | j	                  |j                               d   j                  d d gk(  sJ | j	                  |j                        d   j                  d d gk(  sJ | j	                  |j                               d   j                  d d gk(  sJ | j	                  |j                        d   j                  d d gk(  sJ ddg| _        | j	                  g       d   j                  ddgk(  sJ | j	                  t        j                  g             d   j                  ddgk(  sJ | j	                  |j                               d   j                  ddgk(  sJ | j	                  |j                        d   j                  ddgk(  sJ | j	                  |j                               d   j                  ddgk(  sJ | j	                  |j                        d   j                  ddgk(  sJ y )N   r      r   r   foobar)	copyr   r   from_productr	   r$   r%   tolistvalues)r   r,   other_dtypes      r   ;test_reindex_preserves_names_when_target_is_list_or_ndarrayr>   .   s\   
((*CXXZF $d|+CI))Aq6Aq6*:;K ;;r?1##d|333;;rxx|$Q'--$===;;v}}'*00T4L@@@;;v}}%a(..4,>>>;;{))+,Q/55$EEE;;{))*1-33d|CCCCI;;r?1##u~555;;rxx|$Q'--%???;;v}}'*00UENBBB;;v}}%a(..5%.@@@;;{))+,Q/55%GGG;;{))*1-33u~EEE    c                      t        j                  ddgddggddg      } | j                  g d      d   j                  ddgk(  sJ | j                  g d      d   j                  ddgk(  sJ y )	Nr   r5   abr7   r8   )r   r   )r   r:   r	   r   )r   s    r   =test_reindex_lvl_preserves_names_when_target_is_list_or_arrayrC   G   sy    

!
!Aq6C:"6uen
MC;;r;#A&,,>>>;;r;#A&,,>>>r?   c                    t        j                  ddgddgg      }|j                  g d      d   j                  d   j                  j
                  t        j                  k(  sJ | st        j                  nt        }|j                  g d      d   j                  d   j                  j
                  |k(  sJ t        j                  ddg      }t        j                  dd	d
      }t        j                  ||g      }|j                  g d      d   j                  d   j                  |j                  k(  sJ |j                  g d      d   j                  d   j                  |j                  k(  sJ y )Nr   r5   rA   rB   r   r7   r8   z
2016-01-01r   z
US/Pacific)periodstz)r   r:   r	   r   dtypetyper$   int64object_strpdCategorical
date_range)using_infer_stringr   expcatdtimis         r   @test_reindex_lvl_preserves_type_if_target_is_empty_list_or_arrayrT   N   sD    
!
!Aq6C:"6
7C;;r;#A&--a066;;rxxGGG."**CC;;r;#A&--a066;;sBBB ..%
(C
--aL
AC		 	 #s	,B::b:"1%,,Q/55BBB::b:"1%,,Q/55BBBr?   c                 6   t        j                  | j                  t         j                        }| j	                  |       }t        j                  ||       t        j                  t        d      5  | j	                  | d       d d d        y # 1 sw Y   y xY w)NrG   zInvalid fill methodr   invalid)r!   )
r$   arangesizeintpget_indexerr&   r'   r(   r)   
ValueError)r   expectedactuals      r   test_reindex_baser_   _   sl    yy1H__S!F&1	z)>	? /I./ / /s   2BBc                  :   t        j                  g d      } t        j                  t	        j
                  d      |       }t        j                  g d      }d}t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   y xY w)N)r   r   r5   r5   rb   r   r   r   r+   )ra   rb   rc   z'cannot handle a non-unique multi-index!r   )
r   from_tuplesrL   Seriesr$   rX   r(   r)   r\   r	   )r   rA   new_idxmsgs       r   test_reindex_non_uniqueri   i   sp    

 
 !A
BC
		"))A,c*A$$%=>G
3C	z	- 			'  s   6BBr<   rA   xc                 F   t        j                  |       }|j                  t        j                  dg      d      \  }}t        dg| d   gg g g      }t        j                  g |j
                        }t        j                  ||       t        j                  ||       y )NrB   r   r   r5   )r   codesrV   )	r   from_arraysr	   r$   r%   rG   r&   assert_index_equalr'   )r<   r   r   result_indexerr]   expected_indexers         r   test_reindex_empty_with_levelrq   s   s     
 
 
(C [[3%[BFN3%!3B8DHxx.*>*>?&(+0@Ar?   c                      g d} t        j                  | d d       }t        |       }|j                  |      \  }}t	        j
                  ||       t        j                  g dt        j                        }t	        j                  ||       y )N))irs   )rs   j)rt   rs   rt   r   )r   r5   r   r   rV   )
r   re   r   r	   r&   rn   r$   r%   rZ   r'   )keysrS   r   resr   r]   s         r   test_reindex_not_all_tuplesrw   ~   sk    4D			Sb		*B
+C::c?LC#s#xxRWW5H2r?   c                     t        j                  g d      } t        j                  g d|       }t        j                  g d      }t	        j
                  t        d      5  |j                  |dd	       d d d        y # 1 sw Y   y xY w)
N)r6   Ar   rz   r   B)g{Gz?g{Gz?g~jt?rd   )	ry   )r6   r}   r{   r|   )r   C)   r}   )r   r~   )   r}   )r   r~   zFlimit argument only valid if doing pad, backfill or nearest reindexingr   r   r5   )
fill_valuelimit)r   re   rL   rf   r(   r)   r\   r	   )r   dfrg   s      r   &test_reindex_limit_arg_with_multiindexr      sx     
 
 !?
@C	&c	2B$$
	
G 
V
 3 	

7q
2	3 3 3s   #BB
c                     t        j                  ddg      } t        j                  ddg      }t        j                  ddg|       }t        j                  ddg|      }|j	                  |      }|}t        j                  ||       y )N))rA   Nr5   ))rB   Nr   r5   r   rd   )r   re   rL   	DataFramereindex_liker&   assert_frame_equal)r+   index2	df1_dtype	df2_dtyper   r]   s         r   +test_reindex_with_none_in_nested_multiindexr      s}    ""$46F#GHE##%57G$HIFaV51IaV62I##I.FH&(+r?   )numpyr$   r(   pandasrL   r   r   pandas._testing_testingr&   r   r3   r>   rC   rT   r_   ri   markparametrizerq   rw   r   r    r?   r   <module>r      s       
J7*F2?C"/ cUSENRH#=>B ?B338	,r?   