
    i1j                        d dl mZm Z  d dlZd dlZd dlZd dlmZ d dlZ	d dlm
Z
mZmZmZmZ d dlmZ d Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zej6                  j9                  d e	j:                  ddd       e	j:                  ddd      f edddd       edddd      f e	j<                  ddd       e	j<                  ddd      fg      d        Zd Z d Z!d Z"ej6                  j9                  dd d gd d!gd gd!gd d!ggd"d"gd"d#gd"gd#gd$d%d gd!fd d!gfd&d'd"gd#fd$d!gd d(gd&d#gd)d*d+g      d,        Z#ej6                  j9                  d-g d.d"d#gfg d"d#gfg d.g fg      d/        Z$d0 Z%d1 Z&d2 Z'd3 Z(d4 Z)d5 Z*d6 Z+ej6                  j9                  d7d8d9ejX                  fd:ffd;d:d9ejX                  fffg      d<        Z-d= Z.d> Z/ej6                  j9                  d?g g fg d@g fg g dAfg      dB        Z0ej6                  j9                  dC e1 e2dD                  dE        Z3ej6                  j9                  dFd d gd d!gd gd!gd"d"gd"d#gd"gd#gg      dG        Z4dH Z5dI Z6ej6                  j9                  dJdKdLg      ej6                  j9                  dMdN dO dP g      dQ               Z7dR Z8dS Z9ej6                  j9                  dT eg d.dUV       ed"d#gdWV      dUdWgf eg d.dUV      d"d#gdUdgfg d.d"d#gdfg      dX        Z:dY Z;dZ Z<d[ Z=d\ Z>d] Z?ej6                  j9                  d^ eg d_      g d_d d!gddDgd`dagg e
g d_       ej                  d d!gddDgd`dagg      dbg      dc        ZAdd ZBej6                  j9                  deddfdggfdhdigdhdigfg      dj        ZCej6                  j9                  dkdlg dAdmfg      dn        ZDdo ZEdp ZFdq ZGdr ZHds ZIdt ZJy)u    )datedatetimeN)'construct_1d_object_array_from_listlike)Index
MultiIndexSeries	Timestamp
date_rangec                      t        g dgg dgdg      } t        | t               sJ t        g dd      }t        j                  | j
                  d   |       | j                  dgk(  sJ y )N)foobarbazquxr            firstlevelscodesnamesnamer   )r   
isinstancer   tmassert_index_equalr   r   resultexpecteds     i/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/indexes/multi/test_constructors.pytest_constructor_single_levelr"      sf    ,-l^G9F fj)))1@H&--*H5<<G9$$$    c                  v   d} t        j                  t        |       5  t        g g        d d d        d} t        j                  t        |       5  t        g        d d d        t        j                  t        |       5  t        g        d d d        y # 1 sw Y   lxY w# 1 sw Y   FxY w# 1 sw Y   y xY w)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#B/B #B,/B8c                     ddgddgg} g dg dg}dgdgf}d	}t        j                  t        |
      5  t        | ||       d d d        t        ddgddggg dg dgd      }dgdgg}t        j                  t        |
      5  |j	                  |       d d d        t        j                  t        |
      5  |j                  |       d d d        y # 1 sw Y   xY w# 1 sw Y   LxY w# 1 sw Y   y xY w)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$<C0C!$C-0C9c                 d   t        j                  dg      t        j                  dg      t        j                  dg      g}dg}d}t        j                  t        |      5  t        ||       d d d        d}d	}d
}t        j                  t        |      5  t        dgdggg dg dg       d d d        t        j                  t        |      5  t        dgdggg dddgg       d d d        t        j                  t        |      5  | j                         j                  dgdgg       d d d        t        j                  t        |      5  | j                         j                  g dddgg       d d d        | j                         j                  g dddggd       t        j                  t        |      5  t        dgdggddgddgg       d d d        y # 1 sw Y   yxY w# 1 sw Y   ExY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)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 NC53%.|0LMN 
z	5 HC53%.1v0FGH 
z	6 .
usen-. 
z	5 5
lQF345
 HHJq!f5N 
z)9	: CC53%.!R1a&0ABC C;/ /N NH H. .5 5C CsH   "G'G4H$H&HH&'G14G>HHH#&H/c                  T   t        t        j                  d t        j                  ddggg dg      } t        t        j                  d t        j                  ddggg dg      }t        j                  | |       t        t        j                  dt        j                  dd ggg dg      } t        t        j                  dt        j                  dd ggg dg      }t        j                  | |       t        g dgg dg      j                  t        j                  dt        j                  dd gg      } t        j                  | |       t        t        j                  dt        j                  dd ggg d	g      j                  g dg      } t        j                  | |       y )
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   si    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   t        j                  g d      } t        j                  g d      }|d   }t        | | g||gd      }|j                  d   d   |k(  sJ d|d<   |j                  d   d   |k(  sJ | d   }d| d<   |j                  d   d   |k(  sJ y )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	FF+E5>	MB88A;q>S   E!H88A;q>S   
)CF1I99Q<?c!!!r#   c                 J   t        | j                  | j                  d      D cg c])  \  }}t        j                  |      j                  |      + }}}t        j                  || j                        }t        j                  ||        t        j                  t        j                  t        d      gddgg      }|j                  d   j                  t        t        d      g            sJ |j                  d   j                  t        ddg            sJ y c c}}w )	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C 	

3[)F  ##F#))<F&#& ##bffi
.C%DsCj$QRF==""5)J*?)@#ABBB==""5#s#4555s   .Dc                    t        | j                  | j                  d      D cg c])  \  }}t        j                  |      j                  |      + }}}t        j                  t        |      | j                        }t        j                  ||        d}t        j                  t        |      5  t        j                  d       d d d        y c c}}w # 1 sw Y   y xY w)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C 	

3[)F  ##DL		BF&#& <C	y	, "q!" "" "s   .C4CC"c                     t        d t        | j                  | j                  d      D              }t	        j
                  || j                        }t        j                  ||        y )Nc              3   |   K   | ]4  \  }}t        t        j                  |      j                  |             6 y wN)tuplerA   r`   ra   ).0rd   re   s      r!   	<genexpr>z*test_from_arrays_tuples.<locals>.<genexpr>   s4      C 	bjjo"";/0s   :<Tr\   r5   )	rn   r_   r   r   r   rb   r   r   r   )rF   rf   r   s      r!   test_from_arrays_tuplesrq      sR      #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rw   rx   tz
Asia/Tokyo1 daysz2 hoursc                    t        j                  | |g      }t        j                  |j	                  d      |        t        j                  |j	                  d      |       t        j                  t        |       t        |      g      }t        j                  |j	                  d      |        t        j                  |j	                  d      |       t        j                  ||       y )Nr   r   )r   rb   r   r   get_level_valuesr   )rr   rs   r   result2s       r!   =test_from_arrays_index_series_period_datetimetz_and_timedeltar      s    $ ##T4L1F&11!4d;&11!4d;$$fTlF4L%ABG'2215t<'2215t<&'*r#   c                     t        dddd      } t        ddd      }t        j                  ddd      }t        j                  d	dd      }t	        j
                  | |||g      }t        j                  |j                  d
      |        t        j                  |j                  d      |       t        j                  |j                  d      |       t        j                  |j                  d      |       t	        j
                  t        |       t        |      t        |      t        |      g      }t        j                  |j                  d
      |        t        j                  |j                  d      |       t        j                  |j                  d      |       t        j                  |j                  d      |       t        j                  ||       y )Nrz   ru   r   r{   r|   ry   rv   r   rt   r   r   r   )
r
   rQ   timedelta_rangeperiod_ranger   rb   r   r   r   r   )rr   rs   idx3idx4r   r   s         r!   )test_from_arrays_index_datetimelike_mixedr      sw   (sA,OD(sA>DhS!<D??<c1=D##T4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                  >   t        j                  t        d      t        d      d      } t        j                  t        d      t        d      d      }t        j                  | |g      }t        j                  |j                  d      |        t        j                  |j                  d      |       t        j                  t        |       t        |      g      }t        j                  |j                  d      |        t        j                  |j                  d      |       t        j                  | j                  |j                  g      }t        j                  |j                  d      |        t        j                  |j                  d      |       y )NabcaabbacF
categoriesorderedTr   r   )
rQ   CategoricalIndexlistr   rb   r   r   r   r   values)rr   rs   r   r   result3s        r!   )test_from_arrays_index_series_categoricalr      s*   tH~$u+uUDtH~$u+tTD##T4L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                  *   d} t        j                  t        |       5  t        j                  g        d d d        t        j                  g gdg      }t        |t              sJ t        g d      }t        j                  |j                  d   |       |j                  dgk(  sJ dD ]Y  }g g|z  }t        d	      d | }t        j                  ||      }t        g g|z  g g|z  |
      }t        j                  ||       [ y # 1 sw Y   xY w)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     0UBQ''vUCbTAXbTAXUK
fh/0* *s   D		Dinvalid_sequence_of_arraysr   r   r<   r=   r   r   r   r<   r<   r=   r   )r   r   )r   r   )r   r=   c                     d}t        j                  t        |      5  t        j                  |        d d d        y # 1 sw Y   y xY w)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   #  s?    8 ;C	y	, B&@AB B B	   >Az
idx1, idx2r   r   r   c                     d}t        j                  t        |      5  t        j                  | |g       d d d        y # 1 sw Y   y xY w)Nz ^all arrays must be same length$r%   )r)   r*   r+   r   rb   )rr   rs   r.   s      r!   "test_from_arrays_different_lengthsr   D  s>    
 -C	z	- -d|,- - -s	   ?Ac                      t        g dd      } t        g dd      }t        j                  | |gd       }t        g dg dgg dg dgd       }t        j                  ||       y )	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  s^    yu%AU+A##QF$7F?+Iy3IQUH &(+r#   c                  (   d} t        j                  t        |       5  t        j                  g        d d d        t        ddgddggddgddggdd	g
      }t        j                  ddd	g      }t        j                  ||       y # 1 sw Y   UxY w)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                  H   t        ddgddggddgddggddg      } t        j                  t        ddgddgd	
      ddg      }t        j                  ||        d}t        j                  t        |      5  t        j                  d       d d d        y # 1 sw Y   y xY w)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   9BB!c                      t        j                  g ddg      } t        j                  g g gddg      }t        j                  | |       y )Nr<   r=   r5   r   )r   r   rb   r   r   r   s     r!   test_from_tuples_emptyr   |  sB    ##BsCj9F%%b"Xc3ZHH&(+r#   c                     t        j                  |       }|j                  | j                  k(  j                         sJ y rm   )r   r   r   all)rF   r   s     r!   test_from_tuples_index_valuesr     s1    ##C(FMMSZZ',,...r#   c                     g d} d}t        j                  t        |      5  t        | d       d d d        t        j                  t        |      5  t        | d       d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)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     sm     
+B
6C	z	- bu	z	- bs   s   A*A6*A36A?c                      t        j                  g dg dgg d      j                  ddg      } t        j                  ddgd	
      }t        j                  ddgdg|      }t        j                  | |       y )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     sl    ||	N#_ic
  
 
 &+!6j
IC\\1a&3%s;F(F+r#   zkeys, expected)l1r   l2r   r   )r   r   c                 N    t        j                  |       }t        |      |k(  sJ y rm   )r   r   rn   )keysr    rF   s      r!   +test_from_tuples_with_various_tuple_lengthsr     s&     
 
 
&C:!!!r#   c                      d} t        j                  t        |       5  t        j                  g        d d d        y # 1 sw Y   y xY w)Nr   r%   )r)   r*   r+   r   from_productr-   s    r!   #test_from_product_empty_zero_levelsr     s8    
5C	z	- $#$ $ $s	   =Ac                      t        j                  g gdg      } t        g d      }t        j                  | j
                  d   |       | j                  dgk(  sJ y )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                     ddg}t        j                  | |g|      }t        | |gg g g|      }t        j                  ||       y )Nr   Br5   r   r   r   r   r   )r   secondr   r   r    s        r!   "test_from_product_empty_two_levelsr     sI     #JE$$eV_EBF%RNH&(+r#   r   r>   c                     g d}t        t        |             }t        j                  g |g g|      }t        g |g gg g g g|      }t	        j
                  ||       y )N)r   r   Cr5   r   )r   ranger   r   r   r   )r   r   lvl2r   r    s        r!   $test_from_product_empty_three_levelsr     sX     Ea>D$$b$^5AF"dBB|5QH&(+r#   invalid_inputc                     d}t        j                  t        |      5  t        j                  |        d d d        y # 1 sw Y   y xY w)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     s;     RC	y	, 9-89 9 9r   c            	         t        dd      } t        j                  ddg| g      }t        dt	        d      fdt	        d      fdt	        d      fdt	        d      fg      }t        j                  |j                  |       y )Nz
2000-01-01r   )rx   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                      t        t        d            } ddg}t        j                  | |g      }t	        j
                  |j                  d   | d       y )NrO   r<   r=   r   T)exact)r   r   r   r   r   r   _levels)rngotherr8   s      r!   test_from_product_rangeindexr     sF    
a/C#JE		 	 #u	.B"**Q-D9r#   r   FTfc                     | S rm    xs    r!   <lambda>r     s     r#   c                     t        |       S rm   )r   r   s    r!   r   r     s
    fQi r#   c                     | j                   S rm   )r   r   s    r!   r   r     s
    188 r#   c                 P   ddg}t        j                  t        d      t        d      |       }t        j                  t        d      t        d      z   t        d      |       }t        j                  | ||      g      }t        j                  |j                  d      |       y )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                      g d} g d}ddg}t        j                  | |g|      }g d}t        j                  ||      }t        j                  ||       y )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     sW    !EFhE$$eV_EBF
F %%fE:H&(+r#   c                  P   g d} g d}ddg}g d}t        j                  ||      }t        j                  t        | |g      |      }t	        j
                  ||       d}t        j                  t        |      5  t        j                  d	       d d d        y # 1 sw Y   y xY w)
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 %%fE:H $$T5&/%:%HF&(+ :C	y	, #"# # #s   =BB%za, b, expected_namesr   r   r   c                     t        j                  | |g      }t        g dddggg dg dg|      }t        j                  ||       y )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   /  sL     $$aV,FC:&!#56H
 &(+r#   c                      t        g dd      } t        ddgd      }t        j                  | |gd       }t        g dddggg dg d	gd 
      }t        j                  ||       y )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  sh    yu%ASz&A$$aV48FC:&!#56H
 &(+r#   c                      t        j                  t        d            } ddg}t        j                  | |g      }| j                  d       t        j                  | |g      }t        j                  ||       y )Nr   r<   r=   F)write)rA   rB   r   r   r   setflagsr   r   )r<   r=   r    r   s       r!   test_from_product_readonlyr  T  sc    
qA	c
A&&1v.HJJUJ$$aV,F&(+r#   c                    | }ddg|_         t        |      }t        t        g dd            }t        j                  ||       t        |d      }t        t        g dd      d      }t        j                  ||       y )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                      t        j                  ddgddgddgddggddg      } t        j                  g dddg      }t        j                  |       }t        j                  ||       y )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    so    	
sc3Z#sc3Z84,
B %%8tH ""2&F(F+r#   c            	         t        j                  d      } t        j                  t	        g dd      t        j
                         j                  | j                  g d            d      }t        j                  |      }t        j                  t	        g dd      t        j
                         j                  | j                  g d            gddg	      }t        j                  ||       y )
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                     t        j                  t        d      5  t        j                  |        d d d        y # 1 sw Y   y xY w)NzInput must be a DataFramer%   )r)   r*   r,   r   r  )r  s    r!   test_from_frame_errorr    s6     
y(C	D )i() ) )s	   ;Ac                  0   t        j                  t        ddd      g dt        j                  g dd      g d	d
      } | j                  j                         }t        j                  t        ddd      g dt        j                  g dd      g d	gg d
      }t        j                  |       }t        |j                        D ci c]  \  }}||j                  |   j                  ! }}}t        j                  ||       ||k(  sJ y c c}}w )N19910905r  r{   )rx   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Mgaryy|)))MIM+r*i''' Ns   $Dznames_in,names_outr  r   r  r!  r   r!  c                     t        j                  ddgddgddgddggt        j                  ddg            }t        j                  ||       }|j
                  |k(  sJ y )Nr<   r=   r-  r.  r   r5   )rQ   r   r   r   r  r   )names_in	names_outr  r8   s       r!   test_from_frame_valid_namesr2    sg    
 

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                    t        j                  ddgddgddgddggt        j                  ddg            }t	        j
                  t        |      5  t        j                  ||        d d d        y # 1 sw Y   y xY w)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_namesr6    sw     

sc3Z#sc3Z8&&['AB
B 
z);	< /b./ / /s   A55A>c                      t        g g gg g gddg      } t        j                  g g gddg      }t        j                  | |       y )Nr<   r=   r   r   )r   rb   r   r   r   s     r!   test_index_equal_empty_iterabler8    sF    2r(2r(3*EAr2hsCjAA!Qr#   c                  L   ddgg dg} t        | g dg dgd       t        j                  t        d	      5  t        | g dg d
gd       d d d        t        j                  t        d	      5  t        | g dg dgd       d d d        y # 1 sw Y   BxY w# 1 sw Y   y xY w)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	


 
z)Q	R 
"46H!IUV	

 

 


 
s   B0BBB#c                     t        j                  g ddz  d      } t        dddd	      }t        j                  | |g      }t        j                  g dd      }t        j                  |j                  d
   |       t        j                  |j                  d   |       t        j                  d      }t        j                         }t        j                         }t        j                  |||g|||g      D ]p  \  }}t        j                  |g|gg      }	t!        |	j                  d
   t         j                        sJ t!        |	j                  d   t         j                        rpJ  t#        j                         }
t        j                  |
g|gg      }	t!        |	j                  d
   t         j                        rJ t!        |	j                  d   t         j                        sJ y )N)z2013-04-01 9:00z2013-04-02 9:00z2013-04-03 9:00r   r~   )r}   z
2010/01/01r  MEr{   )rx   rw   r}   r   r   today)rQ   DatetimeIndexr
   r   rb   r   r   r   rA   
datetime64r   r>  r	   	itertoolsproductr   r   r   )rr   rs   rF   	expected1date1date2date3d1d2r   date4s              r!   test_datetimeindexrJ    s   AAE,D lAD\JD

 
 $
.C  AlI #**Q-3#**Q-. MM'"ENNEOOE##UE5$9E5%;PQ =B''"t5%,,q/2+;+;<<<%,,q/2+;+;<<<= JJLE##eWug$67E%,,q/2+;+;<<<ell1or'7'7888r#   c                  P   t        j                  ddgdd      } t        j                  ddgdd	      }t        j                  | |g      }|j                  ddgk(  sJ t        j                  |j                  d
   |        t        j                  |j                  d   |       t        j                  t        |       t        |      g      }|j                  ddgk(  sJ t        j                  |j                  d
   |        t        j                  |j                  d   |       y )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_tzrN  2  s   	/0uE 	/0uG ##UG$45F<<E5>)))&--*E2&--*G4##VE]F7O$DEF<<E5>)))&--*E2&--*G4r#   c                     t        j                         } | | g}t        |      }|j                  t        k(  sJ t        j                  |g      }|j                  d   }|j                  t        k(  sJ t        j                  |g      }|j                  d   }|j                  t        k(  sJ t        j                  |D cg c]  }|f c}      }|j                  d   }|j                  t        k(  sJ y c c}w )Nr   )
r   r>  r   r	  r  r   rb   r   r   r   )varrrF   r8   rd   r   s         r!   %test_multiindex_inference_consistencyrR  G  s     	

Aa&C
*C99				&B
))A,C99		 	 #	'B
))A,C99			s 3!! 3	4B
))A,C99 !4s    
C6c                 $   t        j                  dgdggddg      }|j                  }| sdn#t        j                  t
        j                        }t        d|gt        j                  ddg      t        	      }t        j                  ||       y )
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\  ^  sy    ""QC#<
J7OPE\\F,(".."&&2QC	#$$j*%=>H
 68,r#   )Kr   r   rA  numpyrA   r)   pandas.core.dtypes.castr   pandasrQ   r   r   r   r	   r
   pandas._testing_testingr   r"   r/   r:   rJ   rS   rZ   rg   rj   rq   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,  r2  r6  r8  r;  rJ  rN  rR  r\  r   r#   r!   <module>rd     sP      K   %	$0#CL,@
" 6 ""'  BOOLsA>BOOLsA>	

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

 Bxc1=B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#   