B @`7 @srddlZddlZddlZddlmZmZmZddlm Z ddddddd d d d d g Z GdddZ GdddZ dS)N) DataFrame MultiIndexSeriessumprodminmaxZmedianmeanZskewZmadstdvarZsemc @s`eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ e j dee j dddge j dddge j dddgddZe j dee j dddge j dddge j dddge j dddgddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Ze j d.d/d.gd0d1Zd2d3Zd4d5Zd6S)7TestMultiLevelcCs|}|jdd}|j|jdd}|jddtj}t|||dj|jdd}|djddtj}tj||dd|j jddd}|j|jdd}|jddtjj }t||dS) Nmonth)levelAF) check_names)axisr)columnsr) rreindexindexgroupby transformnptmassert_frame_equalassert_series_equalT)self/multiindex_year_month_day_dataframe_random_dataymd month_sumsresultexpectedr#@/tmp/pip-unpacked-wheel-q9tj5l6a/pandas/tests/test_multilevel.pytest_reindex_levels  z!TestMultiLevel.test_reindex_levelcs4|fdd}|d|d|d|ddS)Ncstt|}jdd}||dd}jddtj}||}t||tt|}|d|ddd}djddtj}|d|}d|_ t ||dS)Nr )rr) getattrrrrrrrrrnamer)opnameopr r!Z broadcastedr")rr#r$ _check_op0s     z3TestMultiLevel.test_binops_level.._check_opsubaddmuldivr#)rrr*r#)rr$test_binops_level-s  z TestMultiLevel.test_binops_levelcCs0|}|jddg}|jddg}t||dS)Nr)fooone)barr2)iloclocrr)r multiindex_dataframe_random_dataframer"Z reindexedr#r#r$ test_reindexFszTestMultiLevel.test_reindexcCs|}|jddd}||}|j|ks,t|j|}|j|ksDt|j}|j|d}|j|ksdt|jdd|f}|j|kstdS)N )r)rrAssertionErrorr5rr)rrrZ new_indexchunkZymdTr#r#r$test_reindex_preserve_levelsMs   z+TestMultiLevel.test_reindex_preserve_levelsc Cs^|}|d}|jd}||}|dd}|dd}||j}tj||dddS)NrrcSs|dS)Nr#)xr#r#r$hz7TestMultiLevel.test_groupby_transform..cSs|dS)Nr=r#)r>r#r#r$r?ir@F)r)rget_level_valuesrapplyrrrr) rr6r7sZgroupergroupedZappliedr"r!r#r#r$test_groupby_transform`s   z%TestMultiLevel.test_groupby_transformcCs\tdgdgdggdgdgdggdddgd}ttjd gd d d d g|d}|jdddS)Nr1r3bazrr2twoZthree)levelscodesnamesabcd)rr)r)rrrrandomZrandr)rmidxdfr#r#r$test_groupby_cornerms  z"TestMultiLevel.test_groupby_cornercCstddddddg}tddd d d d gd dddddgg|d}|jdd|jdd}|jddd}|}|jddgkst dS)N)f1s1)rTs2)f2rU)rWrV)f3rU)rXrVrr=r0rK r9 )r)rcSs |ddkS)Nr)rWrXr#)ur#r#r$r?r@z:TestMultiLevel.test_groupby_level_no_obs..r)rrrWrX) r from_tuplesrr5rmaprrallr:)rrQrRZdf1rDr!r#r#r$test_groupby_level_no_obsws(z(TestMultiLevel.test_groupby_level_no_obscCsJ|}|ddj}|d|d<t|jts.t|d|dksFtdS)NrY)irr[)irr9)r isinstancerrr:rc)rrrrRr#r#r$.test_setitem_with_expansion_multiindex_columnss  z=TestMultiLevel.test_setitem_with_expansion_multiindex_columnscCstdddgtdddgd}tdd d gtd d dgd}||}|j|j}||||}t|||ddd |ddd }|j|j}||||}t||dS)Nrr=r0)rr)rr=)Br0)datarrKrYrZ)Zr)rir=)rrrarunionrrr)rr>yresZ exp_indexexpr#r#r$test_alignments zTestMultiLevel.test_alignmentr)rrrskipnaTFsortc sX|}|j||d}|fdd}t||d} |rH| j|d} t|| dS)N)rrqcst|dS)N)rp)r&)r>)r)rpr#r$r?r@z:TestMultiLevel.test_series_group_min_max..)rrp)r)raggr& sort_indexrr) rr)rrprqZseries_with_multilevel_indexZserrDleftside rightsider#)r)rpr$test_series_group_min_maxs z(TestMultiLevel.test_series_group_min_maxrcs|}tj|jdddgf<tj|jdddgf<|jj|}dkrF|}n|j}|j||d} gfdd} | | } t||d} |r| j |d } |j |d }| j | |} t | | t | | t | | dS) Nrr=r[r)rrrqcs|t|dS)N)rpr)appendr&)r>)rr)piecesrpr#r$aggfs z1TestMultiLevel.test_frame_group_ops..aggf)rrrp)rr)rnanr4rrJrrrrr&rsZ _get_axisrHrenamerassert_index_equalr)rr)rrrprqr6r7Z level_namerDryrtruZ level_indexr#)rr)rxrpr$test_frame_group_opss&   z#TestMultiLevel.test_frame_group_opscsttddttddg}ttjt |d|d}xdD]~dfdd}t |ddd }|dj dd  |}t ||t |dd }|j dd  |}t ||qHWdS) NrYr9)r)r r rKcst|dS)N)ddof)r&)r>)r~methr#r$r?r@z7TestMultiLevel.test_std_var_pass_ddof..r)rr~)r)rZ from_arraysrZarangerepeatZtilerrPrandnlenr&rrrrrr)rrrRZaltr!r"r#)r~rr$test_std_var_pass_ddofs$  z%TestMultiLevel.test_std_var_pass_ddofcCsH|}|tkr|d}|jddgd}|jddgd}t||dS)Nryearr )r)rrrrZ assert_equal)rrZframe_or_seriesrr!r"r#r#r$test_agg_multiple_levelss z'TestMultiLevel.test_agg_multiple_levelscCs|}|jddgd}|jd}|jd}|||g}tj||dd|jj|jjddksnt|j|jjddd}t||dS)Nrr)rF)rr=)rr rrArrrJr:)rrrr!Zk1Zk2r"result2r#r#r$test_groupby_multilevels  z&TestMultiLevel.test_groupby_multilevelcCsdS)Nr#)rr#r#r$&test_groupby_multilevel_with_transformsz5TestMultiLevel.test_groupby_multilevel_with_transformcCsDtddddg}ttjdd||d}|d|d<|}dS) N)r1r2)r1rG)r3r2)r3rGrK)rrr)ZTotals)rrarrrPrrZ _consolidate)rrrRr#r#r$test_multilevel_consolidates z*TestMultiLevel.test_multilevel_consolidatec Cstdddgddggddddddgddddddggd}ttjd|d }ttjdd |d }|d}|jd}|dd}|jd|_t ||t ||t j t d d |d WdQRX|jd}|d}|dd}|jd|_t ||t ||tdddgddggddddddgddddddggd}ttjd|d }ttjdd |d }|d}|jd}|dd}|jd|_t ||t |||jd}|d}|dd}|jd|_t ||t ||dS)N)r1r3r)r1rFr)r1quxrrrr=)rHrIrZ)rrKz^\(\('foo', 'bar', 0\), 2\)$)match))r1r3rr=)r1r3)r1rF)r1r)rrrrPrrr5rZ droplevelrrpytestZraisesKeyErrorxsr)rrZseriesr7r!rr"r#r#r$test_level_with_tuplessH$         $        z%TestMultiLevel.test_level_with_tuplescCs|}|jddgdd}|jdddddd g}t|||jjddgddd }t||j|jddg}t|||d jddg}t||d |jjddddgf}t||jdS) Nr1rr)rrr=r[r\r])rrr)rr4rrrr5r)rr6r7r!r"r#r#r$$test_reindex_level_partial_selectionNs  z3TestMultiLevel.test_reindex_level_partial_selectionrOrKcCsxdddg}tdgdgdg|gd}||jdk|}|j}tdgdgdggggggdddgd}t||dS) NrLrMrNrr=r0)rLrMrNrO)rHrIrJ)rrLrfirstrrrr|)rrOZ group_keysrRgr!r"r#r#r$+test_empty_frame_groupby_dtypes_consistencyas  $z:TestMultiLevel.test_empty_frame_groupby_dtypes_consistencycCsZddddg}ddddg}tj|ddgd}t||d}||j}t|d ksVtdS) N)600809Z20061231)rZ20070331)rZ20070630ZdemoZSTK_IDZRPT_Date)rJ)rr0)rrarrrrrr:)rZidx_tpdtidxrCr!r#r#r$test_duplicate_groupby_issuesos  z,TestMultiLevel.test_duplicate_groupby_issuescCsPddgg}ddtjfdg}t|t|d}|jjj}|jjj}t ||dS)Nr>rrLrM)rLrNg)r) rrzrrraZdtypesrLrMrr)rrhrrRr"r!r#r#r$test_subsets_multiindex_dtype~s    z,TestMultiLevel.test_subsets_multiindex_dtypeN)__name__ __module__ __qualname__r%r/r8r<rErSrdrfrormarkZ parametrize AGG_FUNCTIONSrvr}rrrrrrrrrrr#r#r#r$r s8      "' 0r c@seZdZdZddZdS) TestSortedz- everything you wanted to test about sorting c Cstdddgdddggddd ddd gdd dddd gg}td tt|i|d d }|jd ksbt|jjd ksrt|}|jdkst|jjdksttd dddd git ddddgd d }|j t j ddddfddf}t ||dS)NrrgCrNrMrLrrr=colZint64)rZdtypeFTrKrY)rgrL)rgrN)rrL)rrM)rrrangerrZ is_lexsortedr:Z is_monotonicrsrar5pdZ IndexSlicerr)rrrRsortedr"r!r#r#r$test_sort_non_lexsorteds4 $z"TestSorted.test_sort_non_lexsortedN)rrr__doc__rr#r#r#r$rsr)ZnumpyrrZpandasrrrrZpandas._testingZ_testingrrr rr#r#r#r$s& s