gL iLddlmZmZddlZddlZddlZddlZddlmZddl m Z ddl m cm ZddlmZddlZddlmZmZmZmZmZmZmZmZmZddlmZddlm cm!Z"ddl#m$Z$m%Z%m&Z&ddl'm(Z(m)Z)m*Z*dd l+m,Z,m-Z-m.Z.ej^Z0ejbe.e*g d Z2ejbd Z3d Z4dZ5dZ6dde.fdZ7d$dZ8d$dZ9ejbdZ:GddZ;GddZGddZ?GddZ@Gdd ZAd!ZBd"ZCd#ZDy)%)datedatetimeN)BlockPlacement)IS64) is_scalar) Categorical DataFrame DatetimeIndexIndex IntervalIndexSeries Timedelta Timestamp period_range) DatetimeArray SparseArrayTimedeltaArray) BlockManagerSingleBlockManager make_block)ensure_block_shapemaybe_coerce_values new_blockparamsc|jS)zS Fixture to test both the internal new_block and pseudo-public make_block. param)requests k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/internals/test_internals.py block_makerr!4s ==ctdS)Nza: f8; b: object; c: f8; d: object; e: f8;f: bool; g: i8; h: complex; i: datetime-1; j: datetime-2;k: M8[ns, US/Eastern]; l: M8[ns, CET];) create_mgrr"r mgrr&<s  1 r"cztj|j|j|j|jk(sJt |j t sJt |j t sJtj|j j|j jyN)tmassert_numpy_array_equalvaluesdtype isinstancemgr_locsras_array)leftrights r assert_block_equalr2Es| U\\: :: $$ $ dmm^ 44 4 ennn 55 5 6 68O8OPr"c tj|d}tjjj |||j fdt |dz zzjS)Nr)r)xshapestrides)nparangelib stride_tricks as_strideditemsizelencopy)r6arrs r get_numeric_matrAMs\ ))E!H C 66   * * US\\Odc%j1n6M$M +  df r" c t|}t|}|tf}|f|z}t|}|dvr|j ||z}n|dvrd|j ||zz}n|dvr;t j |j|zD cgc]} d| d c} |}n|dvr't j|t j }n|d vr|d zj d }nm|jd rtjd|} | Jd|| jd} |dk(sJdtt jtdz| j }t#|t|}n|dvr|dzj d}n|dvrt%gd}n|dvrt%gd}n|dvr|ddk7rt&t)d|ddDsJ|j+d rt j,} nd!} t/| | dd"d#| d$d%| d&g | '}|j0j3} | |dz z } nt5d(|d)t7|}|||t|*Scc} w)+a Supported typestr: * float, f8, f4, f2 * int, i8, i4, i2, i1 * uint, u8, u4, u2, u1 * complex, c16, c8 * bool * object, string, O * datetime, dt, M8[ns], M8[ns, tz] * timedelta, td, m8[ns] * sparse (SparseArray with fill_value=0.0) * sparse_na (SparseArray with fill_value=np.nan) * category, category2 N)floatf8f4f2inti8i4i2i1uintu8u4u2u1)complexc16c8y?)objectstringOAd)bboolr,)rdtM8[ns]geAr^zM8[nszM8\[ns,\s*(\w+\/?\w*)\]zincompatible typestr -> rr4z)must have only 1 num items for a tz-awareiʚ;)tzndim) timedeltatdm8[ns]rd)category) r4r4rfrgrgrgrh) category2) arjrjrjrZrZcrkrkrY)sparse sparse_narBc3&K|] }|dk( yw)r4Nr%).0ss r zcreate_block..s.a16.s_narfrgrh fill_valuezUnsupported typestr: "" placementra)rr>NrAastyper8reshaperavelonesbool_ startswithresearchgroupsr r9_datarrNotImplementedErrorallendswithnanr sp_valuesview ValueErrorr)typestrr{ item_shape num_offsetmaker num_itemsr6matr+imr_rxr@s r create_blockrWs"y)IIIT L: %E % C G$z1 , ,G,z9: - - j0HI1q1YI5Q M !bhh/ 0 0)##H-   G $ II0' :}B 8 BB} XXZ]A~JJJ~ryy|e3;AA#FU< 1 1'!!(+ M !;< N "OP + + 9?% %.5":....   E "JJ Q1j!Q A N! ##% zA~1'!<==  (F 93u: >>OJs I8c |t}tt|td|dt t j |S)Nrr%)r{r)r|rrslicer r8r9)rnum_rowss r create_single_mgrrs> Wa(:rJ bii!" r"c t|tf}d}g}i}|jdD]}|j}t|s|j dddd\}}|j}|jjd}|j |t tjt||z} ||j ||t|z }t|}g} d} |jD]E\}}|jdd} | jt| ||| | t|z } Gt| d } tt!| |g|D cgc] } ttj| "c} zS#t$r|||<YwxYwcc} w) aU Construct BlockManager from string description. String description syntax looks similar to np.matrix initializer. It looks like this:: a,b,c: f8; d,e,f: i8 Rules are rather simple: * see list of supported datatypes in `create_block` method * components are semicolon-separated * each component is `NAME,NAME,NAME: DTYPE_ID` * whitespace around colons & semicolons are removed * components with same DTYPE_ID are combined into single block * to force multiple blocks with same dtype, use '-SUFFIX':: 'a:f8-1; b:f8-2; c:f8-foobar' Nr;:rf,-)rrc |jdSNr)r.)rZs r zcreate_mgr..s1::a=r")key)r|splitstripr> partitionextendlistr8r9KeyErrorr itemsappendrsortedrtuple)descrroffset mgr_itemsblock_placementsrYnamesblockstrr{blocksrrsblocksns r r$r$s*T FI [[  GGI1v ++c*3Q3/x>># ##C(3u:.78  3 X & - -i 8 #e* i I FJ/557%)..%a( zj  c)n$ %V!89G  g  J?quRYYq\*?? % 3)2 X & 3(@sF!3%F5 !F21F2ctdgdS)NrDrrfrh)rr%r"r fblockrs  ++r"ceZdZdZej j ddgdgddggddd ggd d gggd Zd ZdZ dZ dZ dZ dZ y) TestBlockc\tddg}|jtjk(sJy)NrJr)rr,r8int32)self int32blocks r test_constructorzTestBlock.test_constructors(!$, 288+++r"z typ, datarDrrRrUr4rgr[rucZt||}ttj||yr()rr2r)round_trip_pickle)rtypdatablks r test_picklezTestBlock.test_pickles%3%2//4c:r"ct|jtsJtj|jj t jgdt jy)Nrr\) r-r.rr)r*r/r8arrayintprrs r test_mgr_locszTestBlock.test_mgr_locssB&//>::: ## OO $ $bhhy&H r"c|j|jjk(sJ|j|jjk(sJt|t|jk(sJyr()r6r+r,r>rs r test_attrszTestBlock.test_attrssU||v}}22222||v}}222226{c&--0000r"cH|j}||usJt||yr()r?r2)rrcops r test_copyzTestBlock.test_copys%kkm&   63'r"c|j}|j}|jdd}|j|usJ||usJtj|jj t jddgt j|jddk(jrJ|jddk(jsJ|j}|j}|jd}t|dk(sJ|j|usJtj|djj t jdgt jtj|djj t jdgt j|jddk(jrJ|djddk(jsJ|j}|jd}t|dk(sJtj|djj t jddgt j|djddk(jsJ|j}tjtd5|jddddy#1swYyxYw)Nrrfrhr\r4matchrg)r?r.deleter)r*r/r8rrr+rr>pytestraises IndexError)rrnewblocsnbs r test_deletezTestBlock.test_delete s]{{}}} [[^A }}$$$~~ ## KK "((Aq6"A KKNa',,... ! !&&((({{}}} [[^2w!||}}$$$ ## qENN # #RXXqc%A  ## qENN # #RXXqc%A KKNa',,...1 Q1$))+++{{} [[^2w!|| ## qENN # #RXXq!fBGG%D 1 Q1$))+++{{} ]]:T 2  KKN   s #K>>Lctjddjddjd}t |}|j j d}t|jtsJ|jd}t|d k(sJt|djtsJt|djtsJt |jd }|j j d}t|jtsJ|jdd g}t|d k(sJt|djtsJt|djtsJy) NrIr\rurhrdrr4rfr^rg) r8r9r~rr _mgrrr-r+rrr>r)rr@dfrrs r test_delete_datetimelikez"TestBlock.test_delete_datetimelikeJs1ii$'//15::8D s^ggnnQ#**n555 ZZ]2w!||"Q%,,777"Q%,,777 sxx) *ggnnQ#**m444 ZZA 2w!||"Q%,, 666"Q%,, 666r"ctjjdjd}t |t gdd}|j }d|dd|jdk(jsJt|dk(sJt |dgt dgdt |dgt dgdt |dgt d gdg}t||D]\}}t||y) Nrf)rgrh)rgr4rvrzirgrr4rv) r8random default_rngstandard_normalrr_splitr+rr>zipr2)rr+rresultexpectedresexps r test_splitzTestBlock.test_split_s&&q)99&A.*C!Lq  e#((***6{a faSk^QC-@q I faSk^QC-@q I faSk^QC-@q I  FH- )HC sC ( )r"N)__name__ __module__ __qualname__rrmark parametrizerrrrrrrr%r"r rrsx, [[ i   1v  aSM  ;; 1 ( (T7*)r"rcReZdZdZdZdZejjdddgdZ dZ d Z d Z d Z d Zd ZdZejjddej$fdej&fgdZejjddej*fdej,fdej.fgdZdZdZejjdgddZdZdZejjdgddZd Zd!Z d"Z!d#Z"d$Z#ejjdd%d&gd'Z$ejjdgd(d)Z%d*Z&ejjd+d,d-gd.d/gd0Z'd1Z(d2Z)y3)4TestBlockManagerc\td}|jdk(sJt|dk(sJy)Nza,b,c: f8-1; d,e,f: f8-2rfrv)r$nblocksr>rr&s r rzTestBlockManager.test_attrsts/34{{a3x1}}r"cXtd}|j|j}}tt j dg|d_tt j dg|d_d}tjt|5t||}|jdddtt j dg|d_tt j dg|d_t||}|jdy#1swYuxYw)Nz a:bool; a: f8rr4zGaps in blk ref_locsr) r$axesrrr8rr.rrAssertionErrorr_rebuild_blknos_and_blklocsiget)rtmp_mgrrrmsgr&s r test_duplicate_ref_loc_failurez/TestBlockManager.test_duplicate_ref_loc_failureys_-||W^^f+BHHaSM:q +BHHaSM:q % ]]> 5 .vt,C  + + - .,BHHaSM:q +BHHaSM:q 64(   . .s D  D)cFtj|}tjtj||j tj||j t |dsJt |dsJ|jrJ|jrJy)Nr_is_consolidated_known_consolidated) r)rassert_frame_equalr _from_mgrrhasattrrr)rr&mgr2s r rzTestBlockManager.test_pickles##C(    #(( 3   499 5 t/000t2333((((+++++r" mgr_stringza,a,a:f8z a: f8; a: i8ct|}tj|}tjt j ||j t j ||j y)Nr)r$r)rrr rr)rrr&rs r test_non_unique_picklez'TestBlockManager.test_non_unique_picklesR$##C(    #(( 3   499 5 r"ctd}tj|}tjt j ||j t j ||j td}tj|}tjtj||j tj||j y)N a: categoryrre) r$r)rrr rrrassert_series_equalr _constructor_from_mgr)rr&rsmgrsmgr2s r test_categorical_block_picklez.TestBlockManager.test_categorical_block_pickles'##C(    #(( 3   499 5 !,$$T*  H * *4dii * @ H * *5uzz * B r"c ttd}tjj djd}t |j ttjdtj|j}t|f|ttjdg}tj|jdj|dtj|jd j|d tj|jdj|dy) Nabcrf)rgrgrgr\)r+r{ra)rrrr4)r rr8rrrr?rr9rrarr)assert_almost_equalrinternal_values)rcolsr+blockr&s r test_igetzTestBlockManager.test_igetsT%[!&&q)008;;=$RYYq%@A  5($biil8K1LM sxx{::rr8risetr)r*rrobject_rs r test_setzTestBlockManager.test_sets($7 3syy>3%1(=> BHHeWq[)* ##CHHQK$?$?$A288QCRSGCTU ## HHQK ' ' )288UGaKrzz+R  ##CHHQK$?$?$A288QCRSGCTU ## HHQK ' ' )288UGaKrzz+R r"cb|jt|jdtjt t |j|jjdtjdt |jjd}|j|jtjk(sJ|j}|j|jjdtjdt |jjd}|j|jtjk(sJ|jt|jdtjjdj!t j#t$|jjd}|j|jtjt$k(sJ|j|jjdtjjdj!t |j|jtj&k(sJy)Nbazr\rquuxrf)rr>rr8zerosr|r[rget_locrepeatrr,r consolidaterrrr}rHfloat64)rr&idxrs r test_set_change_dtypez&TestBlockManager.test_set_change_dtypes 3syy>5"((1D*AB ""5)299UA+>?ii&xx}""bjj000  $**$$U+RYYua-@Ajj  'yy~##rzz111  O  II ! !! $ 4 4Q 7 > >s C jj  (yy~##rxx}444 JJ  v & (=(=a(@(P(PQR(S yy~##rzz111r"c*|jd}t|j|jD]\}}tj|j |j t |j tjr/|j j|j jurJ|j jj|j jjurJ|j|jd}t|j|jD]\}}|j }|j }tj||t |tjr|j}|j}n,|jj}|jj}t |tr ||||urJt |tjs||urJ||Jy)NF)deepT) r?rrr) assert_equalr+r-r8ndarraybase_ndarray_consolidate_inplacer) rr&cprcp_blkbvalscpvalslbaserbases r rzTestBlockManager.test_copys XX5X !szz2995 OKC OOFMM3:: 6#**bjj1}}))SZZ__<<<}}--22cjj6I6I6N6NNNN O   " XX4X szz2995 7KCJJE]]F OOFE *&"**-  ,,++&-0 %-U%=OPP 3E)))}66) 7r"cttd}|jjtjk(sJy)Nza: sparse-1; b: sparse-2)r$r/r,r8r(rs r test_sparsezTestBlockManager.test_sparses+34||~##rzz111r"crtd}t|jdk(sJt|tsJy)Nza: sparse-1; b: sparse-2; c: f8rg)r$r>rr-rrs r test_sparse_mixedz"TestBlockManager.test_sparse_mixeds3:;3::!####|,,,r"zmgr_string, dtypez c: f4; d: f2c: f4; d: f2; e: f8cXt|}|jj|k(sJyr(r$r/r,rrr,r&s r test_as_array_floatz$TestBlockManager.test_as_array_floats( $||~##u,,,r"za: bool-1; b: bool-2z%a: i8-1; b: i8-2; c: i4; d: i2; e: u1zc: i4; d: i2; e: u1cXt|}|jj|k(sJyr(r>r?s r test_as_array_int_boolz'TestBlockManager.test_as_array_int_bool s($||~##u,,,r"cXtd}|jjdk(sJy)Nzh: datetime-1; g: datetime-2r^r>rs r test_as_array_datetimez'TestBlockManager.test_as_array_datetime,s'78||~##x///r"ctd}|jdjdk(sJ|jdjdk(sJ|jjdk(sJy)Nz%h: M8[ns, US/Eastern]; g: M8[ns, CET]rzdatetime64[ns, US/Eastern]r4zdatetime64[ns, CET]rU)r$rr,r/rs r test_as_array_datetime_tzz*TestBlockManager.test_as_array_datetime_tz0sa@Axx{  $@@@@xx{  $9999||~##x///r"t)float16float32r(rint64ctd}tj|}|j|}|j djj |k(sJ|j djj |k(sJ|j djj |k(sJtd}tj|}|j|d}|j djj |k(sJ|j djj |k(sJ|j d jj |k(sJ|j d jj |k(sJ|j djj tj k(sJ|j djj tj k(sJ|tjk7r9|j d jj tjk(sJy|j d jj |k(sJy) Nr<rr4rfz6a,b: object; c: bool; d: datetime; e: f4; f: f2; g: f8ignore)errorsrhrurvrg) r$r8r,r}rtyperrJ datetime64)rrGr&tmgrs r test_astypezTestBlockManager.test_astype6s./ HHQKzz!}yy|!!&&!+++yy|!!&&!+++yy|!!&&!+++QR HHQKzz!Hz-yy|!!&&!+++yy|!!&&!+++yy|!!&&!+++yy|!!&&!+++yy|!!&&"**444yy|!!&&"**444 =99Q<%%**bmm; ;;99Q<%%**a/ //r"cFd}td}|jd}|||td}|jdtjdgt ztj |jd tjd gt ztj |jd tjd gt ztj |jd}|rd ntj }|jdj|k(sJ|jd j|k(sJ|jd j|k(sJ|jdjtjk(sJ|jdjtjk(sJtd}|jdtjdgt ztj |jd tjd gt ztj |jd tjd gt ztj |jd}|jdj|k(sJ|jd j|k(sJ|jd j|k(sJ|jdjtjk(sJ|jdjtjk(sJ|jdjjsJtj|jdjtjk(sJ|jdjtjk(sJ|jdjtjk(sJy)Nct|j}t|j}t|t|k(sJ|D]:}d}|D]-}|j|jk(j s+d}n|r:J|D]:}d}|D]-}|j|jk(j s+d}n|r:Jy)z4compare the blocks, numeric compare ==, object don'tFTN)setrr>r+r)old_mgrnew_mgr old_blocks new_blocksrZfoundrobs r _comparez/TestBlockManager.test_convert.._compareSsW^^,JW^^,Jz?c*o5 55  $BBII-224 $ u    $BBII-224 $ u  r"z f: i8; g: f8Tr?za,b,foo: object; f: i8; g: f8r1r\r4z2.rfzfoo.strrgrhzEa,b,foo: object; f: i4; bool: bool; dt: datetime; i: i8; g: f8; h: f2rurvr)r$convertrr8rr|rrr,rJr(rrrNrOrH)rusing_infer_stringr[r&rVr,s r test_convertzTestBlockManager.test_convertRs 0(++4+(g89 BHHcUQYbjj9: BHHdVaZrzz:; BHHfX\<=++4+(+||A$$---||A$$---||A$$---||A$$000||A$$ 222 S  BHHcUQYbjj9: BHHdVaZrzz:; BHHfX\<=++4+(||A$$---||A$$---||A$$---||A$$000||A$$000||A$$))82==8)||A$$000||A$$ 222||A$$ 222r"cdD]_}td|}|jj|k(sJtd|d|}|jj|k(r_Jy)N)rErIrUr[rRr^rdza: z; b: r>)rr,r&s r test_interleavez TestBlockManager.test_interleaveslR 1Es5']+C<<>''50 00s5'ug67C<<>''50 00  1r"))r rI)za: category; b: categoryrI)a: category; b: category2rU) a: category2rU)za: category2; b: category2rU)a: f8rE) a: f8; b: i8rE) a: f4; b: i8rE)a: f4; b: i8; d: objectrU)a: bool; b: i8rU) a: complexrR)a: f8; b: categoryrU)a: M8[ns]; b: categoryrU)a: M8[ns]; b: boolrU)a: M8[ns]; b: i8rU)a: m8[ns]; b: boolrU)a: m8[ns]; b: i8rU)a: M8[ns]; b: m8[ns]rUcDtd}|jjdk(sJtd}|jjdk(sJtd}|jjdk(sJtd}|jjdk(sJtd}|jjdk(sJtd }|jjdk(sJtd }|jjdk(sJtd }|jjdk(sJtd }|jjd k(sJtd}|jjdk(sJtd}|jjdk(sJtd}|jjdk(sJtd}|jjdk(sJtd}|jjdk(sJtd}|jjdk(sJtd}|jjdk(sJy)Nr rIrerUrfrgrErhrirjrkrlrRrmrnrorprqrrrsr>r?s r test_interleave_dtypez&TestBlockManager.test_interleave_dtypesP2'||~##t+++45||~##x///(||~##x///!||~##t+++(||~##t+++(||~##t+++23||~##x///)*||~##x///&||~##y000-.||~##t+++12||~##x///-.||~##x///+,||~##x///-.||~##x///+,||~##x////0||~##x///r"c^|j|jjdtjj dj t|j|jjdtjj dj t|j|jjdtjj dj t|j|jjdtjj dj t|j|jjdtjj dj t|j}|jdk(sJ|jj}|jdk(sJt|jd jtsJtj |jd jj"tj$t'|jtj( y) NfrfrYrZghrhr4rr\)rrr%r8rrrr|r'rget_numeric_datar-rr.rr)r*r/r9r>r)rr&conss r test_consolidate_ordering_issuesz1TestBlockManager.test_consolidate_ordering_issuess ""3')>)>q)A)Q)QRS)TU ""3')>)>q)A)Q)QRS)TU ""3')>)>q)A)Q)QRS)TU ""3')>)>q)A)Q)QRS)TU ""3')>)>q)A)Q)QRS)TU ||q    113||q   $++a.11>BBB ## KKN # # , ,biiDJJrww.W r"c>td}|jgdd}|jrJtj|j t gdtj|jdj|jdjtj|jdj|jdjtj|jdj|jdjtj|jdj|jdjy) Nz3a: f8; b: i8; c: f8; d: i8; e: f8; f: bool; g: f8-2)rxrkrjrYraxisrvrfr4rg) r$ reindex_axisis_consolidatedr)assert_index_equalrr rrr)rr& reindexeds r test_reindex_itemsz#TestBlockManager.test_reindex_itemss/NO$$%9$B ,,... ioou5I/JK  HHQK ' ' )9>>!+<+L+L+N   HHQK ' ' )9>>!+<+L+L+N   HHQK ' ' )9>>!+<+L+L+N   HHQK ' ' )9>>!+<+L+L+N r"ctdd}|jdtjgdtj|j }t j|jtgdt j|j|jjdj|j|jjdj|j|jjdtjgd d |rbt j|j|jjdjtjgd yt j|j|jjdjtjgd y) N[int: int; float: float; complex: complex;str: object; bool: bool; obj: object; dt: datetimerrrur4rfrgr\)rHrDrRr[rD)Y@gi@gr@Tinplace)?rr)r$rr8rrrzr)rrr rrr%r)rusing_copy_on_writer&numerics r test_get_numeric_dataz&TestBlockManager.test_get_numeric_datask A  BHHYbjj9:&&( gmmU3V-WX  HHSYY&&w/ 0 @ @ B LL..w7 8 H H J  MM ! !' * HH* +    " "**734DDF)   " "**734DDF./ r"ctdd}|jdtjgdtj|j }t j|jtdgt j|j|jjdj|j|jjdj|jdtjgdd |rbt j|j|jjdjtjgd yt j|j|jjdjtjgdy) Nrrrrv)TFTr\r[rTr)TTT)r$rr8rr get_bool_datar)rrr rrr%rr*)rrr&boolss r test_get_bool_dataz#TestBlockManager.test_get_bool_datasT A  BHH0 CD!!# ekk5&?;  HHSYY&&v. / ? ? A JJu{{**62 3 C C E  1bhh23T B   ' '**623CCE+,   ' '**623CCE,- r"c,ttdy)Nu b,א: object)reprr$)rs r test_unicode_repr_doesnt_raisez/TestBlockManager.test_unicode_repr_doesnt_raise4s Z* +,r"a,b,c: i8-1; d,e,f: i8-2za,a,a: i8-1; b,b,b: i8-2ct|}t|jddd|j}|j |sJy)Nrn)r$rrrequals)rrbm1bm2s r test_equalszTestBlockManager.test_equals7s; $3::dd+SXX6zz#r")z a:i8;b:f8za:i8;b:f8;c:c8;d:bza:i8;e:dt;f:td;g:stringza:i8;b:category;c:category2zc:sparse;d:sparse_na;b:f8ct|}tj|j}|D]G}t t ||j }|j|sJ|j|rGJyr()r$ itertools permutationsrrrrr)rrbm block_permsbm_permbm_thiss r (test_equals_block_order_different_dtypesz9TestBlockManager.test_equals_block_order_different_dtypes@si #,,RYY7 " &G"5>277;G99W% %%>>"% %% &r"chtdd}|jjgdk(sJy)NrEru)r)rtr@g@g@)rexternal_valuestolistrs r test_single_mgr_ctorz%TestBlockManager.test_single_mgr_ctorSs/q1""$++-1JJJJr"valuer4Truerg@ctd}dt|jd}tjt |5|j dgdg|dddy#1swYyxYw)Nrz9For argument "inplace" expected type bool, received type .rr4rfr)r$rNrrrr replace_list)rrrrs r test_validate_bool_argsz(TestBlockManager.test_validate_bool_argsWsl34 !%[112! 5 ]]:S 1 6   aS1#u  5 6 6 6s A  A)ctd}|jdtjdgt j |j tjgdtrdndt j |jtjgdtrdndt|jdk(sJy) Na,b,c: i8; d: f8rrrr4rrJrr\)rrrr4rf) r$_iset_split_blockr8rr)r*blklocsrblknosr>rrrs r test_iset_split_blockz&TestBlockManager.test_iset_split_blockbs * + Q! . ## JJW'R  ## IIrxx tGQ 299~"""r"c td}|jdtjdgtjt t dgt j|jtjgdtrdndt j|jtjgdtrdndt|jd k(sJy) NrrrBrrJrr\)rrfrfr4rg) r$rr8rrranger)r*rrrr>rrs r test_iset_split_block_valuesz-TestBlockManager.test_iset_split_block_valuesns * + Q! rxxeBi8I/JK ## JJW'R  ## IIrxx tGQ 299~"""r"N)*rrrrrrrrrr rrr r*rr9r;r8rIr(r@rrJrrBrDrFrQrbrdrur|rrrrrrrrrrr%r"r rrss  * , [[\J+GH I    I  22#7J2-  [[ "** %(=rzz'JK- - [[ #RXX . 4bhh ? "BHH - --00  [[S"UV0W0693v1 [[ .#0/.#0J " .@6- [[13MN  [[  & &K [[Wq&)S&AB6C6 # #r"rct|jdk(r|jS|jjS)Nr4)rarr/T)r&s r _as_arrayr{s. xx1}""$$ <<>  r"c @eZdZedeedeedefedefedefedefgZejjded Z ejjded Z ejjdeejjd d e jd gdZejjdeejjd d e jd gdZy ) TestIndexingrErIza,b,c,d,e,f: f8rza,b,c,d,e,f: i8za,b: f8; c,d: i8; e,f: stringza,b: f8; c,d: i8; e,f: f8r&c 2d}|jdksJ|jt|jD][}|||td|||td|||td|||tdd|||tddd|jdksv|||tj|j |tj |||tj|j |tj |j |dk\s|||tj|j |dzdk(|||tjgd tj ^y) Nc (t|}t|tjr|j|}t |rgt |r\t |t |k7rEtj |tjt |t |z tg}t|tr|j||}n^|jdk(rD|dk(r?t|tjr%|jtk(r|j|}n t|tdf|z|fz}tj ||t|dtj"|j|||j|y)Nr\r~r4rF check_dtype)rr-r8r.rr> concatenater$r[r get_slicerar,get_rows_with_mask TypeErrorr)r*r)r&rslobjraxsliced mat_slobjs r assert_slice_okz4TestIndexing.test_get_slice..assert_slice_oks6C.C%,XXd^r7s5zc%jCG.CNNR3u:)=T JKE%'u48A AIubjj1KK4'//6 &&t-8I  ' 'I & 1u   ! !#((4."7T9J Kr"rfrgdr4rhrr\)TTF) rarrr8rr6rr$r9r)rr&rrs r test_get_slicezTestIndexing.test_get_slices: L@xx1}&chh&}/ B CU4[ 1 CU1X . CU3Z 0 CU1a[ 1 CU1a_ 5xx!| R2bhh)OPR#))B-rxx)PQ99R=A%#CRYYsyy}-E-IQ-NO#R*=RXX!N# r"c ~d}t|jD]!}|||tjgtj|||tjgdtj|||tjt t|j |tj|j |dk\s|||tjgdtj|||tjgdtj$y)Nc(t|}|j||}tjt j|||t|dtj |j |j||j |y)NFr)rtaker)r*r8rr)r&rindexerrtakens r assert_take_okz.TestIndexing.test_take..assert_take_okspC.CHHWd+E  ' 'Wd+Yu-=5   ! !#((4."5"5g"> 4@P Qr"r\)rrrrrgrr4rfrnr)rrar8rrrr6)rr&rrs r test_takezTestIndexing.test_takes R/ WB 3BHHRrww,G H 3BHHYbgg,N O R$uSYYr]/C*DBGG!T yy}!sB"''0RSsBRWW0UV Wr"rxNrc d}t|jD]}|||tg|||||j||||||j|gd||||tgd||||td|j|ddg||j|dk\s||||j|dd|||||j|ddd |||||j|gd |y) Nc4t|}|j|j|}|j|||}t j t j||||t|dt j|j||yNrwFr) rrget_indexer_forrr)r*algostake_ndr)r&r new_labelsrxrrrs r assert_reindex_axis_is_okzATestIndexing.test_reindex_axis..assert_reindex_axis_is_oksC.Chhtn44Z@G((Tj(QI  ' ' c7DZH)$!   ! !).."6 Cr"rrrr"rrr"rgrrn)rr4rfrr4rf)rrar rr6)rrxr&rrs r test_reindex_axiszTestIndexing.test_reindex_axiss D/ B %c2uRy* E %c2sxx|Z H %c2sxx|I/F S %c2u5J/KZ X %Rsxx|A>? yy}!)#r388B<3DjQ)#r388B<B3GT)SXXb\*<=z r"c Vd}t|jD] }|||tgtjgtj |||||j |tj|j|||||tdg|j|ztj|j||||||j |dddtj|j||||||j |tj|j|ddd||||tgdtjgd||||tgdtjgd||||td|j |dd gtjgd ||j|d k\s|||tgdtjgd |y) Nct|}tj||||}|j||||}t j |t|dt j |j||yr)rrrreindex_indexerr)r*rr)r&rrrrxr reindexed_matrs r assert_reindex_indexer_is_okzGTestIndexing.test_reindex_indexer..assert_reindex_indexer_is_okstC.C!MM#wTM++GTj,I  ' 'y3   ! !).."6 Cr"r\rrnrr)rnrrnrr")rnrnrnrgr) rrar r8rrrr9r6)rrxr&rrs r test_reindex_indexerz!TestIndexing.test_reindex_indexers D/) B (RrBHHRrww$?  )R"ryy2'?  )ug " -. #))B-(   )R"dd+RYYsyy}-Ez  )R"ryy2'?"'Ez  )R45rxx 7JJ  )R45rxx 7Lj  )uchhrl1ou56&  yy}!,/0HHY' G) r")rrrrr|r$MANAGERSrrrrrr8rrrr%r"r rrs4 $"$"$!6$!62tD.A4@H [[UH-5.5n [[UH-W.W* [[UH- [[\D"&&%+@AB.: [[UH- [[\D"&&%+@A5B.5r"rceZdZejj dedddfeddddfeddddfeddddfeddddfgdZejj d edddedddgd Zd Z ejj d ed d ed d ed d ded d dedd ed deddedd ded ddedddg dZ ejj d eddeddeddedddedddgdZ ejj ddgedddfdgedddfgdedddfgdedddfddgedddfddgedddfgdZ ejj dgdggddgdggdgdgdgdg d Z ejj deddgdfeddgfeddgfgd!Zejj d"eddgdfeddgfeddgfedddgd#fgd$Zd%Zejj d&edddgfedddgd'feddddgd#fgd(dgd(feddd gfeddd gd)fedddd gd*fgd(d gd+fedddgfedddgdfgd(dgd,fg d-Zejj d.eddgd(gd/Zy )0TestBlockPlacementz slc, expectedrrhrfrgr4rnc6tt||k(sJyr()r>rrslcrs r test_slice_lenz!TestBlockPlacement.test_slice_len<s>#&'8333r"rc~d}tjt|5t|dddy#1swYyxYw)Nzslice step cannot be zerorrrrrrrrs r test_zero_step_raisesz(TestBlockPlacement.test_zero_step_raisesIs2) ]]:S 1 3     3<cltddd}t|}|jtdddk(sJy)Nrgrnr)rrr)rrbps r !test_slice_canonize_negative_stopz4TestBlockPlacement.test_slice_canonize_negative_stopOs5Ar2 C zzU1dB////r"NrBc~d}tjt|5t|dddy#1swYyxYw)Nzunbounded slicerrrs r test_unbounded_slice_raisesz.TestBlockPlacement.test_unbounded_slice_raisesVs4$  ]]:S 1 3    rrc2t|jrJyr(r is_slice_like)rrs r test_not_slice_like_slicesz-TestBlockPlacement.test_not_slice_like_slicesls"#&44444r"zarr, slcer)rrurBruc8t|j|k(sJyr()ras_slice)rr@rs r test_array_to_slice_conversionz1TestBlockPlacement.test_array_to_slice_conversionysc"++s222r"r@r)rnrr4rf)rrrfrh)r4rrn)r4r4r4c2t|jrJyr(r)rr@s r test_not_slice_like_arraysz-TestBlockPlacement.test_not_slice_like_arrayss"#&44444r"c6tt||k(sJyr()rrrs r test_slice_iterz"TestBlockPlacement.test_slice_iters N3'(H444r"zslc, arr)rgrfr4ctjt|jt j |tj y)Nr\)r)r*rr/r8asarrayr)rrr@s r test_slice_to_array_conversionz1TestBlockPlacement.test_slice_to_array_conversions1 ## 3  ( ("**S*H r"c lttdd}|jdjtdddk(sJ|jt j djtdddk(sJt |jt j dddgdk(sJy) Nrrur4rvrBrfrn)rururururu)rraddrr8r9r)rbpls r test_blockplacement_addz*TestBlockPlacement.test_blockplacement_addsU1a[)wwqz""eAq!n444wwryy|$--q"a@@@CGGBIIaB/01_DDDr"zval, inc, expectedr)r4rfrh) )rrr)rr)rr4rgcTtt|j||k(sJyr()rrr)rvalincrs r test_blockplacement_add_intz.TestBlockPlacement.test_blockplacement_add_ints'"N3'++C01X===r"rcd}tjt|5t|j ddddy#1swYyxYw)Nziadd causes length changerr)rrrrr)rrrs r "test_blockplacement_add_int_raisesz5TestBlockPlacement.test_blockplacement_add_int_raisess=) ]]:S 1 ) 3  # #C ( ) ) )s AA )rrrrrrrrrrrrrrr r rrrr%r"r rr;sL [[ 1a[!  1a^Q  1a^Q  1a^Q  1a_a   4 4 [[UU1a^U1a^$DE F 0 [[ $  "dO $b ! $B  "dO $O "bM "dB  $B  "b"  " #"  [[ !QK #qM #sO #sB  !S"    5 5 [[S%1a. !UE#sA& ' aA ' q"a )XuQS) *VU1a_ %   3 3 [[  D  E D      5 5 [[ 1+y !E!QK#4uQ{B6GH5 5 [[ 1a[) $ 1a["  1a["  1a_i (    E  [[ 1a[!R 1a[!Y ' 1a_a + 9 % 1a["b ! 1a["l + 1a_b, / L ) 1a["b ! 1a["i ( I &  >! > [[UU1a[)$<=)>)r"rc eZdZejddddddddg d Zd Zejjd e je je jgd Z ejjd e je je jgdZdZdZdefdZdedefdZy)TestCanHoldElementc|Sr(r%r5s r rzTestCanHoldElement.sar"c"|jSr() to_seriesrs r rzTestCanHoldElement.s akkmr"c|jSr()rrs r rzTestCanHoldElement.s aggr"ct|Sr()rrs r rzTestCanHoldElement.s d1gr"c,|jtSr()r}rUrs r rzTestCanHoldElement.sahhv&r"c,tj|Sr()r8r rs r rzTestCanHoldElement.sbjjmr"c |dSrr%rs r rzTestCanHoldElement.s adr"c |ddSrr%rs r rzTestCanHoldElement.s aer"rc|jS)z Functions that take an Index and return an element that should have blk._can_hold_element(element) for a Block with this index's dtype. r)rrs r elementzTestCanHoldElement.elements"}}r"c,tddg}|jgsJtj|jj }|jdsJd|d<|dtj usJtjdtdddg}|D]}|j|sJ||d<tddd}|j|rJd}tjt|5||d<dddy#1swYyxYw)Nrrz 2010-10-10irBzLvalue should be a 'Timestamp', 'NaT', or array of those. Got 'date' instead.r)r_can_hold_elementpdrr+rNaTr8rOrrrrr)rrr@valsrrs r $test_datetime_block_can_hold_elementz7TestCanHoldElement.test_datetime_block_can_hold_elementsZ!-&&r***hhu||))+,&&t,,,A1v l+XdB-CD C**3/ //CF 4R **3/// 5 ]]9C 0 CF   s ;D  Dr,ctjgd|}tj|}t |j t dgd}|jgsJy)N)r4rgrhr\r4rfr`)r8rr from_breaksrrrr*)rr,r(r@iirs r (test_interval_can_hold_element_emptylistz;TestCanHoldElement.test_interval_can_hold_element_emptylistsOhhy.  & &s +.!"5A>$$R(((r"c*tjgd|}tj|}t |j t dgd}||}|j||d|j|sJtj|ddd }||}tjt5|j||d ddd|j|rJtjtdtd td g}||}tjt5|j||d ddd|j|rJtjtdtd td g} || }tjt5|j||d ddd|j|rJy#1swY$xYw#1swYxYw#1swY6xYw) N)r4rgrh r\r4rfr`Trnneither)closedFrgrh)r8rr r0rrrcheck_series_setitemr*r)assert_produces_warning FutureWarningrr) rr,r(r@r1relemii2ii3ii4s r test_interval_can_hold_elementz1TestCanHoldElement.test_interval_can_hold_elementshh|51  & &s +.!"5A>r{ !!$D1$$T***''CRCs|  ' ' 6 7  % %dB 6 7((...''1y|Yq\(RSs|  ' ' 6 7  % %dB 6 7((...''1y|Yq\(RSs|  ' ' 6 7  % %dB 6 7((.... 7 7  7 7  7 7s$:G0=G=H 0G:=H Hctddd}t|jjddt dgd}|j gsJy)N2016rgYperiodsfreqr4rfr`)rrrr~rr*)rpirs r &test_period_can_hold_element_emptylistz9TestCanHoldElement.test_period_can_hold_element_emptylist%sJ &!# 6((A.s0C!L$$R(((r"ctddd}||}|j||d|jddd}||}tjt 5|j||dddd|j d dd}||}tjt 5|j||ddddy#1swY[xYw#1swYyxYw) Nr@rgrArBTDrnFrq)rr7asfreqr)r8r9 to_timestamp)rr(rEr:pi2dtis r test_period_can_hold_elementz/TestCanHoldElement.test_period_can_hold_element+s &!# 6r{ !!$D1iinSb!s|  ' ' 6 7  % %dB 6 7ooc"3B's|  ' ' 6 7  % %dB 6 7 7  7 7  7 7sC 0C CC"rc|jjd}|r|j|sJy|j|rJyr)rrr*)robjr:rrs r check_can_hold_elementz)TestCanHoldElement.check_can_hold_element=sBhhooa  ((. ..,,T2 222r"indexc|jj}t|d}|j|||t |r||d<n||dt ||r|j |usJy|jtk(sJy)NFr\r) rr?r rPrr>rr,rU)rr:rQrr@sers r r7z'TestCanHoldElement.check_series_setitemDsykk Su% ##Cw7 T?CF#C #d)  99# ##99& &&r"N)rrrrfixturer(r.rrr8rJuint64r(r2r>rFrMr[rPr r7r%r"r rrsV^^  #   & #      : [[WrxxBJJ&GH)I) [[WrxxBJJ&GH/I/:) 7$33'''r"rceZdZdZy)TestShouldStorecFtgd}t|}|jjd}|j |sJ|j |ddsJ|j |j rJ|j t j|rJy)N)rXBCrrn)rr rr should_store as_orderedr8r )rcatrrs r test_should_store_categoricalz-TestShouldStore.test_should_store_categoricalVs/* s^ggnnQ$$$CR)))##CNN$4555##BJJsO4444r"N)rrrr^r%r"r rWrWUs 5r"rWctjddg}ttd}d}t j t |5t||ddddy#1swYyxYw)Nrrrfz:Wrong number of dimensions. values.ndim != ndim \[1 != 2\]rr`)r8rrrrrrr)r+r{rs r test_validate_ndimr`fsV XXsCj !FuQx(I GC z -.691-...s A!!A*cZtgd}tgdj|}ttgdj|}|jj dj j|jj dj jk(sJy)N)rr4rfrgrhrr)r r reindexrrrr.r)r)rjrZs r test_block_shapercos{  Cy!!#&A{9%&..s3A 66==  $ $ , , a0@0I0I0Q0Q QQ Qr"c tjjtjddg}||t t t||j}|jjdvsJ|tur|jdusJ||t t||j|j}|jjdvsJ|jdusJ||jt t||j|j}|jjdvsJ|jdusJyy)Nr4rfr`)ruF)r,ra)r+arraysNumpyExtensionArrayr8rrrr>rar,kindr is_extensionto_numpy)r!r@rs r test_make_block_no_pandas_arrayrkws$ )) ' '!Q(8 9CnU3s8_=CHH MF <<   ** *j ""e+++S%C/R||  J...""e+++ LLNE#c(O399388 ||  J...""e+++!r"r()Errrrnumpyr8rpandas._libs.internalsr pandas.compatrpandas.util._test_decoratorsutil_test_decoratorsrcpandas.core.dtypes.commonrpandasr+rr r r r r rrrpandas._testing_testingr)pandas.core.algorithmscore algorithmsrpandas.core.arraysrrrpandas.core.internalsrrrpandas.core.internals.blocksrrrskip_array_manager_invalid_test pytestmarkrTr!r&r2rAr|rrr$rrrrrrrrWr`rcrkr%r"r r~sP  1))/   &&   / /  :./0Q 15)V?r<~,,r)r)jE#E#P wwtO)O)dE'E'P55".R,r"