gL iPddlmZddlZddlZddlmZddlm Z GddZ Gdde Z Gdd e Z Gd d e Z y) )finalN)is_numeric_dtypeceZdZdZdej dedefdZdej dedefdZ dedefdZ e dej dedefd Z e jjdd d gd Ze jj#d e jjdd d gdZe jjdd d gdZy)BaseReduceTestszg Reduction specific tests. Generally these only make sense for numeric/boolean operations. serop_namereturncy)NFselfrrs h/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/extension/base/reduce.py_supports_reductionz#BaseReduceTests._supports_reductionsskipnac$t||} |jd}t||}|dk(r|}|}n||}||}t j ||y#ttf$r|jt}YowxYw)Nfloat64countr)getattrastype TypeError ValueErrorobjecttmassert_almost_equal) r rrrres_opaltexp_opresultexpecteds r check_reducezBaseReduceTests.check_reducesg& %**Y'Cg& g XFxH6*FV,H vx0:& %**V$C  %sA(($BBc|jS)Ndtype)r arrrrs r_get_expected_reduction_dtypez-BaseReduceTests._get_expected_reduction_dtype+syyrc@|j}tjd|i}|dvrddini}|j|||}|j|f|dd|}t ||d d|i|j} t j|| |sE|jjr'tjtjg|} n7t |j|} tj| g|} t j|| y) Na)varstdddofT)rkeepdimsrr$r ) arraypd DataFramer'_reducerrassert_extension_array_equalisnaanyNAdropna) r rrrr&dfkwargs cmp_dtyperesult1result2r! exp_values rcheck_reduce_framez"BaseReduceTests.check_reduce_frame5sii \\3* % '> 9&!r66sGVL #++gNftNvN&'"g&?f??EE ''9#((*..*xxy9H6 g68Ixx 9=H '':rTFc|}tj|}|j||s:d}tjt |5t |||dddy|j|||y#1swYyxYwNzV[Cc]annot perform|Categorical is not ordered for operation|does not support reduction|)matchrr0Seriesrpytestraisesrrr")r dataall_boolean_reductionsrrrmsgs rtest_reduce_series_booleanz*BaseReduceTests.test_reduce_series_booleanPs}(iio''W5.  y4 5%W%V4 5 5   c7F 3  5 5 A88Bzignore::RuntimeWarningc|}tj|}|j||s:d}tjt |5t |||dddy|j|||y#1swYyxYwr@rB)r rFall_numeric_reductionsrrrrHs rtest_reduce_series_numericz*BaseReduceTests.test_reduce_series_numericbs)iio''W5.  y4 5%W%V4 5 5   c7F 3  5 5rJcT|}tj|}t|js"t j |jd|dvrt j |d|j ||st j d|d|j|||y)Nz is not numeric dtype)rkurtsemz not an array methodz Reduction z not supported for this dtype)r0rCrr%rDskiprr>)r rFrLrrrs rtest_reduce_framez!BaseReduceTests.test_reduce_framevs(iio * KK399+%:; < . . KK7)#78 9''W5 KK*WI-JK L Wf5rN)__name__ __module__ __qualname____doc__r0rCstrboolrr"r'rr>rDmark parametrizerIfilterwarningsrMrRr rrrr s ryy341 1C11.#t ;bii;#;t; ;4 [[Xe}5464" [[ 89 [[Xe}546:4$ [[Xe}5 66 6rrceZdZdZy)BaseNoReduceTestszwe don't define any reductionsN)rSrTrUrVr rrr]r]s(rr]c4eZdZdejdedefdZy)BaseNumericReduceTestsrrr c6|dvrtjdy)Nr5allz*These are tested in BaseBooleanReduceTestsTrDrQr s rrz*BaseNumericReduceTests._supports_reductions n $ KKD ErNrSrTrUr0rCrWrXrr rrr_r_ ryy34rr_c4eZdZdejdedefdZy)BaseBooleanReduceTestsrrr c6|dvrtjdy)Nraz*These are tested in BaseNumericReduceTestsTrcr s rrz*BaseBooleanReduceTests._supports_reductions . ( KKD ErNrdr rrrgrgrerrg)typingrrDpandasr0pandas._testing_testingrpandas.api.typesrrr]r_rgr rrrnsE -y6y6|))__r