gL i.~dZddlZddlZddlmZddlmZmZddl Z ddl m Z ddlmZGddZGdd eZy) z Tests for 2D compatibility. N)is_matching_na) is_bool_dtypeis_integer_dtype)NUMPY_INT_TO_DTYPEceZdZejddZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZej"j%dddgdZej"j%dgddZej"j%dgdej"j%dddgdZej"j%dgddZy)Dim2CompatTestsT)autousec|jsM|j}|j}|jj drt j |dyyy)Nrz does not support 2D.) _supports_2dnode_obj __qualname__ startswithpytestskip)selfdtyperequestr test_funcs f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/extension/base/dim2.pyskip_if_doesnt_support_2dz)Dim2CompatTests.skip_if_doesnt_support_2dsS!!<((+33B: ''9aa(;;q>))"a0 ''9rc|jdd}|jgdd}|jgdjdd}tj||y)Nrr$)rrrrr4)rtaker'r.r/s r test_take_2dzDim2CompatTests.test_take_2dDsO R#JQ/99Z(00Q7 ''9rc t|jdd}|jdt|jdk(sJt|jdd}|jdt|jdk(sJy)Nr$r<)reprrcounttype__name__)rr ress r test_repr_2dzDim2CompatTests.test_repr_2dLs~4<<2&'yy1T$Z00123q8884<<A&'yy1T$Z00123q888rcL|jdd}|j|jdfk(sJt|t|k(sJ|jd}|j|jdfk(sJt|t|k(sJt j t 5|j|jdfdddt j t 5|j|jddddy#1swYHxYw#1swYyxYw)Nrr$)rr$r)rrsizelenrraises ValueError)rr r!s r test_reshapezDim2CompatTests.test_reshapeTs R#{{tyy!n,,,5zSY&&& W%{{tyy!n,,,5zSY&&& ]]: & ) LL$))Q ( ) ]]: & ' LLA & ' ' ) ) ' 's)D(DDD#cZ|jdd}|d}tj||tjt 5|ddddtjt 5|dddd|dd}tj|||ddddf}tj|||dddf}|dg}tj|||ddt jf}tj||jy#1swYxYw#1swYxYw)Nr$rr) rr'r.rrF IndexErrornpnewaxisrr/s rtest_getitem_2dzDim2CompatTests.test_getitem_2dbs Q#q ''5 ]]: &  !H ]]: &  "I q ''6q!t ''6q!t9 ''9am$ ''8%    sD.D!D!D*cX|jdd}tt|}t||jdk(sJ|D]b}t |t |sJ|j|jk(sJ|jdk(sJt||jdk(rbJy)Nr$rr) rlistiterrEr isinstancer?rndim)rr r!objsobjs r test_iter_2dzDim2CompatTests.test_iter_2d|s Q#DK 4yEKKN*** .Cc4:. ..99 * **88q= =s8u{{1~- --  .rc|jdd}|j}|jg}t|tsJt d|DsJ||k(sJy)Nr$rc3<K|]}t|tyw)N)rRrP).0xs r z1Dim2CompatTests.test_tolist_2d..s71:a&7s)rtolistrRrPallr/s rtest_tolist_2dzDim2CompatTests.test_tolist_2ds\ Q#KKM?&$'''77777!!!rct|j||gjdd}|j}|j||gd}|j|gdzjdd}t j |||j||gd}|j t|dfk(sJt j |ddddf|t j |ddddf|d}tjt|5|j||gddddy#1swYyxYw) Nrrrr4r$z0axis 2 is out of bounds for array of dimension 2match) r?_concat_same_typercopyr'r.rrErrFrG)rr leftrightr0r*msgs rtest_concat_2dzDim2CompatTests.test_concat_2ds-Dz++T4L9AA"aH ''u A'>))4&1*5==b!D ''9''u A'>||D 1~--- ''q"1"u t< ''q!"u u=A ]]:S 1 :  " "D%=q " 9 : : :s D88Emethodbackfillpadc|jdjdd}|djjsJ|djj rJ|j |d}|j |jdjdd}t j|||ddd}|djj rJ|djjsJ|j |d}|dddj |jdjdd}t j||y)Nrrr$)rilimit)rir)rrisnar]any_pad_or_backfillr'r.) r data_missingriarrr0r*arr2result2 expected2s rtest_fillna_2d_methodz%Dim2CompatTests.test_fillna_2d_methodsT!!!$,,Q21v{{}  """q6;;=$$&&&%%V4%@000?FFqIQQRSUVW ''94R4y7<<>%%'''Aw||~!!###''vT'B 2  / /v / > E Ea H P PQRTU V  '';r)meanmedianvarstdsumprodch|jdd}d}d} t||}t||d}||t|t|k(sJyt s||k(sJyy#t$r9}|} t||d}n#t$r } | }Yd} ~ nd} ~ wwxYwYd}~pd}~wwxYw)Nr$rr4)rgetattr Exceptionr?r) rr rir! err_expected err_resultr*r0errerr2s rtest_reductions_2d_axis_nonez,Dim2CompatTests.test_reductions_2d_axis_nones Q#   7,wtV,.H,WUF+6F  !\%= #tL'99 99 fh/6X3EEE3E/ "L "//T: "!  "  "sAA// B18B,;BB, B$BB,B$$B,,B1 min_countrr$c|dk(r|dvrtjd||jdd}i}|dvrd|d<n |dvr||d < t||dd di|}d } |dvr|} |jjd vr4| |j} |j| } | | jk(sJ|dk(r|dk(rdnd} | j| } tj|| y|dk(r|} tj|| y|dvr]t|s t|r|jd}|dk(rtj||ytj|||z yy#t$rU} t||t d #t$r'}t |t |k(sJYd}~Yd}~yd}~wwxYwd}~wwxYw)Nr$)r{r|zmin_count not relevant for r)rzryrddof)r|r{rr5'Both reductions should raise or neitherc|jdk(r|S|jdvr ttjt SttjdS)Nibuint)itemsizekindrrLrint)rs rget_reduction_result_dtypezLDim2CompatTests.test_reductions_2d_axis0..get_reduction_result_dtypesJ~~" t#)"((3-88*"((6*:;;riubr|rx)rwrzryFloat64rw)rrrr~rAssertionErrorr?rrastypefillnar'r.rr) rr rirr!kwargsr0rrrr*r fill_values rtest_reductions_2d_axis0z(Dim2CompatTests.test_reductions_2d_axis0s >fO; KK5fX> ? Q# ^ #F6N  &"+F;  P+WUF+==f=F < _ $Hzz%'24::>;;u-...A~"(F"2Q #??:6  + +FH = x H  + +FH = - -%t)<{{9-//=//t D .K P P%f%' %%NOO  CyDJ...  Ps< E)) G3F G F?F:1G:F??GGc|jdd} t||d}|j dk(sJt||}|d}t ||s||k(sJyy#t$rU} t||td#t$r'}t |t |k(sJYd}~Yd}~yd}~wwxYwd}~wwxYw)Nr$rr4r)r$r)rr~rrr?rr) rr rir!r0rrexpected_scalarrAs rtest_reductions_2d_axis1z(Dim2CompatTests.test_reductions_2d_axis1s Q# P+WUF+3F||t###/'$/1Qic?3so7MMM7M3 P P%f%' %%NOO  CyDJ...  Ps;A## C-B > B< B9B4+B<4B99B<<CN)r@ __module__rrfixturerr"r+r1r7r:rBrHrNrVr^rhmark parametrizervrrrrrrrrsV^^D!="=,,: ::9 '94 . ":( [[X E':;<<<. [[X'VWFXF0 [[X'VW [[[1a&1:E2X:Ex [[X'VWNXNrrceZdZdZy)NDArrayBacked2DTestscf|jdjdd}|jjdsJ|j }|jjdsJ|ddddddfj }|jjdsJ|j d}|jjdrJ|jjdsJ|j d}|jjdsJ|j j d}|jjdrJ|jjdsJd}t jt|5|j d ddd|ddd}|jjdrJ|jjdrJ|j jjdsJ|j jjdrJ|j d jjdsJ|j d jjdrJ|j djjdrJ|j djjdsJ|j djjdsJ|j djjdrJy#1swYxYw) Nrr C_CONTIGUOUSF F_CONTIGUOUSKz6order must be one of 'C', 'F', 'A', or 'K' \(got 'Q'\)raQC) rr_ndarrayflagsrdrrrFrG)rr r!rArgarr_ncs rtest_copy_orderz$NDArrayBacked2DTests.test_copy_order/s A&&r1-~~##N333jjl||!!.111CaC1Ho""$||!!.111jjo<<%%n555||!!.111jjo||!!.111ggll3<<%%n555||!!.111H ]]:S 1  JJsO ss??((888??((888{{}%%++N;;;;;=))//???{{3((..~>>>;;s#,,22>BBB;;s#,,22>BBB{{3((..~>>>{{3((..~>>>;;s#,,22>BBBB%  s ?L&&L0N)r@rrrrrrrr,s*Crr)__doc__numpyrLrpandas._libs.missingrpandas.core.dtypes.commonrrpandasr%pandas._testing_testingr'pandas.core.arrays.integerrrrrrrrsB / 9VNVNr-C?-Cr