
    4ik                     .   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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,  \RZ                  " \,\(/S9S 5       r.\RZ                  S 5       r/S r0S r1Sr2SS \,4S jr3S%S jr4S%S jr5\RZ                  S 5       r6 " S S5      r7 " S S5      r8S r9 " S S5      r: " S S5      r; " S S5      r< " S  S!5      r=S" r>S# r?S$ r@g)&    )datedatetimeN)BlockPlacement)IS64)Pandas4Warning)	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    g/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/pandas/tests/internals/test_internals.pyblock_makerr"   0   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'   8   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_equalr3   A   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)r7   arrs     r!   get_numeric_matrB   I   sZ    
))E!H
C66**
S\\Odc%j1n6M$M + 
dfr#   
   c                 .   [        U5      n[        U5      nUc  [        4nU/UQ7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   r5   z)must have only 1 num items for a tz-awarei ʚ;)tzndim)	timedeltatdm8[ns]re   )category)
r5   r5      rg      rh   rh   rh      ri   )	category2)
ark   rk   rk   r[   r[   crl   rl   rZ   )sparse	sparse_narC   c              3   *   #    U  H	  oS :H  v   M     g7f)r5   Nr&   ).0ss     r!   	<genexpr>create_block.<locals>.<genexpr>   s     .:a6:s   _na        rg   rh   ri         
fill_valuezUnsupported typestr: ""	placementrb   )r   r?   NrB   astyper9   reshaperavelonesbool_
startswithresearchgroupsr   r:   _datar   r	   NotImplementedErrorallendswithnanr   	sp_valuesview
ValueErrorr   )typestrr}   
item_shape
num_offsetmaker	num_itemsr7   matr,   imr`   rz   rA   s                 r!   create_blockr   S   s   " y)IIIT
$$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   r9   r:   )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   ;:rg   ,-)r   r   c                      U R                   S   $ Nr   )r/   )r[   s    r!   <lambda>create_mgr.<locals>.<lambda>   s    1::a=r#   )key)r~   splitstripr?   	partitionextendlistr9   r:   KeyErrorr   itemsappendr   sortedr   tuple)descrr   offset	mgr_itemsblock_placementsrZ   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      $ )NrE   r   rg   ri   )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 )NrK   r   )r   r-   r9   int32)self
int32blocks     r!   test_constructorTestBlock.test_constructor   s(    !$,
288+++r#   z	typ, datarE   r   rS      rV   r5   rh   r\   rw   c                 Z    [        X5      n[        [        R                  " XC5      U5        g r)   )r   r3   r*   round_trip_pickle)r   typdata	temp_fileblks        r!   test_pickleTestBlock.test_pickle   s#     3%2//?Er#   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+   r0   r9   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)   )r7   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                 D    UR                  SS9nX!Ld   e[        X5        g )NTdeep)r@   r3   )r   r   cops      r!   	test_copyTestBlock.test_copy  s&    kktk$   6'r#   c                 D   UR                  SS9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                  SS9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                  SS9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                  SS9n[        R                  " [        S S9   UR                  S	5        S S S 5        g ! , (       d  f       g = f)
NTr   r   rg   ri   r]   r5   matchrh   )r@   r/   deleter*   r+   r0   r9   r   r   r,   r   r?   pytestraises
IndexError)r   r   newblocsnbs        r!   test_deleteTestBlock.test_delete  su   {{{%}}[[^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   6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   rJ   r]   rw   ri   re   r   r5   rg   r_   rh   )r9   r:   r   r   r
   _mgrr   r.   r,   r   r   r?   r   )r   rA   dfr   r   s        r!   test_delete_datetimelike"TestBlock.test_delete_datetimelikeF  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       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 )
Nrg   )rh   ri   )rh   r5   rx   r|   irh   r   r5   rx   )r9   randomdefault_rngstandard_normalr   r   r   _splitr,   r   r?   zipr3   )r   r,   r   resultexpectedresexps          r!   
test_splitTestBlock.test_split[  s    &&q)99&A.*C!Lcjjl# 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      sz    , [[i 1vaSM		
FF
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TestBlockManagerio  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-2rg   rx   )r%   nblocksr?   r   r'   s     r!   r   TestBlockManager.test_attrsp  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[        X25      n[        R                  " [        US9   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   r5   zGaps in blk ref_locsr   )r%   axesr   r   r9   r   r/   r   r   r   AssertionError_rebuild_blknos_and_blklocsiget)r   tmp_mgrr
  r   msgr'   s         r!   test_duplicate_ref_loc_failure/TestBlockManager.test_duplicate_ref_loc_failureu  s    _-||W^^f+BHHaSM:q	+BHHaSM:q	 %6(]]>5++- 6 ,BHHaSM:q	+BHHaSM:q	6( 65s   D
D-c                 f   [         R                  " X5      n[         R                  " [        R                  " XR
                  S9[        R                  " X3R
                  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'   r   mgr2s       r!   r   TestBlockManager.test_pickle  s    ##C3
((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                  " X25      n[        R                  " [        R
                  " X3R                  S9[        R
                  " XDR                  S95        g )Nr  )r%   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
((3995	
r#   c                    [        S5      n[        R                  " X!5      n[        R                  " [        R
                  " X"R                  S9[        R
                  " X3R                  S95        [        S5      n[        R                  " XA5      n[        R                  " [        5       R                  XDR                  S9[        5       R                  XUR                  S95        g )Na: categoryr  rf   )r%   r*   r   r  r
   r  r
  r   assert_series_equalr   _constructor_from_mgr)r   r   r'   r  smgrsmgr2s         r!   test_categorical_block_pickle.TestBlockManager.test_categorical_block_pickle  s    '##C3
((3995	

 !,$$T5
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abcrg   )rh   rh   rh   r]   )r,   r}   rb   r   r
  r   r5   )r   r   r9   r   r   r   r@   r   r:   r   rb   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rh   r   rZ   foorh   r5   barr   r]   rg   )r%   insertr?   r   r9   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]   r3  quuxrg   )r5  r?   r   r9   zerosr~   r\   r6  get_locrepeatr  r-   r7  consolidater   r   r   r   rI   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                 t   UR                  SS9n[        UR                  UR                  5       H  u  p4[        R                  " UR
                  UR
                  5        [        UR
                  [        R                  5      (       a;  UR
                  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 )NFr   T)r@   r   r   r*   assert_equalr,   r.   r9   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}}))..#**//AAA }}--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%   r0   r-   r9   rA  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: f8rh   )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%   r0   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)   rZ  r[  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_   rZ  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]r5   zdatetime64[ns, CET]rV   )r%   r  r-   r0   r  s     r!   test_as_array_datetime_tz*TestBlockManager.test_as_array_datetime_tz,  sa    @Axx{  $@@@@xx{  $9999||~##x///r#   t)float16float32rA  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 )NrX  r   r5   rg   z6a,b: object; c: bool; d: datetime; e: f4; f: f2; g: f8ignore)errorsri   rw   rx   rh   )	r%   r9   r-   r   r  typer7  rj  
datetime64)r   rg  r'   tmgrs       r!   test_astypeTestBlockManager.test_astype2  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                 N   S n[        S5      nUR                  5       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                  5       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                  5       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_blocksr[   foundr   obs           r!   _compare/TestBlockManager.test_convert.<locals>._compareO  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: f8za,b,foo: object; f: i8; g: f8r   1r]   r5   z2.rg   zfoo.strrh   ri   zEa,b,foo: object; f: i4; bool: bool; dt: datetime; i: i8; g: f8; h: f2rw   rx   r      )r%   convertr6  r9   r   r~   r7  r  r-   rj  rA  r   r   rn  ro  rh  )r   using_infer_stringr|  r'   rw  r-   s         r!   test_convertTestBlockManager.test_convertN  s   	0 (++- 89BHHcUQYbjj9:BHHdVaZrzz:;BHHfX\<=++-+||A$$---||A$$---||A$$---||A$$000||A$$

222S
 	BHHcUQYbjj9:BHHdVaZrzz:;BHHfX\<=++-||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)rF   rJ   rV   r\   rS   r_   re   za: z; b: rZ  )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   rJ   )za: category; b: categoryrJ   )a: category; b: category2rV   )a: category2rV   )za: category2; b: category2rV   )a: f8rF   )a: f8; b: i8rF   )a: f4; b: i8rF   )a: f4; b: i8; d: objectrV   )a: bool; b: i8rV   )
a: complexrS   )a: f8; b: categoryrV   )a: M8[ns]; b: categoryrV   )a: M8[ns]; b: boolrV   )a: M8[ns]; b: i8rV   )a: m8[ns]; b: boolrV   )a: m8[ns]; b: i8rV   )a: M8[ns]; b: m8[ns]rV   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   rJ   r  rV   r  r  rF   r  r  r  r  r  rS   r  r  r  r  r  r  r  rZ  r[  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frg   rZ   r[   ghri   r5   r   r]   )r6  r   r>  r9   r   r   r   r~   r@  r  get_numeric_datar.   r   r/   r   r*   r+   r0   r:   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  rl   rk   rZ   r   axisrx   rg   r5   rh   )
r%   reindex_axisis_consolidatedr*   assert_index_equalr   r   r*  r  r+  )r   r'   	reindexeds      r!   test_reindex_items#TestBlockManager.test_reindex_items  s0   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                 F   [        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  [        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: datetimer1  r2  rw   r5   rg   rh   r]   )rI   rE   rS   r\   rE   )      Y@g      i@g     r@Tinplace)      ?r  r  )r%   r6  r9   r   r7  r  r*   r  r   r   r*  r  r>  r+  )r   r'   numerics      r!   test_get_numeric_data&TestBlockManager.test_get_numeric_data  s'   A

 	BHHYbjj9:&&(
gmmU3V-WX
HHSYY&&w/0@@BLL..w78HHJ	
 	MM!!'*HH*+ 	 	

 	HHSYY&&w/0@@BHH_%	
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  [        R                  " UR                  UR                  R                  S5      5      R                  5       [        R                  " / SQ5      5        g )Nr  r1  r2  rx   )TFTr]   r\   r   Tr  )TTT)r%   r6  r9   r   r7  get_bool_datar*   r  r   r   r*  r  r>  r+  r+   )r   r'   boolss      r!   test_get_bool_data#TestBlockManager.test_get_bool_data  s   A

 	BHH0

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

 	

1bhh23T
B
##HHSYY&&v./??AHH'(	
r#   c                 ,    [        [        S5      5        g )Nu   b,א: object)reprr%   )r   s    r!   test_unicode_repr_doesnt_raise/TestBlockManager.test_unicode_repr_doesnt_raise"  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 )Nro   )r%   r   r   r
  equals)r   r  bm1bm2s       r!   test_equalsTestBlockManager.test_equals%  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 )NrF   rw   )r   )rv   r         @g      @g      @)r   external_valuestolistr  s     r!   test_single_mgr_ctor%TestBlockManager.test_single_mgr_ctorA  s/    q1""$++-1JJJJr#   valuer5   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   r5   rg   r  )r%   rn  r   r   r   r   replace_list)r   r  r  r  s       r!   test_validate_bool_args(TestBlockManager.test_validate_bool_argsE  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   r5   r   rj  r   r]   )r   r   r   r5   rg   )r%   _iset_split_blockr9   r   r*   r+   blklocsr   blknosr?   r   r   r  s     r!   test_iset_split_block&TestBlockManager.test_iset_split_blockP  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   rC   r  rj  r   r]   )r   rg   rg   r5   rh   )r%   r  r9   r   r   ranger*   r+   r  r   r  r?   r   r  s     r!   test_iset_split_block_values-TestBlockManager.test_iset_split_block_values\  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.  r8  rC  r   rS  rV  r9   ri  rA  r\  r   rj  r   r_  rb  re  rq  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&   r#   r!   r  r  o  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
"
*
4
*- [[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                  $ )Nr5   )rb   r  r0   T)r'   s    r!   	_as_arrayr  i  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)TestIndexingio  rF   rJ   za,b,c,d,e,f: f8r2  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  r5   r   Fcheck_dtype)r  r.   r9   rG  r
  r?   concatenater=  r\   r   	get_slicerb   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#   rg   rh   d   r5   ri   r   r]   )TTF)
rb   r  r   r9   r   r7   r   r=  r:   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+   r9   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   rh   r   r5   rg   ro   r  )r  rb   r9   r   r   r   r7   )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#   rz   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 Nry   Fr  )	r  r
  get_indexer_forr  r*   r+   algostake_ndr  )r'   r  
new_labelsrz   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  r3  r4  r;  r3  r   r;  rh   r	  ro   )r   r5   rg   r   r5   rg   )r  rb   r   r
  r7   )r   rz   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  rz   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]   r3  ro   r  r  )ro   r   ro   r   r;  )ro   ro   ro   rh   r  )	r  rb   r   r9   r   r   r
  r:   r7   )r   rz   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
  r9   r   r  r  r  r&   r#   r!   r  r  o  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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   ri   rg   rh   r5   ro   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_raises7  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 )Nrh   ro   r  )r   r   r  )r   r%  bps      r!   !test_slice_canonize_negative_stop4TestBlockPlacement.test_slice_canonize_negative_stop=  s5    Ar2C zzU1dB////r#   NrC   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_raisesD  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_slicesZ  s     "#&44444r#   zarr, slce   r  )r   rw   rC      rw      c                 :    [        U5      R                  U:X  d   eg r)   )r   as_slice)r   rA   r%  s      r!   test_array_to_slice_conversion1TestBlockPlacement.test_array_to_slice_conversiong  s     c"++s222r#   rA   r  )ro   r   r5   rg   )r  r   rg   ri   )r5   r   ro   )r5   r5   r5   c                 <    [        U5      R                  (       a   eg r)   r6  )r   rA   s     r!   test_not_slice_like_arrays-TestBlockPlacement.test_not_slice_like_arraysu  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)rh   rg   r5   c                     [         R                  " [        U5      R                  [        R
                  " U[        R                  S95        g )Nr]   )r*   r+   r   r0   r9   asarrayr   )r   r%  rA   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   rw   r5   rx   rC   rg   ro   )rw   rw   rw   rw   rw   )r   r   addr>  r9   r:   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  )r5   rg   ri   )         )rS  rR  rQ  )rQ  rR     )r   r5   rh   c                 V    [        [        U5      R                  U5      5      U:X  d   eg r)   )r   r   rM  )r   valincr   s       r!   test_blockplacement_add_int.TestBlockPlacement.test_blockplacement_add_int  s'    " N3'++C01X===r#   rV  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   rA  )r   r   r   r   rM  )r   rV  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+  r0  r3  r8  r?  rC  rF  rJ  rO  rX  r[  r  r&   r#   r!   r"  r"  )  sG   [[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		
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 rS\4S jrS\S\4S jrSrg)TestCanHoldElementi  c                     U $ r)   r&   r6   s    r!   r   TestCanHoldElement.<lambda>  s    ar#   c                 "    U R                  5       $ r)   )	to_seriesr`  s    r!   r   ra    s
    akkmr#   c                     U R                   $ r)   )r   r`  s    r!   r   ra    s    aggr#   c                     [        U 5      $ r)   )r   r`  s    r!   r   ra    s    d1gr#   c                 ,    U R                  [        5      $ r)   )r   rV   r`  s    r!   r   ra    s    ahhv&r#   c                 .    [         R                  " U 5      $ r)   )r9   rI  r`  s    r!   r   ra    s    bjjmr#   c                     U S   $ r   r&   r`  s    r!   r   ra    s    adr#   c                     U S S $ r   r&   r`  s    r!   r   ra    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  rC   zLvalue should be a 'Timestamp', 'NaT', or array of those. Got 'date' instead.r   )r   _can_hold_elementpdr   r,   r   NaTr9   ro  r   r   r   r   r  )r   r-  rA   valsrV  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)r5   rh   ri   r]   r5   rg   ra   )r9   r   r   from_breaksr   r   r   rn  )r   r-   rk  rA   iir   s         r!   (test_interval_can_hold_element_emptylist;TestCanHoldElement.test_interval_can_hold_element_emptylist  sR    hhy.&&s+.!"5A>$$R((((r#   c                 `   [         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                  " [        S
S9   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                  " [        S
S9   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                  " [        S
S9   U R                  XdS5        S S S 5        UR                  U5      (       a   eg ! , (       d  f       GN8= f! , (       d  f       N= f! , (       d  f       NJ= f)N)r5   rh   ri   	   r]   r5   rg   ra   Tro   neither)closedInvalid valuer   Frh   ri   )r9   r   r   ru  r   r   r   check_series_setitemrn  r   r   r  r   r   )
r   r-   rk  rA   rv  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|]]9O<%%d6 =((....''1y|Yq\(RSs|]]9O<%%d6 =((....''1y|Yq\(RSs|]]9O<%%d6 =((..... =< =< =<s$   8G< HH<
H
H
H-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2016rh   Yperiodsfreqr5   rg   ra   )r   r   r   r   r   rn  )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                  " [
        SS	9   U R                  X2S
5        S S S 5        UR                  S5      S S nU" U5      n[        R                  " [
        SS	9   U R                  X2S
5        S S S 5        g ! , (       d  f       N_= f! , (       d  f       g = f)Nr  rh   r  r  TDro   r}  r   Frr   )r   r~  asfreqr   r   r  to_timestamp)r   rk  r  r  pi2dtis         r!   test_period_can_hold_element/TestCanHoldElement.test_period_can_hold_element  s    &!#6r{!!$D1 iinSb!s|]]9O<%%d6 = ooc"3B's|]]9O<%%d6 =< =<
 =<s   C+C
C
C&c                    [        SSSS9n[        UR                  R                  SS5      [	        [        S5      5      SS9n[        U4[        [        R                  " S5      5      [        S/5      /S	9nUR                  [        / S
Q5      SS9n[        R                  " XDR                  S9n[        US   US   US   /// S
QS/S9n[        R                  " XV5        g )N2020rw   r  r  r5   rg   ra   rk   r)  r   r   r  r  ri   )columnsindex)r   r   r   r   r   r   r   r   r9   r:   r  r
   r  r
  r*   r  )r   r  r   r'   r  r   r   s          r!   test_period_reindex_axis+TestCanHoldElement.test_period_reindex_axis*  s    &!#6((A.uQx0HqQ3&biil0CUC5\/RS$$U9%5A$>	$$Y^^Dr!ubeRU34iPSuU
f/r#   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   rn  )r   objr  r  r   s        r!   check_can_hold_element)TestCanHoldElement.check_can_hold_element4  sH    hhooa ((....,,T22222r#   r  c                    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 )NF)r@   r   )	r   r@   r   r  r   r?   _valuesr-   rV   )r   r  r  r  rA   sers         r!   r~  'TestCanHoldElement.check_series_setitem;  su    kk Su%##Cw7T??F##d);;#%%%99&&&r#   r&   N)r   r   r   r   r   fixturerk  rr  r   r  r9   rj  uint64rA  rw  r  r  r  r  r\   r  r   r~  r  r&   r#   r!   r^  r^    s    ^^#&#	
: [[WrxxBJJ&GH) I) [[WrxxBJJ&GH/ I/:)7$03 3' ' 'r#   r^  c                       \ rS rSrS rSrg)TestShouldStoreiL  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)rY   BCr   ro   )r	   r
   r   r   should_store
as_orderedr9   rI  )r   catr   r   s       r!   test_should_store_categorical-TestShouldStore.test_should_store_categoricalM  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  L  s    5r#   r  c                  D   [         R                  " SS/5      n [        [        S5      5      nSnSn[        R
                  " [        US9   [        R                  " [        US9   [        XSS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr  r  rg   z:Wrong number of dimensions. values.ndim != ndim \[1 != 2\]make_block is deprecatedr   ra   )r9   r   r   r   r   r   r   r*   assert_produces_warningr   r   )r,   r}   r  depr_msgs       r!   test_validate_ndimr  ]  sr    XXsCj!FuQx(I
GC)H	z	-''hGvq1 H 
.	-GG 
.	-s$   
B$B /B 
B	
B
B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   r5   rg   rh   ri   r  r   )r   r   reindexr	   r   r   r/   r  )rB  rk   r[   s      r!   test_block_shaper  h  s{    

 Cy!!#&A{9%&..s3A66==$$,,a0@0I0I0Q0QQQQr#   c                     [         R                  R                  [        R                  " SS/5      5      nSnU [
        L a  [        OS n[        R                  " X2S9   U " U[        [        [        U5      5      5      UR                  S9nS S S 5        WR                  R                  S;   d   eU [
        L Ga  UR                  SL d   e[        R                  " X2S9   U " U[        [        U5      5      UR                  UR                  S9nS S S 5        UR                  R                  S;   d   eUR                  SL d   e[        R                  " X2S9   U " UR!                  5       [        [        U5      5      UR                  UR                  S9nS S S 5        UR                  R                  S;   d   eUR                  SL d   eg g ! , (       d  f       GNH= f! , (       d  f       N= f! , (       d  f       N`= f)	Nr5   rg   r  r   ra   )r   uF)r-   rb   )ro  arraysNumpyExtensionArrayr9   r   r   DeprecationWarningr*   r  r   r   r?   rb   r-   kindis_extensionto_numpy)r"   rA   r  warnr   s        r!   test_make_block_no_pandas_arrayr  p  s   
))
'
'!Q(8
9C)H!,
!:D 
	#	#D	9S.s3x"AQ 
:<<
***j ""e+++ ''= eCHoSYYSXXVF >||  J...""e+++ ''= c#hsyysxxF > ||  J...""e+++# !	 
:	9 >= >=s$   .G0G>G/
G
G,/
G=r)   )Ar   r   r  r   numpyr9   r   pandas._libs.internalsr   pandas.compatr   pandas.errorsr   pandas.core.dtypes.commonr   pandasro  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   r  r"   r'   r3   rB   r~   r   r   r%   r   r   r  r  r  r"  r^  r  r  r  r  r&   r#   r!   <module>r     s>    	   1  ( / 
 
 
  & & 
 
  	:./ 0  Q  15) V?r<~ , ,r) r)jw# w#tw wtN) N)bO' O'd5 5"2R,r#   