gL i"ddlZddlZddlZddlZddlmZmZmZm Z m Z m Z ddl m ZejdZejdZejdZejdZGddZGd d ZGd d Zd Zy)N) DataFrameIndex date_rangelreshapemelt wide_to_longc Vttjjdj dt t dtddd}|d d kDjtj|d <|dd kDjtj|d <|S) N) ABCDz 2000-01-01r B)periodsfreqcolumnsindexArid1id2) rnprandom default_rngstandard_normalrlistrastypeint64ress d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/reshape/test_melt.pydfr!s  a 009d6l#r< C c(Q,&&rxx0CJc(Q,&&rxx0CJ Jctgdgdgdg}tdtdg|_ddg|j_|S)N)5:?StgKԲ?)Uy$>M?gK)i<8b->?ghBĒABCabcCAPlow)rrrnamesrs r df1r/sE  * , +  C;U ,CKCKK Jr"cy)Nvarr2r"r var_namer3, r"cy)Nvalr2r2r"r value_namer71r4r"cXeZdZdZdZdZdZejjde e e jfdZdZejjdd gd gd ed d ddd d d ddddddfdgdgded d dddddddddddfgdZejjdddggdgdgddggdZdZdZdZejjd d d!gd"Zd#Zejjd$ej2ed%d&d'(ej2gd)d*+ej2gd,gd-Zd.Zd/Zd0Zd1Zd2Z d3Z!d4Z"d5Z#ejjd6d7d8gd9Z$d:Z%d;Z&d<Z'd=Z(d>Z)y?)@TestMeltc\t|}|jjddgk(sJy)Nvariablevaluerrtolist)selfr!results r test_top_level_methodzTestMelt.test_top_level_method7s+b~~$$&:w*????r"c tj|jt|tj|jddgddgt|ddgddgtj|j||t|||tj|jdt|dy) Nrrrrid_vars value_varsr3r7r col_level)tmassert_frame_equalr)r?r!r/r3r7s r test_method_signatureszTestMelt.test_method_signatures;s bggib2  GGUENSzG B eU^c C  GGX*G = h: > chhh3T#5KLr"c8|j}|jjddgk(sJ|jdg}|jjgdk(sJ|jddg}|jjgdk(sJy)Nr;r<r)rD)rr;r<rrrr;r<r=)r?r!r@result1result2s r test_default_col_nameszTestMelt.test_default_col_namesJs~~$$&:w*????''5''*%%'+GGGG''5%.'1%%'+NNNNr"c|jddgd}t|dk(sJ|jddgddg}t|djdz|djdzdgdzdgdzz|dj|djzdgd }t j ||y) NrrrrCr rr rMr)rlenrr>rIrJ)r?r!result3result4 expected4s r test_value_varszTestMelt.test_value_varsTs''5%.S'A7|r!!!''5%.c3Z'H%y'')A-%y'')A- EBJ#3S'..*RW^^-==   8  gy1r"type_c>t|djdz|djdzdgdzdgdzz|dj|djzdgd}|jddg|d  }tj||y) Nrr rrr rrMrRrrrC)rr>rrIrJ)r?rXr!expectedr@s r test_value_vars_typeszTestMelt.test_value_vars_typesds%y'')A-%y'')A- EBJ#3S'..*RW^^-==   8 %E*rrIrJ) r?r!r3result5result6result7result8result9 expected9s r test_custom_var_namezTestMelt.test_custom_var_names''8',%%'E7+;;;;''5'H'=%%'+BBBB''5%.8'D%%'+IIII''5%.S8'T%%'+IIII''ENSzH r%y'')A-r%y'')A-3%"*urz1"S'..*RW^^-==   E8W5  gy1r"c |j|}|jjddgk(sJ|jdg|}|jjgdk(sJ|jddg|}|jjgdk(sJ|jddgd | }|jjgdk(sJ|jddgd d g| }td|djd zd|djd zdd gd zd gd zz||d j|d jziddd|g}t j ||y)N)r7r;r6rrDr7)rr;r6r)rrr;r6r)rDrEr7rr r rRrq) r?r!r7result10result11result12result13result14 expected14s r test_custom_value_namezTestMelt.test_custom_value_names77j71&&(Z,????77E7z7B&&(,FFFF77E5>j7I&&(,MMMM77ENsz &&(,MMMM77ENSzj r%y'')A-r%y'')A-SEBJ#3RW^^-30@@   E:z:  h 3r"c |j||}|jjddgk(sJ|jdg||}|jjgdk(sJ|jddg||}|jjgdk(sJ|jddgd || }|jjgdk(sJ|jddgd d g|| }td|djd zd|djd z|d gd zd gd zz||d j|d jzidd||g} t j || |j } d| j_| j} | jjddgk(sJy)NrFr1r6rrDr3r7)rr1r6r)rrr1r6rrDrEr3r7rr r rRfoor<)rrr>rrIrJcopyname) r?r!r7r3result15result16result17result18result19 expected19df20result20s r test_custom_var_and_value_namez'TestMelt.test_custom_var_and_value_names77H7D&&(UEN:::77E7X*7U&&(,AAAA77ENX* &&(,HHHH77EN!   &&(,HHHH77ENSz!   r%y'')A-r%y'')A-3%"*urz1RW^^-30@@   E8Z8  h 3wwy! 99;&&(UG,<<<>>>r"col2010z US/Pacific)rtz)r_r`cr_dcategorydtype)rrdrrrcttd|gd|d}tjtjgd|gd}t |ddgdd }tt tdd ztj|gd zdd gdzd gdzz|d}gd|_tj||y)Nr)rdrrrr)klassrattr1attr2T ignore_indexrr attributer<rr rrrrdr )rrrr<) rrangepdconcatSeriesrrrrIrJ)r?rr!expected_valuer@r[s r test_pandas_dtypeszTestMelt.test_pandas_dtypessAhs_s S BIIo$>#DSWX %(;7 a>A%99cUQYT:9q=G9q=0!   B fh/r"ctddgtjddgd}t|dgdg}ttjddgddgddgd}t j ||y) Nrdr XYrZrr)rr;r<)rr CategoricalrrIrJ)r?datar@r[s r test_preserve_categoryzTestMelt.test_preserve_category;sq1vBNNC:,FGHdSEC5)..#s,3*PQSTv V  fh/r"cttjjdj dt d}d}t jt|5|jddgd d gdddt jt|5|jd dgd d gdddt jt|5|jgd d d gddd|j}t dt dg|_ t jt|5|jdgdgdddt jt|5|jd gdgddddy#1swYxYw#1swYxYw#1swYxYw#1swYixYw#1swYyxYw)Nr )rr abcdrRzEThe following id_vars or value_vars are not present in the DataFrame:rhr_r`Crrr)r_r`not_hereor_therer )Er_raFrrG) rrrrrrrjrkKeyErrorrrr)r?r!rmmultis r test_melt_missing_columns_raisesz)TestMelt.test_melt_missing_columns_raisesEs  II ! !! $ 4 4V <P||$><P||$><P||$><P   " fh/r"ctgdgddgd}|jddd }tgdd gd zgdd }tj||y Nrdr rr rrr112233rr_rrdrr`r)r_rrdrrs r #test_melt_allows_non_scalar_id_varsz,TestMelt.test_melt_allows_non_scalar_id_varss^  y1$   9#yIJ fh/r"ctgdgddgd}|jdgdd }tgdd gd zgdd }tj||yrrrs r $test_melt_allows_non_string_var_namez-TestMelt.test_melt_allows_non_string_var_names`  y1$ E  9#yIJ fh/r"ctgdgddgd}tjtd5|j dgd d g dddy#1swYyxYw) Nrrrrrz.* must be a scalar.rhr_rdr rp)rrjrkrlrr?r!s r $test_melt_non_scalar_var_name_raisesz-TestMelt.test_melt_non_scalar_var_name_raisessS  y1$ ]]:-D E 4 GGSEQFG 3 4 4 4s AAN)*__name__ __module__ __qualname__rArKrPrWrjmark parametrizetuplerrarrayr\rbrrfrnrxrrrrrrrrrrrrrrrrrrrrrrr2r"r r9r96sJ@ MO2  [[WudBHH&=> 0? 0 0 [[2!)iIF#&337%.8!H !)iIF#&337%.8!H  :0;:0  [[ * &\: &  $ ==264:(=T [[[1e*5868? [[ BIIj|D E BII/z B BIIo & 00(0!2F 0000$ 00 [[Wvw&78090"0('0R 0 04r"r9ceZdZdZy) TestLreshapecgdgdgdgdgddtjddd gd tjtjd d ggd dtjdddgdtjtjddgd }t|}tddDcgc]}d|d c}tddDcgc]}d|d c}d}t ||}gdgdgdgdgd gd!d"}t||j #}t j||t ||d$%}gd&gd'gd(gd)d*d+d,d-d.dtjddd d tjtjd d gd/dd0d1d2dtjddddtjtjddgd"}t||j #}t j||tdd3Dcgc]}d|d c}tddDcgc]}d|d c}d}d4}tjt|55t ||dddycc}wcc}wcc}wcc}w#1swYyxYw)6N) 08jan2009 20dec2008 30dec2008 21dec2008 11jan2009) C %)efghi)MaleFemalerrr)r 22dec2008 04jan2009 29dec2008 20jan2009 21jan2009 22jan2009 31dec2008 03feb2009 05feb2009 02jan2009 15feb2009)ii i i il@@@߱@@b@Ų@) birthdtbirthwtrsexvisitdt1visitdt2visitdt3wt1wt2wt3rdr visitdtrwt)r7r8) r r r rrr r rrr rr) rrrrrrrrrrrr) rrrrrrrrrrrr) rrrrrrrrrrrr) rrrrrr r!r"r#r$r%r&) |@r)4@ĩ@Ұ@r'r(r)r*r+r,r-)r.r/rr0r7r8rRF)dropna)r r r rrr r r rrr r r rr)rrrrrrrrrrrrrrr)rrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrr9r:r;r<rz$All column lists must be same lengthrh) rnanrrrrrIrJrjrkrl) r?rr!ispecr@exp_dataexprms r test_pairszTestLreshape.test_pairssr6+C%bffk; T$bffbffk;O1BFFFFF;BFFBFFFF;- 2t_27q!=A'!A=',Q{3!R!u:3 "d#  O   uH R&..9 fc*"d51"""$$mg P&..9 fc*27q!=A'!A=',Q{3!R!u:3 5 ]]:S 1  R   E>3z>3  s$ I8 I $ I I0 II#N)rrrrCr2r"r r r s`r"r c~eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZy)TestWideToLongc tjjdjd}t ddddddd dd d d dd dddt t td|d}|j|d<|j|jzgdgdgdgdd}t |}|jddggd}t|ddgdd}tj||y)Nr rr_r`rrcref@333333?ffffff?皙 @?皙?)A1970A1980B1970B1980rrr_r`rrrGrHrIrJrKrLrMrNrVrVrWrWrrdr rrdr rrryearrrZrrrrrr?jrrrrrdictziprrr> set_indexrrIrJr?rr!rAr[r@s r test_simplezTestWideToLong.test_simples II ! !! $ 4 4Q 7  SS1 SS1 SS1 SS1#eAh*+   884ahhj(//8$  X&%%tVn5oFb3*? fh/r"cptgdgdg}gd|_ddg}t||dd|ddgk(sJy) N)rrdr r)r rr )rinc1inc2edu1edu2incedurager\)rrr)r?r!stubss r test_stubszTestWideToLong.test_stubssA 9 :; R$%0&&&r"c tjjdjd}t ddddddd dd d d dd dddt t td|d}|j|d<|j|jzgdgdgdgdd}t |}|jddggd}t|ddgddd}tj||y)Nr rr_r`rrcrrGrHrIrJrKrLrMrN)zA.1970zA.1980zB.1970zB.1980rrrSrTrUrXrYrZr[rr.r?r]sepr^rbs r test_separating_characterz(TestWideToLong.test_separating_character%s II ! !! $ 4 4Q 7 !cc2!cc2!cc2!cc2#eAh*+   884ahhj(//8$  X&%%tVn5oFb3*CH fh/r"c tjjdjd}t ddddddd dd d d dd dddt t td|d}|j|d<|j|jzgdgdgdgdd}t |}|jddggd}t|ddgdd}tj||y)Nr rr_r`rrcrrGrHrIrJrKrLrMrN)zA(quarterly)1970zA(quarterly)1980zB(quarterly)1970zB(quarterly)1980rrrSrTrUrX)r A(quarterly) B(quarterly)rZrrZ)rrwrxrwrxr\r^rbs r test_escapable_charactersz(TestWideToLong.test_escapable_characters?s II ! !! $ 4 4Q 7 (+$<(+$<(+$<(+$<#eAh*+   884ahhj(::8$  X&%%tVn5 1 b>>"BdfU fh/r"cFtddgddgddgddgd }|j|d <gd gd ddtjtjggd gdd}t|}|j d dggd}t |ddgd d}t j||y)N?@@@@@X1X2A2010A2011B2010rrrrrrr{r|r}r~)rrdrrd)rr)rrrrrZrZr[rrr\)rrrr>rarrIrJr?r!rAr[r@s r test_unbalancedzTestWideToLong.test_unbalancedYs sssD\   884)%sBFFBFF+,  X&%%tVn5oFb3*? fh/r"c jtgdgdgdgdgdgdgdgdd}|j|d <tgd gd gd gd gd gdgdd}|jd dggd}t|gdd d}t j |j d|j dy)Na11a22a33a21ra23b11b12b13b21b22b23rr[\])A11A12B11B12BB11BB12BBBXBBBZrrrrrrrrrrrrrrrrrrrrdr rr rrrX rr rr)rrrrBBrrZrZ)rrrrrrrrr\rdaxisrrrarrIrJ sort_indexr?r!r[r@s r test_character_overlapz%TestWideToLong.test_character_overlapps ,,,,!!$$   88400??((0   %%tVn56VWb"2dfE f//Q/79L9LRS9L9TUr"c d}tddgddgddgdd gd }|j|d <d gggggggd }t|jdtji}|j d dggd}|jj ddgd|_t|ddgd d|}tj|jd|jdy)Nznope!r{r|r}r~rrrrrr)rrrrrrZrrrZ)rrrrrrrrdlevelrrrsr rrrrrra set_levelsrrIrJr)r?rtr!rAr[r@s r test_invalid_separatorz%TestWideToLong.test_invalid_separators sssD\   884  X&--vrxx.@A%%tVn5 6 "22Aq62Cb3*CH f//Q/79L9LRS9L9TUr"c jtgdgdgdgdgdgdgdgdd}|j|d <tgd gd gd gd gd gdgdd}|jd dggd}t|gdd d}t j |j d|j dy)Nrrrrrrr)rrrrrrArating Arating_oldrrrrrrXr)rrrrrrrZrZ)rrrrrrr\rdrrrs r test_num_string_disambiguationz-TestWideToLong.test_num_string_disambiguations,,,,!!'+   88437??((0   %%tVn5 6 b"2dfE f//Q/79L9LRS9L9TUr"c tddgddgddgddgd }|j|d <d gggggggd }t|jd tji}|j d d g}|jj ddgd|_t|ddgd d }tj|jd|jdy)Nr{r|r}r~rrrr)AoneAtwoBonerrr)rrrrrrZrrrZrrdrrrr\rrrs r test_invalid_suffixtypez&TestWideToLong.test_invalid_suffixtypesc c c D\   884  X&--vrxx.@A%%tVn5!22Aq62Cb3*? f//Q/79L9LRS9L9TUr"ctgdgdgdgdd}tgdgdgdgd d }|jgd d g}t|d d dgd}tj||y)N) rdrdrdr r r rrr) rdr rrdr rrdr r) ffffff@333333@皙@r ?ffffff?rffffff@@) 333333 @ffffff@rrLr333333@ffffff @rr)famidbirthht1ht2)rrrrrrr|rLrrrrrrrrrr)rdrdrdrdrdrdr r r r r r rrrrrr)rdrdr r rrrdrdr r rrrdrdr r rr)rdr rdr rdr rdr rdr rdr rdr rdr rdr )htrrrn)rrrnrrrrnr\rrarrIrJrs r test_multiple_id_columnsz'TestWideToLong.test_multiple_id_columnss~ 44BD   (POM/  6%%&?@$Hb$7G*<F fh/r"ctgdgdgdd}d}tjt|5t |ddgdd dddy#1swYyxYw) N)rdr rr r)rdrdrdrdrd)A_A1B_B1rz3the id variables need to uniquely identify each rowrhA_AB_Brcolnamer\rrjrkrlrr?r!rms r test_non_unique_idvarsz%TestWideToLong.test_non_unique_idvarssY$oO T D ]]:S 1 A eU^si @ A A As AActgdgdgdgdgdd}tgdgdgd gd d jd d g}t|ddgd d d}tj||y)N) CCH Pounder Johnny DeppChristoph Waltz)Joel David Moore Orlando Bloom Rory Kinnear)@@@|@)@@@x@)AvatarPirates of the CaribbeanSpectre)actor_1actor_2actor_fb_likes_1actor_fb_likes_2title)rrrrrr)rrrrrr)rdrdrdr r r )rrrrrr)actoractor_fb_likesnumrrrrr_rsrrs r test_cast_j_intzTestWideToLong.test_cast_j_ints LP$>$:J   #S)  * )We$ %+ , *+w%S  fh/r"ctddgddgddgddgd }d }tjt| 5t |d d gd ddddy#1swYyxYw)Nr{r|r}r~rrrr)rrrrz,stubname can't be identical to a column namerhrrrr\rrs r test_identical_stubnamesz'TestWideToLong.test_identical_stubnamesDsi sssD\   = ]]:S 1 = c3Z3) < = = =s AActddgddgddgddgd }tgd gd ddtjtjggd d }|jddg}t |ddgdddd}t j ||y)Nr{r|r}r~rrrr)treatment_placebotreatment_testresult_placeborr)placebortestrrrrr@ treatmentrrr@rz[a-z]+rr?r]suffixrtrrr>rarrIrJrs r test_nonnumeric_suffixz%TestWideToLong.test_nonnumeric_suffixQs &)3Z#&*#&*D\   -ARVVRVV41   %%sI&67 ;'3)HRU  fh/r"ctddgddgddgddgd d gd }tgd gd gdgddjddg}t|ddgdddd}tj||y)Nrrrrgrrr{r|r}r~)rresult_1 result_foo treatment_1 treatment_foor)1rrr)"@rrrrrrr@rz.+rrrrs r test_mixed_type_suffixz%TestWideToLong.test_mixed_type_suffixhs D\F"Cj #Sz"%s   -3.1    )S)$ %  ;'3)Dc  fh/r"c tddgddgddgddgd d gd }tgd gd ddddtjtjtjtjgtjtjtjtjddddgd}|jddg}t |ddgdddd}t j ||y)Nr{r|r}r~rrrrgrr)z treatment_1.1z treatment_2.1z result_1.2r r)rrrrrrrr)rJrJr{r{皙?rrrrrrrrr@rz[0-9.]+rrr rs r test_float_suffixz TestWideToLong.test_float_suffixs "%s"%s"CjFD\   ECS#rvvrvvrvvrvvN ffbffbffbffc3SQ   %%sI&67 ;'3)ISV  fh/r"c ddddddddd d d dd d d dddddddddddddddd}tj|}t|dgddgd}t|dddgd}tj||y)Nrrdr rr )rrdr rr g?rg?r{gQ?gGz?gQ?g\(\?g333333?gp= ף?g{Gz?gp= ף?gq= ףp?g(\?rK)node_idrPA0PA1PA3PArrtime) stubnamesr?r])r from_dictrrIrJ)r? wide_datawide_dfr[r@s r test_col_substring_of_stubnamez-TestWideToLong.test_col_substring_of_stubnames qQ15cdst<$3?$4@$4@  %%i0D6i=MQWXg)S9IVT fh/r"cttdtdddd}tjt t jd5|jdd dddy#1swYyxYw) Nr*r r )rr<zvalue_name (value) cannot matchrhr<rz) rrrrjrkrlreescaperrs r test_raise_of_column_name_valuez.TestWideToLong.test_raise_of_column_name_valuesbtE{U2r15EF G ]] bii(IJ  9 GGGG 8 9 9 9s A..A7cd|r4|dk(r/|jtjjdt ddgddgdd gd }|j d |i}t |d d gd dd}tgdd}t gdtjgdzd|}|jjdj |}|dk(r(|jjdj d}|jj|d|_ tj||y)NrzTODO(infer_string))reasonr2d,)rza-1za-2rr_r`r-)rr?r]rt))rrd)r+rd)rr )r+r )rr)r)r,r-r.r/r rrrstrr) applymarkerrjrxfailrrrrrr>rlevelsrrIrJ) r?requestany_string_dtypeusing_infer_stringr!r@rr[ new_levels r test_missing_stubnamez$TestWideToLong.test_missing_stubnames# "2h">    1 19M 1 N O sCj#sS#JO P YY./ 0 Cj   4 &bffX\ : NN))!,334DE x ' --a077>I!229A2F fh/r"N)rrrrcrpruryrrrrrrrrrr rrr#r(r9r2r"r rErEsi00'04040.V<V<VBV:'0RA%0N =0.0.000 90r"rEc tj|tj}t ddiddiddiddiddid}|j j ||_t|dddd d }t ddgddgddggtd dgtjjgd tgd|gddg}tj||y)N)na_valuerrdr )IDR_test1R_test2R_test3DRr< UNPIVOTEDrz.*)rr?r]rtr r@)rdrdrd)test1test2test3rrr) r StringDtyperr>rrrrrr from_arraysrIrJ)string_storage string_dtyper!r@r[s r test_wide_to_long_string_columnsrJs>>.266BL a&1v1v1vQ   B""<0BJ  cT[c$F Q!Q!Q sCj!mm''1F % (  H&(+r")r&numpyrrjpandasrrrrrrrpandas._testing_testingrIfixturer!r/r3r7r9r rErJr2r"r rPs    e4e4PaaHJ0J0Z,r"