
    Egh                        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j                            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j                            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j                            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j                            d9g g fg d:g fg g d;fg          d<             Z.ej                            d= e/ e0d>                              d?             Z1ej                            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j                            dDdEdFg          ej                            dGdH dI dJ g          dK                         Z5dL Z6dM Z7ej                            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j                            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j                            d_dd`dagfdbdcgdbdcgfg          dd             ZAej                            dedfg d;dgfg          dh             ZBdi ZCdj ZDdk ZEdl ZFdm ZGdn ZHdS )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 d S )N)foobarbazquxr            firstlevelscodesnamesnamer   )r   
isinstancer   tmassert_index_equalr   r   resultexpecteds     a/var/www/sysmax/venv/lib/python3.11/site-packages/pandas/tests/indexes/multi/test_constructors.pytest_constructor_single_levelr"      s    ,,,-lll^G9  F fj)))))111@@@H&-*H555<G9$$$$$$    c                     d} t          j        t          |           5  t          g g            d d d            n# 1 swxY w Y   d} t          j        t          |           5  t          g            d d d            n# 1 swxY w Y   t          j        t          |           5  t          g            d d d            d S # 1 swxY w Y   d S )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	,	,	,                   s3   <A A $BBB'CC	C	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            n# 1 swxY w Y   t          ddgddggg dg dgd          }dgdgg}t          j        t          |
          5  |                    |           d d d            n# 1 swxY w Y   t          j        t          |
          5  |                    |           d d d            d S # 1 swxY w Y   d S )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###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s5   AAAC  CC&D

DDc                    t          j        dg          t          j        dg          t          j        dg          g}dg}d}t          j        t          |          5  t          ||           d d d            n# 1 swxY w Y   d}d	}d
}t          j        t          |          5  t          dgdggg dg dg           d d d            n# 1 swxY w Y   t          j        t          |          5  t          dgdggg dddgg           d d d            n# 1 swxY w Y   t          j        t          |          5  |                                                     dgdgg           d d d            n# 1 swxY w Y   t          j        t          |          5  |                                                     g dddgg           d d d            n# 1 swxY w Y   |                                                     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            d S # 1 swxY w Y   d S )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#   Xqc]]BHaSMM28QC==9EUF
7C	z	-	-	- / /&..../ / / / / / / / / / / / / / /	7  4K< 
z	6	6	6 N NC53%.|||0LMMMMN N N N N N N N N N N N N N N 
z	5	5	5 H HC53%.1v0FGGGGH H H H H H H H H H H H H H H 
z	6	6	6 . .

usen---. . . . . . . . . . . . . . . 
z	5	5	5 5 5

lllQF34445 5 5 5 5 5 5 5 5 5 5 5 5 5 5
 HHJJq!f5NNN 
z)9	:	:	: C CC53%.!R1a&0ABBBBC C C C C C C C C C C C C C C C C Csl   A==BB)CCC7DD#&D#,E==FF#.GG!$G!2II"Ic                  .   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                              t          j        dt          j        dd gg          } t          j        | |           t          t          j        dt          j        dd ggg d	g                              g dg          } t          j        | |           d S )
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   s    rvsA./8K8K8K7L  F rvsA./8N8N8N7O  H &(+++bfc401:M:M:M9N  F bfc401:P:P:P9Q  H &(+++  )<)<)<(=  j263T2344  &(+++bfc401:L:L:L9M  i$$$%&&  &(+++++r#   c                  T   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 d S )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    Xooo&&FH***++E
(C	FF+E5>	M	M	MB8A;q>S    E!H8A;q>S    
)CF1I9Q<?c!!!!!!r#   c                    d t          | j        | j                  D             }t          j        || j                  }t          j        ||            t          j        t          j	        t          d          gddgg          }|j        d                             t          t          d          g                    sJ |j        d                             t          ddg                    sJ d S )Nc                 b    g | ],\  }}t          j        |                              |          -S  rA   asarraytake.0levlevel_codess      r!   
<listcomp>z$test_from_arrays.<locals>.<listcomp>   B       C 	
3[))  r#   r5   20130101r<   r=   r   r   )zipr   r   r   from_arraysr   r   r   rQ   rR   r	   equalsr   rF   arraysr   s      r!   test_from_arraysrm      s      #CJ	 : :  F #F#)<<<F&#&&& #bfi
.C.C%DsCj$QRRF=""5)J*?*?)@#A#ABBBBB=""5#s#4#45555555r#   c                 \   d t          | j        | j                  D             }t          j        t          |          | j                  }t          j        ||            d}t          j
        t          |          5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nc                 b    g | ],\  }}t          j        |                              |          -S r]   r^   ra   s      r!   re   z-test_from_arrays_iterator.<locals>.<listcomp>   rf   r#   r5   z/Input must be a list / sequence of array-likes.r%   r   )rh   r   r   r   ri   iterr   r   r   r)   r*   r,   )rF   rl   r   r.   s       r!   test_from_arrays_iteratorrq      s      #CJ	 : :  F #DLL	BBBF&#&&& <C	y	,	,	, " "q!!!" " " " " " " " " " " " " " " " " "s   ?B!!B%(B%c                     t          d t          | j        | j                  D                       }t	          j        || j                  }t          j        ||            d S )Nc              3      K   | ];\  }}t          t          j        |                              |                    V  <d S N)tuplerA   r_   r`   ra   s      r!   	<genexpr>z*test_from_arrays_tuples.<locals>.<genexpr>   sX        C 	bjoo"";//00     r#   r5   )	ru   rh   r   r   r   ri   r   r   r   rk   s      r!   test_from_arrays_tuplesrw      sm       #CJ	 : :    F #F#)<<<F&#&&&&&r#   )idx1idx2
2011-01-01Dr   freqperiodsz
2015-01-01h2015-01-01 10:00
US/Easternr}   r~   tz
Asia/Tokyo1 daysz2 hoursc                    t          j        | |g          }t          j        |                    d          |            t          j        |                    d          |           t          j        t          |           t          |          g          }t          j        |                    d          |            t          j        |                    d          |           t          j        ||           d S )Nr   r   )r   ri   r   r   get_level_valuesr   )rx   ry   r   result2s       r!   =test_from_arrays_index_series_period_datetimetz_and_timedeltar      s    $ #T4L11F&11!44d;;;&11!44d;;;$fTllF4LL%ABBG'22155t<<<'2215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        |                    d
          |            t          j        |                    d          |           t          j        |                    d          |           t          j        |                    d          |           t	          j        t          |           t          |          t          |          t          |          g          }t          j        |                    d
          |            t          j        |                    d          |           t          j        |                    d          |           t          j        |                    d          |           t          j        ||           d S )Nr   r{   r   r   r   r   r|   r   rz   r   r   r   )
r
   rQ   timedelta_rangeperiod_ranger   ri   r   r   r   r   )rx   ry   idx3idx4r   r   s         r!   )test_from_arrays_index_datetimelike_mixedr      s   (sA,OOOD(sA>>>DhS!<<<D?<c1===D#T4t$<==F&11!44d;;;&11!44d;;;&11!44d;;;&11!44d;;;$	vd||VD\\6$<<@ G '22155t<<<'22155t<<<'22155t<<<'22155t<<<&'*****r#   c                  v   t          j        t          d          t          d          d          } t          j        t          d          t          d          d          }t          j        | |g          }t          j        |                    d          |            t          j        |                    d          |           t          j        t          |           t          |          g          }t          j        |                    d          |            t          j        |                    d          |           t          j        | j	        |j	        g          }t          j        |                    d          |            t          j        |                    d          |           d S )NabcaabbacF
categoriesorderedTr   r   )
rQ   CategoricalIndexlistr   ri   r   r   r   r   values)rx   ry   r   r   result3s        r!   )test_from_arrays_index_series_categoricalr      sb   tH~~$u++uUUUDtH~~$u++tTTTD#T4L11F&11!44d;;;&11!44d;;;$fTllF4LL%ABBG'22155t<<<'22155t<<<$dk4;%?@@G'22155t<<<'22155t<<<<<r#   c                  D   d} t          j        t          |           5  t          j        g            d d d            n# 1 swxY w Y   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 ]d}g g|z  }t          d	          d |         }t          j        ||          }t          g g|z  g g|z  |
          }t          j        ||           ed S )N)Must pass non-zero number of levels/codesr%   rl   Arl   r   r   r   )r   r   ABCr   )r)   r*   r+   r   ri   r   r   r   r   r   r   r   )r.   r   r    Nrl   r   s         r!   test_from_arrays_emptyr     s{   
5C	z	-	-	- * *b))))* * * * * * * * * * * * * * * #B4u===Ffj)))))Rc"""H&-*H555<C5      0 0UBQB'vUCCCbTAXbTAXUKKK
fh////0 0s   A  AA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            d S # 1 swxY w Y   d S )Nz.Input must be a list / sequence of array-likesr%   r   )r)   r*   r,   r   ri   )r   r.   s     r!   test_from_arrays_invalid_inputr   #  s    : ;C	y	,	,	, B B&@AAAAB B B B B B B B B B B B B B B B B B   AAAz
idx1, idx2r   r   r   c                     d}t          j        t          |          5  t          j        | |g           d d d            d S # 1 swxY w Y   d S )Nz ^all arrays must be same length$r%   )r)   r*   r+   r   ri   )rx   ry   r.   s      r!   "test_from_arrays_different_lengthsr   E  s    
 -C	z	-	-	- - -d|,,,- - - - - - - - - - - - - - - - - -s   AA	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        ||           d S )	Nr   r   r   rU   r   r5   r   r   r   r   )r   r   ri   r   r   r<   r=   r   r    s       r!   $test_from_arrays_respects_none_namesr   O  s    yyyu%%%AU+++A#QF$777F		???+IIIyyy3IQU  H &(+++++r#   c                  2   d} t          j        t          |           5  t          j        g            d d d            n# 1 swxY w Y   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        ||           d S )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GGGF&(+++++s   ?AAc                  X   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            d S # 1 swxY w Y   d S )Nr   r   r   r>   r   r<   r=   r   r5   z/Input must be a list / sequence of tuple-likes.r%   )r   r   rh   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$7SzJJJF&(+++ <C	y	,	,	, " "q!!!" " " " " " " " " " " " " " " " " "s   =BB#&B#c                      t          j        g ddg          } t          j        g g gddg          }t          j        | |           d S )Nr<   r=   r5   r   )r   r   ri   r   r   r   s     r!   test_from_tuples_emptyr   }  sQ    #BsCj999F%b"Xc3ZHHHH&(+++++r#   c                 v    t          j        |           }|j        | j        k                                    sJ d S rt   )r   r   r   all)rF   r   s     r!   test_from_tuples_index_valuesr     s9    #C((FMSZ',,.......r#   c                  $   g d} d}t          j        t          |          5  t          | d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          | d           d d d            d S # 1 swxY w Y   d S )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  AA&BB	B	c                      t          j        g dg dgg d                              ddg          } t          j        ddgd	
          }t          j        ddgdg|          }t          j        | |           d S )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     s    |	NNN#___  ic
  
 &+!6j
I
I
IC\1a&3%s;;;F(F+++++r#   c                      d} t          j        t          |           5  t          j        g            d d d            d S # 1 swxY w Y   d S )Nr   r%   )r)   r*   r+   r   from_productr-   s    r!   #test_from_product_empty_zero_levelsr     s    
5C	z	-	-	- $ $###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   A  AAc                      t          j        g gdg          } t          g d          }t          j        | j        d         |           | j        dgk    sJ d S )Nr   r5   r   r   )r   r   r   r   r   r   r   r   s     r!   !test_from_product_empty_one_levelr     sb    $bT#777FRc"""H&-*H555<C5      r#   zfirst, second)r   r   r   rU   c                     ddg}t          j        | |g|          }t          | |gg g g|          }t          j        ||           d S )Nr   Br5   r   r   r   r   r   )r   secondr   r   r    s        r!   "test_from_product_empty_two_levelsr     s[     #JE$eV_EBBBF%RNNNH&(+++++r#   r   r>   c                     g d}t          t          |                     }t          j        g |g g|          }t          g |g gg g g g|          }t	          j        ||           d S )N)r   r   Cr5   r   )r   ranger   r   r   r   )r   r   lvl2r   r    s        r!   $test_from_product_empty_three_levelsr     sr     OOEa>>D$b$^5AAAF"dBB|5QQQH&(+++++r#   invalid_inputc                     d}t          j        t          |          5  t          j        |            d d d            d S # 1 swxY w Y   d S )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 9-88889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 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        |           d S )Nz
2000-01-01r   )r~   r   z
2000-01-02)r
   r   r   r   r	   r   assert_numpy_array_equalr   )dt_indexr8   etalons      r!   test_from_product_datetimeindexr     s    ,222H		 1a&(!3	4	4B4	,''(	,''(	,''(	,''(		
 F 	622222r#   c                      t          t          d                    } ddg}t          j        | |g          }t	          j        |j        d         | d           d S )NrO   r<   r=   r   T)exact)r   r   r   r   r   r   _levels)rngotherr8   s      r!   test_from_product_rangeindexr     sT    
a//C#JE		 #u	.	.B"*Q-D999999r#   r   FTfc                     | S rt   r]   xs    r!   <lambda>r     s     r#   c                      t          |           S rt   )r   r   s    r!   r   r     s    fQii r#   c                     | j         S rt   )r   r   s    r!   r   r     s    18 r#   c                    ddg}t          j        t          d          t          d          |           }t          j        t          d          t          d          z   t          d          |           }t          j        | ||          g          }t          j        |                    d          |           d S )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

d8nneg
V
V
VC"Xh'DKK  H $eQQsVV_55F&11!44h?????r#   c                      g d} g d}ddg}t          j        | |g|          }g d}t          j        ||          }t          j        ||           d S )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     sz    !!!E__FhE$eV_EBBBF
 
 
F %fE:::H&(+++++r#   c                  Z   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            d S # 1 swxY w Y   d S )
Nr   rU   r   r   r   r5   z-Input must be a list / sequence of iterables.r%   r   )	r   r   r   rp   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&/%:%:%HHHF&(+++ :C	y	,	,	, # #"""# # # # # # # # # # # # # # # # # #s   >B  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        ||           d S )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   #  so     $aV,,F		C:&!!!#5#5#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        ||           d S )Nr   r   r   r<   r=   r   r5   r   r   r   )r   r   r   r   r   r   s       r!   %test_from_product_respects_none_namesr   :  s    yyyu%%%ASz&&&A$aV4888F		C:&!!!#5#5#56  H
 &(+++++r#   c                      t          j        t          d                    } ddg}t          j        | |g          }|                     d           t          j        | |g          }t          j        ||           d S )Nr   r<   r=   F)write)rA   rB   r   r   r   setflagsr   r   )r<   r=   r    r   s       r!   test_from_product_readonlyr  H  su    
qA	c
A&1v..HJJUJ$aV,,F&(+++++r#   c                 4   | }ddg|_         t          |          }t          t          g dd                    }t          j        ||           t          |d          }t          t          g dd          d          }t          j        ||           d S )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        ||           d S )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  }  s    	
sc3Z#sc3Z84,
 
 
B %888t  H "2&&F(F+++++r#   c            
      X   t          j        d          } t          j        t	          g dd          t          j                                        |                     dt          j	        d g                    d          }t          j        |          }t          j        t	          g d                              d          t          j                                        |                     dt          j	        d g                    gddg	          }t          j        ||           d S )
Npyarrow)r   r   NInt64r  g?r   r<   r=   r5   )r)   importorskiprQ   r   r   Float64Dtype__from_arrow__rB   rA   rP   r   r  ri   astyper   r   )par  multi_indexedr    s       r!   )test_from_frame_missing_values_multiIndexr    s   		Y	'	'B	G444""11"((C;N2O2OPP	
 	

 
B )"--M%<<<  ''00O,,RXXsBFD6I-J-JKK	
 Cj  H -22222r#   	non_frame)r   r   r   r>   rO         c                     t          j        t          d          5  t          j        |            d d d            d S # 1 swxY w Y   d S )NzInput must be a DataFramer%   )r)   r*   r,   r   r  )r  s    r!   test_from_frame_errorr    s     
y(C	D	D	D ) )i((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   >AAc                     t          j        t          ddd          g dt          j        g dd          g d	d
          } | j                                        }t          j        t          ddd          g dt          j        g dd          g d	gg d
          }t          j        |           fdt          j
                  D             }t          j        |           ||k    sJ d S )N19910905r  r   )r~   r   )r   r   r   r   r   r   )r<   r<   r=   r=   rV   rV   T)r   )r   r   yzr   r   )datesr<   r=   rV   r5   c                 <    i | ]\  }}|j         |         j        S r]   )r   r  )rb   ir   r8   s      r!   
<dictcomp>z2test_from_frame_dtype_fidelity.<locals>.<dictcomp>  s(    MMMgary|)MMMr#   )rQ   r   r
   Categoricaldtypesto_dictr   ri   r  	enumerater   r   r   )r  original_dtypesexpected_mi	mi_dtypesr8   s       @r!   test_from_frame_dtype_fidelityr-    s3   	
A,GGG### > > >MMM///		
 	

 
B i''))O(z1>>>N9994HHH***		
 '&&  K 
	r	"	"BMMMM289L9LMMMI+r***i''''''r#   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 d S )Nr<   r=   r.  r/  r   r5   )rQ   r   r   r   r  r   )names_in	names_outr  r8   s       r!   test_from_frame_valid_namesr3    sy    
 

sc3Z#sc3Z8&['ABB
 
 
B 
	r	2	2	2B8y      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            d S # 1 swxY w Y   d S )Nr<   r=   r.  r/  r   r%   r5   )rQ   r   r   r   r)   r*   r+   r  )r   expected_error_msgr  s      r!   test_from_frame_invalid_namesr7    s     

sc3Z#sc3Z8&['ABB
 
 
B 
z);	<	<	< / /b..../ / / / / / / / / / / / / / / / / /s   A66A:=A:c                      t          g g gg g gddg          } t          j        g g gddg          }t          j        | |           d S )Nr<   r=   r   r   )r   ri   r   r   r   s     r!   test_index_equal_empty_iterabler9    sX    2r(2r(3*EEEAr2hsCjAAAA!Qr#   c                  t   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            n# 1 swxY w Y   t          j        t          d	          5  t          | g dg dgd           d d d            d S # 1 swxY w Y   d S )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    !fiii F 0002D2D2DEQR    
z)Q	R	R	R 
 
"4"4"46H6H6H!IUV	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
z)Q	R	R	R 
 
"4"4"46H6H6H!IUV	
 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s#   A!!A%(A%B--B14B1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 ]k\  }}t          j        |g|gg          }	t!          |	j        d
         t           j                  sJ t!          |	j        d         t           j                  sJ lt#          j                    }
t          j        |
g|gg          }	t!          |	j        d
         t           j                  rJ t!          |	j        d         t           j                  sJ d S )N)z2013-04-01 9:00z2013-04-02 9:00z2013-04-03 9:00r   r   )r   z
2010/01/01r  MEr   )r~   r}   r   r   r   today)rQ   DatetimeIndexr
   r   ri   r   r   r   rA   
datetime64r   r?  r	   	itertoolsproductr   r   r   )rx   ry   rF   	expected1date1date2date3d1d2r   date4s              r!   test_datetimeindexrK    s   AAAAE,  D lAD\JJJD

 $
.
.C AAAl  I #*Q-333#*Q-... M'""ENEOE#UE5$9E5%;PQQ = =B'"t55%,q/2+;<<<<<%,q/2+;<<<<<< JLLE#eWug$677E%,q/2+;<<<<<el1or'78888888r#   c                  2   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         |           d S )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   ri   r   r   r   r   r   )r   r   r   s      r!   test_constructor_with_tzrO  &  s    	/0u  E 	/0u  G #UG$455F<E5>))))&-*E222&-*G444#VE]]F7OO$DEEF<E5>))))&-*E222&-*G4444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 |D                       }|j        d         }|j        t          k    sJ d S )Nr   c                     g | ]}|fS r]   r]   )rb   r   s     r!   re   z9test_multiindex_inference_consistency.<locals>.<listcomp>M  s     3 3 3!! 3 3 3r#   )
r   r?  r   r  r  r   ri   r   r   r   )varrrF   r8   rc   s        r!   %test_multiindex_inference_consistencyrT  ;  s     	
Aa&C
**C9			&	&B
)A,C9		 #	'	'B
)A,C9		 3 3s 3 3 3	4	4B
)A,C9r#   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        ||           d S )
Nr   r<   r   )rV   dr5   r  stringint64)r   r  )r   ri   r'  r   r   r  r   assert_series_equal)using_infer_stringpmidxr   expr    s        r!   test_dtype_representationr]  R  s    "QC#<
J7OPPPE\F,
:(((C	#$j*%=>>  H
 68,,,,,r#   )Ir   r   rB  numpyrA   r)   pandas.core.dtypes.castr   pandasrQ   r   r   r   r	   r
   pandas._testing_testingr   r"   r/   r:   rJ   rS   rZ   rm   rq   rw   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-  r3  r7  r9  r<  rK  rO  rT  r]  r]   r#   r!   <module>re     s&                   K K K K K K                       % % %	 	 	$ $ $0#C #C #CL, , ,@
" 
" 
" 6 6 6 " " ""' ' '  BOLsA>>>BOLsA>>>	

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

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


a	
QC
	q		
D		/ 8B B9 8B IIISz*R#s,<yyy"oN - - -
, 
, 
, , , ," " " , , ,/ / /
  , , ,$ $ $! ! ! r2h!6!6!6 ;b///=RS , , , dd5588nn--, , .-, a!q!fsAhcUS#J#PSU 9 9 93 3 3: : : UDM22{{,?,?ASASTUU
@ 
@ VU 32
@, , ,,# # #8  F9995)))FC:E***EN	

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