
    o[we!                         d dl Z d dlZd dlZd dlmZ d dlmZ d dl	Z
d dl	mZmZmZmZ d dlmZ d Zd Zd Zd Zd	 Zej        j        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S )    Nindex)'construct_1d_object_array_from_listlike)IndexIntervalIndex
MultiIndex
RangeIndexc                     t          j        ddg          } | j        d         j        dk    sJ | j        d         j        dk    sJ t          j        dgt          d          g          } | j        d         j        dk    sJ t          j        dgt          d          g          } | j        d         j        d	k    sJ t          j        dgt          d
          g          } | j        d         j        dk    sJ t          j        dgt          d          g          } | j        d         dk                                    sJ | j        d         dk                                    sJ d S )N)A   )r      r   int8r   a(   i  int16i@  int32  )r   from_tuplescodesdtypefrom_productrangeall)is    Ilib/python3.11/site-packages/pandas/tests/indexes/multi/test_integrity.pytest_labels_dtypesr      sW   (344A71:v%%%%71:v%%%%#b		 233A71:v%%%%#c

 344A71:w&&&&#e 566A71:w&&&&#d 455AGAJ!O  """""GAJ!O  """""""    c            	         dt          j        d          fdt           j        fdt          j        d          fdt          j        d          fdt          j        d          fdt          j        d          fg} t          j        |           }t          |           }t          j        |j        |           t          j        |j        d d         |d d         j                   d S )	Nr   z
2000-01-01r      z
2000-01-03z
2000-01-04z
2000-01-02   )	pd	TimestampNaTr   r   r   tmassert_numpy_array_equalvalues)tuplesresultexpecteds      r   test_values_boxedr*   &   s    	
BL&&'	
BF	
BL&&'	
BL&&'	
BL&&'	
BL&&'F #F++F6v>>Hx888bqb 16"1":3DEEEEEr   c                     t          j        dd          } t          j        |           }t          j        | d          }t	          j        ||g          }|j        }t          j        d |D                       }t          j        ||           t          j        d |D                       }t          j        ||           |d d         j        }t          j        d |D                       }t          j        ||d d                    t          j        d	 |D                       }t          j        ||d d                    d S )
Nl     NZol    NZoz
US/Central)tzc                     g | ]
}|d          S r    .0xs     r   
<listcomp>z8test_values_multiindex_datetimeindex.<locals>.<listcomp>@       333qad333r   c                     g | ]
}|d          S r   r/   r0   s     r   r3   z8test_values_multiindex_datetimeindex.<locals>.<listcomp>C   r4   r   r   c                     g | ]
}|d          S r.   r/   r0   s     r   r3   z8test_values_multiindex_datetimeindex.<locals>.<listcomp>I   r4   r   c                     g | ]
}|d          S r6   r/   r0   s     r   r3   z8test_values_multiindex_datetimeindex.<locals>.<listcomp>L   r4   r   )	nparanger!   DatetimeIndexr   from_arraysr&   r$   assert_index_equal)intsnaiveawareidxr(   outerinners          r   $test_values_multiindex_datetimeindexrD   6   sB   9VZ((DT""ETl333E

 %
0
0CZF33F33344E%'''33F33344E%''' !W^F33F33344E%rr+++33F33344E%rr+++++r   c                     t          j        dd          } t          j        | d          }t	          j        | |g          }|j        }t          d |D                       }t          j	        |t          | t           j
                             t          j        d |D                       }t          j	        ||           |d d         j        }t          d	 |D                       }t          j	        |t          | d d         t           j
                             t          j        d
 |D                       }t          j	        ||d d                    d S )Ni  i  D)freqc                     g | ]
}|d          S r.   r/   r0   s     r   r3   z6test_values_multiindex_periodindex.<locals>.<listcomp>X       (((A1Q4(((r   r   c                     g | ]
}|d          S r6   r/   r0   s     r   r3   z6test_values_multiindex_periodindex.<locals>.<listcomp>[       111QAaD111r   r   c                     g | ]
}|d          S r.   r/   r0   s     r   r3   z6test_values_multiindex_periodindex.<locals>.<listcomp>a   rI   r   c                     g | ]
}|d          S r6   r/   r0   s     r   r3   z6test_values_multiindex_periodindex.<locals>.<listcomp>d   rL   r   )r9   r:   r!   PeriodIndexr   r<   r&   r   r$   r=   int64)r>   pidxrA   r(   rB   rC   s         r   "test_values_multiindex_periodindexrR   P   sG   9T4  D>$S)))D

 $
.
.CZF((((())E%t28!<!<!<===N11&11122E%&&& !W^F((((())E%tBQBxrx!@!@!@AAAN11&11122E%bqb*****r   c                     t          t          d                    } t          t          d                    }t          j        d          }t          j        t          d          d          }t          | |g||g          }t          j        g d          }t          j        g d          }t          | |g||g          }|j        du sJ d S )Nip 
   iX  )levelsr   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   F)listr   r9   r:   repeatr   array	is_unique)
major_axis
minor_axismajor_codesminor_codesr   s        r   test_consistencyr^   h   s    eEll##JeBiiJ)E""K)E"IIt,,K J'[/I  E
 (66677K(66677KJ'[/I  E ?e######r   c                     t          j        t          j        d          t          j        d          gddg          } |                     | j                  }t          j        |t          j        t          |           d                     ddt          |           d	z
  t          |           dz
  fD ]%}| 	                    | |                   }||k    sJ &d S )
Nr   onetwonamesintprJ   r   r   r   )
r   r   r9   r:   get_indexerr&   r$   r%   lenget_loc)r   r(   r   s      r   test_hash_collisionsrh      s     #	4")D//*5%.  E u|,,F	#e**F(K(K(KLLLCJJNCJJN3  uQx(({{{{{ r   c                      d S )Nr/   r/   r   r   	test_dimsrj      s    Dr   c                  `   ddgt          j        d          t          j        d          gg} t          j        | ddg          }dd	g}d
}t	          j        t          |          5  |                    |d	           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  |                    ||           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  |                    |d           d d d            d S # 1 swxY w Y   d S )Nr   Bz
2011-01-01z
2011-01-02strdtrb   r   r   z1take\(\) got an unexpected keyword argument 'foo'match)fooz$the 'out' parameter is not supported)outz%the 'mode' parameter is not supportedclip)mode)	r!   r"   r   r   pytestraises	TypeErrortake
ValueError)valsrA   indicesmsgs       r   test_take_invalid_kwargsr}      s   #Jl33R\,5O5OPQD

!$udm
<
<
<C!fG
>C	y	,	,	, ! !a   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 1C	z	-	-	- ' 'g&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 2C	z	-	-	- ' 'v&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's6   &B

BB2CCC>D##D'*D'c                     d}t          j        t          |          5  t          j        |            d d d            d S # 1 swxY w Y   d S )Nz"isna is not defined for MultiIndexro   )ru   rv   NotImplementedErrorr!   isna)rA   r|   s     r   test_isna_behaviorr      s     /C	*#	6	6	6  
                 s   A  AAc            	         t          j        dt          j        ddgt	          d          g          dg          } t          j        t          d          5  | j        d          d d d            n# 1 swxY w Y   t          j        t          d	          5  | j        d
          d d d            n# 1 swxY w Y   t          j        dt          j        ddgt	          d          g          dg          }t          j        t          d          5  |j        d          d d d            n# 1 swxY w Y   t          j        t          d	          5  |j        d
          d d d            d S # 1 swxY w Y   d S )Nr   r   i dest)r   columnsz^\(-1, 0\)$ro   ))r   r   z
^\(3, 0\)$))r   r   r   i! )	r!   	DataFramer   r   r   ru   rv   KeyErrorloc)df_below_1000000df_above_1000000s     r   test_large_multiindex_errorr      si   |	(1a&%--)@AAF8   
x~	6	6	6 . ._--. . . . . . . . . . . . . . .	x}	5	5	5 - -^,,- - - - - - - - - - - - - - -|	(1a&%--)@AAF8   
x~	6	6	6 . ._--. . . . . . . . . . . . . . .	x}	5	5	5 - -^,,- - - - - - - - - - - - - - - - - -sH   A11A58A5B11B58B5D,,D03D0E--E14E1c                 V   |                      t          dd           t          d          }t          j        ||dt          j        ||g                    }d}t          j        t          |          5  |d         
                                 d d d            d S # 1 swxY w Y   d S )N_SIZE_CUTOFF2   )r   br   z&'Series' object has no attribute 'foo'ro   r   )setattrlibindexr   r!   r   r   r<   ru   rv   AttributeErrorrq   )monkeypatchrdfr|   s       r   +test_mi_hashtable_populated_attribute_errorr      s    ."555b		A	AA&&j.DaV.L.L	M	M	MB
2C	~S	1	1	1  
3                 s   6BB"%B"c                 H    | d         }|                      |          du sJ d S )Nr   T)$_can_hold_identifiers_and_holds_name)rA   keys     r   test_can_hold_identifiersr      s0    
a&C33C88D@@@@@@r   c                    | j         | j        }}t          j        d          }t	          j        t          |          5  |d         |d<   d d d            n# 1 swxY w Y   t	          j        t          |          5  |d         d         |d         d<   d d d            n# 1 swxY w Y   t	          j        t          |          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   | j        }t	          j        t          |          5  |d         |d<   d d d            d S # 1 swxY w Y   d S )Nz#does not support mutable operationsro   r   z#assignment destination is read-only)	rU   r   recompileru   rv   rw   ry   rc   )rA   rU   r   mutable_regexrc   s        r   test_metadata_immutabler      s   J	EFJDEEM	y	6	6	6  1Iq	              	y	6	6	6 $ $ay|q	!$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 
y	6	6	6  8a              	z)N	O	O	O " "Ahqka" " " " " " " " " " " " " " " IE	y	6	6	6  8a                 sY   AAA<B  B$'B$CC"%C"D((D,/D,E..E25E2c                      t          j        g dg dg          } | j        sJ |                     ddgg dg          } | j        rJ d S )N)r   r   rl   rl   rl   )r   r   r   r   r   r   rl   )r   r   r   )r   r<   is_monotonic_increasing
set_levels)inds    r   $test_level_setting_resets_attributesr      sd    

 ";";";___!M
N
NC&&&&
..3*iii0
1
1C******r   c            	      v   t          j        t          j        d                              d                    } t          j        t          j        d                              d                    }t          j        |                     d          |                    d          dd          }dd	g|j        _        t          |           t          j        t          j        d          t          j        d          d
t          j        t          d          t          d          gdd	g                    }t          j        ||d           |j                            d          }t!          t          j        dt          j                  d                              d          }t          j        ||           |j                            d	          }t!          t          j        t          j        dt          j                  d          d	          }t          j        ||           d S )Nd   )rT   rT   T)future_stack)df1df2r   )axisfizzbuzz)r   r   rT   rb   r   )
check_likerJ   )name)r!   r   r9   r:   reshapeconcatstackr   rc   rm   r   r   r   r$   assert_frame_equalget_level_valuesr   rP   rW   r=   tile)r   r   r   r)   r(   s        r   %test_rangeindex_fallback_coercion_bugr      s   
,ry~~--h77
8
8C
,ry~~--h77
8
8C			t	,,SYYDY5Q5QRR
 
 
B f%BHNGGG|	#ry~~66%uRyy%))&<VVDTUUU  H "h48888X&&v..FRYr222@@@GGKKH&(+++X&&v..FRWRYr:::B??fMMMH&(+++++r   c                 \   |                                  }t          |           r|                     | d                    |                                  }|                      d          }t          | t          t
          f          s||k    sJ | j        dk    r||k    sJ d S d S |dk    sJ d S )Nr   T)deepobject)memory_usagerf   rg   
isinstancer	   r   inferred_type)rA   r(   result2result3s       r   test_memory_usager     s    F
3xx CF""$$"""-- #
M:;; 	$V####((W$$$$ )($$ {{{{{{r   c                      | j         dk    sJ d S )Nr   )nlevels)rA   s    r   test_nlevelsr     s    ;!r   )%r   numpyr9   ru   pandas._libsr   r   pandas.core.dtypes.castr   pandasr!   r   r   r   r	   pandas._testing_testingr$   r   r*   rD   rR   r^   markslowrh   rj   r}   r   r   r   r   r   r   r   r   r   r/   r   r   <module>r      s   				      * * * * * * K K K K K K                     # # #$F F F , , ,4+ + +0$ $ $.   	 	 	' ' '$  - - -$  A A A
  &+ + +, , ,4  (    r   