gL ibdZddlZddlZddlZddlmZmZmZm Z m Z m Z m Z ddl mZGddZGddZGdd Zy) zx test setting *parts* of objects both positionally and label based TODO: these should be split among the indexer tests N) DataFrameIndexPeriodSeries Timestamp date_range period_rangec`eZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZy)TestEmptyFrameSetitemExpansionc(titjdd}tdtjdd}||d<tddgdzitjddt dg }t j ||y) Nrdf_indexnameindexGz? series_indexseriesrcolumns)rpd RangeIndexrrtmassert_frame_equalselfdfrexpecteds h/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/indexing/test_partial.py,test_empty_frame_setitem_index_name_retainedzKTestEmptyFrameSetitemExpansion.test_empty_frame_setitem_index_name_retaineds{ rqz!B CBMM!.$IJ8  vz "-- 38*%  b(+ct}tdtjdd}||d<tddgdzitjddt dg}t j ||y)Nrrrrrrr)rrrrrrrrs r -test_empty_frame_setitem_index_name_inheritedzLTestEmptyFrameSetitemExpansion.test_empty_frame_setitem_index_name_inherited&sk [BMM!.$IJ8  vz "--78*%  b(+r"ctddg}tdtd|jd<tddgdgtj }t j||tddg}tddg|jd<ttjdggddgdgd }t j||y) NABrrrr)rrdtypefloat64) rrrangelocnpr+rrnan)rrrexps r -test_loc_setitem_zerolen_series_columns_alignzLTestEmptyFrameSetitemExpansion.test_loc_setitem_zerolen_series_columns_align2s Sz *1E!H-q c3Zs"**M b(+Sz *1SE*q "&&! Sz!IV b#&r"cVtddg}d}tjt|5gd|jd<dddtddg}dd g|jd <tdd ggd gddgt j }tj||y#1swYbxYw) Nr&r'r(z(cannot set a row with mismatched columnsmatchr)rr7)rrr*) rpytestraises ValueErrorr-r.int64rr)rrmsgr0s r 7test_loc_setitem_zerolen_list_length_must_match_columnszVTestEmptyFrameSetitemExpansion.test_loc_setitem_zerolen_list_length_must_match_columns@s Sz *8 ]]:S 1 "!BFF1I "Sz *Fq !Qc3ZrxxP b#& " "s BB(ct}d}tjt|5d|jd<dddtjt|5t dgdg|jd<dddd}tjt|5d|jdddf<dddy#1swYxYw#1swYOxYw#1swYyxYw)Nz*cannot set a frame with no defined columnsr3r)foorz5cannot set a frame with no defined index and a scalar)rr:r;r<r-r)rrr>s r test_partial_set_empty_framez;TestEmptyFrameSetitemExpansion.test_partial_set_empty_frameNs[: ]]:S 1 BFF1I ]]:S 1 3s5'2BFF1I 3F ]]:S 1 BFF1a4L     3 3  s#B:CC:CCCcttdgtgd}ttgd}tgd|d<tj||ttg}t|j |d<tj||ttg}|j |d<tj||y)NrAobjectr*rrr)rrrrrrrrrs r test_partial_set_empty_frame2zVW  ,,W5   ,,Y7 "5/00; Y_= > rttaxL66% a*%;<  ,,W5 0 13 b(+ r%y&e6*JKY_= > rttaxL?3_5  ,,W5   ,,Y7   ,,Y7  fh/r"c.ttt}tdtti}tj||ttdt}tdtti}tj||y)NrErrAr_)rrrDrrrOs r 'test_partial_set_empty_frame_set_serieszFTestEmptyFrameSetitemExpansion.test_partial_set_empty_frame_set_seriesslvF+ ,af!567 b(+ v57 8eV&%9:; b(+r"ctdg}|j}d|d<tddgtdg}tj||y)Nrrr[r)rcopyrrrrOs r 2test_partial_set_empty_frame_empty_copy_assignmentzQTestEmptyFrameSetitemExpansion.test_partial_set_empty_frame_empty_copy_assignmentsJaS ! WWY3Qqc5#<@ b(+r"cVtddg}ddg|d<tddgtjtjgd}tj||dtddg}d d g|d<tt d d g|st nd t tjtjgt d}tj||tddg}d|jd <tdgtjgd}tj||dy)Nxrcr(r)r6)rlrcF) check_dtype12strrE)rrl)rr.r/rrrrDr-)rusing_infer_stringrrs r 0test_partial_set_empty_frame_empty_consistencieszOTestEmptyFrameSetitemExpansion.test_partial_set_empty_frame_empty_consistenciessSz *a&3Aq60@AB b(> Sz **3#J(:&RVVRVV,F;    b(+ Sz *vA3bffX67 b(>r"N)__name__ __module__ __qualname__r!r$r1r?rBrHrMrPrTrVrergrjrrr"r r r sH , , ' '",* ,,' ,0< ,,?r"r c eZdZdZej j ddZdZdZ dZ dZ ej jdd d gd Z d Zej jd edddgdeddeddeddgfedddgdedededgfej(ddgdej*dej*dej*dgfgdZej jdedddddgfedddddgfej(ddd d!gfgd"Zej jd#eddded$d%ge&d'feddded$d%ge&d'fej(ddeddge&d(fgd)Zy*)+TestPartialSettingcJtgd}|j}d|d<tgdgd}tj|||j}d|jd<tgdgd}tj|||j}d|d<tgdgd}tj|||j}d|jd<tgdgd}tj|||j}d}t j t| 5d|jd <dddd }t j t| 5d|jd <dddy#1swY?xYw#1swYyxYw) Nr5rZ)r)r6r7rZ)rr)r6rZr@)r)r6r7rz%iloc cannot enlarge its target objectr3r7z/index 3 is out of bounds for axis 0 with size 3) rrirrar-r:r; IndexErrorilociat)rs_origsrr>s r test_partial_settingz'TestPartialSetting.test_partial_settingsU " KKM!,l; q(+ KKMa,l; q(+ KKM!. = q(+ KKMa. = q(+ KKM5 ]]:S 1 AFF1I @ ]]:S 1 AEE!H       s?F 4F FF"z.ignore:Setting a value on a view:FutureWarningcttjdjddddgd}|j }d}t j t| 5d |jd <dddd }|rd }t j t| 5d |jd <dddtgdgdd}|j }|jd|jd<tj||tgdgdd}|j }|jd|jd<tj||tgdgdd}|j }|jd|jd<tj||tgdgdd}|j }|jdddf|jdddf<tj||tgdtgdd}|j }|djtj|d<|jdddf|jdddf<tj|||j }|d|d<|j }|jdddf|jdddf<tj|||j }|d|d<|j }|jdddf|jdddf<tj||y#1swYxYw#1swYxYw)Nr8r7r6r&r'r=)rr*r{r3rz)rr6z/index 2 is out of bounds for axis 0 with size 2zlist index out of range)rrr)r)rZrZrYr))rr6rr)r)r7rZrZ)rr6r)gg@g@r`)rr.rKreshaperir:r;r|r}r~rrr-rrJr+)rusing_array_managerdf_origrr>rs r test_partial_setting_framez-TestPartialSetting.test_partial_setting_frames IIaL A &c '  \\^5 ]]:S 1 BGGDM @ +C ]]:S 1 BFF4L 99=> \\^WWQZ  b(+99=> \\^FF1Iq  b(+ \\^3q#v b(+96/3JKL \\^S'..,33q#v b(+<<>3 \\^3q#v b(+<<>3 \\^3q#v b(+k    s!MM&M#&M0c tdd}ttjj dj d|gd}t j|tdd i|d d|jz gd }|j}d |j|d |jzdf<tj|||j}d |j|d |jzdf<tj||tdd i|d d|jz }t j||gd}|j}d |j|d |jzdf<tj|||j}d |j|d |jzdf<tj||y)Nz1/1/2000)periodsr6)rr)r&r'r`Drr&r9rT)sortrr)axis)rrr.random default_rngstandard_normalrconcatfreqrir-rrat)rdatesrrr exp_others r test_partial_setting2z(TestPartialSetting.test_partial_setting2Ts:q1 II ! !! $ 4 4V <(  99 iabc UZZ0GH IPT \\^./uRy5::%s*+ b(+ \\^-.eBi%**$c)* b(+q!fE"#J,CD 99gy1: \\^,-uRy5::%q() b(+ \\^+,eBi%**$a'( b(+r"cJtddgddggddg}|jdj}d|_t j |t|j jg}|jd|jd<tj||y)NTr)Fr6femalefitnessr() rr-rirrrT infer_objectsrr)rrrrs r test_partial_setting_mixed_dtypez3TestPartialSetting.test_partial_setting_mixed_dtypeqsq E1:.98M N FF1INN 99b)A,..">">"@ABFF1Iq  b(+r"c tddgddg}ttjdtjggd}tjt d5|j gdddd|jgd}tj||d ttjdtjtjggd }tjt d5|j gd ddd|jgd }tj||d tgd gd }|j gd }tj||d tddtjdggd}tjt d5|j gdddd|jgd}tj||d dtjtd}tjt |5|j gddddtddtjggd}tjt d5|j gdddd|jgd}tj||d tgdgd}tdtjtjggd}tjt d5|j gdddd|jgd}tj||d tgdgd}ttjddggd}tjt d5|j gdddd|jgd}tj||d tgdgd}ttjddggd}tjt d5|j gdddd|jgd}tj||d tgdgd}tdtjtjggd}tjt d5|j gdddd|jgd}tj||d tgdgd}tdtjtjggd}tjt d5|j gdddd|jgd}tj||d tgdgd }|jgd!}tj||d y#1swYxYw#1swY xYw#1swY[xYw#1swYxYw#1swYxYw#1swYxYw#1swYxYw#1swY xYw#1swYwxYw#1swYxYw)"N皙?皙?r)r6rr7r6r7 not in indexr3Tcheck_index_typer7r6r7rlrrrr6r6r)r6r6rlr)'\"None of \[Index\(\[3, 3, 3\], dtype='z'\)\] are in the \[index\]\"r7r7r7r6r6r7rr333333?r5rr7rrrrr皙?r)r6r7rrZr7r7rrZrrrrZr8r9r9r6r6rrZrZrrrrr6r6r)r)r)r)rr) rr.r/r:r;KeyErrorr-rbrrar*intr})rserrrdr>rs r test_series_partial_setz*TestPartialSetting.test_series_partial_set}sc3Z1v.2663/yA ]]8? ;  GGI  Y' vx$G26637~N ]]8> : $ GGN # $^, vx$G/;# vx$G3RVVS1H ]]8> : $ GGN # $^, vx$G7rxx}oF& & ]]83 /  GGI  3RVV,I> ]]8> :  GGI  Y' vx$G ?) 43/yA ]]8> :  EE)  9% vx$G '| <2663,I> ]]8> :  EE)  9% vx$G '| <2663,I> ]]8> :  EE)  9% vx$G '| <3/yA ]]8> :  EE)  9% vx$G '| <3/yA ]]8> :  EE)  9% vx$G.lC,' vx$Ge   $ $ $ $              sxX8X3X0X+X8$Y5YY%Y,Y9XXX(+X58YYYY),Y69Zctddgdd}tddg|d }tjtd 5|j gd dddtjtd 5|j gddddtgddd}tgd|d }|j gd}t j||dtjtd 5|j gdddddtjtd}tjt| 5|j gddddtjtd 5|j gddddtgddd}tjtd 5tgd|d j gddddtgddd}tjtd 5tgd|d j gddddtgddd}tjtd 5tgd|d j gddddtgd dd}tjtd 5tgd|d j gd!dddtgddd}tjtd 5tgd|d j gd"dddtgd#dd}tgd$|d }|jgd%}t j||dy#1swY-xYw#1swYxYw#1swYxYw#1swYOxYw#1swY'xYw#1swYxYw#1swYxYw#1swYUxYw#1swYxYw#1swYxYw)&Nr)r6r=idxr*rrrr)rrz\[3\] not in indexr3rrrrrTrz\['x'\] not in indexrrz(', name='idx'\)\] are in the \[index\]\"rrr5rrrrrrrrrrrr) rrr:r;rr-rrar.r*rr})rrrexp_idxrrdr>s r !test_series_partial_set_with_namez4TestPartialSetting.test_series_partial_set_with_namesFQF'6c3Zs5]]8+@ A  GGI  ]]8? ; $ GGN # $ u=/sC# vx$G ]]8+B C $ GGN # $ 7rxx}oF5 5 ]]83 /  GGI  ]]8> :  GGI  IW59 ]]8> : H ?#C 8 < : M 's = A A) L MLe< ]]8> : M 's = A A) L MLe< ]]8> : M 's = A A) L MLe< ]]8> : M 's = A A) L M G%@.gCH,' vx$Gc   $ $ $ $     H H M M M M M M M MswM91N/NN 6N-; N: O! O4 O! O.9NNN N*-N7:OOO!O+.O7keydgY@c lttjjdj dt t dttddd }|j}|jd |j|ddf<t t |j|gzt|jj }tj|j|jd gjgd }t|||j }t#j$||y)Nr6 rABCDrE 2000-01-01rr'rrrFrrrr)rr.rrrrlistrDrrir}r-rr concatenatevaluesrrr)rrorigrex_indexex_datars r 6test_setitem_with_expansion_numeric_into_datetimeindexzITestPartialSetting.test_setitem_with_expansion_numeric_into_datetimeindexs II ! !! $ 4 4W =$v,f5\2C@  YY[sAvdjj)SE1djjooV..$++rwws|/B/B!C!LWHdllK b(+r"c ttjjdj dt t dttddd }|j}|jd |jd ddf<t|jd d }tj|t|jj!g}t#j$||t#j&|j(t |j(j+d gz|j(j,d k(sJy)Nr6rrrErrr'rrFrr[rrD)rr.rrrrrrDrrir}r-rrrrrrrrRrtolistr*)rrrrr0s r test_partial_set_invalidz+TestPartialSetting.test_partial_set_invalid#s II ! !! $ 4 4W =$v,f5\2C@ YY[sAvRWWQZc*iiy~//==?@A b#& bhhdjj.?.?.ASE.I(JKxx~~)))r"zidx,labels,expected_idx2000r)startrr) 2000-01-04 2000-01-08 2000-01-12r)rrrz1 day)rr)4D8D12Dz4 dayz8 dayz12 dayc|td|}gd}|||}tj||j||turtj |||yy)Nrr)r7r9 )r,r assert_equalr-rra)rrlabels expected_idxframe_or_seriesobjexpected_valuers r 4test_loc_with_list_of_strings_representing_datetimeszGTestPartialSetting.test_loc_with_list_of_strings_representing_datetimes6s]@eBis3#"><@ #''&/2 f $  " "8S[ 9 %r"z idx,labelsz 2000-01-30z3 dayz30 daycttd|}ttd|}d}tjt |5|j |dddtjt |5||dddtjt |5|j |dddy#1swYfxYw#1swYIxYw#1swYyxYw)Nrrrr3rr,rr:r;rr-)rrrrrr>s r Btest_loc_with_list_of_strings_representing_datetimes_missing_valuezUTestPartialSetting.test_loc_with_list_of_strings_representing_datetimes_missing_value_s$U2Yc* uRy , ]]83 /  GGFO  ]]83 /  K  ]]83 /  FF6N         s$ B?=C &C?C CC zidx,labels,msgrrrEzHNone of \[Index\(\['4D', '8D'\], dtype='object'\)\] are in the \[index\]zXNone of \[Index\(\['2000-01-04', '2000-01-08'\], dtype='object'\)\] are in the \[index\]cttd|}ttd|}tjt |5|j |dddtjt |5||dddtjt |5|j |dddy#1swYfxYw#1swYIxYw#1swYyxYw)Nrrr3r)rrrr>rrs r Etest_loc_with_list_of_strings_representing_datetimes_not_matched_typezXTestPartialSetting.test_loc_with_list_of_strings_representing_datetimes_not_matched_type|sBU2Yc* uRy , ]]83 /  GGFO  ]]83 /  K  ]]83 /  FF6N         s$B=;C $C=C CCN)rsrtrurr:markfilterwarningsrrrrr parametrizerrr rrrrtimedelta_range TimedeltarrrrDrrvr"r rxrxsv#J [[ PQ>,R>,@,: ,YHv8Ht [[US%L1,2, *& [[!62C@::l+l+l+ #"""=#g&  W(=|r||H?UV ' 8 :98 : [[62C@|,  #>|,  R  gr :WhtTl&1,  #"""=|\2&A?  # : ;: r"rxceZdZdZy)TestStringSlicingc Ztjgd}ttt ||}ttt |dd|dd}t j td5|ddddd|dd}tj||y#1swY%xYw) N) 2012-01-01z 2012-01-02z 2012-01-03Nrr7z non-existing keys is not allowedr3rz 2012-01-04z2012-01-03 00:00:00.000000000) r to_datetimerr,rLr:r;rrr)rrrrrds r ,test_slice_irregular_datetime_index_with_nanz>TestStringSlicing.test_slice_irregular_datetime_index_with_nansOP uSZ( 6U3uRay>2%)D ]]8+M N * |L )  *L!@A fh/ * *s 7B!!B*N)rsrtrurrvr"r rrs0r"r)__doc__numpyr.r:pandasrrrrrrrr pandas._testing_testingrr rxrrvr"r rsM  S?S?lxxv 00r"