
    Mh                     L   S SK JrJ r   S SKrS SKrS SKrS SKrS SKJr  S SK	J
r
  S SKJs  Jr  S SKJr  S SKrS SKJrJrJrJrJrJrJrJrJr  S SKJr  S SKJ s  J!r"  S SK#J$r$J%r%J&r&  S SK'J(r(J)r)J*r*  S S	K+J,r,J-r-J.r.  \R^                  r0\Rb                  " \.\*/S
9S 5       r2\Rb                  S 5       r3S r4S r5Sr6SS \.4S jr7S$S jr8S$S jr9\Rb                  S 5       r: " S S5      r; " S S5      r<S r= " S S5      r> " S S5      r? " S S5      r@ " S S 5      rAS! rBS" rCS# rDg)%    )datedatetimeN)BlockPlacement)IS64)	is_scalar)	Categorical	DataFrameDatetimeIndexIndexIntervalIndexSeries	Timedelta	Timestampperiod_range)DatetimeArraySparseArrayTimedeltaArray)BlockManagerSingleBlockManager
make_block)ensure_block_shapemaybe_coerce_values	new_blockparamsc                     U R                   $ )zK
Fixture to test both the internal new_block and pseudo-public make_block.
param)requests    W/var/www/html/env/lib/python3.13/site-packages/pandas/tests/internals/test_internals.pyblock_makerr!   4   s    
 ==    c                      [        S5      $ )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_mgr r"   r    mgrr&   <   s    	1 r"   c                    [         R                  " U R                  UR                  5        U R                  UR                  :X  d   e[	        U R
                  [        5      (       d   e[	        UR
                  [        5      (       d   e[         R                  " U R
                  R                  UR
                  R                  5        g N)tmassert_numpy_array_equalvaluesdtype
isinstancemgr_locsr   as_array)leftrights     r    assert_block_equalr2   E   s    U\\:::$$$dmm^4444ennn5555 6 68O8OPr"   c           	          [         R                  " U S   5      n[         R                  R                  R	                  XUR
                  4S[        U 5      S-
  -  -   S9R                  5       $ )Nr   )r      )xshapestrides)nparangelibstride_tricks
as_strideditemsizelencopy)r6   arrs     r    get_numeric_matrA   M   sZ    
))E!H
C66**
S\\Odc%j1n6M$M + 
dfr"   
   c                 .   [        U5      n[        U5      nUc  [        4nU4U-   n[        U5      nU S;   a  UR	                  U 5      U-   nGO)U S;   a  SUR	                  U 5      U-   -  nGO
U S;   a?  [
        R                  " UR                  5       U-    V	s/ s H	  n	SU	S 3PM     sn	U5      nGOU S;   a%  [
        R                  " U[
        R                  S	9nGOU S
;   a  US-  R	                  S5      nGO~U R                  S5      (       a  [        R                  " SU 5      n
U
c
   SU  35       eU
R                  5       S   nUS:X  d   S5       e[        [
        R                  " [        5      S-  US9R                   n[#        U[        U5      S9nOU S;   a  US-  R	                  S5      nOU S;   a  [%        / SQ5      nOU S;   a  [%        / SQ5      nOU S;   a  US   S:w  a  [&        e[)        S USS  5       5      (       d   eU R+                  S 5      (       a  [
        R,                  nOS!n[/        XSS"S#US$S%US&/
US'9nUR0                  R3                  5       nXS-
  -  nO[5        S(U  S)35      e[7        U5      nU" X[        U5      S*9$ s  sn	f )+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)floatf8f4f2inti8i4i2i1uintu8u4u2u1)complexc16c8y              ?)objectstringOAd)bboolr,   )r   dtM8[ns]g    eAr^   zM8[nszM8\[ns,\s*(\w+\/?\w*)\]zincompatible typestr -> r   r4   z)must have only 1 num items for a tz-awarei ʚ;)tzndim)	timedeltatdm8[ns]rd   )category)
r4   r4      rf      rg   rg   rg      rh   )	category2)
arj   rj   rj   rZ   rZ   crk   rk   rY   )sparse	sparse_narB   c              3   *   #    U  H	  oS :H  v   M     g7f)r4   Nr%   ).0ss     r    	<genexpr>create_block.<locals>.<genexpr>   s     .:a6:s   _na        rf   rg   rh         
fill_valuezUnsupported typestr: ""	placementra   )r   r>   NrA   astyper8   reshaperavelonesbool_
startswithresearchgroupsr
   r9   _datar   r   NotImplementedErrorallendswithnanr   	sp_valuesview
ValueErrorr   )typestrr|   
item_shape
num_offsetmaker	num_itemsr6   matr+   imr_   ry   r@   s                 r    create_blockr   W   s   " y)IIIT
L:%E
%
 C    G$z1	,	,G,z9:	-	-		j0HI0H1q1Y0HI5Q	M	!bhh/	0	0)##H-			G	$	$II0':}B 8	BB}XXZ]A~JJJ~ryy|e3;AA#FU<	1	1'!!(+	M	!;<	N	"OP	+	+9?%%.5":.....E""JJQ1j!Q
AN!
 ##%A~1'!<== (F3u:>>O Js   Jc           	          Uc  [         n[        [        U [        SU5      SS9[	        [
        R                  " U5      5      5      $ )Nr   r%   )r|   r   )r}   r   r   slicer   r8   r9   )r   num_rowss     r    create_single_mgrr      s>    Wa(:rJbii!" r"   c                 ~   Uc  [         4nSn/ n0 nU R                  S5       H  nUR                  5       n[        U5      (       d  M%  UR	                  S5      SSS2   u  pgUR                  5       nUR                  5       R                  S5      nUR                  U5        [        [        R                  " [        U5      5      U-   5      n XG   R                  U5        U[        U5      -  nM     [        U5      n/ n	Sn
UR                  5        H@  u  pxUR                  S5      S   nU	R                  [        XXS95        U
[        U5      -  n
MB     [        U	S	 S
9n[        [!        U5      U/U Vs/ s H"  n[        [        R                  " U5      5      PM$     sn-   5      $ ! [         a    XU'    Nf = fs  snf )a!  
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   ,-)r   r   c                      U R                   S   $ Nr   )r.   )rZ   s    r    <lambda>create_mgr.<locals>.<lambda>   s    1::a=r"   )key)r}   splitstripr>   	partitionextendlistr8   r9   KeyErrorr   itemsappendr   sortedr   tuple)descrr   offset	mgr_itemsblock_placementsrY   namesblockstrr|   blocksr   r   sblocksns                 r    r$   r$      s   * T
FI[[GGI1vv++c*3Q3/>>###C(3u:.78		3&--i8 	#e*   i IFJ/557..%a(z	

 	c)n$
  8 V!89Gg	J?JquRYYq\*J?? %  	3)2X&	3( @s   F&4)F:&F76F7c                      [        S/ SQ5      $ )NrD   r   rf   rh   )r   r%   r"   r    fblockr      s    ++r"   c                       \ rS rSrS r\R                  R                  SS/ SQ/SS//SS	S
//SS///5      S 5       rS r	S r
S rS rS rS rSrg)	TestBlock   c                 ^    [        SS/5      nUR                  [        R                  :X  d   eg )NrJ   r   )r   r,   r8   int32)self
int32blocks     r    test_constructorTestBlock.test_constructor   s(    !$,
288+++r"   z	typ, datarD   r   rR      rU   r4   rg   r[   rv   c                 Z    [        X5      n[        [        R                  " U5      U5        g r(   )r   r2   r)   round_trip_pickle)r   typdatablks       r    test_pickleTestBlock.test_pickle  s#     3%2//4c:r"   c                     [        UR                  [        5      (       d   e[        R                  " UR                  R
                  [        R                  " / SQ[        R                  S95        g )Nr   r\   )	r-   r.   r   r)   r*   r/   r8   arrayintpr   r   s     r    test_mgr_locsTestBlock.test_mgr_locs  sE    &//>::::
##OO$$bhhy&H	
r"   c                     UR                   UR                  R                   :X  d   eUR                  UR                  R                  :X  d   e[        U5      [        UR                  5      :X  d   eg r(   )r6   r+   r,   r>   r   s     r    
test_attrsTestBlock.test_attrs  sU    ||v}}22222||v}}222226{c&--0000r"   c                 F    UR                  5       nX!Ld   e[        X5        g r(   )r?   r2   )r   r   cops      r    	test_copyTestBlock.test_copy  s!    kkm   6'r"   c                 L   UR                  5       nUR                  nUR                  S5      S   nUR                  UL d   eXBLd   e[        R                  " UR                  R
                  [        R                  " SS/[        R                  S95        UR                  S   S:H  R                  5       (       a   eUR                  S   S:H  R                  5       (       d   eUR                  5       nUR                  nUR                  S5      n[        U5      S:X  d   eUR                  UL d   e[        R                  " US   R                  R
                  [        R                  " S/[        R                  S95        [        R                  " US   R                  R
                  [        R                  " S/[        R                  S95        UR                  S   S:H  R                  5       (       a   eUS   R                  S   S:H  R                  5       (       d   eUR                  5       nUR                  S5      n[        U5      S:X  d   e[        R                  " US   R                  R
                  [        R                  " SS/[        R                  S95        US   R                  S   S:H  R                  5       (       d   eUR                  5       n[        R                  " [        S S9   UR                  S5        S S S 5        g ! , (       d  f       g = f)Nr   rf   rh   r\   r4   matchrg   )r?   r.   deleter)   r*   r/   r8   r   r   r+   r   r>   pytestraises
IndexError)r   r   newblocsnbs        r    test_deleteTestBlock.test_delete   sa   {{}}}[[^A}}$$$~~
##KK  "((Aq6"A	
 KKNa',,....		!!&&(((({{}}}[[^2w!||}}$$$
##qENN##RXXqc%A	
 	##qENN##RXXqc%A	
 KKNa',,....1Q1$))++++{{}[[^2w!||
##qENN##RXXq!fBGG%D	
 1Q1$))++++{{}]]:T2KKN 322s   :L
L#c                 J   [         R                  " SSS9R                  SS5      R                  S5      n[	        U5      nUR
                  R                  S   n[        UR                  [        5      (       d   eUR                  S5      n[        U5      S	:X  d   e[        US   R                  [        5      (       d   e[        US   R                  [        5      (       d   e[	        UR                  S
5      5      nUR
                  R                  S   n[        UR                  [        5      (       d   eUR                  SS/5      n[        U5      S	:X  d   e[        US   R                  [        5      (       d   e[        US   R                  [        5      (       d   eg )N   rI   r\   rv   rh   rd   r   r4   rf   r^   rg   )r8   r9   r   r   r	   _mgrr   r-   r+   r   r   r>   r   )r   r@   dfr   r   s        r    test_delete_datetimelike"TestBlock.test_delete_datetimelikeJ  sC   ii$'//15::8Ds^ggnnQ#**n5555ZZ]2w!||"Q%,,7777"Q%,,7777sxx)*ggnnQ#**m4444ZZA2w!||"Q%,,6666"Q%,,6666r"   c                    [         R                  R                  S5      R                  S5      n[	        U[        / SQ5      SS9nUR                  5       nSUS S & UR                  S:H  R                  5       (       d   e[        U5      S:X  d   e[	        US/   [        S/5      SS9[	        US/   [        S/5      SS9[	        US/   [        S	/5      SS9/n[        X45       H  u  pV[        XV5        M     g )
Nrf   )rg   rh   )rg   r4   rw   r{   irg   r   r4   rw   )r8   randomdefault_rngstandard_normalr   r   _splitr+   r   r>   zipr2   )r   r+   r   resultexpectedresexps          r    
test_splitTestBlock.test_split_  s    &&q)99&A.*C!L q	

e#((****6{afaSk^QC-@qIfaSk^QC-@qIfaSk^QC-@qI

 F-HCs( .r"   r%   N)__name__
__module____qualname____firstlineno__r   r   markparametrizer   r   r   r   r   r   r   __static_attributes__r%   r"   r    r   r      sx    , [[i 1vaSM		
;;
1
(
(T7*)r"   r   c                   Z   \ rS rSrS rS rS r\R                  R                  SSS/5      S 5       r
S	 rS
 rS rS rS rS rS r\R                  R                  SS\R&                  4S\R(                  4/5      S 5       r\R                  R                  SS\R,                  4S\R.                  4S\R0                  4/5      S 5       rS rS r\R                  R                  S/ SQ5      S 5       rS rS r\R                  R                  S/ SQ5      S  5       rS! r S" r!S# r"S$ r#S% r$\R                  R                  SS&S'/5      S( 5       r%\R                  R                  S/ S)Q5      S* 5       r&S+ r'\R                  R                  S,S-S./ S/QS0/5      S1 5       r(S2 r)S3 r*S4r+g5)6TestBlockManageris  c                 `    [        S5      nUR                  S:X  d   e[        U5      S:X  d   eg )Nza,b,c: f8-1; d,e,f: f8-2rf   rw   )r$   nblocksr>   r   r&   s     r    r   TestBlockManager.test_attrst  s/    34{{a3x1}}r"   c                 `   [        S5      nUR                  UR                  p2[        [        R
                  " S/5      5      US   l        [        [        R
                  " S/5      5      US   l        Sn[        R                  " [        US9   [        X25      nUR                  5         S S S 5        [        [        R
                  " S/5      5      US   l        [        [        R
                  " S/5      5      US   l        [        X25      nUR                  S5        g ! , (       d  f       N{= f)Nza:bool; a: f8r   r4   zGaps in blk ref_locsr   )r$   axesr   r   r8   r   r.   r   r   AssertionErrorr   _rebuild_blknos_and_blklocsiget)r   tmp_mgrr  r   msgr&   s         r    test_duplicate_ref_loc_failure/TestBlockManager.test_duplicate_ref_loc_failurey  s    _-||W^^f+BHHaSM:q	+BHHaSM:q	 %]]>5v,C++- 6 ,BHHaSM:q	+BHHaSM:q	6( 65s   D
D-c                 f   [         R                  " U5      n[         R                  " [        R                  " XR
                  S9[        R                  " X"R
                  S95        [        US5      (       d   e[        US5      (       d   eUR                  (       a   eUR                  (       a   eg )Nr  _is_consolidated_known_consolidated)	r)   r   assert_frame_equalr	   	_from_mgrr  hasattrr  r  )r   r&   mgr2s      r    r   TestBlockManager.test_pickle  s    ##C(
((3995	
 t/0000t23333 ((((+++++r"   
mgr_stringza,a,a:f8za: f8; a: i8c                     [        U5      n[        R                  " U5      n[        R                  " [        R
                  " X"R                  S9[        R
                  " X3R                  S95        g )Nr  )r$   r)   r   r  r	   r  r  )r   r  r&   r  s       r    test_non_unique_pickle'TestBlockManager.test_non_unique_pickle  sN    $##C(
((3995	
r"   c                    [        S5      n[        R                  " U5      n[        R                  " [        R
                  " XR                  S9[        R
                  " X"R                  S95        [        S5      n[        R                  " U5      n[        R                  " [        5       R                  X3R                  S9[        5       R                  XDR                  S95        g )Na: categoryr  re   )r$   r)   r   r  r	   r  r  r   assert_series_equalr   _constructor_from_mgr)r   r&   r  smgrsmgr2s        r    test_categorical_block_pickle.TestBlockManager.test_categorical_block_pickle  s    '##C(
((3995	

 !,$$T*
H**4ii*@H**5zz*B	
r"   c           
         [        [        S5      5      n[        R                  R	                  S5      R                  S5      n[        UR                  5       [        [        R                  " S[        R                  S95      UR                  S9n[        U4U[        [        R                  " S5      5      /S9n[        R                  " UR                  S5      R                  5       US   5        [        R                  " UR                  S	5      R                  5       US	   5        [        R                  " UR                  S5      R                  5       US   5        g )
Nabcrf   )rg   rg   rg   r\   )r+   r|   ra   )r   r  r   r4   )r   r   r8   r   r   r   r?   r   r9   r   ra   r   r)   assert_almost_equalr	  internal_values)r   colsr+   blockr&   s        r    	test_igetTestBlockManager.test_iget  s    T%[!&&q)008;;=$RYYq%@A

 5($biil8K1LM
sxx{::<fQiH
sxx{::<fQiH
sxx{::<fQiHr"   c                 |   [        SSS9nUR                  [        UR                  5      S[        R
                  " S/S-  5      5        UR                  S[        R
                  " S/S-  5      5        [        R                  " UR                  S	5      R                  5       [        R
                  " S	/S-  5      5        [        R                  " UR                  S5      R                  5       [        R
                  " S/S-  [        R                  S
95        [        R                  " UR                  S5      R                  5       [        R
                  " S/S-  5      5        [        R                  " UR                  S5      R                  5       [        R
                  " S/S-  [        R                  S
95        g )Nz
a,b,c: intrg   r   rY   foorg   r4   barr   r\   rf   )r$   insertr>   r   r8   r   isetr)   r*   r	  r&  object_r  s     r    test_setTestBlockManager.test_set  s(   $7

3syy>3%1(=>BHHeWq[)*
##CHHQK$?$?$A288QCRSGCTU
##HHQK'')288UGaKrzz+R	
 	##CHHQK$?$?$A288QCRSGCTU
##HHQK'')288UGaKrzz+R	
r"   c           	      l   UR                  [        UR                  5      S[        R                  " [
        [        S95        UR                  UR                  R                  S5      [        R                  " S[
        5      5        UR                  R                  S5      nUR                  U5      R                  [        R                  :X  d   eUR                  5       nUR                  UR                  R                  S5      [        R                  " S[
        5      5        UR                  R                  S5      nUR                  U5      R                  [        R                  :X  d   eUR                  [        UR                  5      S[        R                  R                  S5      R!                  [
        5      R#                  [$        5      5        UR                  R                  S5      nUR                  U5      R                  [        R                  " [$        5      :X  d   eUR                  UR                  R                  S5      [        R                  R                  S5      R!                  [
        5      5        UR                  U5      R                  [        R&                  :X  d   eg )Nbazr\   r.  quuxrf   )r0  r>   r   r8   zerosr}   r[   r1  get_locrepeatr	  r,   r2  consolidater   r   r   r~   rH   float64)r   r&   idxr  s       r    test_set_change_dtype&TestBlockManager.test_set_change_dtype  s   

3syy>5"((1D*AB""5)299UA+>?ii&xx}""bjj000 		$**$$U+RYYua-@Ajj  'yy~##rzz111

OII!!!$44Q7>>sC	

 jj  (yy~##rxx}444		JJv&		(=(=a(@(P(PQR(S	
 yy~##rzz111r"   c                 `   UR                  SS9n[        UR                  UR                  5       H  u  p4[        R                  " UR
                  UR
                  5        [        UR
                  [        R                  5      (       a1  UR
                  R                  UR
                  R                  L d   eM  UR
                  R                  R                  UR
                  R                  R                  L a  M   e   UR                  5         UR                  SS9n[        UR                  UR                  5       H  u  p4UR
                  nUR
                  n[        R                  " Xe5        [        U[        R                  5      (       a  UR                  nUR                  nO,UR                  R                  nUR                  R                  n[        U[        5      (       a  Uc  Ub  XxLd   eM  M  [        U[        R                  5      (       d  XxLd   eM  Uc  Uc  M   e   g )NF)deepT)r?   r   r   r)   assert_equalr+   r-   r8   ndarraybase_ndarray_consolidate_inplacer   )	r   r&   cpr   cp_blkbvalscpvalslbaserbases	            r    r   TestBlockManager.test_copy  s   XX5X!szz2995KCOOFMM3::6#**bjj11}}))SZZ__<<< }}--22cjj6I6I6N6NNNN 6 	  "XX4X szz2995KCJJE]]FOOF*&"**--

,,++ &-00%-U=OPP=O-

33)))}66) 6r"   c                 v    [        S5      nUR                  5       R                  [        R                  :X  d   eg )Nza: sparse-1; b: sparse-2)r$   r/   r,   r8   r<  r  s     r    test_sparseTestBlockManager.test_sparse  s+    34||~##rzz111r"   c                 ~    [        S5      n[        UR                  5      S:X  d   e[        U[        5      (       d   eg )Nza: sparse-1; b: sparse-2; c: f8rg   )r$   r>   r   r-   r   r  s     r    test_sparse_mixed"TestBlockManager.test_sparse_mixed  s6    :;3::!####|,,,,r"   zmgr_string, dtypezc: f4; d: f2c: f4; d: f2; e: f8c                 Z    [        U5      nUR                  5       R                  U:X  d   eg r(   r$   r/   r,   r   r  r,   r&   s       r    test_as_array_float$TestBlockManager.test_as_array_float  s(    
 $||~##u,,,r"   za: bool-1; b: bool-2z%a: i8-1; b: i8-2; c: i4; d: i2; e: u1zc: i4; d: i2; e: u1c                 Z    [        U5      nUR                  5       R                  U:X  d   eg r(   rV  rW  s       r    test_as_array_int_bool'TestBlockManager.test_as_array_int_bool   s(     $||~##u,,,r"   c                 Z    [        S5      nUR                  5       R                  S:X  d   eg )Nzh: datetime-1; g: datetime-2r^   rV  r  s     r    test_as_array_datetime'TestBlockManager.test_as_array_datetime,  s'    78||~##x///r"   c                     [        S5      nUR                  S5      R                  S:X  d   eUR                  S5      R                  S:X  d   eUR                  5       R                  S:X  d   eg )Nz%h: M8[ns, US/Eastern]; g: M8[ns, CET]r   zdatetime64[ns, US/Eastern]r4   zdatetime64[ns, CET]rU   )r$   r	  r,   r/   r  s     r    test_as_array_datetime_tz*TestBlockManager.test_as_array_datetime_tz0  sa    @Axx{  $@@@@xx{  $9999||~##x///r"   t)float16float32r<  r   int64c                    [        S5      n[        R                  " U5      nUR                  U5      nUR	                  S5      R                  R
                  U:X  d   eUR	                  S5      R                  R
                  U:X  d   eUR	                  S5      R                  R
                  U:X  d   e[        S5      n[        R                  " U5      nUR                  USS9nUR	                  S5      R                  R
                  U:X  d   eUR	                  S5      R                  R
                  U:X  d   eUR	                  S	5      R                  R
                  U:X  d   eUR	                  S
5      R                  R
                  U:X  d   eUR	                  S5      R                  R
                  [        R                  :X  d   eUR	                  S5      R                  R
                  [        R                  :X  d   eU[        R                  :w  a:  UR	                  S5      R                  R
                  [        R                  :X  d   eg UR	                  S5      R                  R
                  U:X  d   eg )NrT  r   r4   rf   z6a,b: object; c: bool; d: datetime; e: f4; f: f2; g: f8ignore)errorsrh   rv   rw   rg   )	r$   r8   r,   r~   r	  typer2  rf  
datetime64)r   rc  r&   tmgrs       r    test_astypeTestBlockManager.test_astype6  s    ./HHQKzz!}yy|!!&&!+++yy|!!&&!+++yy|!!&&!+++ QRHHQKzz!Hz-yy|!!&&!+++yy|!!&&!+++yy|!!&&!+++yy|!!&&!+++yy|!!&&"**444yy|!!&&"**444=99Q<%%**bmm;;;99Q<%%**a///r"   c                 H   S n[        S5      nUR                  SS9nU" X45        [        S5      nUR                  S[        R                  " S/[
        -  [        R                  S95        UR                  S	[        R                  " S
/[
        -  [        R                  S95        UR                  S[        R                  " S/[
        -  [        R                  S95        UR                  SS9nU(       a  SO[        R                  nUR                  S5      R                  U:X  d   eUR                  S	5      R                  U:X  d   eUR                  S5      R                  U:X  d   eUR                  S5      R                  [        R                  :X  d   eUR                  S5      R                  [        R                  :X  d   e[        S5      nUR                  S[        R                  " S/[
        -  [        R                  S95        UR                  S	[        R                  " S
/[
        -  [        R                  S95        UR                  S[        R                  " S/[
        -  [        R                  S95        UR                  SS9nUR                  S5      R                  U:X  d   eUR                  S	5      R                  U:X  d   eUR                  S5      R                  U:X  d   eUR                  S5      R                  [        R                  :X  d   eUR                  S5      R                  [        R                  :X  d   eUR                  S5      R                  R                  (       d   [        R                  5       eUR                  S5      R                  [        R                  :X  d   eUR                  S5      R                  [        R                  :X  d   eUR                  S5      R                  [        R                  :X  d   eg )Nc                    [        U R                  5      n[        UR                  5      n[        U5      [        U5      :X  d   eU HG  nSnU H3  nUR                  UR                  :H  R	                  5       (       d  M1  Sn  O   U(       a  MG   e   U HG  nSnU H3  nUR                  UR                  :H  R	                  5       (       d  M1  Sn  O   U(       a  MG   e   g)z4compare the blocks, numeric compare ==, object don'tFTN)setr   r>   r+   r   )old_mgrnew_mgr
old_blocks
new_blocksrZ   foundr   obs           r    _compare/TestBlockManager.test_convert.<locals>._compareS  s    W^^,JW^^,Jz?c*o555  $BBII-2244 $ % uu    $BBII-2244 $ % uu  r"   zf: i8; g: f8Tr?   za,b,foo: object; f: i8; g: f8r   1r\   r4   z2.rf   zfoo.zstring[pyarrow_numpy]rg   rh   zEa,b,foo: object; f: i4; bool: bool; dt: datetime; i: i8; g: f8; h: f2rv   rw   r      )r$   convertr1  r8   r   r}   r2  r	  r,   rf  r<  r   r   rj  rk  rd  )r   using_infer_stringrx  r&   rs  r,   s         r    test_convertTestBlockManager.test_convertR  s   	0 (++4+( 89BHHcUQYbjj9:BHHdVaZrzz:;BHHfX\<=++4+(+='2::||A$$---||A$$---||A$$---||A$$000||A$$

222S
 	BHHcUQYbjj9:BHHdVaZrzz:;BHHfX\<=++4+(||A$$---||A$$---||A$$---||A$$000||A$$000||A$$))82==8)||A$$000||A$$

222||A$$

222r"   c                     S Hb  n[        SU 35      nUR                  5       R                  U:X  d   e[        SU SU 35      nUR                  5       R                  U:X  a  Mb   e   g )N)rE   rI   rU   r[   rR   r^   rd   za: z; b: rV  )r   r,   r&   s      r    test_interleave TestBlockManager.test_interleave  sh    REs5']+C<<>''5000s5'ug67C<<>''5000	 Sr"   ))r  rI   )za: category; b: categoryrI   )a: category; b: category2rU   )a: category2rU   )za: 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]rU   c                 d   [        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S	5      nUR                  5       R                  S:X  d   e[        S
5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   e[        S5      nUR                  5       R                  S:X  d   eg )Nr  rI   r  rU   r  r  rE   r  r  r  r  r  rR   r  r  r  r  r  r  r  rV  rW  s       r    test_interleave_dtype&TestBlockManager.test_interleave_dtype  sP   2 '||~##t+++45||~##x///(||~##x/// !||~##t+++(||~##t+++(||~##t+++23||~##x///)*||~##x///&||~##y000-.||~##t+++12||~##x///-.||~##x///+,||~##x///-.||~##x///+,||~##x////0||~##x///r"   c                 j   UR                  UR                  R                  S5      [        R                  R                  S5      R                  [        5      5        UR                  UR                  R                  S5      [        R                  R                  S5      R                  [        5      5        UR                  UR                  R                  S5      [        R                  R                  S5      R                  [        5      5        UR                  UR                  R                  S5      [        R                  R                  S5      R                  [        5      5        UR                  UR                  R                  S5      [        R                  R                  S5      R                  [        5      5        UR                  5       nUR                  S:X  d   eUR                  5       R                  5       nUR                  S:X  d   e[        UR                  S	   R                  [        5      (       d   e[        R                   " UR                  S	   R                  R"                  [        R$                  " ['        UR                  5      [        R(                  S
95        g )Nfrf   rY   rZ   ghrh   r4   r   r\   )r1  r   r9  r8   r   r   r   r}   r;  r  get_numeric_datar-   r   r.   r   r)   r*   r/   r9   r>   r   )r   r&   conss      r     test_consolidate_ordering_issues1TestBlockManager.test_consolidate_ordering_issues  s   ""3')>)>q)A)Q)QRS)TU""3')>)>q)A)Q)QRS)TU""3')>)>q)A)Q)QRS)TU""3')>)>q)A)Q)QRS)TU""3')>)>q)A)Q)QRS)TU  ||q    113||q   $++a.11>BBBB
##KKN##,,biiDJJrww.W	
r"   c                 L   [        S5      nUR                  / SQSS9nUR                  5       (       a   e[        R                  " UR
                  [        / SQ5      5        [        R                  " UR                  S5      R                  5       UR                  S5      R                  5       5        [        R                  " UR                  S5      R                  5       UR                  S5      R                  5       5        [        R                  " UR                  S5      R                  5       UR                  S5      R                  5       5        [        R                  " UR                  S5      R                  5       UR                  S5      R                  5       5        g )	Nz3a: f8; b: i8; c: f8; d: i8; e: f8; f: bool; g: f8-2)r  rk   rj   rY   r   axisrw   rf   r4   rg   )
r$   reindex_axisis_consolidatedr)   assert_index_equalr   r   r%  r	  r&  )r   r&   	reindexeds      r    test_reindex_items#TestBlockManager.test_reindex_items  s2   NO$$%9$B	 ,,....
ioou5I/JK
HHQK'')9>>!+<+L+L+N	
 	HHQK'')9>>!+<+L+L+N	
 	HHQK'')9>>!+<+L+L+N	
 	HHQK'')9>>!+<+L+L+N	
r"   c                    [        SSS9nUR                  S[        R                  " / SQ[        R                  S95        UR                  5       n[        R                  " UR                  [        / SQ5      5        [        R                  " UR                  UR                  R                  S5      5      R                  5       UR                  UR                  R                  S5      5      R                  5       5        UR                  UR                  R                  S5      [        R                  " / S	Q5      S
S9  U(       ad  [        R                  " UR                  UR                  R                  S5      5      R                  5       [        R                  " / SQ5      5        g [        R                  " UR                  UR                  R                  S5      5      R                  5       [        R                  " / S	Q5      5        g )N[int: int; float: float; complex: complex;str: object; bool: bool; obj: object; dt: datetimer,  r-  rv   r4   rf   rg   r\   )rH   rD   rR   r[   rD   )      Y@g      i@g     r@Tinplace)      ?r  r  )r$   r1  r8   r   r2  r  r)   r  r   r   r%  r	  r9  r&  )r   using_copy_on_writer&   numerics       r    test_get_numeric_data&TestBlockManager.test_get_numeric_data  sk   A

 	BHHYbjj9:&&(
gmmU3V-WX
HHSYY&&w/0@@BLL..w78HHJ	
 	MM!!'*HH*+ 	 	

 ""**734DDF)
 ""**734DDF./r"   c                    [        SSS9nUR                  S[        R                  " / SQ[        R                  S95        UR                  5       n[        R                  " UR                  [        S/5      5        [        R                  " UR                  UR                  R                  S5      5      R                  5       UR                  UR                  R                  S5      5      R                  5       5        UR                  S[        R                  " / SQ5      S	S
9  U(       ad  [        R                  " UR                  UR                  R                  S5      5      R                  5       [        R                  " / SQ5      5        g [        R                  " UR                  UR                  R                  S5      5      R                  5       [        R                  " / SQ5      5        g )Nr  r,  r-  rw   )TFTr\   r[   r   Tr  )TTT)r$   r1  r8   r   r2  get_bool_datar)   r  r   r   r%  r	  r9  r&  r*   )r   r  r&   boolss       r    test_get_bool_data#TestBlockManager.test_get_bool_data  sT   A

 	BHH0

CD!!#
ekk5&?;
HHSYY&&v./??AJJu{{**623CCE	

 	

1bhh23T
B''**623CCE+,
 ''**623CCE,-r"   c                 ,    [        [        S5      5        g )Nu   b,א: object)reprr$   )r   s    r    test_unicode_repr_doesnt_raise/TestBlockManager.test_unicode_repr_doesnt_raise4  s    Z*+,r"   a,b,c: i8-1; d,e,f: i8-2za,a,a: i8-1; b,b,b: i8-2c                     [        U5      n[        UR                  S S S2   UR                  5      nUR	                  U5      (       d   eg )Nrn   )r$   r   r   r  equals)r   r  bm1bm2s       r    test_equalsTestBlockManager.test_equals7  s=    
 $3::dd+SXX6zz#r"   )z	a:i8;b:f8za:i8;b:f8;c:c8;d:bza:i8;e:dt;f:td;g:stringza:i8;b:category;c:category2zc:sparse;d:sparse_na;b:f8c                 
   [        U5      n[        R                  " UR                  5      nU HR  n[	        [        U5      UR                  5      nUR                  U5      (       d   eUR                  U5      (       a  MR   e   g r(   )r$   	itertoolspermutationsr   r   r   r  r  )r   r  bmblock_permsbm_permbm_thiss         r    (test_equals_block_order_different_dtypes9TestBlockManager.test_equals_block_order_different_dtypes@  sj     
#,,RYY7"G"5>277;G99W%%%%>>"%%%% #r"   c                 d    [        SSS9nUR                  5       R                  5       / SQ:X  d   eg )NrE   rv   )r   )ru   r         @g      @g      @)r   external_valuestolistr  s     r    test_single_mgr_ctor%TestBlockManager.test_single_mgr_ctorS  s/    q1""$++-1JJJJr"   valuer4   Truer  g      @c                     [        S5      nS[        U5      R                   S3n[        R                  " [
        US9   UR                  S/S/US9  S S S 5        g ! , (       d  f       g = f)Nr  z9For argument "inplace" expected type bool, received type .r   r4   rf   r  )r$   rj  r   r   r   r   replace_list)r   r  r  r  s       r    test_validate_bool_args(TestBlockManager.test_validate_bool_argsW  sc    34!%[112!5 	 ]]:S1aS1#u5 211s   A
A)c                    [        S5      nUR                  S[        R                  " S/5      5        [        R
                  " UR                  [        R                  " / SQ[        (       a  SOSS95        [        R
                  " UR                  [        R                  " / SQ[        (       a  SOSS95        [        UR                  5      S:X  d   eg )	Na,b,c: i8; d: f8r   r   r   r4   r   rf  r   r\   )r   r   r   r4   rf   )r$   _iset_split_blockr8   r   r)   r*   blklocsr   blknosr>   r   r   r  s     r    test_iset_split_block&TestBlockManager.test_iset_split_blockb  s    *+
Q!.
##JJW'R	
 	##IIrxxttGQ	
 299~"""r"   c                    [        S5      nUR                  S[        R                  " S/5      [        R                  " [	        [        S5      5      /5      5        [        R                  " UR                  [        R                  " / SQ[        (       a  SOSS95        [        R                  " UR                  [        R                  " / SQ[        (       a  SOSS95        [        UR                  5      S	:X  d   eg )
Nr  r   rB   r  rf  r   r\   )r   rf   rf   r4   rg   )r$   r  r8   r   r   ranger)   r*   r  r   r  r>   r   r  s     r    test_iset_split_block_values-TestBlockManager.test_iset_split_block_valuesn  s    *+
Q!rxxeBi8I/JK
##JJW'R	
 	##IIrxxttGQ	
 299~"""r"   r%   N),r   r   r   r   r   r  r   r   r   r   r  r!  r)  r3  r>  r   rO  rR  r8   re  r<  rX  r   rf  r   r[  r^  ra  rm  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r%   r"   r    r   r   s  s   
*, [[\J+GH
 I

I
22#7J2-
 [[
"**	%(=rzz'JK-	- [[#RXX.4bhh?"BHH-	
--00 [[S"UV0 W0693v1 [[	
.#0/.#0J
"
.@6- [[13MN [[	
	&	&K [[Wq&)S&AB6 C6
#
#r"   r   c                 v    U R                   S:X  a  U R                  5       $ U R                  5       R                  $ )Nr4   )ra   r  r/   T)r&   s    r    	_as_arrayr  {  s.    
xx1}""$$<<>r"   c            
       0   \ rS rSr\" S\5      \" S\5      \" S\4S9\" S\4S9\" S\4S9\" S\4S9/r\R                  R                  S	\5      S
 5       r\R                  R                  S	\5      S 5       r\R                  R                  S	\5      \R                  R                  SS\R                  S/5      S 5       5       r\R                  R                  S	\5      \R                  R                  SS\R                  S/5      S 5       5       rSrg)TestIndexingi  rE   rI   za,b,c,d,e,f: f8r-  za,b,c,d,e,f: i8za,b: f8; c,d: i8; e,f: stringza,b: f8; c,d: i8; e,f: f8r&   c           
      $   S nUR                   S::  d   UR                   5       e[        UR                   5       GHR  nU" X[        S 5      5        U" X[        S5      5        U" X[        S5      5        U" X[        SS5      5        U" X[        SSS5      5        UR                   S:  d  Ms  U" X[        R                  " UR
                  U   [        R                  S	95        U" X[        R                  " UR
                  U   [        R                  S	95        UR
                  U   S:  d  M  U" X[        R                  " UR
                  U   5      S-  S:H  5        U" X[        R                  " / S
Q[        R                  S	95        GMU     g )Nc           	      T   [        U 5      n[        U[        R                  5      (       a  U R                  U   n[        U5      (       al  [        U5      (       a\  [        U5      [        U5      :w  aD  [        R                  " U[        R                  " [        U5      [        U5      -
  [        S9/5      n[        U[        5      (       a  U R                  X!S9nOfU R                  S:X  aK  US:X  aE  [        U[        R                  5      (       a&  UR                  [        :X  a  U R                  U5      nO[        U5      e[        S 5      4U-  U4-   n[        R                   " X6   [        U5      SS9  [        R"                  " U R                  U   U   UR                  U   5        g )Nr\   r  r4   r   Fcheck_dtype)r  r-   r8   rC  r  r>   concatenater8  r[   r   	get_slicera   r,   get_rows_with_mask	TypeErrorr)   r*   r  )r&   r  slobjr   axsliced	mat_slobjs          r    assert_slice_ok4TestIndexing.test_get_slice.<locals>.assert_slice_ok  s?   C.C %,,XXd^r77s5zzc%jCG.CNNR3u:)=T JKE %''u8AAIubjj11KK4'//6  &&t-8I''	& 1u !!#((4."7T9JKr"   rf   rg   d   r4   rh   r   r\   )TTF)
ra   r  r   r8   r   r6   r   r8  r9   r   )r   r&   r  r  s       r    test_get_sliceTestIndexing.test_get_slice  s#   	L@ xx1}&chh&}/BCU4[1CU1X.CU3Z0CU1a[1CU1a_5xx!|  2bhh)OP#))B-rxx)PQ99R=A%#CRYYsyy}-E-IQ-NO#*=RXX!N# "r"   c                 J   S n[        UR                  5       GH  nU" X[        R                  " / [        R                  S9S9  U" X[        R                  " / SQ[        R                  S9S9  U" X[        R                  " [        [        UR                  U   5      5      [        R                  S9S9  UR                  U   S:  d  M  U" X[        R                  " / SQ[        R                  S9S9  U" X[        R                  " / SQ[        R                  S9S9  GM	     g )Nc                 $   [        U 5      nU R                  X!5      n[        R                  " [        R                  " X2U5      [        U5      SS9  [        R
                  " U R                  U   R                  U5      UR                  U   5        g )NFr  )r  taker)   r*   r8   r  r  )r&   r  indexerr   takens        r    assert_take_ok.TestIndexing.test_take.<locals>.assert_take_ok  sl    C.CHHW+E''d+Yu-=5 !!#((4."5"5g">

4@PQr"   r\   )r  r   r   r   rg   r   r4   rf   rn   r  )r  ra   r8   r   r   r   r6   )r   r&   r  r  s       r    	test_takeTestIndexing.test_take  s    	R /B3BHHRrww,GH3BHHYbgg,NO$uSYYr]/C*DBGG!T yy}!s"''0RSsRWW0UV "r"   ry   Nr  c           
         S n[        UR                  5       H  nU" X$[        / 5      U5        U" X$UR                  U   U5        U" X$UR                  U   / SQ   U5        U" X$[        / SQ5      U5        U" X$[        SUR                  U   S   S/5      U5        UR                  U   S:  d  M  U" X$UR                  U   S S U5        U" X$UR                  U   SS S	2   U5        U" X$UR                  U   / S
Q   U5        M     g )Nc           	      "   [        U 5      nU R                  U   R                  U5      nU R                  X!US9n[        R
                  " [        R                  " XEXS9[        U5      SS9  [        R                  " UR                  U   U5        g Nrx   Fr  )	r  r  get_indexer_forr  r)   r*   algostake_ndr  )r&   r  
new_labelsry   r   r  r  s          r    assert_reindex_axis_is_okATestIndexing.test_reindex_axis.<locals>.assert_reindex_axis_is_ok  sz    C.Chhtn44Z@G((j(QI''cDH)$!
 !!).."6
Cr"   r  r.  r/  r6  r.  r   r6  rg   r  rn   )r   r4   rf   r   r4   rf   )r  ra   r   r  r6   )r   ry   r&   r  r  s        r    test_reindex_axisTestIndexing.test_reindex_axis  s    
	D /B%cuRy*E%csxx|ZH%csxx|I/F
S%cu5J/KZX%sxx|A>? yy}!)#388B<3DjQ)#388B<B3GT)SXXb\*<=z "r"   c                 ^   S n[        UR                  5       GH  nU" X$[        / 5      [        R                  " / [        R
                  S9U5        U" X$UR                  U   [        R                  " UR                  U   5      U5        U" UU[        S/UR                  U   -  5      [        R                  " UR                  U   5      U5        U" X$UR                  U   S S S2   [        R                  " UR                  U   5      U5        U" X$UR                  U   [        R                  " UR                  U   5      S S S2   U5        U" X$[        / SQ5      [        R                  " / SQ5      U5        U" X$[        / SQ5      [        R                  " / SQ5      U5        U" UU[        SUR                  U   S   S	/5      [        R                  " / S
Q5      U5        UR                  U   S:  d  GM  U" UU[        / SQ5      [        R                  " / SQ5      U5        GM     g )Nc                     [        U 5      n[        R                  " XSXS9nU R                  X#XS9n[        R
                  " U[        U5      SS9  [        R                  " UR                  U   U5        g r  )r  r  r  reindex_indexerr)   r*   r  r  )r&   r  r  r  ry   r   reindexed_matr  s           r    assert_reindex_indexer_is_okGTestIndexing.test_reindex_indexer.<locals>.assert_reindex_indexer_is_ok  sl    C.C!MM#TM++T , I ''y3 !!).."6
Cr"   r\   r.  rn   r  r  )rn   r   rn   r   r6  )rn   rn   rn   rg   r  )	r  ra   r   r8   r   r   r  r9   r6   )r   ry   r&   r  r  s        r    test_reindex_indexer!TestIndexing.test_reindex_indexer  s   		D /B(rBHHRrww$? )"ryy2'? )ug		"-.		#))B-( )"dd+RYYsyy}-Ez )"ryy2'?"'Ez )45rxx	7JJ )45rxx7Lj )uchhrl1ou56& yy}!,/0HHY'G "r"   r%   )r   r   r   r   r   r}   r$   MANAGERSr   r   r   r  r  r8   r   r  r  r   r%   r"   r    r  r    s4    	$"$"$!6$!62tD.A4@H [[UH-5 .5n [[UH-W .W* [[UH-[[\D"&&%+@A B .: [[UH-[[\D"&&%+@A5 B .5r"   r  c                      \ rS rSr\R
                  R                  S\" SS5      S4\" SSS5      S4\" SSS5      S4\" SSS5      S4\" SSS5      S4/5      S	 5       r\R
                  R                  S
\" SSS5      \" SSS5      /5      S 5       r	S r
\R
                  R                  S
\" SS5      \" SS5      \" SSS5      \" SSS5      \" SS5      \" SS5      \" SS5      \" SSS5      \" SSS5      \" SSS5      /
5      S 5       r\R
                  R                  S
\" SS5      \" SS5      \" SS5      \" SSS5      \" SSS5      /5      S 5       r\R
                  R                  SS/\" SSS5      4S/\" SSS5      4/ SQ\" SSS5      4/ SQ\" SSS5      4SS/\" SSS5      4SS/\" SSS5      4/5      S 5       r\R
                  R                  S/ S// SQS/S// SQ/ SQ/ SQ/ S Q/	5      S! 5       r\R
                  R                  S\" SS5      / SQ4\" SS5      / 4\" SS5      / 4/5      S" 5       r\R
                  R                  S#\" SS5      / SQ4\" SS5      / 4\" SS5      / 4\" SSS5      / S$Q4/5      S% 5       rS& r\R
                  R                  S'\" SS5      S/ 4\" SS5      S/ S(Q4\" SSS5      S/ S$Q4/ S)QS/ S)Q4\" SS5      S/ 4\" SS5      S/ S*Q4\" SSS5      S/ S+Q4/ S)QS/ S,Q4\" SS5      S/ 4\" SS5      S/ SQ4/ S)QS/ S-Q4/5      S. 5       r\R
                  R                  S/\" SS5      / S)Q/5      S0 5       rS1rg)2TestBlockPlacementi;  zslc, expectedr   rh   rf   rg   r4   rn   c                 8    [        [        U5      5      U:X  d   eg r(   )r>   r   r   slcr   s      r    test_slice_len!TestBlockPlacement.test_slice_len<  s     >#&'8333r"   r"  c                     Sn[         R                  " [        US9   [        U5        S S S 5        g ! , (       d  f       g = f)Nzslice step cannot be zeror   r   r   r   r   r   r"  r  s      r    test_zero_step_raises(TestBlockPlacement.test_zero_step_raisesI  s)    )]]:S13 211   1
?c                 n    [        SSS5      n[        U5      nUR                  [        SS S5      :X  d   eg )Nrg   rn   r  )r   r   r  )r   r"  bps      r    !test_slice_canonize_negative_stop4TestBlockPlacement.test_slice_canonize_negative_stopO  s5    Ar2C zzU1dB////r"   NrB   c                     Sn[         R                  " [        US9   [        U5        S S S 5        g ! , (       d  f       g = f)Nzunbounded slicer   r&  r'  s      r    test_unbounded_slice_raises.TestBlockPlacement.test_unbounded_slice_raisesV  s+    $  ]]:S13 211r*  r  c                 <    [        U5      R                  (       a   eg r(   r   is_slice_like)r   r"  s     r    test_not_slice_like_slices-TestBlockPlacement.test_not_slice_like_slicesl  s     "#&44444r"   zarr, slce   r  )r   rv   rB      rv      c                 :    [        U5      R                  U:X  d   eg r(   )r   as_slice)r   r@   r"  s      r    test_array_to_slice_conversion1TestBlockPlacement.test_array_to_slice_conversiony  s     c"++s222r"   r@   r  )rn   r   r4   rf   )r  r   rf   rh   )r4   r   rn   )r4   r4   r4   c                 <    [        U5      R                  (       a   eg r(   r3  )r   r@   s     r    test_not_slice_like_arrays-TestBlockPlacement.test_not_slice_like_arrays  s     "#&44444r"   c                 8    [        [        U5      5      U:X  d   eg r(   )r   r   r!  s      r    test_slice_iter"TestBlockPlacement.test_slice_iter  s    
 N3'(H444r"   zslc, arr)rg   rf   r4   c                     [         R                  " [        U5      R                  [        R
                  " U[        R                  S95        g )Nr\   )r)   r*   r   r/   r8   asarrayr   )r   r"  r@   s      r    test_slice_to_array_conversion1TestBlockPlacement.test_slice_to_array_conversion  s1     	##3(("**S*H	
r"   c           	      v   [        [        SS5      5      nUR                  S5      R                  [        SSS5      :X  d   eUR                  [        R
                  " S5      5      R                  [        SSS5      :X  d   e[        UR                  [        R
                  " SSS5      5      5      / SQ:X  d   eg )	Nr   rv   r4   rw   rB   rf   rn   )rv   rv   rv   rv   rv   )r   r   addr;  r8   r9   r   )r   bpls     r    test_blockplacement_add*TestBlockPlacement.test_blockplacement_add  s    U1a[)wwqz""eAq!n444wwryy|$--q"a@@@CGGBIIaB/01_DDDr"   zval, inc, expectedr  )r4   rf   rh   )         )rP  rO  rN  )rN  rO     )r   r4   rg   c                 V    [        [        U5      R                  U5      5      U:X  d   eg r(   )r   r   rJ  )r   valincr   s       r    test_blockplacement_add_int.TestBlockPlacement.test_blockplacement_add_int  s'    " N3'++C01X===r"   rS  c                     Sn[         R                  " [        US9   [        U5      R	                  S5        S S S 5        g ! , (       d  f       g = f)Nziadd causes length changer   r>  )r   r   r   r   rJ  )r   rS  r  s      r    "test_blockplacement_add_int_raises5TestBlockPlacement.test_blockplacement_add_int_raises  s4    )]]:S13##C( 211s   A  
Ar%   )r   r   r   r   r   r   r   r   r#  r(  r-  r0  r5  r<  r@  rC  rG  rL  rU  rX  r   r%   r"   r    r  r  ;  sL   [[1a[!1a^Q1a^Q1a^Q1a_a 	
	4	4 [[UU1a^U1a^$DE  F 
0 [[$"dO$b!$B "dO$O"bM"dB$B"b"	
" #" 
 [[!QK#qM#sO#sB!S"	
	5	5 [[S%1a.!UE#sA&'aA'q"a)XuQS)*VU1a_%	

3
3 [[DED
	
55 [[
1+y	!E!QK#4uQ{B6GH5	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"   r  c            
          \ rS rSr\R
                  " S S S S S S S S	 /S
9S 5       rS r\R                  R                  S\
R                  \
R                  \
R                  /5      S 5       r\R                  R                  S\
R                  \
R                  \
R                  /5      S 5       rS rS rS\4S jrS\S\4S jrSrg)TestCanHoldElementi  c                     U $ r(   r%   r5   s    r    r   TestCanHoldElement.<lambda>  s    ar"   c                 "    U R                  5       $ r(   )	to_seriesr]  s    r    r   r^    s
    akkmr"   c                     U R                   $ r(   )r   r]  s    r    r   r^    s    aggr"   c                     [        U 5      $ r(   )r   r]  s    r    r   r^    s    d1gr"   c                 ,    U R                  [        5      $ r(   )r~   rU   r]  s    r    r   r^    s    ahhv&r"   c                 .    [         R                  " U 5      $ r(   )r8   rF  r]  s    r    r   r^    s    bjjmr"   c                     U S   $ r   r%   r]  s    r    r   r^    s    adr"   c                     U S S $ r   r%   r]  s    r    r   r^    s
    aer"   r   c                     UR                   $ )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   )r   r   s     r    elementTestCanHoldElement.element  s    " }}r"   c                 `   [        SS/5      nUR                  / 5      (       d   e[        R                  " UR                  R                  5       5      nUR                  S 5      (       d   eS US'   US   [        R                  L d   e[        R                  " S5      [        SSS5      /nU H  nUR                  U5      (       d   eXBS'   M!     [        SSS5      nUR                  U5      (       a   eSn[        R                  " [        US9   XBS'   S S S 5        g ! , (       d  f       g = f)Nr   r   z
2010-10-10i  rB   zLvalue should be a 'Timestamp', 'NaT', or array of those. Got 'date' instead.r   )r   _can_hold_elementpdr   r+   r   NaTr8   rk  r   r   r   r   r  )r   r(  r@   valsrS  r  s         r    $test_datetime_block_can_hold_element7TestCanHoldElement.test_datetime_block_can_hold_element  s   Z!-&&r**** hhu||))+, &&t,,,,A1v l+XdB-CDC**3////F  4R **3////5 	 ]]9C0F 100s   D
D-r,   c                     [         R                  " / SQUS9n[        R                  " U5      n[	        UR
                  [        S/5      SS9nUR                  / 5      (       d   eg )N)r4   rg   rh   r\   r4   rf   r`   )r8   r   r   from_breaksr   r   r   rk  )r   r,   rh  r@   iir   s         r    (test_interval_can_hold_element_emptylist;TestCanHoldElement.test_interval_can_hold_element_emptylist  sR    hhy.&&s+.!"5A>$$R((((r"   c                 f   [         R                  " / SQUS9n[        R                  " U5      n[	        UR
                  [        S/5      SS9nU" U5      nU R                  XdS5        UR                  U5      (       d   e[        R                  " US S SS	9nU" U5      n[        R                  " [        5         U R                  XdS
5        S S S 5        UR                  U5      (       a   e[        R                  " [        S5      [        S5      [        S5      /5      nU" U5      n[        R                  " [        5         U R                  XdS
5        S S S 5        UR                  U5      (       a   e[        R                  " [        S5      [        S5      [        S5      /5      n	U" U	5      n[        R                  " [        5         U R                  XdS
5        S S S 5        UR                  U5      (       a   eg ! , (       d  f       GN:= f! , (       d  f       N= f! , (       d  f       NJ= f)N)r4   rg   rh   	   r\   r4   rf   r`   Trn   neither)closedFrg   rh   )r8   r   r   rr  r   r   r   check_series_setitemrk  r)   assert_produces_warningFutureWarningr   r   )
r   r,   rh  r@   rs  r   elemii2ii3ii4s
             r    test_interval_can_hold_element1TestCanHoldElement.test_interval_can_hold_element  s   hh|51&&s+.!"5A>r{!!$D1$$T**** ''CRCs|''6%%d6 7((....''1y|Yq\(RSs|''6%%d6 7((....''1y|Yq\(RSs|''6%%d6 7((..... 76 76 76s$   9G?HH"?
H
H"
H0c                     [        SSSS9n[        UR                  R                  SS5      [	        S/5      SS9nUR                  / 5      (       d   eg )N2016rg   Yperiodsfreqr4   rf   r`   )r   r   r   r   r   rk  )r   pir   s      r    &test_period_can_hold_element_emptylist9TestCanHoldElement.test_period_can_hold_element_emptylist%  sM    &!#6((A.s0C!L$$R((((r"   c                    [        SSSS9nU" U5      nU R                  X2S5        UR                  S5      S S nU" U5      n[        R                  " [
        5         U R                  X2S5        S S S 5        UR                  S	5      S S nU" U5      n[        R                  " [
        5         U R                  X2S5        S S S 5        g ! , (       d  f       N`= f! , (       d  f       g = f)
Nr  rg   r  r  TDrn   Frq   )r   rz  asfreqr)   r{  r|  to_timestamp)r   rh  r  r}  pi2dtis         r    test_period_can_hold_element/TestCanHoldElement.test_period_can_hold_element+  s    &!#6r{!!$D1 iinSb!s|''6%%d6 7 ooc"3B's|''6%%d6 76 76
 76s   C	-C	
C
C(r  c                     UR                   R                  S   nU(       a  UR                  U5      (       d   eg UR                  U5      (       a   eg r   )r   r   rk  )r   objr}  r  r   s        r    check_can_hold_element)TestCanHoldElement.check_can_hold_element=  sH    hhooa ((....,,T22222r"   indexc                    UR                   R                  5       n[        USS9nU R                  XQU5        [	        U5      (       a  XS'   OXS [        U5      & U(       a  UR                  UL d   eg UR                  [        :X  d   eg )NFrz  r   )	r   r?   r   r  r   r>   r   r,   rU   )r   r}  r  r  r@   sers         r    rz  'TestCanHoldElement.check_series_setitemD  su    kk Su%##Cw7T??F##d)99###99&&&r"   r%   N)r   r   r   r   r   fixturerh  ro  r   r   r8   rf  uint64r<  rt  r  r  r  r[   r  r   rz  r   r%   r"   r    r[  r[    s    ^^#&#	
: [[WrxxBJJ&GH) I) [[WrxxBJJ&GH/ I/:)7$3 3' ' 'r"   r[  c                       \ rS rSrS rSrg)TestShouldStoreiU  c                 p   [        / SQ5      n[        U5      nUR                  R                  S   nUR	                  U5      (       d   eUR	                  US S 5      (       d   eUR	                  UR                  5       5      (       a   eUR	                  [        R                  " U5      5      (       a   eg )N)rX   BCr   rn   )r   r	   r   r   should_store
as_orderedr8   rF  )r   catr   r   s       r    test_should_store_categorical-TestShouldStore.test_should_store_categoricalV  s    /*s^ggnnQ $$$$CR)))) ##CNN$45555 ##BJJsO44444r"   r%   N)r   r   r   r   r  r   r%   r"   r    r  r  U  s    5r"   r  c                      [         R                  " SS/5      n [        [        S5      5      nSn[        R
                  " [        US9   [        XSS9  S S S 5        g ! , (       d  f       g = f)Nr  r  rf   z:Wrong number of dimensions. values.ndim != ndim \[1 != 2\]r   r`   )r8   r   r   r   r   r   r   r   )r+   r|   r  s      r    test_validate_ndimr  f  sK    XXsCj!FuQx(I
GC	z	-61- 
.	-	-s   A
A*c                  \   [        / SQ5      n [        / SQ5      R                  U 5      n[        [        / SQ5      5      R                  U 5      nUR                  R
                  S   R                  R                  UR                  R
                  S   R                  R                  :X  d   eg )N)r   r4   rf   rg   rh   r  r   )r   r   reindexr   r   r   r.   r  )r=  rj   rZ   s      r    test_block_shaper  o  s{    

 Cy!!#&A{9%&..s3A66==$$,,a0@0I0I0Q0QQQQr"   c           
         [         R                  R                  [        R                  " SS/5      5      nU " U[        [        [        U5      5      5      UR                  S9nUR                  R                  S;   d   eU [        L a  UR                  SL d   eU " U[        [        U5      5      UR                  UR                  S9nUR                  R                  S;   d   eUR                  SL d   eU " UR                  5       [        [        U5      5      UR                  UR                  S9nUR                  R                  S;   d   eUR                  SL d   eg g )Nr4   rf   r`   )r   uF)r,   ra   )rl  arraysNumpyExtensionArrayr8   r   r   r   r>   ra   r,   kindr   is_extensionto_numpy)r!   r@   r   s      r    test_make_block_no_pandas_arrayr  w  s$   
))
'
'!Q(8
9C nU3s8_=CHHMF<<
***j ""e+++ S%C/R||  J...""e+++ LLNE#c(O399388
 ||  J...""e+++ !r"   r(   )Er   r   r  r   numpyr8   r   pandas._libs.internalsr   pandas.compatr   pandas.util._test_decoratorsutil_test_decoratorsrc   pandas.core.dtypes.commonr   pandasrl  r   r	   r
   r   r   r   r   r   r   pandas._testing_testingr)   pandas.core.algorithmscore
algorithmsr  pandas.core.arraysr   r   r   pandas.core.internalsr   r   r   pandas.core.internals.blocksr   r   r   skip_array_manager_invalid_test
pytestmarkr  r!   r&   r2   rA   r}   r   r   r$   r   r   r   r  r  r  r[  r  r  r  r  r%   r"   r    <module>r     sN    	   1  ) ) / 
 
 
  & & 
 
  //
 	:./ 0  Q  15) V?r<~ , ,r) r)jE# E#Pw wtO) O)dE' E'P5 5".R,r"   