gL imddlZddlZddlZddlmZmZmZmZddl m Z ejjdZejdZGddZGddeZd Zd ZGd d eZGd deZGddZy)N) DataFrameIndex MultiIndexSerieszMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningc>GfddtdgdiS)Nc"eZdZefdZy)2gpd_style_subclass_df..SubclassedDataFramecSN)selfSubclassedDataFrames f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/frame/test_subclass.py _constructorz?gpd_style_subclass_df..SubclassedDataFrame._constructors & &N)__name__ __module__ __qualname__propertyrrsrrr s  '  'rra)rrs@rgpd_style_subclass_dfrs!'i' Y/ 00rceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZej4j7dddgdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&y%)&TestDataFrameSubclassingctjgdgddgd}tjd5|j|djdddy#1swYyxYw)NrXYrbcindexr!)tmrassert_produces_warningisna)r dfs rtest_no_warning_on_mgrz/TestDataFrameSubclassing.test_no_warning_on_mgrsY  # #) ,O  ' ' -  GGI sGLLN    s $A##A,c6 G fddt G fddttdtdd}|}t|sJ|j}t| sJ|j dk(sJ|dd }t|sJ|j dk(sJtjd d g}d dgd dgg|}t|dsJtjddg}d dgd dgg|}t|d sJy)Nc(eZdZefdZdZy)QTestDataFrameSubclassing.test_frame_subclassing_and_slicing..CustomSeriescSr r )r CustomSeriess rrz^TestDataFrameSubclassing.test_frame_subclassing_and_slicing..CustomSeries._constructor-s ##rcyNOKr r s rcustom_series_functionzhTestDataFrameSubclassing.test_frame_subclassing_and_slicing..CustomSeries.custom_series_function1rN)rrrrrr6)r1srr1r/,s  $ $ rr1cFeZdZdZdfd ZefdZWZdZxZ S)TTestDataFrameSubclassing.test_frame_subclassing_and_slicing..CustomDataFramez Subclasses pandas DF, fills DF with simulation results, adds some custom plotting functions. c$t||i|yr )super__init__)r argskw __class__s rr<z]TestDataFrameSubclassing.test_frame_subclassing_and_slicing..CustomDataFrame.__init__:s $-"-rcSr r )r CustomDataFrames rrzaTestDataFrameSubclassing.test_frame_subclassing_and_slicing..CustomDataFrame._constructor=s &&rcyr3r r5s rcustom_frame_functionzjTestDataFrameSubclassing.test_frame_subclassing_and_slicing..CustomDataFrame.custom_frame_functionCr7rreturnN) rrr__doc__r<rr_constructor_slicedrC __classcell__)r?rAr1s@rrAr94s.   . ' '#/  rrA )col1col2r4r)ArM)rMBrrrcolumnsrM)rM)rNrQ) rrrange isinstancerJr6rCr from_tuples) r datacdf cdf_seriescdf_rowsmcol cdf_multi cdf_multi2rAr1s @@r"test_frame_subclassing_and_slicingz;TestDataFrameSubclassing.test_frame_subclassing_and_slicing(s7 6  i $b 595d##///XX *l333002d:::q8(O444--/4777%%z:&>?#aVaV$4dC )C./:::%%y)&<=$q!fq!f%5tD *S/<888rc8tjgdgddgd}d|_|jdk(sJ|dgjdk(sJ|jddgddfjdk(sJ|jd d gddfjdk(sJ|jd d ddfjdk(sJtj |}tj |||j|jk(sJ|j|jk(sJy) Nrr r#r&XXXr!rr$rr)r(rtestattrlocilocround_trip_pickleassert_frame_equal _metadata)r r+ unpickleds rtest_dataframe_metadataz0TestDataFrameSubclassing.test_dataframe_metadata_s  # #) ,O  {{e###3%y!!U***vvsCj!m$--666ww1vqy!**e333wwqsAv''5000((,  b),||y22222{{i00000rc*tjgdgdgddgd}|jdddf}tjgdt dd }tj ||t |tjsJ|jddd f}tjgdt dd }tj ||t |tjsJ|jddd f}tjgdt dd }tj ||t |tjsJ|jd ddf}tjgdt dd }tj ||t |tjsJ|jd ddf}tjgdt dd }tj ||t |tjsJ|jdddf}tjgdt dd }tj ||t |tjsJy)NrrL r!r"Zr#r&r!abcr'namerr"rpr)rrirlXYZ)rrLrmr$r%)rrjrn)r(rr`SubclassedSerieslistassert_series_equalrSrar r+resexps rtest_indexing_slicedz-TestDataFrameSubclassing.test_indexing_slicedss  # #)) .Ac|jSr ) i_dont_existr5s r nonexistencezSTestDataFrameSubclassing.test_subclass_attr_err_propagation..A.nonexistences(((rN)rrrrrr rrrMr~s  ) )rrMz.*i_dont_exist.*)match)rpytestraisesAttributeErrorr)r rMs r"test_subclass_attr_err_propagationz;TestDataFrameSubclassing.test_subclass_attr_err_propagations? )  ) ]]>1C D  C     s AAchtjgdgddtd}tjgdgddtd}|j|d \}}tjd tj d tj d gd tj d tj d gdtd }tjd dtj dtj gd dtj dtj gdtd }t |tjsJtj||t |tjsJtj|||jj|j\}}t |tjsJtj||jt |tjsJtj||jy)NrrrLrr$ACEr&rrri)r%dABDraxisrrrLABCDErri) r(rrvalignnpnanrSrcrr%rurw)r df1df2res1res2exp1exp2s rtest_subclass_alignz,TestDataFrameSubclassing.test_subclass_aligns$$) ,DK $$) ,DK YYsY+ d%%bffa+1bffa2K Lw- %%aBFF+1aBFF2K Lw- $ 6 6777 dD)$ 6 6777 dD)UU[[' d$ 3 3444 tTVV,$ 3 3444 tTVV,rctjgdgddtd}tjgdtdd}|j |d \}}tjd t j d t j d gd t j d t j d gdtd}tjd dt j dt j gtdd}t|tjsJtj||t|tjsJtj|||j |\}}t|tjsJtj||t|tjsJtj||y)Nrrrr&rrxrrrrrrrLrrri) r(rrvrurrrrSrcrw)r r+srrrrs r test_subclass_align_combinationsz9TestDataFrameSubclassing.test_subclass_align_combinationssp  # #))$DDQVK X    e3 GXXaaX( d%%bffa+1bffa2K Lw-  "" 2661bff %T'] $ 6 6777 dD)$ 3 3444 tT*WWR[ d$ 3 3444 tT*$ 6 6777 dD)rctjddgi}|jD]D\}}t|tjsJtj ||j |Fy)Nrr)r(riterrowsrSrurwr`)r r+irows rtest_subclass_iterrowsz/TestDataFrameSubclassing.test_subclass_iterrowss_  # #S1#J /kkm 3FAsc2#6#67 77  " "3q 2 3rctjgdgdgdggdgd}|jd}tjgd t d t d g }tj ||y) Nrrhrkr#ror'rPT future_stack) rrrrirLrjrlrmrn aaabbbccc XYZXYZXYZr&)r(rstackrurvrwrxs rtest_subclass_stackz,TestDataFrameSubclassing.test_subclass_stacksj  # #  9 -!#  hhDh)!! '[0A4 CT/U  sC(rc<tjgdgdgdgdgtjt t t dt dddg tjt t t d t d d d g }tjddgddgddgddgddgddgddgddggtjt t t dt d t d!gd" t d#d$gd %}|jd&'}tj|||jd d&'}tj||tjddgddgddgddgddgddgddgddggtjt t t dt d t d(gd) t d*d+gd %}|jd d&'}tj||y),NrI  !()*+AABBcdcdaaacccnamesWWXXyzyzwwwyyyrrIrrrrrrrrrrrrrrrAAAABBBBccddccddyzyzyzyzrrrWr!rsTrWXWXWXWXrrryz r(rrrTrvziprrrcr r+rzrys rtest_subclass_stack_multiz2TestDataFrameSubclassing.test_subclass_stack_multis  # # /1ACS T((SftF|45eU^**SftF|45eU^  $$RRRRRRRR ((Sj)4 +;T*=MNO+3*51 $hhDh) c3'hhu4h0 c3'$$RRRRRRRR ((Sj)4 +;T*=MNO+3*51 $hhu4h0 c3'rc<tjgdgdgdgdgtjt t t dt dddg tjt t t d t d d d g }tjddgddgddgddgddgddgddgddggtjt t t dt d t d!gd" t d#d$gd %}|jd&'}tj|||jd d&'}tj||tjd(d)gddgd*d+gddgd,d-gddgd.d/gddggtjt t t dt d t d0gd1 t d2d3gd %}|jd d&'}tj||y)4NrIr(@*@rr6@7@rr@@@@rrE@E@rrrrrrrrrrrIrrrrrrrrrrrrrrrrrrrrr!rTrg$@g&@g4@5@g>@g?@gD@gD@rrrrrrs rtest_subclass_stack_multi_mixedz8TestDataFrameSubclassing.test_subclass_stack_multi_mixed(s  # #$$$$   ((SftF|45eU^**SftF|45eU^  $$T T T T T T T T  ((Sj)4 +;T*=MNO+3*51 $hhDh) c3'hhu4h0 c3'$$t t t t t t t t  ((Sj)4 +;T*=MNO+3*51 $hhu4h0 c3'rctjgdgdgdggdgd}|j}tjgdt dt d g }tj ||y) Nrrhrkr#ror) rrirlrrLrmrrjrn XXXYYYZZZ abcabcabcr&)r(runstackrurvrwrxs rtest_subclass_unstackz.TestDataFrameSubclassing.test_subclass_unstackfse  # #  9 -!#  jjl!! '[0A4 CT/U  sC(rctjgdgdgdgdgtjt t t dt dddg tjt t t d t d d d g }tjgdgdgt ddgdtjt t t dt dt dgd }|j}tj|||jd}tj||tjgdgdgt ddgdtjt t t dt dt dgd }|jd}tj||y)Nrrrrrrrrrrrrrr)rIrrrrrrr)rrrrrrrrrMrNrWWWWXXXXyyzzyyzzcdcdcdcdrrr)rIrrrrrrr)rrrrrrrrr%rABABABABrrr r(rrrTrvrrrrcrs rtest_subclass_unstack_multiz4TestDataFrameSubclassing.test_subclass_unstack_multius  # # /1ACS T((SftF|45eU^**SftF|45eU^  $$ -/O Pc /**Sj)4 +;T*=MNO+ jjl c3'jj c3'$$ -/O Pc /**Sj)4 +;T*=MNO+ jj c3'rctjgdgdgdgdgtjt t t dt dddg tjt t t d t d d d g }tjgdgdgt ddgdtjt t t dt dt dgd }|j}tj|||jd}tj||tjgdgdgt ddgdtjt t t dt dt dgd }|jd}tj||y)Nrrrrrrrrrrrrrr)rIrrrrrrr)rrrrrrrrrMrNrrrrr)rIrrrrrrr)rrrrrrrrr%rrrrrs r!test_subclass_unstack_multi_mixedz:TestDataFrameSubclassing.test_subclass_unstack_multi_mixeds  # #$$$$   ((SftF|45eU^**SftF|45eU^  $$88 c /**Sj)4 +;T*=MNO+  jjl c3'jj c3'$$88 c /**Sj)4 +;T*=MNO+  jj c3'rctjgdgdgdd}|jddd}tjdd d d dd d d d }d \|j_|j _tj ||y)N)rMrNCrrNrM)OnerrTworr)?@@rrr)r'rPvaluesr'rPrrrrrMrNr)rrr)r(rpivotr'rsrPrc)r r+pivotedexpecteds rtest_subclass_pivotz,TestDataFrameSubclassing.test_subclass_pivots  # #7E8  (()H(M)) s5 s5  6H2X--2 gx0rctjddgddgddgddgd }tj|d d g }tjgd gdgdgdggd}tj||y)NJohnMaryDoeBo@@)firstlastheightweightr r)id_varsrrrr rrrr rrrr rrrr r rvariablevaluerO)r(rpdmeltrc)r cheesemeltedrs rtest_subclassed_meltz-TestDataFrameSubclassing.test_subclassed_melts'' &) **   '6):;)).-.-   ;  fh/rc &tjjdjd}t j ddddddd dd d d dd dddt ttd|d}|j|d<|j|jzgdgdgdgdd}t j |}|jddggd}tj|ddgdd}t j||y)Nrrrr$r%rrrref@333333?ffffff?皙 @?皙?)A1970A1980B1970B1980r!id)rr$r%rr r!)r"r#r$r%r&r')r-r-r.r.)rrrrrr)r!rMrNyearr,r/)r!rMrNrMrN)rj)rrandom default_rngstandard_normalr(rdictrrRr'tolist set_indexr wide_to_longrc)r rr+exp_datar long_frames rtest_subclassed_wide_to_longz5TestDataFrameSubclassing.test_subclassed_wide_to_longs II ! !! $ 4 4Q 7  # # SS1 SS1 SS1 SS1#eAh*+   884ahhj(//8$  ))(3%%tVn5oF__R#stvF  j(3rcddtjgdgdgdgdggd}|jfd |jfd d tjgd gdgdgdggd}|jfdd }t|tjsJtj||tjgdgdgdgdg}|jdd }t|tjsJtj|||jdd d}t|tjsJtj||tj gdgdgdgdg}|jdd }t|tjrJtj ||y)Nc<t|tjsJyr )rSr(rurs rcheck_row_subclasszJTestDataFrameSubclassing.test_subclassed_apply..check_row_subclasssc2#6#67 77rc0|ddk(r |dxxdz cc<|S)Nrrrg?r r=s rstretchz?TestDataFrameSubclassing.test_subclassed_apply..stretch s!:(*G # JrrrrrrrOc|Sr r rr>s rz@TestDataFrameSubclassing.test_subclassed_apply../ -a0rc|Sr r rBs rrCz@TestDataFrameSubclassing.test_subclassed_apply..0rDrrr)rrrr )rrrg@c|Sr r )rr@s rrCz@TestDataFrameSubclassing.test_subclassed_apply..<s GAJrrc0tjgdSNr)r(rurs rrCz@TestDataFrameSubclassing.test_subclassed_apply..BsB$7$7 $Brc gdSrHr rIs rrCz@TestDataFrameSubclassing.test_subclassed_apply..FIrexpand)r result_typec gdSrHr rIs rrCz@TestDataFrameSubclassing.test_subclassed_apply..LrKr)r(rapplyrSrcrurw)r r+rresultr>r@s @@rtest_subclassed_applyz.TestDataFrameSubclassing.test_subclassed_applys 8   # #.-.-   ;  01 0q9)).-.-   ; .Q7&""8"8999 fh/))9iI*VWBK&""8"8999 fh/-A8L&""8"8999 fh/&& 9i'ST-A6fb&<&<=== vx0rctjgdgdgdd}t||}t|tjsJyNrrhrkrr(rgetattrrSru)r all_reductionsr+rPs rtest_subclassed_reductionsz3TestDataFrameSubclassing.test_subclassed_reductionsPsB # #)))$T U,^,.&""5"5666rcbtjgddtjdddggdd}|j }t |tj sJtjgdgd gd d }|j }t |tj sJtjgd gd gdgdgtjtttdtdddgtjtttdtdddg}|j }t |tj sJtj}|j }t |tj sJy)N)rMylaLewisrrYg8@rr)FTTTF)PersonAgeSingle)rrr)rrLrj)rlrmrrrrrrrrrrrrrrrr) r(rrrcountrSrurrTrvrr r+rPs rtest_subclassed_countz.TestDataFrameSubclassing.test_subclassed_countWsS  # #CbffdB3:  &""5"5666  # #)))$T U&""5"5666  # # /1ACS T((SftF|45eU^**SftF|45eU^  &""5"5666  # # %&""5"5666rctjddgddgdddg}|jddg}t|tjsJy)Nrrir)num_legs num_wingsfalcondogr&)r(risinrSr`s r test_isinz"TestDataFrameSubclassing.test_isinvsR  # #Qq!f 5h=N !Q&""8"8999rctjgdgdgdd}|j}t|tjsJtj}|j}t|tjsJyrS)r(r duplicatedrSrur`s rtest_duplicatedz(TestDataFrameSubclassing.test_duplicated}si  # #)))$T U&""5"5666  # # %&""5"5666r idx_methodidxmaxidxminctjgdgdgdd}t||}t|tjsJyrSrT)r rlr+rPs rtest_idxz!TestDataFrameSubclassing.test_idxs@  # #)))$T U(Z(*&""5"5666rctjgdgdg}tjgd}|j|}t |tjsJtjgdgdg}tjgd}|j|}t |tjsJy)N)rr)rrrr)rrrr)r(rrudotrS)r r+rrPs rtest_dotz!TestDataFrameSubclassing.test_dots  # #^\$B C    -&""5"5666  # #^\$B C  " "< 0&""8"8999rctjgdgdgdd}|j}t|tjsJ|jd}t|tjsJy)NrrhrkrFr&)r(r memory_usagerSrur`s rtest_memory_usagez*TestDataFrameSubclassing.test_memory_usagesa  # #)))$T U"&""5"5666u-&""5"5666rctjdgd}gd}tjtj j djd||}tjtj j djd|dd|}|j|d d d }t|tjsJy) Nscipy)rr$r%rr )onetwothreefourr)rLrir)riririrTkendall)rdropmethod) r importorskipr(rrr1r2r3corrwithrSru)r r'rPrrcorrelss r test_corrwithz&TestDataFrameSubclassing.test_corrwithsG$)1$$ II ! !! $ 4 4V <  $$ II ! !! $ 4 4V <)  ,,si,H'B$7$7999rcd}tjd|d}tjtj tj tj gtj tj tj gtj tj tj gd|}|j |dd}t|tjsJ|j |d}t|tjsJ|j d}t|tjsJy) Nrz1/1/199053s)periodsfreqrr&rrz 1989-12-31) r date_ranger(rrrasofrSru)r Nrngr+rPs r test_asofz"TestDataFrameSubclassing.test_asofs mmJ>  # #ffbffbff-ffbffbff-ffbffbff-    RS"&""8"8999R!&""5"5666&&""5"5666rctjgdgdgdd}|j}t|tjsJyrS)r(rrnrSrur`s rtest_idxmin_preserves_subclassz7TestDataFrameSubclassing.test_idxmin_preserves_subclass< # #)))$T U&""5"5666rctjgdgdgdd}|j}t|tjsJyrS)r(rrmrSrur`s rtest_idxmax_preserves_subclassz7TestDataFrameSubclassing.test_idxmax_preserves_subclassrrctjgdgdgdd}|j}t|tjsJ|j}t|t |sJyrS)r(rconvert_dtypesrStype)r rr+rPs r&test_convert_dtypes_preserves_subclassz?TestDataFrameSubclassing.test_convert_dtypes_preserves_subclasssa  # #)))$T U""$&""8"8999&557&$'<"=>>>rctjgdgdgdd}|jtjtj tj d}t|tjsJyrS)r(rastyperint64int32float64rSr`s rtest_astype_preserves_subclassz7TestDataFrameSubclassing.test_astype_preserves_subclasssP  # #)))$T UrzzJK&""8"8999rctdgdi}tjdgdi}|j|sJ|j|sJyNrr)rr(requals)r rrs rtest_equals_subclassz-TestDataFrameSubclassing.test_equals_subclasssHi()$$c9%56zz#zz#rc\tjdgdi}d}tjt|d5|j ddgd }dddtjdgd i}t tjsJtj ||y#1swYUxYw) NrMrzAThe 'method' keyword in SubclassedDataFrame.replace is deprecatedF)rraise_on_extra_warningsrrffill)r)rrr)r(rr) FutureWarningreplacerSrc)r r+msgrPrs rtest_replace_list_methodz1TestDataFrameSubclassing.test_replace_list_methods  # #S)$4 5Q  ' ' e  8ZZAwZ7F 8))3 *:;&""8"8999 fh/  8 8s B""B+N)'rrrr,r\rfr{rrrrrrrrrrrrr:rQrWrarhrkrmark parametrizerprurxrrrrrrrrr rrrrs 59n1(!4F-:*83 )7(r<(| )%(N0(d1.024841l77>:7 [[\Hh+?@7A7 :7:$7*77?: 0rrc6eZdZdgZdfd ZedZxZS)MySubclassWithMetadata my_metadatact||i||jdd}|r"t|dtr|dj }||_y)Nrr)r;r<poprSrr)r r=kwargsrr?s rr<zMySubclassWithMetadata.__init__sM $)&)jj5 JtAw(>?q'--K&rctSr )rr5s rrz#MySubclassWithMetadata._constructors%%rrD)rrrrdr<rrrH)r?s@rrrs#I'&&rrcttjjdjdgd}|ddg}t |tsJy)Nr)rLrrrOrMrN)rrr1r2rS)r+subsets rtest_constructor_with_metadatar sM  a ''/ Bc ^F f4 55 5rcxtjdddg}|jJt|tusJy)Nrrr)r from_recordsrr)r+s r+test_constructor_with_metadata_from_recordsrs=  , ,AA.>-? @B >> !! ! 8- -- -rceZdZdZy)SimpleDataFrameSubClassz;A subclass of DataFrame that does not define a constructor.NrrrrFr rrrrsErrceZdZdZy)SimpleSeriesSubClassz8A subclass of Series that does not define a constructor.Nrr rrrrsBrrc$eZdZdZdZdZdZy)TestSubclassWithoutConstructorctdgdi}t|j}t|tusJt j ||yr)rrcopyrr(rcr rrPs r test_copy_dfz+TestSubclassWithoutConstructor.test_copy_df#sJc9-.(2779 LI % % fh/rc|tgd}t|j}tj||yrH)rrrr(rwrs rtest_copy_seriesz/TestSubclassWithoutConstructor.test_copy_series,s/)$%h/446 vx0rctgd}|j}t|j}t|tusJt j ||yrH)rto_framerrrr(rc)r origrrPs rtest_series_to_framez3TestSubclassWithoutConstructor.test_series_to_frame2sPi ==?%d+446 LI % % fh/rcttdgdi}|jdD]\}}t|turJyr)rrgroupbyr)r r+_vs r test_groupbyz+TestSubclassWithoutConstructor.test_groupby<sC $YY/?%@ AJJsO (DAq7i' '' (rN)rrrrrrrr rrrr"s01 0(rr)numpyrrpandasrrrrrpandas._testing_testingr(rfilterwarnings pytestmarkfixturerrrrrrrrr rrrs   [[ ' 'S 11Z 0Z 0z &Y & 6.FiFC6C((r