gL i%dZddlmZmZddlZddlZddlZddlmZm Z m Z m Z m Z ddl mZddZGddZGdd Zd Zd Zej*j-d d ZGddZy)z, test scalar indexing, including at and iat )datetime timedeltaN) DataFrameSeries Timedelta Timestamp date_rangecT|j}|r d|D}tj|S)zf generate the indices if values is True , use the axis values is False, use the range c3VK|]!}ttt|#yw)N)listrangelen).0axs g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/indexing/test_scalar.py z#generate_indices..s4U3r7^$4s'))axes itertoolsproduct)fvaluesrs rgenerate_indicesrs+ 66D 4t4   d ##ceZdZejj dddgejj dddgdZejj dddgejj dgdd Zejj dddgejj dgd d Zy ) TestScalarkindseriesframecolintsuintsc|j|d|}t|d}|D]6}d|j|<|j|}t j |d8y)N_T)getfixturevalueriatrtmassert_almost_equalselfrrrequestrindicesiexpecteds rtest_iat_set_intszTestScalar.test_iat_set_ints#sc  # #tfAcUO 4"1d+ 0AAEE!Hxx{H  " "8Q / 0r)labelstsfloatsc|j|d|}d}tjt|5t t |d}d|j |<dddy#1swYyxYw)Nr#z1iAt based indexing can only have integer indexersmatchFr$)r%pytestraises ValueErrornextrr&)r*rrr+rmsgidxs rtest_iat_set_otherzTestScalar.test_iat_set_other-se  # #tfAcUO 4A ]]:S 1 '512CAEE#J   s %A""A+)r r!r0r1r2c|j|d|}t|d}|D]6}d|j|<|j|}t j |d8y)Nr#Fr$)r%ratlocr'r(r)s rtest_at_set_ints_otherz!TestScalar.test_at_set_ints_other6sc  # #tfAcUO 4"1e, 0AADDGuuQxH  " "8Q / 0rN) __name__ __module__ __qualname__r6mark parametrizer/r<r@rrrr"s [[Vh%89 [[UVW$5607:0 [[Vh%89 [[U$>?@: [[Vh%89 [[U$OP0Q:0rrceZdZdZdZej jdeddgde dgedd gd e d ggd Z d Z d Z dZdZdZdZy) TestAtAndiATctgdgd}|jD]\}}|j||k(rJtt |D]}|j ||dzk(rJy)N)r$)g?g?g333333?indexr$)ritemsr>r rr&)r*serelitemr-s rtest_float_index_at_iatz$TestAtAndiAT.test_float_index_at_iatDsnYo6  &HB66":% %% &s3x 'A771:Q& && 'rctdd}ttjj dj d|gd}|d}|j |d }|jd }||k(sJy) Nz1/1/2000periodsrJ)rT)ABCD)rMcolumnsrX)r rnprandom default_rngstandard_normalr>r)r*datesdfsresultxps rtest_at_iat_coercionz!TestAtAndiAT.test_at_iat_coercionKsp:q1  II ! !! $ 4 4V <(  sGeAh XXa[||rz ser, expectedz 2014-01-01z 2014-02-02zdatetime64[ns]dtypez1 daysz2 daysztimedelta64[ns]c(||d}||k(sJy)Nr$rF)r* indexer_ialrOr.res rtest_iloc_iat_coercion_datelikez,TestAtAndiAT.test_iloc_iat_coercion_datelikeYs! S!!$!!!rcttdgdd}|jd}|dk(sJ|jd}|dk(sJd}t j t |5|jddddd }t j t |5|jd ddd|jdd g}tdd gddgd }tj|||j}|jd}tdd gd}tj|||jd}|dk(sJy#1swYxYw#1swYxYw)Nr])r$r$rJrJrKint64)rMrirJz0index 10 is out of bounds for axis 0 with size 5r4 z1index -10 is out of bounds for axis 0 with size 5irKrhrrMname)rJr) rr ilocr&r6r7 IndexErrorr'assert_series_equalto_frame)r*rdrer:r.rcs rtest_imethods_with_dupsz$TestAtAndiAT.test_imethods_with_dupsls8 58?' B{{q{{@ ]]:S 1  EE"I A ]]:S 1  EE#J A1a&1a&8 vx0 ZZ\!A3Q/ vx0{{!    s#EEE Ectjjdjdj dd}t |ddg}|j d}|jdj}tj|||jj d}tj||d|j d <td d gddgd }tj|jd |y) NrJrKrXr\rrXr)rXr)r$rXg@r$rp) r^r_r`rareshaperr>rrcopyr'rtTr)r*arrrcrer.s r!test_frame_at_with_duplicate_axesz.TestAtAndiAT.test_frame_at_with_duplicate_axessii##A&66q9AA!QG sS#J /v771:??$ vx0 vx0f 3*S#JQ? rwwqz84rc tddgtddddddtddd d d dgd }|d jjd|d <tdd}|jd}||k(sJ|j d}||k(sJy)NJohnAndersonirK 8rJ ro)rqdaterz Asia/Shanghaiz2017-03-13 13:32:56+0800)tz)rr)rrdt tz_localizer?r>)r*rcr.res rtest_at_getitem_dt64tz_valuesz*TestAtAndiAT.test_at_getitem_dt64tz_valuess ,dAr2r26dAr2r15  Z]]..?6 7OL "!!!y!!!!rc2tgdgd}|jD]/\}}|j||j|cxk(r|k(r,JJt t |D]/}|j ||j|cxk(r |dzk(r,JJtjtd5|jddddtjtd5|jddddy#1swY=xYw#1swYyxYw)N)r$rJrKrWr]abcr$rJrLr$z^4$r4rW) rrNr>r?r rr&rrr6r7KeyError)r*rdrPrQr-s r'test_mixed_index_at_iat_loc_iloc_seriesz4TestAtAndiAT.test_mixed_index_at_iat_loc_iloc_seriess ?*? @  1HB448quuRy0D0 00 00 1s1v 2A558qvvay1AE1 11 11 2]]85 1  DDG  ]]85 1  EE!H      s5D(D D  Dctgdgdggd}|jD]K\}}|jD]3\}}|j||f|j||fcxk(r|k(r0JJMt dD]F}t dD]6}|j ||f|j||fcxk(r |dz|zk(r3JJHtjtd5|jd dddtjtd5|jd dddy#1swY=xYw#1swYyxYw) N)rr$rJrKrW)r]rxrT rryrJr]z^3$r4)rrK) riterrowsrNr>r?r r&rrr6r7r)r*rcrowIdxrowrPrQr-s r*test_mixed_index_at_iat_loc_iloc_dataframez7TestAtAndiAT.test_mixed_index_at_iat_loc_iloc_dataframesJ  o .8M ;;= GKFCIIK GDuuVRZ(BFF62:,>F$FFFFF G G8 HC1X Hvvc1f~aGC!GaKGGGGG H H]]85 1  EE$K  ]]85 1  FF4L      s#D/D;/D8;Ectddgddgd}d|jd<tddgddgd}tj||y)Ngg?rWr])rrrrr$)rr&r'assert_frame_equal)r*rer.s r'test_iat_setter_incompatible_assignmentz4TestAtAndiAT.test_iat_setter_incompatible_assignmentsN#s1a&9: 4D!9Aq6:; fh/rN)rArBrCrRrgr6rDrErrrrlrvrrrrrrFrrrHrHAs'  [[ l3;KL,'  (+3DE(#   " " :5$"* $0rrHctdd}||z }t|jt}t|j t}t ||d}|j tk(jsJ|jd|jd|jd|jdfD]/}||dusJt|tsJt|ts/J|jd |jd |jd |jd fD]/}||d usJt|tsJt|t s/Jy) Nz 2016-01-01rKrUrh)rXrYrzrr)r$rY)r$r$r$)r r to_pydatetimeobjectto_pytimedeltardtypesallr>r&r?rr isinstancerrrr)dtitdirOser2rcres r&test_iat_dont_wrap_object_datetimelikersC \1 -C )C ""$F 3C #$$&f 5D 4( )B II  $ $ && &55="&&,v N1Q&(+++fi0001 55="&&,v N1a   &),,,fi0001rctdddgiddg}|jjdk(sJ|jddk(sJ|d}|jjdk(sJ|jddk(sJy)Nrr$rJr$rJrKrWrLrrrrMnlevelsr>rcrs rtest_at_with_tuple_index_getrs C!Q=(8 9B 88  q  55  "" "WF <<  1 $$ $ 99V  !! !r.ignore:Setting a value on a view:FutureWarningc,tdddgiddg}|jjdk(sJd|jd<|jddk(sJ|d}|jjdk(sJd|jd<|jddk(sJy) Nrr$rJrrrLrrKrrs rtest_at_with_tuple_index_setrs C!Q=(8 9B 88  q  BEE+ 55  "" "WF <<  1 $$ $FIIdO 99T?a  rcZeZdZdZej j ddZdZy)TestMultiIndexScalarcHtdddgiddgddgg}|jjdk(sJ|jddk(sJ|jddk(sJ|d}|jjdk(sJ|jddk(sJ|jddk(sJy) Nrr$rJrKrWrLr$rKrrrrMrr>r?r*rcrs rtest_multiindex_at_getz+TestMultiIndexScalar.test_multiindex_at_get saV}aVaV,< =xx1$$$uu[!Q&&&vvk"a'''C||##q(((yy!###zz$1$$$rrctdddgiddgddgg}|jjdk(sJd|jd<|jddk(sJd|jd<|jddk(sJ|d}|jjdk(sJd|jd <|jd dk(sJd |jd <|jd d k(sJy) Nrr$rJrKrWrLrr]rrxrrs rtest_multiindex_at_setz+TestMultiIndexScalar.test_multiindex_at_setsaV}aVaV,< =xx1$$$kuu[!Q&&&{vvk"a'''C||##q((( $yy!### 4zz$1$$$rcPtdddgg}|jd}|dk(sJy)N)rr$FTrLr)rr>)r*s2res r test_multiindex_at_get_one_levelz5TestMultiIndexScalar.test_multiindex_at_get_one_level+s- FE4=/ 2u{{rN) rArBrCrr6rDfilterwarningsrrrFrrrr s1 % [[ PQ%R%$rr)F)__doc__rrrnumpyr^r6pandasrrrrr pandas._testing_testingr'rrrHrrrDrrrrFrrrs|2  $00>S0S0l1* "LM  N  &&r