
    Owgh                     8   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'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+d7 Z,d8 Z-ej6                  j9                  d9g g fg d:g fg g d;fg      d<        Z.ej6                  j9                  d= e/ e0d>                  d?        Z1ej6                  j9                  d@d d gd d!gd gd!gd"d"gd"d#gd"gd#gg      dA        Z2dB Z3dC Z4ej6                  j9                  dDdEdFg      ej6                  j9                  dGdH dI dJ g      dK               Z5dL Z6dM Z7ej6                  j9                  dN eg d.dOP       ed"d#gdQP      dOdQgf eg d.dOP      d"d#gdOdgfg d.d"d#gdfg      dR        Z8dS Z9dT Z:dU Z;dV Z<dW Z=ej6                  j9                  dX eg dY      g dYd d!gdd>gdZd[gg e
g dY       ej|                  d d!gdd>gdZd[gg      d\g      d]        Z?d^ Z@ej6                  j9                  d_dd`dagfdbdcgdbdcgfg      dd        ZAej6                  j9                  dedfg d;dgfg      dh        ZBdi ZCdj ZDdk ZEdl ZFdm ZGdn ZHy)o    )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     c/var/www/horilla/myenv/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                 F   t        | j                  | j                        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 )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#))<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 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)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[)F  ##DL		BF&#& <C	y	, "q!" "" "s   .C2CC c                     t        d t        | j                  | j                        D              }t	        j
                  || j                        }t        j                  ||        y )Nc              3   |   K   | ]4  \  }}t        t        j                  |      j                  |             6 y wN)tuplerA   r^   r_   ).0rb   rc   s      r!   	<genexpr>z*test_from_arrays_tuples.<locals>.<genexpr>   s4      C 	bjjo"";/0s   :<r5   )	rl   r]   r   r   r   r`   r   r   r   )rF   rd   r   s      r!   test_from_arrays_tuplesro      sP      #CJJ		 : F ##F#))<F&#&r#   )idx1idx2
2011-01-01Dr   freqperiodsz
2015-01-01h2015-01-01 10:00
US/Easternru   rv   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   r`   r   r   get_level_valuesr   )rp   rq   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 )Nrx   rs   r   ry   rz   rw   rt   r}   rr   r   r   r   )
r
   rQ   timedelta_rangeperiod_ranger   r`   r   r   r   r   )rp   rq   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   r`   r   r   r   r   values)rp   rq   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%   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     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   r`   )r   r.   s     r!   test_from_arrays_invalid_inputr   #  s?    : ;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   r`   )rp   rq   r.   s      r!   "test_from_arrays_different_lengthsr   E  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   r`   r   r   r<   r=   r   r    s       r!   $test_from_arrays_respects_none_namesr   O  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                  D   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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   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   7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   r`   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 rk   )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#   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   )rv   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 rk    xs    r!   <lambda>r     s     r#   c                     t        |       S rk   )r   r   s    r!   r   r     s
    fQi r#   c                     | j                   S rk   )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   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 %%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   :  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   H  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  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                  dt        j                  d g            d      }t        j                  |      }t        j                  t	        g d      j                  d      t        j
                         j                  | j                  dt        j                  d g            gddg	      }t        j                  ||       y )
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                     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  ry   )rv   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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_namesr*    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_namesr.    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   r`   r   r   r   s     r!   test_index_equal_empty_iterabler0    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_sortorderr3    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  MEry   )rv   ru   r{   r   r   today)rQ   DatetimeIndexr
   r   r`   r   r   r   rA   
datetime64r   r6  r	   	itertoolsproductr   r   r   )rp   rq   rF   	expected1date1date2date3d1d2r   date4s              r!   test_datetimeindexrB    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   r7  r   r`   r   r   r   r   r   )r   r   r   s      r!   test_constructor_with_tzrF  &  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   r6  r   r   r   r   r`   r   r   r   )varrrF   r8   rb   r   s         r!   %test_multiindex_inference_consistencyrJ  ;  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d}t        d|gt        j                  ddg      t
        	      }t        j                  ||       y )
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_representationrS  R  sl    ""QC#<
J7OPE\\F,((C	#$$j*%=>H
 68,r#   )Ir   r   r9  numpyrA   r)   pandas.core.dtypes.castr   pandasrQ   r   r   r   r	   r
   pandas._testing_testingr   r"   r/   r:   rJ   rS   rZ   re   rh   ro   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.  r0  r3  rB  rF  rJ  rS  r   r#   r!   <module>r[     s      K   %	$0#CL,@
" 6 ""'  BOOLsA>BOOLsA>	

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

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