gL iddlmZmZmZddlmZddlZddlZddl Z ddl m Z ddl m Z ddlZddlmZmZmZmZmZmZmZmZddlmZddlmZddlmZdd l m!Z!e jDd dd gd d gdZ#dZ$GddZ%GddZ&GddZ'GddZ(GddZ)GddZ*GddZ+dZ,d Z-d!Z.y)")date timedeltatimezone)DecimalN)lib)IncompatibleFrequency) CategoricalDatetimeTZDtypeIndexSeries Timedelta bdate_range date_rangeisna)ops) expressions)NUMEXPR_INSTALLEDTi@Bnumexprpython)autouseparamsidsc#K|j5}|jtd|jddddy#1swYyxYww)N _MIN_ELEMENTS)contextsetattrexprparam)request monkeypatchms i/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/series/test_arithmetic.pyswitch_numexpr_min_elementsr# s?    ! $7 sA&A AA Ac|jtjjdj t |SN)takenprandom default_rng permutationlen)objs r"_permuter.'s/ 88BII))!,88SB CCc eZdZejj ddddfdddfddd fd d d fgejj d gd dZdZdZe je jdfe jejdfgZdD]OZdZee eZee eZee dezZefdZej1eeefej1eeefQejj dedZy)TestSeriesFlexArithmetictsc|SNxs r"z!TestSeriesFlexArithmetic./qr/c |dzSr%r5r6s r"r8z!TestSeriesFlexArithmetic./s AEr/Fc|Sr4r5r6s r"r8z!TestSeriesFlexArithmetic.0r9r/c|dddSr%r5r6s r"r8z!TestSeriesFlexArithmetic.0sAccFr/c|Sr4r5r6s r"r8z!TestSeriesFlexArithmetic.1r9r/cy)Nr5r6s r"r8z!TestSeriesFlexArithmetic.1sr/TcJttdtjSN dtyper ranger(float64r6s r"r8z!TestSeriesFlexArithmetic.3&r"**=r/cJttdtjSrArEr6s r"r8z!TestSeriesFlexArithmetic.4rHr/opname)addsubmulfloordivtruedivpowcttjdtjt ddd}|d|}|d|}|d }t t|}t t |}|||} |||} tj| | |r.MySeriesr7cSr4r5)r_MySeriess r" _constructorzgTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservation..MySeries._constructorYsr/N)__name__ __module__ __qualname__ _metadatapropertyro)rnsr"rnrlVsI   r/rnrXr&testrW*rX)r r[r7)r_all_arithmetic_operatorsrJrdr!rfrns @r"/test_flex_method_subclass_metadata_preservationzHTestSeriesFlexArithmetic.test_flex_method_subclass_metadata_preservationTsP v * VV $ YV ,Aqxx2~~r/ctddtjdddg}|jdj d}|j dd}t j ||y)NrrXrvr?r& fill_value)r r(nanfillnarKr]assert_series_equal)r_serexpress r"test_flex_add_scalar_fill_valuez8TestSeriesFlexArithmetic.test_flex_add_scalar_fill_valuedsWaBFFAq!,-jjm"ggaAg& sC(r/rX)rKrLrMrPrOrNrrYc0tt|||Sr4)r[r\)r7yrds r"r8z!TestSeriesFlexArithmetic.ss%:WXr%:1a%@r/zop, equiv_op, fvcdd}ttjdddtjgtjd}ttjdtjd tjd gtjd }|||}|||}t j |||||||| |||d y)Nrc |jj|j}|j|}|j|}t|}t|}g}t t |D]} t jd5|| rJ|| r)|jt j dddM|j|||| nm|| rJ|| r)|jt j ddd|j||| |n|j||| || ddd||||} t||} tj| | y#1swYxYw)Nignore)allr~) rVunionreindexrrFr,r(errstateappendrr r]r) methrdabr exp_indexamaskbmask exp_valuesirfrgs r" _check_fillzDTestSeriesFlexArithmetic.test_operators_combine.._check_fillysa agg.I )$A )$AGEGEJ3y>* :[[X. :Qx 8&--bff5$ : : #))"Z1*>?q 8&--bff5$ : :#))"QqT:*>?"))"QqT1Q4.9 : : :!Q:6Fj)4H  " "68 4! : :s +FAF:FF ?g@g@r?rVrXrv@r~axis)r)r r(rrZr]r) r_rdequiv_opfvrrrrfrs r"test_operators_combinez/TestSeriesFlexArithmetic.test_operators_combinews 58 BFFCc2662"))A, G BFFArvvq"&&#6biil KAqq!n vs+B!Q26 1aar/N)rprqrrpytestmark parametrizerir{rr divr\rOrdivrrtruedivpairingsrdrr[loplequivrhrequivrrr5r/r"r1r1+s= [[ /5 1 *E 2 +t ,==    [[E5  50 )X--q1FKKq3QRHA+ fb!2&fcBh'!#@fb)*fb)*+ [[/:%;%r/r1c`eZdZdZej j ddddgddgfdddgd d gfgd Zd Zej j d de dgdZ dZ dZ dZ dZdZdZdZdZdZdZdZej j dddgdZd Zy)!TestSeriesArithmeticc(tjddd}ttjj dj t||}||dddz}||z}tj|jddd<tj|||t|dddz}tj||d}tjt| 5||j!d d zdddy#1swYyxYw) N1/1/2000z1/1/2010Yfreqr&rrXz4Input has different freq=D from Period\(freq=Y-DEC\)matchDend)how)pd period_ranger r(r)r*standard_normalr,rilocr]rr.rraisesrasfreq)r_rngr2rfrgmsgs r"!test_add_series_with_period_indexz6TestSeriesArithmetic.test_add_series_with_period_indexsooj*3? BII))!,<?r vx0(+,,.2;;=0!4 vx0r/ctddd}|jd}td|}td|}||z|j|usJ|j|usJy)Nz 2016-01-01rBCET)rTtzUTCr)r tz_convertr rV)r_dtidti_utcrser_utcs r"test_alignment_doesnt_change_tzz4TestSeriesArithmetic.test_alignment_doesnt_change_tzscre<..'Rs#7+ g yyC}}'''r/c:tgd}td|}td|dd}||z}dgdzdgdzzd gz}tj||j }d gd zt j gz}t||}tj||y) N)3z53rLoJGrrN503r&rrrr}rrr) categoriesr ) r r rCategoricalIndexr r(rr]r)r_catser1ser2rfrrrgs r"test_alignment_categoricalz/TestSeriesArithmetic.test_alignment_categorical$sJKas#as3Bx(HqLF8a</6(: '' cnnM URZ266(* *i0 vx0r/cgd}ttjddd|}ttjdd|}||z }tdgd}tj||tt dd |}tt d d |}||z }tt d gd}tj||y) N)r&r&rvrvr}rXrint64rCrr?z20130101 09:00:00rS20130101z9 hours)r r(rZr]rrr )r_rVrrbrfrgs r"$test_arithmetic_with_duplicate_indexz9TestSeriesArithmetic.test_arithmetic_with_duplicate_index2s RYYq!735Aryy'2%@u!?3 vx0Z 3Q?uMz*a8Fu)I.oF vx0r/ctdtjgd}tddgd}||z}tdtjgd}t j ||y)NrfloatrCrXInt64Float64)r r(rrNAr]rr_r rrfrgs r"'test_masked_and_non_masked_propagate_naz vx0  ' ' 0 .'#-F . vx0 . .  . .sC CCC)rprqrrrrrrrrrFrrrrrrrrrrrrr r)r5r/r"rrs+  [[/ 7G$x&: ; 7G$x&: ; 11 7 [[WtU1X&6781%  5G 1 ( 11$1 1 [[\L:J+KL1M11r/rc feZdZejj dgddZdZejj dgddfgdd fgdd fgd d fgd dfgddfgdZejj dgdddfgdd dfgdd dfgdd dfgdddfgdddfgdZ y)TestSeriesFlexComparisonr)rNrVcZttjjdj d}ttjjdj d}t ||j ||}|||}tj||y)Nr&rBr) r r(r)r*rr[rpr]r)r_r comparison_opleftrightrfrgs r"test_comparison_flex_basicz3TestSeriesFlexComparison.test_comparison_flex_basicysbii++A.>>rBCryy,,Q/??CD6}556u4H u- vx0r/cttjjdj d}ttjjdj d}d}t j t|5t||j|ddddy#1swYyxYw)Nr&rBzNo axis named 1 for object typerrXr) r r(r)r*rrr ValueErrorr[rp)r_r-r.r/rs r"test_comparison_bad_axisz1TestSeriesFlexComparison.test_comparison_bad_axissbii++A.>>rBCryy,,Q/??CD/ ]]:S 1 A 1GD-00 1%a @ A A As B44B=z values, op)FFTFeq)TTFTnele)FFFFlt)FTTFge)FTFFgtctgdtd}tgdtd}t|||}t|td}tj||y)NrXrvr&abcrr&r&r&bcdabcdr listr[r]r)r_rrdr.r/rfrgs r"test_comparison_flex_alignmentz7TestSeriesFlexComparison.test_comparison_flex_alignmentsWitE{3yU 4"r"5)&V 5 vx0r/zvalues, op, fill_value)FFTTr&)TTFFr)FFFT)TTTFctgdtd}tgdtd}t||||}t|td}tj||y)Nr;r<rr=r>r~r?r@)r_rrdrr.r/rfrgs r"#test_comparison_flex_alignment_fillz>###cSk)..0001H>>###S!}}q!}}1Ha=  Q||~~F<<>!!T!W !!###Q||~~Q||~~6Q',,...6Q',,...F<<>!!F<<>!!F<<>!!F<<>!!Q||~~Q||~~F<<>!!F<<>!!q& a1f%**,,,q& a1f%**,,,q& a1f%**,,,q& a1f%**,,,1 ]]9C 0  E  ]]9C 0  E  ]]9C 0  E  ]]9C 0  E           s0=M&MM8M+MMM(+M4ctttd}d}tjt |5|dkDdddtttdd}tjt |5|dkDdddtttdd}d}tjt |5|d kdddtjt |5|d kDdddtjt |5d |kdddtjt |5d |kDdddt j|d k(tgd t j|d k7tgd y#1swY`xYw#1swY%xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw) Nr<rirrF)orderedTz1Invalid comparison between dtype=category and strrrb)TTT)r r rArrrr]r)r_r rs r"5test_unequal_categorical_comparison_raises_type_errorzJTestSeriesComparison.test_unequal_categorical_comparison_raises_type_error:s[e-.0 ]]9C 0  #I [ee<= ]]9C 0  #I  [ed;<A ]]9C 0  #I  ]]9C 0  #I  ]]9C 0  #I  ]]9C 0  #I  scz62G+HI scz62D+EF/            sGFF, F96GGGF),F69GGGG&ctddg}|dk(}tddg}tj|||dk7}tddg}tj|||dk(}tddg}tj|||dk7}tddg}tj||tddg}|dk(}tddg}tj|||dk7}tddg}tj||y)N)rXrX)rXr&FT)rrr)r_rcrfrgs r"test_comparison_tuplesz+TestSeriesComparison.test_comparison_tuplesYs  FF# $f5$-( vx0f4-( vx0f5%.) vx0f4,' vx0 FF# $f4,' vx0f5%.) vx0r/cttdgtddgg}|tdgk(}tddg}tj||y)NrXr&TF)r frozensetr]rr_rrfrgs r"test_comparison_frozensetz.TestSeriesComparison.test_comparison_frozensetxsNiniA&789 1#&4-( vx0r/c*ttddt}tj|ddd<|d}|||}||j |j |j}d}tjt|5|tjur%|jd jt}n$|jd jt}dddtj ||y#1swY xYw) NrrBrSrCr&r?zDowncasting object dtype arraysrTF)r rrfr(rdropnarrVr]r' FutureWarningr\r5rrrKr)r_r-rrrfrgrs r""test_comparison_operators_with_nasz7TestSeriesComparison.test_comparison_operators_with_nass[R8G66CaC!fsC( s3;;CIIF/  ' ' S A ? +#??4077=#??5188>  ? vx0  ? ?s AD  Dctgdgdt}tjgd}t j |j dk7|t j |j dk(|y)N)rvr}r?rrC)TTFTTr?)r rr(arrayr]assert_numpy_array_equalrV)r_r2rgs r"test_nezTestSeriesComparison.test_nesR O_E B88;< ##BHHM8< ##bhh!m$4h?r/z left, rightruABCr7rUr=ABD)r&r&r&r&ABCDc|tur1d|jd}|j}|j}nd|jd}tjt |5||k(dddtjt |5||k(dddtjt |5||k7dddtjt |5||k7dddtjt |5||kdddtjt |5||kdddy#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swYcxYw#1swYyxYw)Nz@Can only compare identically-labeled \(both index and columns\) z objectsz%Can only compare identically-labeled r)r rprrrr2)r_r.r/frame_or_seriesrs r"test_comp_ops_df_compatz,TestSeriesComparison.test_comp_ops_df_compatsg & (S"++,H6 ==?DNN$E88P8P7QR  ]]:S 1  EM  ]]:S 1  TM ]]:S 1  EM  ]]:S 1  TM ]]:S 1  5L  ]]:S 1  DL              sH%EE 7E E% E12E=E  EE"%E.1E:=Fcntgd}|dk(}tgd}tj||y)N) IntervalA IntervalB IntervalCr)TFFrrss r"$test_compare_series_interval_keywordz9TestSeriesComparison.test_compare_series_interval_keywords2<= #./ vx0r/N)rprqrrrIrrrrNrPr`rdrkrnrprtrxr}r rArrr5r/r"rFrFs#  [[X'KL"M" [[X'KL"M" [[R#+#+J-6pG>1>11&@  [[yU #>yU #>  yU #>|41r/rFc$eZdZdZdZdZdZy)TestTimeSeriesArithmeticc6tdddd}tjjdj ddd}t tjjdj d|j|jd }tjjdj ddd}t tjjdj d|j|jd  }||z}|jd}|jd}||z}|j}|jjtjusJtj||y) N1/1/2011drUutc)rTrrr&Zz US/Easternrz Europe/Berlin)rr(r)r*r+r rr'r sort_indexrVrrrr]r) r_rpermr rrfuts1uts2rgs r"+test_series_add_tz_mismatch_converts_to_utczDTestTimeSeriesArithmetic.test_series_add_tz_mismatch_converts_to_utcsDSsuEyy$$Q'33C8"= II ! !! $ 4 4R 8((4.++L9  yy$$Q'33C8"= II ! !! $ 4 4R 8((4.++O<  u%u%$;&&(||(,,... vx0r/ctddd}ttjj dj t ||}|jd}d}tjt| 5||zdddtjt| 5||zdddy#1swY3xYw#1swYyxYw) NrrBrUrr&rrz0Cannot join tz-naive with tz-aware DatetimeIndexr) rr r(r)r*rr,rZrr Exception)r_rrrrs r""test_series_add_aware_naive_raisesz;TestTimeSeriesArithmetic.test_series_add_aware_naive_raisessRc:RYY**1-==c#hGsS//%(@ ]]9C 0  'M ]]9C 0  cM      s?B7(C7CC c ttdd|}tjj d}||z }tj gdj |}t|}tj||y)Nz 2012-01-01rv)rTunitr)days)z 2011-12-26z 2011-12-27z 2011-12-28) r rroffsets DateOffset to_datetimeas_unitr]r)r_rraoffsetrfexp_dtirgs r"test_datetime_understoodz1TestTimeSeriesArithmetic.test_datetime_understoodso <FG&&A&.&..!KLTT  '? vx0r/ctdd}ttjj dj d|}|dd}|j }|jDcgc]}|jc}|_||z}||z}||ddz}|jjd|_tj||tj||ycc}w)NrrRrSr&rr?) rr r(r)r*rrrVr _with_freqr]r) r_rr2ts_slicets2r7rfrrgs r"*test_align_date_objects_with_datetimeindexzCTestTimeSeriesArithmetic.test_align_date_objects_with_datetimeindexsR0 BII))!,<sk ?2{{o22222 $$_5{{o22222 ?3B#77{{o22222 ! ! #" 2%{{""" $$R({{"""O,"S2X,, 'B!&&(C%WS"%c*F;;/"6"66 66!%%'BBG%WS"%b)F;;& && '-s EcD|dz}|j|jk(sJyr%rx)r_rrfs r"test_scalarop_preserve_namez0TestNamePreservation.test_scalarop_preserve_name^s$ 1${{o22222r/N)rprqrrrrrrArr(r{r r rrrrr5r/r"rrsf [[UT5"((E6288$TU [[VdE]3!F4V!FF'@3r/rcPeZdZejj dddZy)TestInplaceOperationsz)dtype1, dtype2, dtype_expected, dtype_mul))rrrr)rrrr)rrrr)rrrrc2tdg|}tdg|}||z }tdg|}tj||||z}tdg|}tj||||z}tdg|}tj||y)NrXrCr&rvr)r_dtype1dtype2dtype_expected dtype_mulr rrgs r"test_series_inplace_opsz-TestInplaceOperations.test_series_inplace_opsdsqc(qc(  1#^4 tX.  1#^4 tX.  1#Y/ tX.r/N)rprqrrrrrrr5r/r"rrcs+ [[3 //r/rc|}t|dkr/|jtjj dt j |jd<|dk(}|jdrJ|jdrJ|dk7}|jdsJ|jdsJd|k(}|jdrJ|jdrJd|k7}|jdsJ|jdsJtj|jdst|jtrUd}tjt|5d|kDdddtjt|5|dkDdddyd|kD}|jdrJ|jdrJ|dk}|jdrJ|jdrJy#1swYxYw#1swYyxYw)NrXz%Test doesn't make sense on empty data)reasonrMzInvalid comparisonr)r, applymarkerrrxfailr(rriatr is_np_dtyperDrr rr)rseries_with_simple_indexrarfrs r"test_none_comparisonrs %F 6{Q KK  %L  M VVFKKNt^Fzz!} zz!} t^F ::a== ::a== V^Fzz!} zz!}  V^F ::a== ::a== v||S)Z o-V# ]]9C 0  6M  ]]9C 0  TM  ::a=  ::a=  $::a=  ::a=  =    sG9G#G #G,c <ttdtjj t dt dddgggd}ttdd Dcgc]}d |z c}tjj t dddggdd g}|j tjd gddddf|z}tgd tjjgdgd}tj||ycc}w)NabxyrXr&)rrnum)rQrr?rr)rii i))rr7rX)rr7r&)rrrX)rrr&) r rFr MultiIndex from_productrAloc IndexSlice from_tuplesr]r)rrrrfrgs r"'test_series_varied_multiindex_alignmentrs  amm(( $ZdaV ,4G)  B  A;'a'mm(($t*q!f)=dE](S BVVBMM3%A+. /" 4F mm'' H%( H68, (s" Dctdgdzjd}tdgdz}tj||y)Nr&i'rrX)r rmodr]r)rfrgs r"!test_rmod_consistent_large_seriesrs= QC%K % %b )FqcEk"H68,r/)/datetimerrrdecimalrr\numpyr(r pandas._libsrpandas._libs.tslibsrpandasrr r r r r rrrpandas._testing_testingr] pandas.corerpandas.core.computationrrpandas.core.computation.checkrfixturer#r.r1rr+rFrrrrrrr5r/r"rs  5   7;a\ 87LMN DrrjQ1Q1p3131l[1[1H C2C2LH3H3V//8-!`-.-r/