HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/pandas/tests/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/pandas/tests/__pycache__/test_multilevel.cpython-36.pyc
3

���h��@s�ddlZddlmZddlZddlmZddlZddlmZddl	Z	ddl
mZmZddl
Zddl
mZmZmZmZmZddljZddd	d
ddd
ddddgZGdd�d�ZGdd�de�ZGdd�de�ZdS)�N)�StringIO)�product)�randn)�is_float_dtype�is_integer_dtype)�	DataFrame�Index�
MultiIndex�Series�	Timestamp�sum�prod�min�maxZmedian�meanZskewZmad�std�varZsemc@seZdZdd�ZdS)�Basec
Csftddddgdddggdddd	d	d
d
dddg
dd	d
dd	d	d
dd	d
g
gdd
gd�}ttjjdd�|tdddgdd�d�|_tddddggdd	d
dggdgd�|_ddddddddgddddddddgg}t|�}tj	|�}t
td�|d�}tj|d<||_t
jd�|_|jjdd�dd�dd�g�j�|_|jjjdd�|jjjD�dd �|jjjd!d"d#gdd �dS)$N�foo�bar�baz�qux�one�two�threer����first�second)�levels�codes�names�
�A�B�C�exp)�name)�index�columns�)r)�dcSs|jS)N)�year)�x�r/�>/tmp/pip-build-5_djhm0z/pandas/pandas/tests/test_multilevel.py�<lambda>>sz#Base.setup_method.<locals>.<lambda>cSs|jS)N)�month)r.r/r/r0r1>scSs|jS)N)�day)r.r/r/r0r1>scSsg|]}|jd��qS)�i8)�astype)�.0Zlevr/r/r0�
<listcomp>Csz%Base.setup_method.<locals>.<listcomp>T)Zinplacer-r2r3)r	r�np�randomrr�frameZsingle_level�zip�from_tuplesr
�NaN�series�tm�makeTimeDataFrameZtdf�groupbyr�ymdr)Z
set_levelsr �	set_names)�self�methodr)�arrays�tuples�sr/r/r0�setup_method s..$

zBase.setup_methodN)�__name__�
__module__�__qualname__rIr/r/r/r0rsrc
@seZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zejjd%d&d&d'd'd(d'gd)d)d'd'd(d'ggd*d+d,d-d.d/gd)d'd'd(d'gfd&d&d'd'd(gd)d)d'd'd(ggd*d+d,d-d.gd)d'd'd(gfd&d&d'd'd(gd)d'd'd'd(ggd*d+d,d-d.gd'd'd'd(gfg�d0d1��Zd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Zejjd>d?d@g�dAdB��ZdCdD�Z dEdF�Z!dGdH�Z"dIdJ�Z#dKdL�Z$dMdN�Z%dOdP�Z&dQdR�Z'dSdT�Z(dUdV�Z)dWdX�Z*dYdZ�Z+d[d\�Z,d]d^�Z-ejj.d_d`��Z/dadb�Z0dcdd�Z1dedf�Z2dgdh�Z3didj�Z4dkdl�Z5dmdn�Z6dodp�Z7dqdr�Z8ejjdse9�ejjdtdud&g�ejjdvdwdxg�ejjdydwdxg�dzd{�����Z:ejjdse9�ejjdtdud&g�ejjd|dud&g�ejjdvdwdxg�ejjdydwdxg�d}d~������Z;dd��Z<d�d��Z=d�d��Z>d�d��Z?d�d��Z@d�d��ZAd�d��ZBd�d��ZCd�d��ZDd�d��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMejjd�d�d�g�d�d���ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZRd�d��ZSd�d��ZTd�d��ZUd�d��ZVd�d��ZWd�d��ZXd�d��ZYd�d��ZZd'S)��TestMultiLevelcCs^|jdd�|jdd�}}|j|�}tj||j�|dj|d�}tj||jd�dS)N�r$)r:�appendr?�assert_frame_equal�assert_series_equal)rD�a�b�resultr/r/r0�test_appendIs

zTestMultiLevel.test_appendcCs�ttjjdd�tjddddg�tjddddg�gd�}t|jt�sFt�t|j	t�sXt�ttjjdd�ddddgddddggd�}t|j	t�s�t�dS)N�rRrSr.�y)r))r*)
rr8r9r�array�
isinstancer)r	�AssertionErrorr*)rD�multir/r/r0�test_dataframe_constructorRs((z)TestMultiLevel.test_dataframe_constructorcCs�tdtjddddg�tjddddg�gd�}t|jt�s<t�tdddddgddddggd�}t|jt�slt�ttd�ddddgddddggd�}t|jt�s�t�dS)Ng�?rRrSr.rW)r)rV)r
r8rXrYr)r	rZ�range)rDr[r/r/r0�test_series_constructor_s* $z&TestMultiLevel.test_series_constructorcCs�|jjdd�}|j|jjdd�}|jjdd�jtj�}tj||�|dj|jjdd�}|jdjdd�jtj�}tj	||dd�|jj
jddd�}|j|jjdd�}|jjdd�jtj�j
}tj||�dS)	Nr2)�levelrr$F)�check_names)�axisr_)r*r_)rBr�reindexr)rA�	transformr8r?rPrQ�T)rD�
month_sumsrT�expectedr/r/r0�test_reindex_levelksz!TestMultiLevel.test_reindex_levelcs0�fdd�}|d�|d�|d�|d�dS)Ncs�tt|�}�jjdd�}|�j|dd�}�jjdd�jtj�}|�j|�}tj||�tt	|�}|�jd|ddd�}�jdjdd�jtj�}|�jd|�}d|_
tj||�dS)Nr2)r_r$)�getattrrrBrrArcr8r?rPr
r(rQ)�opname�oprerTZbroadcastedrf)rDr/r0�	_check_ops

z3TestMultiLevel.test_binops_level.<locals>._check_op�sub�add�mul�divr/)rDrkr/)rDr0�test_binops_level~s
z TestMultiLevel.test_binops_levelcCs8dd�}||j�||jj�||j�||jj�dS)NcSstj|�}tj||�dS)N)r?Zround_trip_picklerP)r:Z	unpickledr/r/r0�_test_roundtrip�s
z3TestMultiLevel.test_pickle.<locals>._test_roundtrip)r:rdrB)rDrqr/r/r0�test_pickle�s


zTestMultiLevel.test_picklecCs0|jjddg}|jjddg}tj||�dS)Nrrrrr)rr)rr)r:�iloc�locr?rP)rDrfZ	reindexedr/r/r0�test_reindex�szTestMultiLevel.test_reindexcCs�|jjddd�}|jj|�}|j|ks,t�|jj|}|j|ksFt�|jj}|j|d�}|j|ksht�|jdd�|f}|j|ks�t�dS)Nr#)r*)rBr)rbrZrtrdr*)rDZ	new_index�chunkZymdTr/r/r0�test_reindex_preserve_levels�sz+TestMultiLevel.test_reindex_preserve_levelscCsrt|j�t|j�t|jj�t|jj�t�}|jj|d�|jj|d�|jjj|d�|jjj|d�dS)N)�buf)�reprr:rBrdrZ	to_string)rDrxr/r/r0�test_repr_to_string�s

z"TestMultiLevel.test_repr_to_stringcCsPtjddgdddgd�}td	ddgi|d
�}t|�jd�}|djd
�sLt�dS)NrRrrrSrr�c)r"�value)r)�
rza 0 foo)rRrr)rSrr)r	r<rry�split�
startswithrZ)rDr)�df�linesr/r/r0�test_repr_name_coincide�s
z&TestMultiLevel.test_repr_name_coincidecCszttddgddgddg��}tj|ddd	gd
�}ttjjdd�d
ddg|d�}|j�}t	|d�sft
�t|d	�svt
�dS)Nrrr#�g�?g�������?Zprm0Zprm1Zprm2)r"r+rr$r%r&)r*r))�listrr	r<rr8r9r�reset_indexrrZr)rDrGr)r��	deleveledr/r/r0�test_delevel_infer_dtype�sz'TestMultiLevel.test_delevel_infer_dtypecCs�|jjdd�}t|j�t|jj�ks(t�|jj|jjjks>t�|jj�}t|t	�sVt�t|j�t|jjj
�dksvt�|jj|jjjks�t�|jjdd�}t|t�s�t�|jj|jjjks�t�dS)NT)�dropr)rBr��lenr*rZr)r(r>rYrr r
)rDr�r/r/r0�test_reset_index_with_drop�s
 z)TestMultiLevel.test_reset_index_with_dropc
Cs�ddd�}tj|jjdddgf<tj|jjdddgf<tj|jjdddgf<tj|jjdddgf<||j�||j�||jjdd�||jjdd�tj�}tj	t
dd	��|jdd
�WdQRXd|jd<|jjdd
d�}tj|j
ttd�dd��dS)NrcSs^|j|�}xNt|j�D]@}|j||d�}|j||d�j�}|j|�jd�}tj||�qWdS)N)rar_r4)	�	_get_axisr]Znlevels�countrAZreindex_liker5r?rP)r:rar)�irTrfr/r/r0�
_check_counts�s
z6TestMultiLevel.test_count_level.<locals>._check_countsrr�)raZhierarchical)�match)r_r�DT)r_Znumeric_only�ABCr')r()r)r8�nanr:rsrBrdr?r@�pytest�raises�	TypeErrorr��assert_index_equalr*rr�)rDr�r�rTr/r/r0�test_count_level�s



zTestMultiLevel.test_count_levelcCs�tdddddgdddddgdd	d	d	dgd
��}|jddg�jdd
�}ttddgdd�tdg�ddgd�}tj||�|jddg�jjddd�}ttddgdd�tdg�ddggd�}tj||�dS)NZJohnZMylag8@rNg5@�!�FT)�Person�Age�Singler�r�)r_)r(r�r)r)r*�datar)r_ra)r*r)r�)r�	set_indexr�rr?rPrd)rDr��resrfr/r/r0�test_count_index_with_nan�s z(TestMultiLevel.test_count_index_with_nancCs�tdddgddddggdddd	d	gd	dd
d
d	ggd�}ttjjt|��|d�}|jdd
�}|jdd
�j�}tj	|j
d�|j|j�j
d��|jd
d
�}|jd
d
�j�}tj	|j
d�|j|j�j
d��dS)Nrrrrrr�fourrrr)r r!)r))r_Zf8)r	r
r8r9rr�r�rAr?rQr5rbr)�fillna)rDr)rHrTrfr/r/r0�test_count_level_seriess z&TestMultiLevel.test_count_level_seriescCs�|jddd�}|jdd�}td|jjddd�}tj||�|jdd�}|jdd�}t|jjdjdg�|j	d�j
d�jtj
�}tj||�dS)Nr$r)r_)r)r(r)r)r*)r:r�r
r)r r?rQrrCr*r�r5r8�int64rP)rDrHrTrfr�r/r/r0�test_count_level_corner+sz&TestMultiLevel.test_count_level_cornercCsTtjtdd��|jjjd�WdQRXtjtdd��|jjjd�WdQRXdS)NzToo many levels)r�rznot a valid level numberr���)r�r��
IndexErrorr:r)Z_get_level_number)rDr/r/r0�#test_get_level_number_out_of_bounds:sz2TestMultiLevel.test_get_level_number_out_of_boundscCs8|jj�}|j�|jjt�j�|jjtj�j�dS)N)rB�unstackr5�intr8Zint32)rD�	unstackedr/r/r0�test_unstack@s
zTestMultiLevel.test_unstackz5result_rows,result_columns,index_product,expected_rowrNg>@r�ix1�ix2Zcol1Zcol2Zcol3Zcol4cCsxtj||d�jddg�}|jdd�jd�}tj|gtjj|dd�|ggddgd�tjdgdd�d�}tj	||�dS)	N)r*r�r�rr)r")r()r*r))
�pdrr�rsr�r	�from_productrr?rP)rDZresult_rowsZresult_columnsZ
index_productZexpected_rowrTrfr/r/r0�test_unstack_partialKs
z#TestMultiLevel.test_unstack_partialcCsRtjdd
ddg�}ttjjd�|d�}|jdd	g�}|jdd
d�}tj	||�dS)NrrrrrrrV)r)r�all)ra�how)rrr)rrr)rrr)rrr)
r	r<r
r8r9rr��dropnar?rP)rDr)rHr�rfr/r/r0�&test_unstack_multiple_no_empty_columnsvsz5TestMultiLevel.test_unstack_multiple_no_empty_columnscCs�|jj�}|j�}tj||j�|jjdd�}|jd�}|j�}tj|jdd�|j�|ddd�}|jd�}|j�jdd�}tj|jdd�|j�|jdd�}|jd�jdddd�}|jd�jdd�}tj|jdd�|j�|jj�}|jddd�}|j�}tj||j�|jjd�jd�}|jd�}|jj�}tj||�|jd�}|jjd�}tj||�|jd�}|jj�jd�jd�}tj||�|jjd�jdd�ddd�f}|j�j�}|jj�}tj||j	|j
��|jjd�jd�}|jjd�jd�}d	d
�}ttj
d�jdd�td
�dddgd�}	tddgdddggtjtj
d�jd�d�tjtj
d�d�gd�}
|	j�ttj
d�|
d�}}|||�dddg|	_tddgddggtjtj
d�jd�d�tjdddgd�gd�}
|	j�ttj
d�|
d�}}|||�d}
tj|
�|	_
tddgddgddggtjtj
d�jd�d�tjdddgdddg�tjdddgd�gd�}
|	j�ttj
d�|
d�}}|||�dS)Nr)r_rr)raF)raZ	ascendingrcSs:tj||�|jjdkst�|j|j}}tj||�dS)NF)r?rQr)Z	is_uniquerZr�)�left�right�li�rir/r/r0�check�sz(TestMultiLevel.test_stack.<locals>.check�rVZababZ1stZ2ndZ3rd)r)r*rRrS)r r!)r)��������rRr�rSr�rRr�rSr)r�r�r�r�)rBr��stackr?rP�
sort_index�	swaplevelrtrQrbr)rr8�arange�reshaper�r	�tile�repeatr
r*r<)rDr��	restackedZunlexsortedrTrf�stackedZymd_stackedr�r��mir�r�Ztplsr/r/r0�
test_stack�sx







 
.
.
zTestMultiLevel.test_stackcCs@d}tjt|��jdddg�}|jd�}|j�}tj||�dS)Naday,time,smoker,sum,len
Fri,Dinner,No,8.25,3.
Fri,Dinner,Yes,27.03,9
Fri,Lunch,No,3.0,1
Fri,Lunch,Yes,13.68,6
Sat,Dinner,No,139.63,45
Sat,Dinner,Yes,120.77,42
Sun,Dinner,No,180.57,57
Sun,Dinner,Yes,66.82,19
Thur,Dinner,No,3.0,1
Thur,Lunch,No,117.32,44
Thur,Lunch,Yes,51.51,17r3�timeZsmokerr)r�Zread_csvrr�r�r�r?rP)rDr�r�rT�reconsr/r/r0�test_unstack_odd_failure�s

z'TestMultiLevel.test_unstack_odd_failurecCsp|jj}d|d<|jddd�}|j�}|dj�j�}tj|d|dd�|jdksXt�|djt	j
kslt�dS)	Nrr�r)r_raF)r`r)rr�)r:rdr�r�r?rQr(rZ�dtyper8Zfloat_)rDr�r�rTr/r/r0�test_stack_mixed_dtype�sz%TestMultiLevel.test_stack_mixed_dtypec
Cs�tddddddgddddddgddddddgd	d	d
d
d
dgtjd�d
��}|jddddg�jt�}|j�}|j�}tj	||j
|j�jt
��dS)NZnaiveZactivrRrSrrrrV�hiZbyeZpeaceg@)�stater'�barcode�v�extrar�r'r�r�)rr8r�rA�applyr�r�r�r?rQrbr)r5�float)rDr�rTr�r�r/r/r0�test_unstack_bugszTestMultiLevel.test_unstack_bugcCsP|jj�}|jjdkst�|jjddgks.t�|j�}|jj|jjjksLt�dS)Nrr'r)r:r�r)r(rZr*r"r�)rDr�r�r/r/r0�!test_stack_unstack_preserve_namess

z0TestMultiLevel.test_stack_unstack_preserve_namesrEr�r�cCsz|jjd}tjtdd��t||�d�WdQRX|dkrv|jdd�df}tjtdd��t||�d�WdQRXdS)Nrzdoes not match index name)r�Zmistaker�r)r:rtr�r��KeyErrorrhrs)rDrEr�rHr/r/r0�#test_stack_unstack_wrong_level_namesz2TestMultiLevel.test_stack_unstack_wrong_level_namec	Cs^tdddgddggddgddggd�}tdtd	�|d
�}tjtdd��|dWdQRXdS)
NZa_lotZonlyoneZ
notevenonei��rr)r r!r)r)r*)r�r�)r	rr]r�r�r�)rDr�r�r/r/r0�test_unused_level_raises,sz'TestMultiLevel.test_unused_level_raisescCs*|jjd�}|jjdd�}tj||�dS)Nrr)r_)r:r�r?rP)rDrTrfr/r/r0�test_unstack_level_name7sz&TestMultiLevel.test_unstack_level_namecCsX|jjd�}|jd�}|jj�jd�}tj||�|jjd�}|jj�}tj||�dS)Nrr'r)r:r�r�r?rPrQ)rDr�rTrfr/r/r0�test_stack_level_name<s

z$TestMultiLevel.test_stack_level_namecCs@|jjddg�}|jjd�jd�}tj||�|jj|jjksBt�|jd}|jddg�}tj||d�|jddg�}|jdd�jdd�}|j	dd�}tj||j�|j
j|jj
jks�t�|jjddg�}|jjd�jd�jddd	�}tj||�|jjddg�}|jjd�jd�jddd	�}tj||jdd�|jf�dS)
Nr-r2r$rrr)r_r�)rar�)
rBr�r?rPr*r"rZr�r�r�r)r�rt)rDr�rfrHZs_unstackedr�r/r/r0�test_stack_unstack_multipleFs$
z*TestMultiLevel.test_stack_unstack_multiplec
Cs<|jjddg�}tjtdd��|jddg�WdQRXdS)Nr-r2zlevel should contain)r�r)rBr�r�r��
ValueErrorr�)rDr�r/r/r0�test_stack_names_and_numbersasz+TestMultiLevel.test_stack_names_and_numberscCsd|jjddg�}tjtdd��|jddg�WdQRXtjtdd��|jd	d
g�WdQRXdS)Nr-r2zToo many levels)r�rrznot a valid level numberrV���r�)rBr�r�r�r�r�)rDr�r/r/r0�!test_stack_multiple_out_of_boundshs
z0TestMultiLevel.test_stack_multiple_out_of_boundsc	Cstjddddddgddd�}tddgd	d
d�}dd
d	dddg}tj||g�}t||d�}|j�}|jdd�}|jdd�}tjdddgddd�}	tdd	dgd
ddgd�|	ddgd�}
d
|
j_	t
j||
�t
j||
�t
j||
j�tjddddddgddd�}tjddddddgddd�}tj||g�}t||d�}|j�}|jdd�}|jdd�}tjdddgddd�}	tjddddddgddd�}tt
jt
jt
jt
jd
dgt
jt
jdd	t
jt
jgddt
jt
jt
jt
jgg|	|d�}
t
j||
�t
j||
�t
j||
j�dS)Nz2013-01z2013-02z2013-03�MZperiod)�freqr(r$r%r�str)r(rrrVrNr�)r))r_r)r$r%)r)r*�period1z2013-12z2013-11z2013-10z2013-09z2013-08z2013-07�period2)r��PeriodIndexrr	�from_arraysr
r�rr*r(r?rPrdr8r�)rD�idx1�idx2r|�idxrH�result1�result2�result3Ze_idxrf�e_colsr/r/r0�test_unstack_period_seriesqs^"z)TestMultiLevel.test_unstack_period_seriesc
Cs�tjddddddgddd�}tjddddddgddd�}d	d
ddd
dgdd
ddd
d	gd�}tj||g�}t||d�}|j�}|jd	d�}|jdd�}tjddgddd�}	tjddddddgddd�}
tjdj�|
g�}td
d	dd
dd	gdd
ddd
dgg|	|d�}tj||�tj||�tjddddgddd�}	tjdddgddd�}
tjdj�|	g�}td
dd
dgd	d
dd
gddd	dgg|
|d�}tj||�dS)Nz2014-01z2014-02r�r�)r�r(z2013-12z2013-10r�rrrrVrNr�)r$r%)r))r_rzA A A B B B)r)r*zA A B B)	r�r�r	r�rr�r~r?rP)
rDr�r�r|r�r�r�r�r�Ze_1Ze_2r�rfr/r/r0�test_unstack_period_frame�s@"(*z(TestMultiLevel.test_unstack_period_framecCs�dgddgd}dgddgd}tjdddgd�}tjjd	d
d�}tt||||d��}|jd
dg�}d|j_	|j
d�}|jd�j�}|j
d�}	|jdd�dgfjd�j�j
d�}
d|
j_	tj|	|
�dS)z8 bug when some uniques are not present in the data #3170rrrrRrSz
2013-01-03z
2013-01-04z
2013-01-05rr,r�)�ID�NAME�DATE�VAR1r�r�ZParamszW-THUNr�)r��to_datetimer8r9�randintr�dictr�r*r(r�Zresamplerr�rtr?rP)rDZid_colr(�dateZvar1r�r[ZunstZdown�rsZxpr/r/r0�test_stack_multiple_bug�s

$z&TestMultiLevel.test_stack_multiple_bugcCsvtddgddgddgd��}|jddg�}|j�jd	d
�}t|�t|j��ksRt�|j�jdd
�}tj||j��dS)N�a1�a2�b1�b2r)r$r%r&r$r%F)r�T)	rr�r�r�r�r�rZr?rP)rDr�r�r/r/r0�test_stack_dropna�sz TestMultiLevel.test_stack_dropnacCs�tddddddddgddddddddgddddddddggddddgddddggd�}dddg|j_ddg|j_|jddg�dS)	Nrr)r)r*rRrSr{�d�e)rr)r"r*r�)rDr�r/r/r0�"test_unstack_multiple_hierarchicalsz1TestMultiLevel.test_unstack_multiple_hierarchicalcCs\|jd}|jjd�}|j|�}|jdd��}|jdd��}|j|j�}tj||dd�dS)Nr$rcSs|dS)Nrr/)r.r/r/r0r1sz7TestMultiLevel.test_groupby_transform.<locals>.<lambda>cSs|dS)Nrr/)r.r/r/r0r1sF)r`)	r:r)�get_level_valuesrAr�rcrbr?rQ)rDrHZgrouper�groupedZappliedrfrTr/r/r0�test_groupby_transforms

z%TestMultiLevel.test_groupby_transformc	Cs�d}ttjjd|d�tjjd|d�tjjdd|d�tjjdd|d�tjjd|d�tjj|�d��}|jd	d
ddd
g�}|jd
�dS)Ni�r,)�sizei,r��i�)r$r%r&r��E�Fr$r%r&r�ri����i��)rr8r9r�rr�r�)rDZNUM_ROWSr��idfr/r/r0�test_unstack_sparse_keyspacesz+TestMultiLevel.test_unstack_sparse_keyspacecCs~ddgddddgg}ddddgddddgg}t||�}ttjjdd�|d�}|j�}t|j�dksft�|j	�}t
j||�dS)NrrrrrV)r))r	rr8r9rr�r�r*rZr�r?rP)rDr r!r)r�rTr�r/r/r0�test_unstack_unobserved_keys2s
z+TestMultiLevel.test_unstack_unobserved_keysc	CsLttjjdd�tjd�tjd�gd�}tjtdd��|j�WdQRXdS)	Nr�)r)zint32 overflow)r�iii)	rr8r9rr�r�r�r�r�)rDr�r/r/r0�/test_unstack_number_of_levels_larger_than_int32As$z>TestMultiLevel.test_unstack_number_of_levels_larger_than_int32c
	Csdd�}x�dD]�}tjtjdddg|�dd�}xl|D]d}t|ddddgddddggd�}t|td	�gd
�}x,td�D] }|j|�}||||d|�qtWq4WqWtddd
gd
ddggtjtd�d�tj	td�d�gd�}	t|	td�tj
dt|	��jdd�d�}|||jd�dd�dS)Ncs&t����fdd��jD��s"t�dS)Nc3sB|]:}�jD].}�j||f�j||�f|�fkVqqdS)N)r*rt)r6�row�col)r��
df_stacked�lev0�lev1r/r0�	<genexpr>OszgTestMultiLevel.test_stack_order_with_unsorted_levels.<locals>.manual_compare_stacked.<locals>.<genexpr>)r�r)rZ)r�rrrr/)r�rrrr0�manual_compare_stackedMszTTestMultiLevel.test_stack_order_with_unsorted_levels.<locals>.manual_compare_stackedrrrr)r�)r r!rV)r*r�r$r&r%rN)r*r)r�)rrr�)
�	itertoolsr�permutationsr	rr]r�r8r�r�r�r�r�)
rDr�widthZlevels_possr r*r�Z	stack_levrr�r/r/r0�%test_stack_order_with_unsorted_levelsJs 

 
$&z4TestMultiLevel.test_stack_order_with_unsorted_levelscCs�tjd�}tjdd�|D�dd�|D�g�}tj|jddgd�}d|j_d	|i}tj|d
d�}ddg|j_	|j
t|j�d
d�}|jddg�j
ddg�}td
dgddgddgddgddggdd
dddgtjddgddgd�d�}tj||�dS)NrNcSsg|]}d|���qS)rSr/)r6r.r/r/r0r7pszJTestMultiLevel.test_stack_unstack_unordered_multiindex.<locals>.<listcomp>cSsg|]}d|���qS)rRr/)r6r.r/r/r0r7qsrSrR)r*rr.r)rarZa0Zb0rrrr�a3Zb3Za4Zb4rrrrV)r")r)r*)rRr.)rSr.)r8r�Zvstackr�rrdr*r(�concatr"rb�sortedr�r�r	r<r?rP)rD�valuesr�r�Zsecond_level_dictZmulti_level_dfrTrfr/r/r0�'test_stack_unstack_unordered_multiindexks"
 z6TestMultiLevel.test_stack_unstack_unordered_multiindexcCs\tdgdgdggdgdgdggdddgd�}ttjjd	�gd
ddd
g|d�}|jdd�dS)Nrrrrrrr)r r!r"rVrRrSr{r)r*r))r_)r	rr8r9ZrandrA)rD�midxr�r/r/r0�test_groupby_corner�s z"TestMultiLevel.test_groupby_cornercCs�tjddddddg�}tdddd	d
dgdd
ddddgg|d�}|jdd�|jjdd��}|jddd�}|j�}|jddgkj�s�t	�dS)N�f1�s1�s2�f2�f3rrrrVrNr�r�r+�	r#�r�)r*)racSs|ddkS)Nrr+r,)r+r,r/)�ur/r/r0r1�sz:TestMultiLevel.test_groupby_level_no_obs.<locals>.<lambda>r)rar_)r(r))r(r*)r+r))r+r*)r,r))r,r*)
r	r<rrtr*�maprArr�rZ)rDr&r��df1rrTr/r/r0�test_groupby_level_no_obs�s(z(TestMultiLevel.test_groupby_level_no_obscCs�|jj|jjdd�dgf}|jj|jjdd�ddgf}|j|dd�j|jj�}|jj�}tj|jtj	|j�<tj	|j�j
�s�t�tj
||dd	�dS)
NrNr$rr%r&�outer)r�F)r`)r:rtr)�joinrb�copyr8r�r$�isnanr�rZr?rP)rDrRrSZjoinedrfr/r/r0�	test_join�s 
zTestMultiLevel.test_joinc
CsD|jdj�}|jdjd�}|jdjdd�}|jdjdd�}|jj|jj�sXt�tj||�tj||�tj||�|j�}|jd�}|jdd�}|jdd�}|jj|jj�s�t�tj||�tj||�tj||�|jj}	|	jdddd�}|jjdd�j}
tj||
�d}t	j
t|d��tt
d	��j�WdQRXdS)
Nr$rrrr)raz,Can only swap levels on a hierarchical axis.)r�r)r:r�r)�equalsrZr?rQrdrPr�r�r�rr])rDZswappedZswapped2Zswapped3Zswapped4�backZback2Zback3Zback4�ftr'�msgr/r/r0�test_swaplevel�s.
zTestMultiLevel.test_swaplevelcCsH|jdd�j}|d|d<t|jt�s,t�|d|d	kj�sDt�dS)
NrN��rr�r#)r=rr�)r=rr#)r=rr#)r=rr�)rBrdrYr*r	rZr�)rDr�r/r/r0�test_insert_index�sz TestMultiLevel.test_insert_indexcCs�tdddgtjddd
g�d�}tddd	gtjdddg�d�}||}|jj|j�}|j|�|j|�}tj||�|ddd�|ddd�}|jj|j�}|j|�|j|�}tj||�dS)Nrrrr$r%)r�r)rVrNr��Z)r$r)r$r)r%r)r?r)r?r)r%rr�r�)r
r	r<r)�unionrbr?rQ)rDr.rWr��	exp_indexr'r/r/r0�test_alignment�szTestMultiLevel.test_alignmentcCs*|jj�}ddg|j_|jdd�}|jjdd�}tj||dd�|jdd�}|jjdd�}tj||dd�|jj�}ddg|j_|jdd�}|jjdd�jd�}tj	||�|jdd�}|jjdd�jd�}tj	||�d}t
jt|d	��|jd
�WdQRXt
jt|d	��|jd
d�WdQRXdS)NrRrS)r_rF)r`rzLevel x not found)r�r.)
r:r5r)r"r�r?rPr>�rename_axisrQr�r�r�)rDr:rT�expectr>r;r/r/r0�
test_count�s*

zTestMultiLevel.test_countrjr_r�skipnaTF�sortcsX|jj||d�}|j��fdd��}t|j��|�d�}|rH|j|d�}tj||�dS)N)r_rGcst|���d�S)N)rF)rh)r.)rjrFr/r0r1	sz:TestMultiLevel.test_series_group_min_max.<locals>.<lambda>)r_rF)r_)r>rA�aggrhr�r?rQ)rDrjr_rFrGr�leftside�	rightsider/)rjrFr0�test_series_group_min_maxsz(TestMultiLevel.test_series_group_min_maxrac
stj|jjdddgf<tj|jjdddgf<|jjj|}�dkrJ|j}n|jj}|j|�|d�}g�����fdd�}	|j|	�}
t	|��|��d�}|r�|j
|�d	�}|j
|�d	�}|j��j|j
|�}tj|
j��|�tj|j��|�tj|
|�dS)
Nrrr�r)r_rarGcs�j|�t|����d�S)N)rFra)rOrh)r.)rarj�piecesrFr/r0�aggf$s
z1TestMultiLevel.test_frame_group_ops.<locals>.aggf)r_rarF)r_ra)r8r�r:rsr)r"rdrArHrhr�r�r �renamer?r�rP)
rDrjr_rarFrGZ
level_namer:rrMrIrJZlevel_indexr/)rarjrLrFr0�test_frame_group_opss$
z#TestMultiLevel.test_frame_group_opscCsBtdgtjdg�d�}|jdd�}tdgdgd�}tj||�dS)Ng$@rr)r)r)r_)rr)r
r	r<rr?rQ)rD�objrTrfr/r/r0�test_stat_op_corner6sz"TestMultiLevel.test_stat_op_cornerc
Cs�tddddddddgidddddddgddddddd	ggd
�}|jdd�}tdddgiddgd
�}tj||�|jdd�}tdddgiddgd
�}tj||�dS)Nr�FTrrrrrr)r))r_)r�anyr?rPr�)rDr�rT�exr/r/r0�test_frame_any_all_group=sz'TestMultiLevel.test_frame_any_all_groupcCs�ttddg�ttjdd�tjdd�g�d��}|jdd�}tddgd	d
gd�}tj||�|jdd�}tddgd�}tj||�dS)
NrrHr�ms)rR�t)raFTrRrV)r�r))r�)rr
r�Zto_timedeltarRr?rQ)rDr�rTrfr/r/r0�test_series_any_timedeltaNs
"z(TestMultiLevel.test_series_any_timedeltacs�tjtjd�jd�tjtjd�d�g�}ttjjt	|�d�|d�}x�dD]~�d���fdd�}t
|d	��d	�d
�}|d	jd	d�j|�}t
j||�t
|��d	�d
�}|jd	d�j|�}t
j||�qHWdS)
NrNr#)r)rrrVcst|���d�S)N)�ddof)rh)r.)rX�methr/r0r1gsz7TestMultiLevel.test_std_var_pass_ddof.<locals>.<lambda>r)r_rX)r_)rr)r	r�r8r�r�r�rr9rr�rhrArHr?rQrP)rDr)r�ZaltrTrfr/)rXrYr0�test_std_var_pass_ddof_s$
z%TestMultiLevel.test_std_var_pass_ddofcCst|jjddgd�}|jjddgd�j�}tj||�|jdjddgd�}|jdjddgd�j�}tj||�dS)Nr-r2)r_r$)rBrrAr?rPrQ)rDrTrfr/r/r0�%test_frame_series_agg_multiple_levelsqsz4TestMultiLevel.test_frame_series_agg_multiple_levelscCs�|jjddgd�j�}|jjjd�}|jjjd�}|jj||g�j�}tj||dd�|jj|jjjdd�kstt�|jj|jjjdd�d�j�}tj||�dS)Nrr)r_F)r`r)	rBrArr)r
r?rPr"rZ)rDrTZk1Zk2rfr�r/r/r0�test_groupby_multilevelzs z&TestMultiLevel.test_groupby_multilevelcCsdS)Nr/)rDr/r/r0�&test_groupby_multilevel_with_transform�sz5TestMultiLevel.test_groupby_multilevel_with_transformcCsDtjd
ddd
g�}ttjjdd�||d�}|jd�|d<|j�}dS)NrrrrrV)r)r*r�Totalsr�)rr)rr)rr)rr)r^r�)r	r<rr8r9rrZ_consolidate)rDr)r�r/r/r0�test_multilevel_consolidate�s
z*TestMultiLevel.test_multilevel_consolidatecCs�|jjd}|jdjd}|jj|jjjdd�ks:t�|jj|jjjdd�ksXt�|jjd}|jdjd}|jj|jjjdks�t�|jj|jjjdks�t�dS)N��r$rr)r`r)r`r)rBrtr)r"rZr()rDrTr�r/r/r0�test_loc_preserve_names�sz&TestMultiLevel.test_loc_preserve_namescCs`d|jd<d|jd<|jjd�}|djtjks4t�|d	jtjksHt�|d
jtjks\t�dS)Nrrrrr2r$r)r$r)rr)rr)rBr�r�r8Zfloat64rZZobject_)rDr�r/r/r0�test_unstack_preserve_types�s

z*TestMultiLevel.test_unstack_preserve_typescCsjtjtjd�d�}tjd�}t|gdddgg|gdtjd�jd�gd�}ttjd�|d�}|j�}|jd
ksxt�|j	�}t
j||j|j
��tddgg|gdtjd�jd�g|gdd�}ttjd�|d�}|jd�}|jdks�t�t|gd	ddgg|gd	|gd	tjd�jd�g|gd	d�}ttjd�|d�}|jd	�}|jdk�sft�dS)
N��rr+rr)r r!i�)r)rV)rcr)rcr)rcr)r8r�r�r	r�r
r��shaperZr�r?rQrbr))rDr!r_r)rHrTr�r/r/r0�!test_unstack_group_index_overflow�s,
  
*
z0TestMultiLevel.test_unstack_group_index_overflowcCs$d|jj_|jj�|jjj�dS)Nr)rBr*r(Zto_htmlrd)rDr/r/r0�test_to_html�s

zTestMultiLevel.test_to_htmlcCs�tdddgddggddddddgddddddggd�}ttjjd	�|d
�}ttjjd	d�|d
�}|d}|jd}|dd�}|jjd�|_t	j
||�t	j
||�tjt
dd
��|dWdQRX|jd}|jd�}|dd�}|jjd�|_t	j||�t	j||�tdddgddggddddddgddddddggd�}ttjjd	�|d
�}ttjjd	d�|d
�}|d}|jd}|dd�}|jjd�|_t	j
||�t	j
||�|jd}|jd�}|dd�}|jjd�|_t	j||�t	j||�dS)Nrrrrrrr)r r!r�)r)rVz^\(\('foo', 'bar', 0\), 2\)$)r�)rrr)rrr)rrr)rrr)rrr�rrr)rgr)rrr)rrr)rr)rr)rr)rr)rr)rr)rr)r	r
r8r9rrrtr)Z	droplevelr?rQr�r�r��xsrP)rDr)r>r:rTr�rfr/r/r0�test_level_with_tuples�sH$


$


z%TestMultiLevel.test_level_with_tuplesc	Cs�ddddddgddddddgdd	d
dddgg}tt|��}tj|�}ttdd�|d
�}|j�}|j�}|jd�}|jd�}tj	||dd�tj
||�|jdks�t�|d}|j
dgdd�}|jd�}tj
||�tj
||�dS)NrR�topZroutine1Zroutine2r�ZODr�r�ZwxZwyrVr�)r*F)r`r)ra)rRr�r�)r#r;r	r<rrr5�popr?rQrPr(rZr�)	rDrFrGr)r�r1�df2rTrfr/r/r0�test_mixed_depth_pops$



z#TestMultiLevel.test_mixed_depth_popcCs�|jjddgdd�}|jjdddddd	g}tj||�|jjjddgddd
�}tj||j�|jjddg}tj||�|jdjddg}tj||d�|jjjdd�ddgf}tj||j�dS)Nrrr)r_rrr�r+r-)rar_r$)r:rbrsr?rPrdrtrQ)rDrTrfr/r/r0�$test_reindex_level_partial_selectionsz3TestMultiLevel.test_reindex_level_partial_selectioncCsPtjd	d
gddgd�}ttd�|d�}ttjjdd�|d�}t|�t|�dS)Nrru�i1)r"r)r)rV)rr)rr)	r	r<r
r]rr8r9rry)rDr)rHr�r/r/r0�test_unicode_repr_level_names-s
z,TestMultiLevel.test_unicode_repr_level_namescCsttddgddgddgd��}tddgddgddgd��}|jddg�}|jddg�}xdD]}|j||d
�qZWdS)Nrr)rRrSr.)rRrSrWrRrSr�r�r3)r�)r�r�r3)rr�r4)rDr1rlr�r/r/r0�test_join_segfault5s
z!TestMultiLevel.test_join_segfaultcCsttddddgtjd	d
ddg�d�}tddddgtjd
dddg�d�}ttd�}t|||d��tj|||d��dS)NrrrrV)r))r�)rrr)rrr)rr)rr)rr)rrV)rr)rr)rr)rrV)r
r	r<�objectrZ	from_dict)rDr)r*Zs3r/r/r0�(test_frame_dict_constructor_empty_series?s  
z7TestMultiLevel.test_frame_dict_constructor_empty_seriesrrVcCsxdddg}tdgdgdg|gd��}||jdkj|�}|j�j}tdgdgdggggggdddgd�}tj||�dS)	NrRrSr{rrr)rRrSr{r)r r!r")rrRrArr)r	r?r�)rDrZ
group_keysr��grTrfr/r/r0�+test_empty_frame_groupby_dtypes_consistencyLs

$z:TestMultiLevel.test_empty_frame_groupby_dtypes_consistencycCsztddd
didddtjidddtjiddd
tjiddddid	ddtjii�}|jddddg�}t|�dS)Nr$��A0006000�nuitr%r&r�rr)r$rwrx)r$rwrx)r$rwrx)r$rwrx)r$rwrx)r$rwrx)rr8r�r�ry)rDZdf3rr/r/r0�test_multiindex_na_reprZsz&TestMultiLevel.test_multiindex_na_reprcCsjtdddgdddgddd	gd
��jddg�}t|j�}d|d<||_t|�d
dg|d<||_t|�dS)NrrrrVrNr�r�r+r-)rRrSr{rRrS�faz�boor)rzr{)rr�r�r)ry)rDr�r)r/r/r0�test_assign_index_sequencesjs"

z*TestMultiLevel.test_assign_index_sequencescCsZddd
dg}ddddg}tj|ddgd�}t||d	�}|j|j�j�}t|�d
ksVt�dS)N�600809�20061231�20070331�20070630ZdemoZSTK_IDZRPT_Date)r")r)r)r}r~)r}r)r}r�)r}r)r	r<r
rAr)rr�rZ)rDZidx_tp�dtr�rHrTr/r/r0�test_duplicate_groupby_issuesysz,TestMultiLevel.test_duplicate_groupby_issuesc
Cs�tddddgddddgddd	d
gddddgddd
dgddddggtd�d�}|jddg�}|jdd�}tddddgddddgddd
dggtd�d�jddg�}|jd}tj||�dS)Nrrg�?rg@rZbahZbamg@rg@rVg@rNg@r��ABCD)r*r$r%r)r_)rr)rr�r�r�rtr?rP)rDr�rfrTr/r/r0�test_duplicate_mi�s 




 

z TestMultiLevel.test_duplicate_micCsLdddgdddgd�}t|�}ddd
g}||d
<tj|d
�}|j|�dS)Nrg@rrVrNr�)�t1�t2rrrG)rr)rr)rr)rr	r<r�)rDrr�rGr)r/r/r0�test_multiindex_set_index�s
z(TestMultiLevel.test_multiindex_set_indexcCsFtddddddgddddddgtd�d��}tj|jd�d	d
�|_|jjd�|_tjdddgdd�}|jd
�jd�}|j	dd	d�}t
j|jjd|�t
j|jjdt
ddgdd��|jjddgks�t�|jdd�}t
j|jjdt
ddgdd��t
j|jjd|�|jjddgk�s t�ttjjd��}tjddddddgdd�}tjddddddgdd�}tjdddd�}|jd�}|j	|�}|j	|d	d�}|j	|d	d�}tjdddgdd�}tjddgdd�}t
j|jjd|�t
j|jjd|�t
j|jjd|�t
j|jjd�|�t
j|jjd�|�t
j|jjd�|�dS)NrRrSz2011-07-19 07:00:00z2011-07-19 08:00:00z2011-07-19 09:00:00r�)�label�datetimer|r�T)�utcz
US/Pacific)r(�UTCr�)rOrrz
US/Eastern)�tzz2012-04-01 09:00z2012-04-02 09:00z2011-01-01 09:00z
Asia/Tokyo)�periodsr�r)rr]r�r�rkr)Z
tz_convertZ
DatetimeIndexZtz_localizer�r?r�r rr"rZr�r8r9�
date_rangeZ
_with_freqr
)rDr�rfr�r��idx3�	expected1�	expected2r/r/r0�test_set_index_datetime�sp  

z&TestMultiLevel.test_set_index_datetimecs�xd0D�]��tjddd�dd�}ttd�d	d
d�}tj||g�}ttjdd
d�d
ddddgd�|d�}tt	j	ddd�t	j	ddd�t	j	ddd�t	j	ddd�t	j	ddd�gtjdd
d�tjdd
d�d
ddddgd�dd	ddgd�}|dj
�fdd��|d<tj|j
�|�tjdddd d!d�}tj|||g�}ttjdd
d�d
ddddgd�|d�}tt	j	ddd�t	j	ddd�t	j	ddd�t	j	ddd�t	j	ddd�gtjdd
d�t	j	d"dd�t	j	d"dd�t	j	d"dd�t	j	d"dd�t	j	d"dd�gtjdd
d�d
ddddgd#�dd	d!ddgd�}|dj
�fd$d��|d<|d!j
d%d��|d!<tj|j
�|�tjddgtjd&d�d'�g�}ttjd(d
d�jd(d�dg|d)�}td*j�t	j	d+dd�t	j	d+dd�t	j	d+dd�gdtjd(d
d�d,�d-d.dgd�}|d.j
�fd/d��|d.<tj|j
�|�qWdS)1Nr��
Asia/Tokyo�
US/Easternz1/1/2011rNr�r�)r�r�r�r(r�r�)r(r�)r�r$r%r&r)rRrS)r)i�rrrrV)r�r�rRrSrRrS)r*cst|�d�S)N)r�)r)r)r�r/r0r1sz:TestMultiLevel.test_reset_index_datetime.<locals>.<lambda>z1/1/2012ZMSzEurope/Parisr�i�)r�r�r�rRrScst|�d�S)N)r�)r)r)r�r/r0r18scSst|dd�S)NzEurope/Paris)r�)r)rr/r/r0r1:s�20130101)r�r�r�)r*r)za a a b b bi�)�level_0�level_1rRr�r�cst|d�d�S)Nr�)r�r�)r)r)r�r/r0r1Ts)r�r�r�)r�r�rr]r	r�rr8r�r�r�r?rPr�r�r�r~)rDr�r�r�r�rfr�r/)r�r0�test_reset_index_datetime�sv z(TestMultiLevel.test_reset_index_datetimecCs�tjtjdddd�td�gddgd�}ttjd	d
d�jdd�|d
gd�}ttj	ddd�gdtj	ddd�gdtj	ddd�gdd
ddgdtjd	d
d�d�ddd
gd�}t
j|j�|�dS)Nr�rr�)r�r��abcr2�feature)r"r-r�)r�rrR)r)r*z2013-01)r�z2013-02z2013-03rSr{)r2r�rR)r*r�)
r	r�r��period_ranger�rr8r�r�ZPeriodr?rPr�)rDr�r�rfr/r/r0�test_reset_index_periodXs :z&TestMultiLevel.test_reset_index_periodcCs�ddgddgg}tddgddggtj|�d	�}|dgjd�j�}tj||�d
}tjt	|d��|jd�j�WdQRX|j
dg�j�}tj||�tdgdggtjdg�d	�}tj||ddggdd
�}|j
dgdd�j�}tj||�d}tjt	|d��|jdg�j�WdQRXdddgdddgg}tddgddggtj|�d	�}tdgdggtjdg�d	�}tj||gdd
�}|jd g�jdd�}tj||�tjt	dd��|jd!g�jdd�WdQRX|jd"g�jddd�}tj||�dS)#Nr$r�r%rSrrrr)r*z)cannot insert \('A', ''\), already exists)r�r�)raT)rOz0Item must have length equal to number of levels.r&r{r�rR�ii)�col_fillzFcol_fill=None is incompatible with incomplete column name \('C', 'c'\))Z	col_levelr�)r$r�)r�r�)r%rS)r$r�)r%rS)r&r{r�)r&r{r�)r&r{)r&r{)r{r�)
rr	r<rCr�r?rPr�r�r�r�r�r")rDr r�rTr;Zidx_colrfrlr/r/r0�#test_reset_index_multiindex_columnsps<
z2TestMultiLevel.test_reset_index_multiindex_columnscCsttjjd��}tjdddd�}|j|�}tjdddd�}|j|�j|�}tjd	dd
d�}|j|�}|j|dd�}|j|dd�}tjdddd�}tjdddd�}tj|j	j
d
|�tj|j	j
d|�tj|j	j
d|�tj|j	jd
�|�tj|j	jd�|�tj|j	jd�|�dS)Nr�z
2011-01-01rr�)r�r�z2013-01-01 09:00r�HZ2005r$T)rOrr)rr8r9r�r�rOr�r?r�r)r r
)rDr�r�r�r�r�r�r/r/r0�test_set_index_period�s"

z$TestMultiLevel.test_set_index_periodcCsLtjddddg�}d	d
ddg}t||d
�}|jd�jdt|�fksHt�dS)NrrrrVrNr�r�r+rRrSr{r)r))rr)rrV)rNr�)r�r+)r	r<r
r�rdr�rZ)rDZm_idxr�Zm_dfr/r/r0�test_repeat�szTestMultiLevel.test_repeatcCsRddgg}ddtjfdg}t|tjj|�d�}|jjj}|jjj}t	j
||�dS)	Nr.rrRrSr{�)r*)rRr{r�)r8r�rr�r	r<ZdtypesrRrSr?rQ)rDr�r*r�rfrTr/r/r0�test_subsets_multiindex_dtype�s


z,TestMultiLevel.test_subsets_multiindex_dtype)[rJrKrLrUr\r^rgrprrrurwrzr�r�r�r�r�r�r�r�r�r��mark�parametrizer�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr	rrrZslowrr r%r'r2r7r<r>rBrE�
AGG_FUNCTIONSrKrOrQrTrWrZr[r\r]r_rarbrerfrirmrnrprqrsruryr|r�r�r�r�r�r�r�r�r�r�r/r/r/r0rMHs�	



a
	E/	!

 "#	
%0

R]4rMc
@sFeZdZdZdd�Zdd�Zdd�Zejj	dd	d
gd	d	d
d
gddddggfd
d	gd
d
d	d	gddddggfd
d	gddgfd
d
d	d	gddddggfd
d	gddgfd
d
d	d	gddddggfd	d
gddgfd	d	d
d
gddddggfd	d
gddgfd	d	d
d
gddddggfd
d
gddgfd
d
d
gdddggfg�ejj	dddg�dd���Z
dS)�
TestSortedz- everything you wanted to test about sorting cCs$|jj�}|jj|jjjks t�dS)N)r:r�r)r"rZ)rDrTr/r/r0�test_sort_index_preserve_levels�s
z*TestSorted.test_sort_index_preserve_levelsc		Cs�tjjd�tjjdd�}�xdddddgdfd	dd
dgdftd�td
�td�td�gtd�fddddgdfgD�]\}}tjdd�|D��}t|td�|d�}t	j
|tdtd�tjd|fg�d�gd	d�}t|�j�dj
�dgks�t�|j�jd	d�}|jdd�dd
d	dgf}tj||�|jd	d�}|jdd�dd
d	ddgf}tj||�|j�}d|d|f<|jd	d�}tj||�qnWdS)NrrrVg�?g@g@g@g@rrrNr�Z20130103Z20130102Z20130105Z20130104Z1oneZ3oneZ2oneZ5oneZ4onecSsg|]}d|f�qS)�redr/)r6r�r/r/r0r7�sz5TestSorted.test_sorting_repr_8017.<locals>.<listcomp>�def)r)r*Zworldr�)ra)r8r9�seedrrr	r<rr�r�r"r��
splitlinesr~rZr5r�rsr?rP)	rDr��genr�r*r�rlrTrfr/r/r0�test_sorting_repr_8017�s>z!TestSorted.test_sorting_repr_8017c	Cs�tdddgdddggddd	ddd	gdd	dddd	gg�}td
tt|��i|dd�}|jj�d
ksbt�|jjd
ksrt�|j�}|jj�dks�t�|jjdks�t�td
dddd	gitj	ddddg�dd�}|j
tjdd�dd�fdd�f}t
j||�dS)Nr$r%r&r{rSrRrrrrr�)r)r�FTrVrN)r%rR)r%r{)r&rR)r&rS)r	rr]r�r)Zis_lexsortedrZZis_monotonicr�r<rtr�Z
IndexSlicer?rP)rDr�r�r#rfrTr/r/r0�test_sort_non_lexsorteds4$z"TestSorted.test_sort_non_lexsortedzkeys, expectedrSrRrrr{�dimr)r*cCs�|dddddgdddddggi}tjtjd�jdd�f|�}tj|�}|dkrp|j|dd�f}tj	|j
|�n(|d	kr�|jdd�|f}tj	|j|�dS)
Nr{rRrSrr�rNr)r*)r�rr8r�r�r	r�rtr?r�r)r*)rDr��keysrf�kwargsr�rAr�r/r/r0�test_multilevel_index_loc_order(s 
z*TestSorted.test_multilevel_index_loc_orderN)rJrKrL�__doc__r�r�r�r�r�r�r�r/r/r/r0r��s9&&&&&r�)r��iorrrZnumpyr8Znumpy.randomrr�Zpandas.core.dtypes.commonrrZpandasr�rrr	r
rZpandas._testingZ_testingr?r�rrMr�r/r/r/r0�<module>sJ
)