
    I j1j                        S SK JrJ r   S SKrS SKrS SKrS SKJr  S SKr	S SKJ
r
JrJrJrJr  S SKJr  S rS rS rS rS	 rS
 rS rS rS r\R6                  R9                  S\	R:                  " SSSS9\	R:                  " SSSS94\" SSSSS9\" SSSSS94\	R<                  " SSSS9\	R<                  " SSSS94/5      S 5       rS r S r!S r"\R6                  R9                  SS S /S S!/S /S!/S S!//S"S"/S"S#/S"/S#/S$S%S /S!4S S!/4S&S'S"/S#4S$S!/S S(/S&S#/S)S*S+/5      S, 5       r#\R6                  R9                  S-/ S.QS"S#/4/ S"S#/4/ S.Q/ 4/5      S/ 5       r$S0 r%S1 r&S2 r'S3 r(S4 r)S5 r*S6 r+\R6                  R9                  S7S8S9\RX                  4S:44S;S:S9\RX                  444/5      S< 5       r-S= r.S> r/\R6                  R9                  S?/ / 4/ S@Q/ 4/ / SAQ4/5      SB 5       r0\R6                  R9                  SC\1" \2" SD5      5      5      SE 5       r3\R6                  R9                  SFS S /S S!/S /S!/S"S"/S"S#/S"/S#//5      SG 5       r4SH r5SI r6\R6                  R9                  SJSKSL/5      \R6                  R9                  SMSN SO SP /5      SQ 5       5       r7SR r8SS r9\R6                  R9                  ST\" / S.QSUSV9\" S"S#/SWSV9SUSW/4\" / S.QSUSV9S"S#/SUS/4/ S.QS"S#/S4/5      SX 5       r:SY r;SZ r<S[ r=S\ r>S] r?\R6                  R9                  S^\" / S_Q5      / S_QS S!/SSD/S`Sa//\
" / S_Q5      \R                  " S S!/SSD/S`Sa//5      Sb/5      Sc 5       rASd rB\R6                  R9                  SeSSfSg/4ShSi/ShSi/4/5      Sj 5       rC\R6                  R9                  SkSl/ SAQSm4/5      Sn 5       rDSo rESp rFSq rGSr rHSs rISt rJg)u    )datedatetimeN)'construct_1d_object_array_from_listlike)Index
MultiIndexSeries	Timestamp
date_rangec                      [        / SQ// SQ/S/S9n [        U [         5      (       d   e[        / SQSS9n[        R                  " U R
                  S   U5        U R                  S/:X  d   eg )N)foobarbazquxr            firstlevelscodesnamesnamer   )r   
isinstancer   tmassert_index_equalr   r   resultexpecteds     }/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/indexes/multi/test_constructors.pytest_constructor_single_levelr"      si    ,-l^G9F fj))))1@H&--*H5<<G9$$$    c                  v   Sn [         R                  " [        U S9   [        / / S9  S S S 5        Sn [         R                  " [        U S9   [        / S9  S S S 5        [         R                  " [        U S9   [        / S9  S S S 5        g ! , (       d  f       Ng= f! , (       d  f       NK= f! , (       d  f       g = f)Nznon-zero number of levels/codesmatchr   r   zMust pass both levels and codesr   )r   )pytestraises
ValueErrorr   	TypeErrormsgs    r!   test_constructor_no_levelsr/   !   s}    
+C	z	-"B' 
. ,C	y	," 
-	y	, 
-	, 
.	- 
-	,	,	,s#   B

B5
B*
B
B'*
B8c                     SS/SS//n / SQ/ SQ/nS/S/4nS	n[         R                  " [        US
9   [        XUS9  S S S 5        [        SS/SS/// SQ/ SQ/SS9nS/S//n[         R                  " [        US
9   UR	                  US9  S S S 5        [         R                  " [        US
9   UR                  US9  S S S 5        g ! , (       d  f       N= f! , (       d  f       NQ= f! , (       d  f       g = f)Nr   r   onetwo)r   r   r   r   )r   r   r   r   r   r   z(MultiIndex\.name must be a hashable typer%   r   )r   r   fooobarrr   )r)   r*   r,   r   rename	set_names)r   r   r   r.   mirenameds         r!   "test_constructor_nonhashable_namesr:   -   s    !fuen%F<(EWugE
5C	y	,&U; 
- 
A'\*
B
 x&"G	y	,
			  
- 
y	,
7# 
-	, 
-	, 
-	, 
-	,s#   C;C,C'
C
C$'
C5c                 n   [         R                  " S/5      [         R                  " S/5      [         R                  " S/5      /nS/nSn[        R                  " [        US9   [        X!S9  S S S 5        SnS	nS
n[        R                  " [        US9   [        S/S/// SQ/ SQ/S9  S S S 5        [        R                  " [        US9   [        S/S/// SQSS//S9  S S S 5        [        R                  " [        US9   U R                  5       R                  S/S//5        S S S 5        [        R                  " [        US9   U R                  5       R                  / SQSS//5        S S S 5        U R                  5       R                  / SQSS//SS9  [        R                  " [        US9   [        S/S//SS/SS//S9  S S S 5        g ! , (       d  f       GNh= f! , (       d  f       GN>= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r   az+Length of levels and codes must be the samer%   r'   zbOn level 0, code max \(3\) >= length of level \(1\)\. NOTE: this index is in an inconsistent statezUnequal code lengths: \[4, 2\]z"On level 0, code value \(-2\) < -1br   )r   r      r   )r   r   r   r   r   F)r   verify_integrity)	nparrayr)   r*   r+   r   copy
set_levels	set_codes)idxr   r   r.   length_errorlabel_errorcode_value_errors          r!   (test_constructor_mismatched_codes_levelsrJ   E   s   XXqc]BHHaSM288QC=9EUF
7C	z	-&. 
.	7  4K< 
z	6C53%.|0LM 
7 
z	5C53%.1v0FG 
6 
z	6
usen- 
7 
z	5
lQF34 
6
 HHJq!f5N 
z)9	:C53%.!R1a&0AB 
;	:; 
.	- 
7	6 
6	5 
7	6 
6	5 
;	:sH   #
GG 
G2 $H&H0H&
G 
G/2
H
H
H#&
H4c                  0   [        [        R                  S [        R                  SS/// SQ/S9n [        [        R                  S [        R                  SS/// SQ/S9n[
        R                  " X5        [        [        R                  S[        R                  SS /// SQ/S9n [        [        R                  S[        R                  SS /// SQ/S9n[
        R                  " X5        [        / SQ// SQ/S9R                  [        R                  S[        R                  SS //5      n [
        R                  " X5        [        [        R                  S[        R                  SS /// S	Q/S9R                  / SQ/5      n [
        R                  " X5        g )
N   r   )r   r   r   r   r>   r'   )rM   rM   rM   rM   r   r>   s)rM   rM   r   rM   r   rM   )r   r   r   r>      )r   r   r   r   r   r   )	r   rA   nanpdNaTr   r   rD   rE   r   s     r!   test_na_levelsrS   k   sa    rvvsA./8K7LF rvvsA./8N7OH &+bffc401:M9NF bffc401:P9QH &+  )<(=j2663T234  &+bffc401:L9Mi$%&  &+r#   c                  6   [         R                  " / SQ5      n [         R                  " / SQ5      nUS   n[        X /X/SS9nUR                  S   S   U:X  d   eSUS'   UR                  S   S   U:X  d   eU S   nSU S'   UR                  S   S   U:X  d   eg )Nr<   r=   c)r   r   r   r   r   r   r   r   T)r   r   rC      PANDA)rA   rB   r   r   r   )r   r   valr8   s       r!   test_copy_in_constructorrZ      s    XXo&FHH*+E
(C	F+E>	MB88A;q>S   E!H88A;q>S   
)CF1I99Q<?c!!!r#   c                 Z   [        U R                  U R                  SS9 VVs/ s H*  u  p[        R                  " U5      R                  U5      PM,     nnn[        R                  " X0R                  S9n[        R                  " X@5        [        R                  " [        R                  [        S5      /SS//5      nUR                  S   R                  [        [        S5      /5      5      (       d   eUR                  S   R                  [        SS/5      5      (       d   eg s  snnf )	NTstrictr5   20130101r<   r=   r   r   )zipr   r   rA   asarraytaker   from_arraysr   r   r   rQ   rR   r	   equalsr   )rF   levlevel_codesarraysr   s        r!   test_from_arraysrg      s     !$CJJ		$ G GC 	

3[) G   ##F))<F&& ##bffi
.C%DsCj$QRF==""5)J*?)@#ABBBB==""5#s#45555s   1D'c                    [        U R                  U R                  SS9 VVs/ s H*  u  p[        R                  " U5      R                  U5      PM,     nnn[        R                  " [        U5      U R                  S9n[        R                  " X@5        Sn[        R                  " [        US9   [        R                  " S5        S S S 5        g s  snnf ! , (       d  f       g = f)NTr\   r5   z/Input must be a list / sequence of array-likes.r%   r   )r_   r   r   rA   r`   ra   r   rb   iterr   r   r   r)   r*   r,   )rF   rd   re   rf   r   r.   s         r!   test_from_arrays_iteratorrj      s     !$CJJ		$ G GC 	

3[) G   ##DL		BF&& <C	y	,q! 
-	, 
-	,s   1C0C
C$c           	          [        S [        U R                  U R                  SS9 5       5      n[        R
                  " XR                  S9n[        R                  " X 5        g )Nc              3      #    U  H5  u  p[        [        R                  " U5      R                  U5      5      v   M7     g 7fN)tuplerA   r`   ra   ).0rd   re   s      r!   	<genexpr>*test_from_arrays_tuples.<locals>.<genexpr>   s5       GC 	bjjo"";/00 Gs   =?Tr\   r5   )	rn   r_   r   r   r   rb   r   r   r   )rF   rf   r   s      r!   test_from_arrays_tuplesrr      sN      #CJJ		$ G F ##F))<F&&r#   )idx1idx2
2011-01-01Dr   freqperiodsz
2015-01-01h2015-01-01 10:00
US/Easternrx   ry   tz
Asia/Tokyo1 daysz2 hoursc                    [         R                  " X/5      n[        R                  " UR	                  S5      U 5        [        R                  " UR	                  S5      U5        [         R                  " [        U 5      [        U5      /5      n[        R                  " UR	                  S5      U 5        [        R                  " UR	                  S5      U5        [        R                  " X#5        g )Nr   r   )r   rb   r   r   get_level_valuesr   )rs   rt   r   result2s       r!   =test_from_arrays_index_series_period_datetimetz_and_timedeltar      s    $ ##TL1F&11!4d;&11!4d;$$fTlF4L%ABG'2215t<'2215t<&*r#   c                     [        SSSSS9n [        SSSS9n[        R                  " SSSS9n[        R                  " S	SSS9n[        R
                  " XX#/5      n[        R                  " UR                  S
5      U 5        [        R                  " UR                  S5      U5        [        R                  " UR                  S5      U5        [        R                  " UR                  S5      U5        [        R
                  " [        U 5      [        U5      [        U5      [        U5      /5      n[        R                  " UR                  S
5      U 5        [        R                  " UR                  S5      U5        [        R                  " UR                  S5      U5        [        R                  " UR                  S5      U5        [        R                  " XE5        g )Nr{   rv   r   r|   r}   rz   rw   r   ru   r   r   r   )
r
   rQ   timedelta_rangeperiod_ranger   rb   r   r   r   r   )rs   rt   idx3idx4r   r   s         r!   )test_from_arrays_index_datetimelike_mixedr      sq   (sA,OD(sA>DhS!<D??<c1=D##T$<=F&11!4d;&11!4d;&11!4d;&11!4d;$$	vd|VD\6$<@G '2215t<'2215t<'2215t<'2215t<&*r#   c                  F   [         R                  " [        S5      [        S5      SS9n [         R                  " [        S5      [        S5      SS9n[        R                  " X/5      n[
        R                  " UR                  S5      U 5        [
        R                  " UR                  S5      U5        [        R                  " [        U 5      [        U5      /5      n[
        R                  " UR                  S5      U 5        [
        R                  " UR                  S5      U5        [        R                  " U R                  UR                  /5      n[
        R                  " UR                  S5      U 5        [
        R                  " UR                  S5      U5        g )NabcaabbacF
categoriesorderedTr   r   )
rQ   CategoricalIndexlistr   rb   r   r   r   r   values)rs   rt   r   r   result3s        r!   )test_from_arrays_index_series_categoricalr      s(   tH~$u+uUDtH~$u+tTD##TL1F&11!4d;&11!4d;$$fTlF4L%ABG'2215t<'2215t<$$dkk4;;%?@G'2215t<'2215t<r#   c                  (   Sn [         R                  " [        U S9   [        R                  " / S9  S S S 5        [        R                  " / /S/S9n[        U[        5      (       d   e[        / SS9n[        R                  " UR                  S   U5        UR                  S/:X  d   eS HT  n/ /U-  n[        S	5      S U n[        R                  " XES9n[        / /U-  / /U-  US
9n[        R                  " X5        MV     g ! , (       d  f       N= f)N)Must pass non-zero number of levels/codesr%   rf   Arf   r   r   r   )r   r   ABCr   )r)   r*   r+   r   rb   r   r   r   r   r   r   r   )r.   r   r    Nrf   r   s         r!   test_from_arrays_emptyr     s    
5C	z	-b) 
. ##B4u=Ffj))))Rc"H&--*H5<<C5    UBQ''vCbTAXbTAXUK
f/  
.	-s   D
Dinvalid_sequence_of_arraysr   r   r<   r=   r   r   r   r<   r<   r=   r   )r   r   )r   r   )r   r=   c                     Sn[         R                  " [        US9   [        R                  " U S9  S S S 5        g ! , (       d  f       g = f)Nz.Input must be a list / sequence of array-likesr%   r   )r)   r*   r,   r   rb   )r   r.   s     r!   test_from_arrays_invalid_inputr   #  s2    8 ;C	y	,&@A 
-	,	,	   :
Az
idx1, idx2r   r   r   c                     Sn[         R                  " [        US9   [        R                  " X/5        S S S 5        g ! , (       d  f       g = f)Nz ^all arrays must be same length$r%   )r)   r*   r+   r   rb   )rs   rt   r.   s      r!   "test_from_arrays_different_lengthsr   D  s3    
 -C	z	-|, 
.	-	-s	   =
Ac                      [        / SQSS9n [        / SQSS9n[        R                  " X/S S9n[        / SQ/ SQ// SQ/ SQ/S S9n[        R                  " X#5        g )	Nr   r   r   rU   r   r5   r   r   r   r   )r   r   rb   r   r   r<   r=   r   r    s       r!   $test_from_arrays_respects_none_namesr   N  sZ    yu%AU+A##QF$7F?+Iy3IQUH &+r#   c                  &   Sn [         R                  " [        U S9   [        R                  " / 5        S S S 5        [        SS/SS//SS/SS//SS	/S
9n[        R                  " SSS	/S9n[
        R                  " X!5        g ! , (       d  f       NU= f)Nz-Cannot infer number of levels from empty listr%   r   r   r   r>   r   r<   r=   r   )r   )r   r>   r5   )r)   r*   r,   r   from_tuplesr   r   )r.   r    r   s      r!   test_from_tuplesr   ^  s    
9C	y	,r" 
- AAAA'7SzH
 ##$4S#JGF&+ 
-	,s   B
Bc                  @   [        SS/SS//SS/SS//SS/S9n [         R                  " [        SS/SS/S	S
9SS/S9n[        R                  " X5        Sn[
        R                  " [        US9   [         R                  " S5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r>   r   r<   r=   r   Tr\   r5   z/Input must be a list / sequence of tuple-likes.r%   )r   r   r_   r   r   r)   r*   r,   )r    r   r.   s      r!   test_from_tuples_iteratorr   l  s     AAAA'7SzH ##CAAt$DSRUJWF&+ <C	y	,q! 
-	,	,s   /B
Bc                      [         R                  " / SS/S9n [         R                  " / / /SS/S9n[        R                  " X5        g )Nr<   r=   r5   r   )r   r   rb   r   r   r   s     r!   test_from_tuples_emptyr   |  s@    ##BsCj9F%%b"Xc3ZHH&+r#   c                     [         R                  " U 5      nUR                  U R                  :H  R                  5       (       d   eg rm   )r   r   r   all)rF   r   s     r!   test_from_tuples_index_valuesr     s4    ##C(FMMSZZ',,....r#   c                     / SQn Sn[         R                  " [        US9   [        U SS9  S S S 5        [         R                  " [        US9   [        U SS9  S S S 5        g ! , (       d  f       N;= f! , (       d  f       g = f)N))r   r   r   )r   r   r   )r   r   r   *Names should be list-like for a MultiIndexr%   abcr   r<   )r)   r*   r+   r   )lir.   s     r!   test_tuples_with_name_stringr     s[     
+B
6C	z	-bu 
.	z	-bs 
.	- 
.	-	-	-s   A A1 
A.1
A?c                      [         R                  " / SQ/ SQ// SQS9R                  SS/5      n [        R                  " SS/S	S
9n[         R                  " SS/S/US9n[
        R                  " X5        g )N)r   r   r   )r>   r   r   rU   columnsr<   r=   )r   r   )r>   r   r   r5   r   r   rV   )r   index)rQ   	DataFrame	set_indexr   r   r   assert_frame_equal)r    rF   r   s      r!   !test_from_tuples_with_tuple_labelr     sj    ||	N#_ic
  
 
 &+!6j
IC\\1a&3%s;F(+r#   zkeys, expected)l1r   l2r   r   )r   r   c                 R    [         R                  " U 5      n[        U5      U:X  d   eg rm   )r   r   rn   )keysr    rF   s      r!   +test_from_tuples_with_various_tuple_lengthsr     s&     
 
 
&C:!!!r#   c                      Sn [         R                  " [        U S9   [        R                  " / 5        S S S 5        g ! , (       d  f       g = f)Nr   r%   )r)   r*   r+   r   from_productr-   s    r!   #test_from_product_empty_zero_levelsr     s/    
5C	z	-# 
.	-	-s	   <
A
c                      [         R                  " / /S/S9n [        / SS9n[        R                  " U R
                  S   U5        U R                  S/:X  d   eg )Nr   r5   r   r   )r   r   r   r   r   r   r   r   s     r!   !test_from_product_empty_one_levelr     sQ    $$bT#7FRc"H&--*H5<<C5   r#   zfirst, second)r   r   r   rU   c                     SS/n[         R                  " X/US9n[        X// / /US9n[        R                  " X45        g )Nr   Br5   r   r   r   r   r   )r   secondr   r   r    s        r!   "test_from_product_empty_two_levelsr     sC     #JE$$e_EBF%RNH&+r#   r   r>   c                     / SQn[        [        U 5      5      n[        R                  " / U/ /US9n[        / U/ // / / /US9n[        R
                  " X45        g )N)r   r   Cr5   r   )r   ranger   r   r   r   )r   r   lvl2r   r    s        r!   $test_from_product_empty_three_levelsr     sV     Ea>D$$b$^5AF"dBB|5QH&+r#   invalid_inputc                     Sn[         R                  " [        US9   [        R                  " U S9  S S S 5        g ! , (       d  f       g = f)NzDInput must be a list / sequence of iterables|Input must be list-liker%   )	iterables)r)   r*   r,   r   r   )r   r.   s     r!   test_from_product_invalid_inputr     s2     RC	y	,-8 
-	,	,r   c            	         [        SSS9n [        R                  " SS/U /5      n[        S[	        S5      4S[	        S5      4S[	        S5      4S[	        S5      4/5      n[
        R                  " UR                  U5        g )Nz
2000-01-01r   )ry   r   z
2000-01-02)r
   r   r   r   r	   r   assert_numpy_array_equalr   )dt_indexr8   etalons      r!   test_from_product_datetimeindexr     s    ,2H		 	 1a&(!3	4B4	,'(	,'(	,'(	,'(		
F 		62r#   c                      [        [        S5      5      n SS/n[        R                  " X/5      n[        R
                  " UR                  S   U SS9  g )NrO   r<   r=   r   T)exact)r   r   r   r   r   r   _levels)rngotherr8   s      r!   test_from_product_rangeindexr     sD    
a/C#JE		 	 #	.B"**Q-D9r#   r   FTfc                     U $ rm    xs    r!   <lambda>r     s    r#   c                     [        U 5      $ rm   )r   r   s    r!   r   r     s    fQir#   c                     U R                   $ rm   )r   r   s    r!   r   r     s    188r#   c                 J   SS/n[         R                  " [        S5      [        S5      U S9n[         R                  " [        S5      [        S5      -   [        S5      U S9n[        R                  " X!" U5      /5      n[
        R                  " UR                  S5      U5        g )Nr   r   r   r   r   r   )rQ   r   r   r   r   r   r   r   )r   r   r   rF   r    r   s         r!   *test_from_product_index_series_categoricalr     s     ENE


d8neg
VC""Xh'DKH $$eQsV_5F&11!4h?r#   c                      / SQn / SQnSS/n[         R                  " X/US9n/ SQn[         R                  " XBS9n[        R                  " X55        g )Nr   r   buzrU   r   r   r5   	)r   r<   )r   r=   )r   rV   )r   r<   )r   r=   )r   rV   )r   r<   )r   r=   )r   rV   )r   r   r   r   r   )r   r   r   r   tuplesr    s         r!   test_from_productr     sQ    !EFhE$$e_EBF
F %%f:H&+r#   c                  L   / SQn / SQnSS/n/ SQn[         R                  " X2S9n[         R                  " [        X/5      US9n[        R
                  " XT5        Sn[        R                  " [        US9   [         R                  " S	5        S S S 5        g ! , (       d  f       g = f)
Nr   rU   r   r   r   r5   z-Input must be a list / sequence of iterables.r%   r   )	r   r   r   ri   r   r   r)   r*   r,   )r   r   r   r   r    r   r.   s          r!   test_from_product_iteratorr     s    !EFhE
F %%f:H $$T5/%:%HF&+ :C	y	," 
-	,	,s   5B
B#za, b, expected_namesr   r   r   c                     [         R                  " X/5      n[        / SQSS/// SQ/ SQ/US9n[        R                  " X45        g )Nr   r<   r=   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r<   r=   expected_namesr   r    s        r!   test_from_product_infer_namesr   /  sH     $$aV,FC:&!#56H
 &+r#   c                      [        / SQSS9n [        SS/SS9n[        R                  " X/S S9n[        / SQSS/// SQ/ S	Q/S S
9n[        R                  " X#5        g )Nr   r   r   r<   r=   r   r5   r   r   r   )r   r   r   r   r   r   s       r!   %test_from_product_respects_none_namesr  F  sd    yu%ASz&A$$aV48FC:&!#56H
 &+r#   c                      [         R                  " [        S5      5      n SS/n[        R                  " X/5      nU R                  SS9  [        R                  " X/5      n[        R                  " X25        g )Nr   r<   r=   F)write)rA   rB   r   r   r   setflagsr   r   )r<   r=   r    r   s       r!   test_from_product_readonlyr  T  s]    
qA	c
A&&v.HJJUJ$$aV,F&+r#   c                     U nSS/Ul         [        U5      n[        [        / SQSS95      n[        R                  " X#5        [        USS9n[        [        / SQSS9SS9n[        R                  " X#5        g )Nr   r   ))r   r1   )r   r2   )r   r1   )r   r2   )r   r1   )r   r2   objectdtyper   r   )r   r   r   r   )rF   r   r   r    s       r!   test_create_index_existing_namer  _  s     E%.EK5\F 
	
H &+5s#F 
	
 H &+r#   c                      [         R                  " SS/SS/SS/SS//SS/S9n [        R                  " / SQSS/S9n[        R                  " U 5      n[
        R                  " X5        g )Nr<   r=   L1L2r   ))r<   r<   r   )r=   r<   )r=   r=   r5   )rQ   r   r   r   
from_framer   r   )dfr    r   s      r!   test_from_framer    sm    	
sc3Z#sc3Z84,
B %%8tH ""2&F(+r#   c            	         [         R                  " S5      n [        R                  " [	        / SQSS9[        R
                  " 5       R                  U R                  / SQ5      5      S.5      n[        R                  " U5      n[        R                  " [	        / SQSS9[        R
                  " 5       R                  U R                  / SQ5      5      /SS/S	9n[        R                  " X#5        g )
Npyarrow)r   r   NInt64r	  )g?NNr   r<   r=   r5   )r)   importorskiprQ   r   r   Float64Dtype__from_arrow__rB   r   r  rb   r   r   )par  multi_indexedr    s       r!   )test_from_frame_missing_values_multiIndexr    s    			Y	'B	G4"11"((;L2MN	

B ))"-M%%<w/OO,,RXX6G-HI	
 CjH -2r#   	non_frame)r   r   r   r>   rO         c                     [         R                  " [        SS9   [        R                  " U 5        S S S 5        g ! , (       d  f       g = f)NzInput must be a DataFramer%   )r)   r*   r,   r   r  )r  s    r!   test_from_frame_errorr    s.     
y(C	Di( 
E	D	Ds	   :
Ac            	         [         R                  " [        SSSS9/ SQ[         R                  " / SQSS9/ S	QS
.5      n U R                  R                  5       n[        R                  " [        SSSS9/ SQ[         R                  " / SQSS9/ S	Q// S
QS9n[        R                  " U 5      n[        UR                  5       VVs0 s H  u  pEXSR                  U   R                  _M      nnn[        R                  " X#5        X:X  d   eg s  snnf )N19910905r  r|   )ry   r~   )r   r   r   r   r   r   )r<   r<   r=   r=   rV   rV   T)r   )r   r   yzr   r"  )datesr<   r=   rV   r5   )rQ   r   r
   Categoricaldtypesto_dictr   rb   r  	enumerater   r   r
  r   r   )r  original_dtypesexpected_mir8   ir   	mi_dtypess          r!   test_from_frame_dtype_fidelityr-    s    	
A,G# >M/		

B ii'')O((z1>NN94H*		
 'K 
		r	"B9B2889LM9Lgayy|)))9LIM+*''' Ns   %D	znames_in,names_outr  r   r  r"  r   r"  c                     [         R                  " SS/SS/SS/SS//[        R                  " SS/5      S9n[        R                  " X S9nUR
                  U:X  d   eg )Nr<   r=   r.  r/  r   r5   )rQ   r   r   r   r  r   )names_in	names_outr  r8   s       r!   test_from_frame_valid_namesr3    se    
 

sc3Z#sc3Z8&&['AB
B 
		r	2B88y   r#   znames,expected_error_msg)	bad_inputr   z9Length of names must match number of levels in MultiIndexc                     [         R                  " SS/SS/SS/SS//[        R                  " SS/5      S9n[        R
                  " [        US9   [        R                  " X S9  S S S 5        g ! , (       d  f       g = f)Nr<   r=   r.  r/  r   r%   r5   )rQ   r   r   r   r)   r*   r+   r  )r   expected_error_msgr  s      r!   test_from_frame_invalid_namesr7    sl     

sc3Z#sc3Z8&&['AB
B 
z);	<b. 
=	<	<s   A//
A=c                      [        / / // / /SS/S9n [         R                  " / / /SS/S9n[        R                  " X5        g )Nr<   r=   r   r   )r   rb   r   r   r   s     r!   test_index_equal_empty_iterabler9    sD    2r(2r(3*EAr2hsCjAA!r#   c                  F   SS// SQ/n [        U / SQ/ SQ/SS9  [        R                  " [        SS	9   [        U / SQ/ S
Q/SS9  S S S 5        [        R                  " [        SS	9   [        U / SQ/ SQ/SS9  S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)Nr   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   	sortorderz%.* sortorder 2 with lexsort_depth 1.*r%   )r   r   r   r   r   r   z%.* sortorder 1 with lexsort_depth 0.*)r   r   r   r   r   r   )r   r   r   r   r   r   )r   r)   r*   r+   r(   s    r!   test_raise_invalid_sortorderr<    s     !fi F 02DEQR 
z)Q	R"46H!IUV	
 
S
 
z)Q	R"46H!IUV	
 
S	R 
S	R
 
S	Rs   B&B
B
B c                     [         R                  " / SQS-  SS9n [        SSSSS	9n[        R                  " X/5      n[         R                  " / SQSS9n[
        R                  " UR                  S
   U5        [
        R                  " UR                  S   U5        [        R                  " S5      n[        R                  " 5       n[        R                  " 5       n[        R                  " XEU/XEU/5       H{  u  px[        R                  " U/U//5      n	[!        U	R                  S
   [         R                  5      (       d   e[!        U	R                  S   [         R                  5      (       a  M{   e   ["        R                  " 5       n
[        R                  " U
/U//5      n	[!        U	R                  S
   [         R                  5      (       a   e[!        U	R                  S   [         R                  5      (       d   eg )N)z2013-04-01 9:00z2013-04-02 9:00z2013-04-03 9:00r   r   )r~   z
2010/01/01r  MEr|   )ry   rx   r~   r   r   today)rQ   DatetimeIndexr
   r   rb   r   r   r   rA   
datetime64r   r?  r	   	itertoolsproductr   r   r   )rs   rt   rF   	expected1date1date2date3d1d2r   date4s              r!   test_datetimeindexrK    s   AAE,D lAD\JD

 
 $
.C  AlI #**Q-3#**Q-. MM'"ENNEOOE##U5$9E%;PQ''"t5%,,q/2+;+;<<<<%,,q/2+;+;<<<< R JJLE##eWug$67E%,,q/2+;+;<<<<ell1or'7'78888r#   c                  V   [         R                  " SS/SSS9n [         R                  " SS/SS	S9n[        R                  " X/5      nUR                  SS/:X  d   e[
        R                  " UR                  S
   U 5        [
        R                  " UR                  S   U5        [        R                  " [        U 5      [        U5      /5      nUR                  SS/:X  d   e[
        R                  " UR                  S
   U 5        [
        R                  " UR                  S   U5        g )Nz2013/01/01 09:00z2013/01/02 09:00dt1z
US/Pacific)r   r~   z2014/01/01 09:00z2014/01/02 09:00dt2r   r   r   )	rQ   r@  r   rb   r   r   r   r   r   )r   r   r   s      r!   test_constructor_with_tzrO  2  s    	/0uE 	/0uG ##U$45F<<E5>)))&--*E2&--*G4##VE]F7O$DEF<<E5>)))&--*E2&--*G4r#   c                     [         R                  " 5       n X /n[        U5      nUR                  [        :X  d   e[
        R                  " U/5      nUR                  S   nUR                  [        :X  d   e[
        R                  " U/5      nUR                  S   nUR                  [        :X  d   e[
        R                  " U Vs/ s H  oU4PM     sn5      nUR                  S   nUR                  [        :X  d   eg s  snf )Nr   )
r   r?  r   r
  r  r   rb   r   r   r   )varrrF   r8   rd   r   s         r!   %test_multiindex_inference_consistencyrS  G  s     	

A&C
*C99				&B
))A,C99		 	 #	'B
))A,C99			s 3s!s 3	4B
))A,C99 !4s   C?c                 "   [         R                  " S/S//SS/S9nUR                  nU (       d  SO![        R                  " [
        R                  S9n[        SU/[         R                  " SS/5      [        S	9n[        R                  " X$5        g )
Nr   r<   r   )rV   dr5   r  )na_valueint64)r   r
  )r   rb   r&  rQ   StringDtyperA   rP   r   r   r  r   assert_series_equal)using_infer_stringpmidxr   expr    s        r!   test_dtype_representationr]  ^  sw    ""QC#<
J7OPE\\F,(".."&&2QC	#$$j*%=>H
 6,r#   )Kr   r   rB  numpyrA   r)   pandas.core.dtypes.castr   pandasrQ   r   r   r   r	   r
   pandas._testing_testingr   r"   r/   r:   rJ   rS   rZ   rg   rj   rr   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rP   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  rB   r  r-  r3  r7  r9  r<  rK  rO  rS  r]  r   r#   r!   <module>re     sF      K   %	$0#CL,@
" 6 ""'  OOLsA>OOLsA>	

 )Q<P)Q<P	

 xc1=ysA>	
"	+#"	++.=$0,  		
	
A
a	
QC		c


a	
QC
	q		
D		-6B76B ISz*R#s,<y"oN--
, ," ,/
, 	 D"&&><"@A	 <$"@A""$! r2h!6 ;b/=RS,, d58n-, ., a!q!fsAhcUS#J#PSU993: UDM2{,?ASTU
@ V 3
@,,#8  95)C:E*EN	

 
		&c
UDMB	S#J%,,,,$,T	,3* |
Q!Q!Q l
1a&1a&1a&)*

)
)(8 D;"<=c
SRUJ?WX!! C	UV// 
,9@5*.
-r#   