
    Mhh                        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"/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+S7 r,S8 r-\R6                  R9                  S9/ / 4/ S:Q/ 4/ / S;Q4/5      S< 5       r.\R6                  R9                  S=\/" \0" S>5      5      5      S? 5       r1\R6                  R9                  S@S S /S S!/S /S!/S"S"/S"S#/S"/S#//5      SA 5       r2SB r3SC r4\R6                  R9                  SDSESF/5      \R6                  R9                  SGSH SI SJ /5      SK 5       5       r5SL r6SM r7\R6                  R9                  SN\" / S.QSOSP9\" S"S#/SQSP9SOSQ/4\" / S.QSOSP9S"S#/SOS/4/ S.QS"S#/S4/5      SR 5       r8SS r9ST r:SU r;SV r<SW r=\R6                  R9                  SX\" / SYQ5      / SYQS S!/SS>/SZS[//\
" / SYQ5      \R|                  " S S!/SS>/SZS[//5      S\/5      S] 5       r?S^ r@\R6                  R9                  S_SS`Sa/4SbSc/SbSc/4/5      Sd 5       rA\R6                  R9                  SeSf/ S;QSg4/5      Sh 5       rBSi rCSj rDSk rESl rFSm rGSn rHg)o    )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     ^/var/www/html/env/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                 \   [        U R                  U R                  5       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 )Nr5   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_arraysre      s     !$CJJ		 : :C 	

3[) :   ##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                  5       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)Nr5   z/Input must be a list / sequence of array-likes.r%   r   )r]   r   r   rA   r^   r_   r   r`   iterr   r   r   r)   r*   r,   )rF   rb   rc   rd   r   r.   s         r!   test_from_arrays_iteratorrh      s     !$CJJ		 : :C 	

3[) :   ##DL		BF&& <C	y	,q! 
-	, 
-	,s   1C1C
C%c                     [        S [        U R                  U R                  5       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^   r_   ).0rb   rc   s      r!   	<genexpr>*test_from_arrays_tuples.<locals>.<genexpr>   s5       :C 	bjjo"";/00 :s   =?r5   )	rl   r]   r   r   r   r`   r   r   r   )rF   rd   r   s      r!   test_from_arrays_tuplesrp      sL      #CJJ		 : F ##F))<F&&r#   )idx1idx2
2011-01-01Dr   freqperiodsz
2015-01-01h2015-01-01 10:00
US/Easternrv   rw   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   r`   r   r   get_level_valuesr   )rq   rr   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 )Nry   rt   r   rz   r{   rx   ru   r~   rs   r   r   r   )
r
   rQ   timedelta_rangeperiod_ranger   r`   r   r   r   r   )rq   rr   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   r`   r   r   r   r   values)rq   rr   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%   rd   Ard   r   r   r   )r   r   ABCr   )r)   r*   r+   r   r`   r   r   r   r   r   r   r   )r.   r   r    Nrd   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   r`   )r   r.   s     r!   test_from_arrays_invalid_inputr   #  s2    : ;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   r`   )rq   rr   r.   s      r!   "test_from_arrays_different_lengthsr   E  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   r`   r   r   r<   r=   r   r    s       r!   $test_from_arrays_respects_none_namesr   O  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                  B   [        SS/SS//SS/SS//SS/S9n [         R                  " [        SS/SS/5      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   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   m  s     AAAA'7SzH ##CAA$7SzJF&+ <C	y	,q! 
-	,	,s   0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   r`   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 rk   )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#   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   )rw   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 $ rk    xs    r!   <lambda>r     s    r#   c                     [        U 5      $ rk   )r   r   s    r!   r   r     s    fQir#   c                     U R                   $ rk   )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   rg   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   :  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   H  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  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[        R                  S /5      5      S.5      n[        R                  " U5      n[        R                  " [	        / SQ5      R                  S5      [        R
                  " 5       R                  U R                  S[        R                  S /5      5      /SS/S	9n[        R                  " X#5        g )
Npyarrow)r   r   NInt64r   g?r   r<   r=   r5   )r)   importorskiprQ   r   r   Float64Dtype__from_arrow__rB   rA   rP   r   r  r`   astyper   r   )par  multi_indexedr    s       r!   )test_from_frame_missing_values_multiIndexr    s    			Y	'B	G4"11"((C;N2OP	

B ))"-M%%< ''0OO,,RXXsBFFD6I-JK	
 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  rz   )rw   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   r`   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_namesr+    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_namesr/    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   r`   r   r   r   s     r!   test_index_equal_empty_iterabler1    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_sortorderr4    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  MErz   )rw   rv   r|   r   r   today)rQ   DatetimeIndexr
   r   r`   r   r   r   rA   
datetime64r   r7  r	   	itertoolsproductr   r   r   )rq   rr   rF   	expected1date1date2date3d1d2r   date4s              r!   test_datetimeindexrC    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   r8  r   r`   r   r   r   r   r   )r   r   r   s      r!   test_constructor_with_tzrG  &  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   r7  r   r  r   r   r`   r   r   r   )varrrF   r8   rb   r   s         r!   %test_multiindex_inference_consistencyrK  ;  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Sn[        SU/[         R                  " SS/5      [
        S	9n[        R                  " X$5        g )
Nr   r<   r   )rV   dr5   r   stringint64)r   r  )r   r`   r  r   r   r   r   assert_series_equal)using_infer_stringpmidxr   expr    s        r!   test_dtype_representationrT  R  sj    ""QC#<
J7OPE\\F,((C	#$$j*%=>H
 6,r#   )Ir   r   r:  numpyrA   r)   pandas.core.dtypes.castr   pandasrQ   r   r   r   r	   r
   pandas._testing_testingr   r"   r/   r:   rJ   rS   rZ   re   rh   rp   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  rB   r  r%  r+  r/  r1  r4  rC  rG  rK  rT  r   r#   r!   <module>r\     s      K   %	$0#CL,@
" 6 ""'  OOLsA>OOLsA>	

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

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


a	
QC
	q		
D		/8B98B ISz*R#s,<y"oN--
, ," ,/
,$! 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#   