
    bMh                         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                            d
dgdggg g gg          d             Zd Zd Zd ZdS )    N)Index
MultiIndexc                    |                      t          | d d                             \  }}t          |t                    sJ |j        ddgk    sJ d |j        D             ddgk    sJ |                      t          |                     \  }}t          |t                    sJ |J |j        ddgk    sJ d |j        D             ddgk    sJ d S )N   firstsecondc                     g | ]	}|j         
S  name.0levels     g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/indexes/multi/test_reindex.py
<listcomp>z test_reindex.<locals>.<listcomp>       2225EJ222    c                     g | ]	}|j         
S r
   r   r   s     r   r   z test_reindex.<locals>.<listcomp>   r   r   )reindexlist
isinstancer   nameslevels)idxresultindexers      r   test_reindexr      s    kk$s2A2w--00OFGfj)))))<GX.....22FM222w6IIIIIkk$s)),,OFGfj)))))???<GX.....22FM222w6IIIIIIIr   c                    t          dg          }|                     |d          \  }}|                    | d          \  }}|                     |dd          }|                     |dd          }|                    |          sJ t	          j        g d          }t          j        ||d	           |                    |          sJ t	          j        g d
          }	t          j        ||	d	           t          j	        t          d          5  |                     | dd           d d d            d S # 1 swxY w Y   d S )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_levelr<      s   5'NNEkk%xk88OFGc::GXhG<<I%xV<<J==#####(999%%K%HHHH>>*%%%%%811122L,EJJJJ	y(C	D	D	D 7 7CX6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   D>>EEc                 |   |                                  } |                                  }d d gx| _        |_        t          j        ddgddgg          }|                     g           d         j        d d gk    sJ |                     t          j        g                     d         j        d d gk    sJ |                     |                                          d         j        d d gk    sJ |                     |j                  d         j        d d gk    sJ |                     |                                          d         j        d d gk    sJ |                     |j                  d         j        d d gk    sJ ddg| _        |                     g           d         j        ddgk    sJ |                     t          j        g                     d         j        ddgk    sJ |                     |                                          d         j        ddgk    sJ |                     |j                  d         j        ddgk    sJ |                     |                                          d         j        ddgk    sJ |                     |j                  d         j        ddgk    sJ d S )N   r$      r   r   foobar)	copyr   r   from_productr   r-   r.   tolistvalues)r   r5   other_dtypes      r   ;test_reindex_preserves_names_when_target_is_list_or_ndarrayrG   .   s   
((**CXXZZF $d|+CI)Aq6Aq6*:;;K ;;r??1#d|3333;;rx||$$Q'-$====;;v}}''*0T4L@@@@;;v}%%a(.4,>>>>;;{))++,,Q/5$EEEE;;{)**1-3d|CCCCCI;;r??1#u~5555;;rx||$$Q'-%????;;v}}''*0UENBBBB;;v}%%a(.5%.@@@@;;{))++,,Q/5%GGGG;;{)**1-3u~EEEEEEr   c                      t          j        ddgddggddg          } |                     g d          d         j        ddgk    sJ |                     g d          d         j        ddgk    sJ d S )	Nr   r>   abr@   rA   )r   r    )r   rC   r   r   )r   s    r   =test_reindex_lvl_preserves_names_when_target_is_list_or_arrayrK   G   s    

!Aq6C:"6uen
M
M
MC;;r;##A&,>>>>;;r;##A&,>>>>>>r   c                    t          j        ddgddgg          }|                    g d          d         j        d         j        j        t          j        k    sJ | st          j        nt          }|                    g d          d         j        d         j        j        |k    sJ t          j        ddg          }t          j        dd	d
          }t          j        ||g          }|                    g d          d         j        d         j        |j        k    sJ |                    g d          d         j        d         j        |j        k    sJ d S )Nr   r>   rI   rJ   r    r@   rA   z
2016-01-01r$   z
US/Pacific)periodstz)r   rC   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_arrayr\   N   sF    
!Aq6C:"6
7
7C;;r;##A&-a06;rxGGGG.
7"**CC;;r;##A&-a06;sBBBB .%
(
(C
-aL
A
A
AC		 #s	,	,B::b:""1%,Q/5BBBB::b:""1%,Q/5BBBBBBr   c                 :   t          j        | j        t           j                  }|                     |           }t          j        ||           t          j        t          d          5  |                     | d           d d d            d S # 1 swxY w Y   d S )NrO   zInvalid fill methodr'   invalid)r*   )
r-   arangesizeintpget_indexerr/   r0   r1   r2   
ValueError)r   expectedactuals      r   test_reindex_baserg   _   s    y111H__S!!F&111	z)>	?	?	? / /I.../ / / / / / / / / / / / / / / / / /s   +BBBc                  D   t          j        g d          } t          j        t	          j        d          |           }t          j        g d          }d}t          j        t          |          5  |	                    |           d d d            d S # 1 swxY w Y   d S )N)r   r   r>   r>   rj   r$   r$   r   r4   )ri   rj   rk   z'cannot handle a non-unique multi-index!r'   )
r   from_tuplesrT   Seriesr-   r`   r1   r2   rd   r   )r   rI   new_idxmsgs       r   test_reindex_non_uniquerq   i   s    

 !A!A!A
B
BC
	")A,,c***A$%=%=%=>>G
3C	z	-	-	-  			'                 s   2BBBrE   rI   xc                 J   t          j        |           }|                    t          j        dg          d          \  }}t          dg| d         gg g g          }t          j        g |j                  }t          j        ||           t          j        ||           d S )NrJ   r   r    r>   )r   codesr^   )	r   from_arraysr   r-   r.   rO   r/   assert_index_equalr0   )rE   r   r   result_indexerre   expected_indexers         r   test_reindex_empty_with_levelry   s   s     
 
(
(C [[3%[BBFN3%!3B8DDDHx.*>???&(+++0@AAAAAr   c                  ,   g d} t          j        | d d                   }t          |           }|                    |          \  }}t	          j        ||           t          j        g dt          j                  }t	          j	        ||           d S )N))ir{   )r{   j)r|   r{   r|   r&   )r   r>   r$   r&   r^   )
r   rm   r   r   r/   rv   r-   r.   rb   r0   )keysr[   r   resr   re   s         r   test_reindex_not_all_tuplesr   ~   s    444D		SbS		*	*B
++C::c??LC#s###xRW555H22222r   c                  &   t          j        g d          } t          j        g d|           }t          j        g d          }t	          j        t          d          5  |                    |dd	           d d d            d S # 1 swxY w Y   d S )
N)r?   Ar   r   r   B)g{Gz?g{Gz?g~jt?rl   )	r   )r?   r   r   r   )r   C)   r   )r   r   )   r   )r   r   zFlimit argument only valid if doing pad, backfill or nearest reindexingr'   r   r>   )
fill_valuelimit)r   rm   rT   rn   r1   r2   rd   r   )r   dfro   s      r   &test_reindex_limit_arg_with_multiindexr      s     
 !?!?!?
@
@C	&&&c	2	2	2B$
	
 
	
 
	
 G 
V
 
 
 3 3 	

7q
222	3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s    BB
B
c                     t          j        ddg          } t          j        ddg          }t          j        ddg|           }t          j        ddg|          }|                    |          }|}t          j        ||           d S )N))rI   Nr>   ))rJ   Nr$   r>   r$   rl   )r   rm   rT   	DataFramereindex_liker/   assert_frame_equal)r4   index2	df1_dtype	df2_dtyper   re   s         r   +test_reindex_with_none_in_nested_multiindexr      s    "$46F#GHHE#%57G$HIIFaV5111IaV6222I##I..FH&(+++++r   )numpyr-   r1   pandasrT   r   r   pandas._testing_testingr/   r   r<   rG   rK   r\   rg   rq   markparametrizery   r   r   r   r
   r   r   <module>r      sM                        
J 
J 
J7 7 7*F F F2? ? ?C C C"/ / /   cUSENRH#=>>B B ?>B3 3 33 3 38	, 	, 	, 	, 	,r   