gL i9=<ddlZddlZddlZddlmZGddZy)Nc 8eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZej&j)dgdej,gddej,gdggddZej&j)ddddej2gej,dddej2gdgddgdZej&j7dej&j)ddddej2gej,dddej2gdgddgdZd Zd!Zd"Zd#Z d$Z!d%Z"d&Z#d'Z$d(Z%ej&j)d)d*d+gd,Z&d-Z'd.Z(d/Z)d0Z*d1Z+y2)3BaseGetitemTestsz%Tests for ExtensionArray.__getitem__.ctj|}|jdd}tj|dd}tj|||jgd}tj||y)Nr)pdSeriesiloctmassert_series_equalselfdataserresultexpecteds i/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/extension/base/getitem.pytest_iloc_seriesz!BaseGetitemTests.test_iloc_series s`iio"199T"1X& vx0,' vx0ctj|tjt |dd}tjd|ddi}|j dddgf}t j|||j gddgf}t j||tj|ddd}|j dddf}t j|||j dddf}t j|||j ddddd f}t j||dg|d dgj ddddd f}t j||d gy) Nint64dtypeABrrrrnamer r) r DataFramenparangelenr rassert_frame_equalr rrrdfrrs rtest_iloc_framez BaseGetitemTests.test_iloc_framesT \\299SYg+NO P<<d2Ah0!aS! fh/s*+ fh/99T"1XC0!Q vx0!Q vx0CaC fb#i0S#J$$Q!V, fb#i0rc^tjd|i}|jddddf}tj|||jddddf}tj|||jddddf}tj|||jdddddf}tj|||jddddf}tj||jddddf|jddddf}tj||y)Nrrr r)r r"r rr&)rrr(rs rtest_iloc_frame_single_blockz-BaseGetitemTests.test_iloc_frame_single_block0s \\3+ &A fb)BQB fb)BQB fb)CaC fb)AaC fbgga!en5BC fb)rctj|}|jdd}tj|dd}tj|||jgd}tj||y)Nr rr)r r locrrrs rtest_loc_seriesz BaseGetitemTests.test_loc_seriesFs`iio!99T"1X& vx0& vx0rc$tj|tjt |dd}tjd|ddi}|j dddgf}t j|||j gddgf}t j||tj|ddd}|j dddf}t j|||j dddf}t j||y) Nrrrrrr rr ) r r"r#r$r%r.rr&r rr's rtest_loc_framezBaseGetitemTests.test_loc_frameOs \\299SYg+NO P<<d2Ah0SE " fh/ se+, fh/99T"1XC0C vx0C vx0rc~tjd|i}tj|dgdgd|j}|jd}t j ||tj|dgdgt|dz |j}|jd}t j ||y)Nrr )indexr!rr+r) r r"r rr.rrr%r r's r test_loc_iloc_frame_single_dtypez1BaseGetitemTests.test_loc_iloc_frame_single_dtypees\\3+ &99d1gYse!4::N vx099 "XJse#d)a-tzz  vx0rc|d}t||jjsJtj|d}t||jjsJyNr) isinstancertyper r rrrs rtest_getitem_scalarz$BaseGetitemTests.test_getitem_scalartsMa&$**//2224#&$**//222rc 2d}tjt|5|ddddtjt|5|ddddt|}dj dddd |d |d |d zd |d|d zd |g}tjt|5||d zdddtjt|5|| d z dddy#1swYxYw#1swYxYw#1swYOxYw#1swYyxYw)Nz{only integers, slices \(`:`\), ellipsis \(`...`\), numpy.newaxis \(`None`\) and integer or boolean arrays are valid indicesmatchfoog@|zlist index out of rangezindex out of boundszOut of bounds accessz loc must be an integer between -z and zindex rz' is out of bounds for axis 0 with size zindex -)pytestraises IndexErrorr%join)rrmsgubs rtest_getitem_invalidz%BaseGetitemTests.test_getitem_invalid{s) J ]]:S 1  K  ]]:S 1  I Yhh)%&22$eB4@AEbTJ"Q$FrdK    ]]:S 1  aL  ]]:S 1  "qM  %        s/C)C5* D D )C25C>D  Dc$|d}|||sJyr6)r data_missingna_cmpna_valuers rtest_getitem_scalar_naz'BaseGetitemTests.test_getitem_scalar_nasafh'''rc|g}t|dk(sJt|t|sJ|tjgd}t j ||y)Nrrr)r%r7r8r#arrayrassert_extension_array_equal)rrrrs rtest_getitem_emptyz#BaseGetitemTests.test_getitem_emptysVb6{a&$t*---734 ''9rcZtjt|t}||}t|dk(sJt |t |sJtjt|t}t j||}t|dk(sJ|j|jk(sJd|d<||}t|dk(sJt |t |sJt j||}t|dk(sJ|j|jk(sJy)NrrTr) r#zerosr%boolr7r8r r r)rrmaskrs rtest_getitem_maskz"BaseGetitemTests.test_getitem_masks xxD .d6{a&$t*---xxD .4&6{a||tzz)))Qd6{a&$t*---4&6{a||tzz)))rcPtjddg}dt|}tjt |5||dddt j|d}tjt |5||dddy#1swYJxYw#1swYyxYw)NTFz-Boolean index has wrong length: 2 instead of r<booleanr)r#rNr%r@rArBr )rrrTrDs rtest_getitem_mask_raisesz)BaseGetitemTests.test_getitem_mask_raisessxxu &=c$i[I ]]:S 1  J xxI. ]]:S 1  J       sBBBB%c:tjtj|jdd}||}t |dk(sJt |t|sJtj||}t |dk(sJ|j|jk(sJd|dd|jgd}||}tj||tj|}tj||}tj||y)NrSrrWrT)rrr r r)r rNr#rRshaper%r7r8r rtakerrOr)rrrTrrs rtest_getitem_boolean_array_maskz0BaseGetitemTests.test_getitem_boolean_array_masksxx6:)Ld6{a&$t*---4&6{a||tzz)))Ra99_-d ''999X&4& vx0rctjtj|jdd}tj |ddd|dd||}||j d}tj||tj|}||}||j d}tj||y)NrSrrWr TrF) r rNr#rRr[NAfillnarrOr r)rrrTrrss r(test_getitem_boolean_na_treated_as_falsez9BaseGetitemTests.test_getitem_boolean_na_treated_as_falsesxx6:)L55RaQq d E*+ ''9 IIdO4T[['( vx0ridxrrr Int64r)list integer-arrayz numpy-array)idsc4||}t|dk(sJt|t|sJ|jgd}t j ||t j|}t j||}t j||y)Nr rd) r%r7r8r\rrOr r r)rrrcrrs rtest_getitem_integer_arrayz+BaseGetitemTests.test_getitem_integer_arrays c6{a&$t*---99Y' ''999X&4% vx0rrrr rfrgcrd}tjt|5||dddy#1swYyxYw)N9Cannot index with an integer indexer containing NA valuesr<)r@rA ValueError)rrrcrDs r(test_getitem_integer_with_missing_raisesz9BaseGetitemTests.test_getitem_integer_with_missing_raisess4 J ]]:S 1  I   s-6zSTries label-based and raises KeyError; in some cases raises when calling np.asarray)reasonc d}tj|tt|Dcgc]}t d|zc}}t j t|5||dddycc}w#1swYyxYw)Nrldr3r<)r r ranger%chrr@rArm)rrrcrDirs r/test_getitem_series_integer_with_missing_raisesz@BaseGetitemTests.test_getitem_series_integer_with_missing_raisessmJii5T;K$LaSq\$LM ]]:S 1  H  %M  sA0 !A55A>c|td}t|t|sJ|td}t|t|sJy)Nrr)slicer7r8r9s rtest_getitem_slicez#BaseGetitemTests.test_getitem_slicesDeAh&$t*---eAh&$t*---rc|dddf}tj|||dddf}tj|||dddf}tj||dd|dddf}tj||dd|ddddf}tj||ddd|ddddf}tj||dddy)N.r r )rrOr9s rtest_getitem_ellipsis_and_slicez0BaseGetitemTests.test_getitem_ellipsis_and_slicesc1f ''5af ''5c2A2g ''Ra9bqb#g ''Ra9c3Q3h ''SqS :cc3h ''SqS :rcXtj|tt|Dcgc]}d|z c}}|j d|j dk(sJ|j ddg}|j ddg}t j|||j td}|j ddg}t j|||j dJ|j |jjdzJtj|ddtd }|j d |j dk(sJ|j td d }|j gd }t j|||j d}|Jd}t jt|5|j d|j dk(sJ|j d|j dk(sJ|j t|J dddtj|}t jd5|ddd}dddj dJycc}w#1swY]xYw#1swY.xYw)Nr rrrr rrr+abcdefcbd)rr r Zz;Series.__getitem__ treating keys as positions is deprecatedr<)r r rsr%getr rrrxr3maxrfassert_produces_warning FutureWarning)rrrurarrrDs2s rtest_getzBaseGetitemTests.test_get2s? IId%D 2B"CQ1q5"C DuuQx166!9$$$1v661a&> vx0uQx661a&> vx0uuRy   uuQWW[[]Q&'/// IId2Ahd8n 5uuSzQVVAY&&&uS#'66)$ vx0s~~K  ' ' S A )558qvvay( ((559r * **55Q=( (( ) IIdO  ' ' - 3Q3B vvay   G#D2 ) )  s J A#J* J J J)ctj|gd}|jd|dk(sJ|jd|dk(sJ|jd|dk(sJy)Nrrr rrr r )r r r r9s rtest_take_sequencez#BaseGetitemTests.test_take_sequenceYsb4+{{1~a((({{1~a((({{1~a(((rc|jddg}|j|jk(sJ|d|dk(sJ|d|dk(sJ|jddgd|}|d|dk(sJ||d|sJtjtd5|jt |dzgdddy#1swYyxYw)Nrr+rT) allow_fill fill_valuez out of boundsr<)r\rr@rArBr%)rrrKrJrs r test_takezBaseGetitemTests.test_take_sAr7#||tzz)))ayDG###ayDH$$$Ar7tIayDG###fQi*** ]]:_ = ' IIs4y1}o & ' ' 's B==Cc`|dd}|jdgd}||d|sJd}tjt|5|jdgdddtjtd5|jddgdddy#1swYAxYw#1swYyxYw) Nrr+Trz;cannot do a non-empty take from an empty axes|out of boundsr<zcannot do a non-empty taker)r\r@rArB)rrrKrJemptyrrDs rtest_take_emptyz BaseGetitemTests.test_take_emptylsRaRDT2fQi***K ]]:S 1  JJt  ]]:-I J  JJ1v       sB;B$B!$B-ct|}|jd| |dz dg}|jdd|dz |dz g}tj||y)Nrrr+)r%r\rrO)rrnrrs rtest_take_negativez#BaseGetitemTests.test_take_negativezsW IAr1q5"-.99aAE1q512 ''9rc|d}|d}|j|||g|j}|jddg|d}|jddg}tj||y)Nrrrr+Trr)_from_sequencerr\rrO)rrIrnaarrrrs rtest_take_non_na_fill_valuez,BaseGetitemTests.test_take_non_na_fill_valuesw!!_ !_)) R (:(:* 2q'jTJ88QF# ''9rctjtd5|jddg|ddddy#1swYyxYw)Nr<rTr)r@rArmr\)rrrKs r&test_take_pandas_style_negative_raisesz7BaseGetitemTests.test_take_pandas_style_negative_raisess? ]]:R 0 E IIq"g(tI D E E Es <ArTFc|dd}tjtd5|jt j ddg|dddy#1swYyxYw)Nr zout of bounds|out-of-boundsr<rr)r@rArBr\r#asarray)rrrrs rtest_take_out_of_bounds_raisesz/BaseGetitemTests.test_take_out_of_bounds_raisessR2Ah ]]:-J K @ HHRZZA'JH ? @ @ @s )AAc (tj|}|jddg}tj|j|d|t |dz g|j dt |dz g}t j||y)Nrr+rrrr)r r r\rr%rrr)rrrarrs rtest_take_seriesz!BaseGetitemTests.test_take_seriess} IIdOB99   a$s4y1}*= >agg  Nc$i!m$  vx0rc~tj|}|jgd}tj|jgdgd}t j ||t |}|jdd|g}tj|j||d|g|jdd|g}t j |||j||dzg}tj|j||g|j||dzg}t j ||y)Nrrrr+rrr) r r reindexr\rrr%rr)rrrKrarrrs r test_reindexzBaseGetitemTests.test_reindexs  IIdO9%99TYYy1C vx0 IB1:&99   47H =QWW  Mq!*  vx0Aq1u:&99   8 4AGG  DQPQTUPUJ  vx0rc<|d}|d}|j||g|j}tj|}|j gd|}tj|j|||g|j}t j ||y)Nrrrrd)r)rrr r rrr)rrIvalidrrrrrs rtest_reindex_non_na_fill_valuez/BaseGetitemTests.test_reindex_non_na_fill_valuesQ !_))2u+\=O=O)PiinY5999  ' 'UE(:,BTBT ' U  vx0rc@tjd|i}|jdgdf}|jdk(sJ|jj djdk(sJt |jdr&|jjjdk(sJyy)Nrrrblocks)r r"r.ndim_mgrarrayshasattr_block)rrr(ress r test_loc_len1zBaseGetitemTests.test_loc_len1s \\3+ &ffaS#Xxx1}}xxq!&&!+++ 388X &88??''1, ,, 'rcrtj|}|ddj}||dk(sJd}tjt |5|ddjdddtjt |5|jdddy#1swY>xYw#1swYyxYw)Nrrz6can only convert an array of size 1 to a Python scalarr<)r r itemr@rArm)rrrarrDs r test_itemzBaseGetitemTests.test_items IIdO2Aa   F ]]:S 1  bqEJJL ]]:S 1  FFH      sB!B-!B*-B6N),__name__ __module__ __qualname____doc__rr)r,r/r1r4r:rFrLrPrUrXr]rbr@mark parametrizer rNr#rjr_rnxfailrvryr{rrrrrrrrrrrrrrHrrrrs/118*,11, 138(:*01&1$ [[ HBHHYg68KL 4 1  1 [[ Q255 8288Q1bee$4GDE _ %     [[7 [[ Q255 8288Q1bee$4GDE _ %   .;(%!N) ' : :E [[\D%=9@:@ 11( 1- rr) numpyr#r@pandasr pandas._testing_testingrrrHrrrs MMr