
    Pik                     N   d dl mZm Z  d dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlZd dlmZmZmZmZmZmZmZmZmZ d dlmZ d dlmc mZ  d dl!m"Z"m#Z#m$Z$ d d	l%m&Z&m'Z'm(Z( d d
l)m*Z*m+Z+m,Z,  ej-        e,e(g          d             Z.ej-        d             Z/d Z0d Z1dZ2dd e,fdZ3d%dZ4d%dZ5ej-        d             Z6 G d d          Z7 G d d          Z8d Z9 G d d          Z: G d d          Z; G d d          Z< G d  d!          Z=d" Z>d# Z?d$ Z@dS )&    )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                     | j         S )zS
    Fixture to test both the internal new_block and pseudo-public make_block.
    param)requests    y/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/internals/test_internals.pyblock_makerr"   0   s    
 =    c                       t          d          S )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                 *   t          j        | j        |j                   | j        |j        k    sJ t	          | j        t                    sJ t	          |j        t                    sJ t          j        | j        j        |j        j                   d S N)tmassert_numpy_array_equalvaluesdtype
isinstancemgr_locsr   as_array)leftrights     r!   assert_block_equalr3   A   s    U\::::$$$$dm^44444enn55555 68OPPPPPr#   c           	          t          j        | d                   }t           j        j                            || |j        fdt          |           dz
  z  z                                             S )Nr   )r      )xshapestrides)nparangelibstride_tricks
as_strideditemsizelencopy)r7   arrs     r!   get_numeric_matrB   I   s_    
)E!H

C6**
US\Odc%jj1n6M$M +  
dffr#   
   c                    t          |          }t          |          }|t          f}|g|R }t          |          }| dv r|                    |           |z   }nH| dv rd|                    |           |z   z  }n'| dv r6t          j        d |                                |z   D             |          }n| dv r"t          j        |t
          j	                  }n| d	v r|d
z                      d          }n| 
                    d          rt          j        d|           }	|	J d|              |	                                d         }
|dk    s
J d            t          t          j        t                    dz  |
          j        }t#          |t          |                    }n| dv r|dz                      d          }n| dv rt%          g d          }n| dv rt%          g d          }n| dv r|d         dk    rt&          t)          d |dd         D                       sJ |                     d          rt
          j        }nd }t/          ||dd!d"|d#d$|d%g
|&          }|j                                        }||dz
  z  }nt5          d'|  d(          t7          |          } |||t          |          )          S )*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Oc                     g | ]}d |d	S )Adr&   ).0is     r!   
<listcomp>z create_block.<locals>.<listcomp>   s     III1YYYYIIIr#   )bboolr-   )r   dtM8[ns]g    eArc   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]ri   )category)
r5   r5      rk      rl   rl   rl      rm   )	category2)
aro   ro   ro   r_   r_   crp   rp   r[   )sparse	sparse_narC   c              3   "   K   | ]
}|d k    V  dS )r5   Nr&   )r\   ss     r!   	<genexpr>zcreate_block.<locals>.<genexpr>   s&      ..a16......r#   _na        rk   rl   rm         
fill_valuezUnsupported typestr: ""	placementrf   )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,   mrd   r|   rA   s                r!   create_blockr   S   s-   " y))IIIT
$$$E
%
 
 C     G$$z1	,	,	,G,,z9:	-	-	-II		j0HIII5QQ	M	!	!bh///	0	0	0)##H--			G	$	$ >I0'::}}BBB}}}XXZZ]A~~~J~~~ry||e3;;;A#FU<<<	1	1	1'!!(++	M	!	!;;;<<	N	"	"OOOPP	+	+	+9??%%..5":........E"" 	JJJQ1j!Q
AN!
 
 
 ##%%zA~<'<<<=== ((F593u::>>>>r#   c           	          |t           }t          t          | t          d|          d          t	          t          j        |                              S )Nr   r&   )r   r   )r   r   r   slicer   r9   r:   )r   num_rowss     r!   create_single_mgrr      sP    Wa(:(:rJJJbi!!""  r#   c           	         |t           f}d}g }i }|                     d          D ]}|                                }t          |          s'|                    d          ddd         \  }}|                                }|                                                    d          }|                    |           t          t          j        t          |                    |z             }	 ||                             |           n# t          $ r |||<   Y nw xY w|t          |          z  }t          |          }g }	d}
|                                D ]X\  }}|                    d          d         }|	                    t          ||||
                     |
t          |          z  }
Yt          |	d	 
          }t          t!          |          |gd |D             z             S )aU  
    Construct BlockManager from string description.

    String description syntax looks similar to np.matrix initializer.  It looks
    like this::

        a,b,c: f8; d,e,f: i8

    Rules are rather simple:

    * see list of supported datatypes in `create_block` method
    * components are semicolon-separated
    * each component is `NAME,NAME,NAME: DTYPE_ID`
    * whitespace around colons & semicolons are removed
    * components with same DTYPE_ID are combined into single block
    * to force multiple blocks with same dtype, use '-SUFFIX'::

        "a:f8-1; b:f8-2; c:f8-foobar"

    Nr   ;:rk   ,-)r   r   c                     | j         d         S Nr   )r/   )r_   s    r!   <lambda>zcreate_mgr.<locals>.<lambda>   s    1:a= r#   )keyc                 P    g | ]#}t          t          j        |                    $S r&   )r   r9   r:   )r\   ns     r!   r^   zcreate_mgr.<locals>.<listcomp>   s(    ???quRYq\\**???r#   )r   splitstripr?   	partitionextendlistr9   r:   KeyErrorr   itemsappendr   sortedr   tuple)descrr   offset	mgr_itemsblock_placementsr[   namesblockstrr   blocksr   r   sblockss                r!   r%   r%      s   * T
FI[[  GGII1vv 	++c**33Q3/x>>####C((3u::..788		3X&--i8888 	3 	3 	3)2X&&&	3#e**i  IFJ/5577 % %)..%%a(zj  	
 	
 	

 	c)nn$

V!8!8999Gg	??J????  s   0DDDc                  &    t          dg d          S )NrE   r   rk   rm   )r   r&   r#   r!   fblockr      s    +++r#   c                       e Zd Zd Zej                            ddg dgddggddd	ggd
dggg          d             Zd Zd Z	d Z
d Zd Zd ZdS )	TestBlockc                 V    t          ddg          }|j        t          j        k    sJ d S )NrK   r   )r   r-   r9   int32)self
int32blocks     r!   test_constructorzTestBlock.test_constructor   s/    !$,,
28++++++r#   z	typ, datarE   r   rS      rV   r5   rl   r`   ry   c                 l    t          ||          }t          t          j        ||          |           d S r)   )r   r3   r*   round_trip_pickle)r   typdata	temp_fileblks        r!   test_picklezTestBlock.test_pickle   s6     3%%2/Y??EEEEEr#   c                     t          |j        t                    sJ t          j        |j        j        t          j        g dt          j                             d S )Nr   ra   )	r.   r/   r   r*   r+   r0   r9   arrayintpr   r   s     r!   test_mgr_locszTestBlock.test_mgr_locs  sX    &/>:::::
#O$bhyyy&H&H&H	
 	
 	
 	
 	
r#   c                     |j         |j        j         k    sJ |j        |j        j        k    sJ t          |          t          |j                  k    sJ d S r)   )r7   r,   r-   r?   r   s     r!   
test_attrszTestBlock.test_attrs  sY    |v}22222|v}222226{{c&-00000000r#   c                 ^    |                     d          }||usJ t          ||           d S )NTdeep)r@   r3   )r   r   cops      r!   	test_copyzTestBlock.test_copy  s<    kktk$$&    63'''''r#   c                    |                     d          }|j        }|                    d          d         }|j        |u sJ ||usJ t          j        |j        j        t          j        ddgt          j                             |j	        d         dk    
                                rJ |j	        d         dk    
                                sJ |                     d          }|j        }|                    d          }t          |          dk    sJ |j        |u sJ t          j        |d         j        j        t          j        dgt          j                             t          j        |d         j        j        t          j        dgt          j                             |j	        d         dk    
                                rJ |d         j	        d         dk    
                                sJ |                     d          }|                    d          }t          |          dk    sJ t          j        |d         j        j        t          j        ddgt          j                             |d         j	        d         dk    
                                sJ |                     d          }t          j        t          d           5  |                    d	           d d d            d S # 1 swxY w Y   d S )
NTr   r   rk   rm   ra   r5   matchrl   )r@   r/   deleter*   r+   r0   r9   r   r   r,   r   r?   pytestraises
IndexError)r   r   newblocsnbs        r!   test_deletezTestBlock.test_delete  s   {{{%%}[[^^A}$$$$~~~~
#K "(Aq6"A"A"A	
 	
 	
 KNa',,.....	!!&&((((({{{%%}[[^^2ww!||||}$$$$
#qEN#RXqc%A%A%A	
 	
 	
 	#qEN#RXqc%A%A%A	
 	
 	
 KNa',,.....1Q1$))+++++{{{%%[[^^2ww!||||
#qEN#RXq!fBG%D%D%D	
 	
 	
 1Q1$))+++++{{{%%]:T222 	 	KKNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   LLLc                 V   t          j        dd                              dd                              d          }t	          |          }|j        j        d         }t          |j        t                    sJ |
                    d          }t          |          d	k    sJ t          |d         j        t                    sJ t          |d         j        t                    sJ t	          |                    d
                    }|j        j        d         }t          |j        t                    sJ |
                    ddg          }t          |          d	k    sJ t          |d         j        t                    sJ t          |d         j        t                    sJ d S )N   rJ   ra   ry   rm   ri   r   r5   rk   rc   rl   )r9   r:   r   r   r
   _mgrr   r.   r,   r   r   r?   r   )r   rA   dfr   r   s        r!   test_delete_datetimelikez"TestBlock.test_delete_datetimelikeF  sd   i$'''//155::8DDs^^gnQ#*n55555ZZ]]2ww!||||"Q%,77777"Q%,77777sxx))**gnQ#*m44444ZZA2ww!||||"Q%,66666"Q%,6666666r#   c                    t           j                            d                              d          }t	          |t          g d          d          }t          |                                          }d|d d <   |j        dk    	                                sJ t          |          dk    sJ t	          |dg         t          dg          d          t	          |dg         t          dg          d          t	          |dg         t          d	g          d          g}t          ||          D ]\  }}t          ||           d S )
Nrk   )rl   rm   )rl   r5   rz   r~   irl   r   r5   rz   )r9   randomdefault_rngstandard_normalr   r   r   _splitr,   r   r?   zipr3   )r   r,   r   resultexpectedresexps          r!   
test_splitzTestBlock.test_split[  sH   &&q))99&AA.*C*C!LLLcjjll## qqq	
e#((*****6{{afaSk^QC-@-@qIIIfaSk^QC-@-@qIIIfaSk^QC-@-@qIII

 FH-- 	) 	)HCsC((((	) 	)r#   N)__name__
__module____qualname__r   r   markparametrizer   r   r   r   r   r   r   r&   r#   r!   r   r      s        , , , [iii 1vaSM		
 F F F
 
 
1 1 1
( ( (
( ( (T7 7 7*) ) ) ) )r#   r   c                   B   e Zd Zd Zd Zd Zej                            dddg          d             Z	d Z
d	 Zd
 Zd Zd Zd Zd Zej                            ddej        fdej        fg          d             Zej                            ddej        fdej        fdej        fg          d             Zd Zd Zej                            dg d          d             Zd Zd Zej                            dg d          d             Zd  Zd! Z d" Z!d# Z"d$ Z#ej                            dd%d&g          d'             Z$ej                            dg d(          d)             Z%d* Z&ej                            d+d,d-g d.d/g          d0             Z'd1 Z(d2 Z)d3S )4TestBlockManagerc                 h    t          d          }|j        dk    sJ t          |          dk    sJ d S )Nza,b,c: f8-1; d,e,f: f8-2rk   rz   )r%   nblocksr?   r   r'   s     r!   r   zTestBlockManager.test_attrsp  s:    344{a3xx1}}}}}}r#   c                    t          d          }|j        |j        }}t          t	          j        dg                    |d         _        t          t	          j        dg                    |d         _        d}t          ||          }t          j	        t          |          5  |                                 d d d            n# 1 swxY w Y   t          t	          j        dg                    |d         _        t          t	          j        dg                    |d         _        t          ||          }|                    d           d S )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_failurez/TestBlockManager.test_duplicate_ref_loc_failureu  sJ   _--|W^f+BHaSMM::q	+BHaSMM::q	 %64((]>555 	. 	.++---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. ,BHaSMM::q	+BHaSMM::q	64((s   %CC
C
c                 *   t          j        ||          }t          j        t          j        ||j                  t          j        ||j                             t          |d          sJ t          |d          sJ |j        rJ |j        rJ d S )Nr   _is_consolidated_known_consolidated)	r*   r   assert_frame_equalr
   	_from_mgrr   hasattrr  r	  )r   r'   r   mgr2s       r!   r   zTestBlockManager.test_pickle  s    #C33
#(33349555	
 	
 	
 t/00000t233333 ((((++++++r#   
mgr_stringza,a,a:f8za: f8; a: i8c                     t          |          }t          j        ||          }t          j        t	          j        ||j                  t	          j        ||j                             d S )Nr  )r%   r*   r   r
  r
   r  r   )r   r  r   r'   r  s        r!   test_non_unique_picklez'TestBlockManager.test_non_unique_pickle  sj    $$#C33
#(33349555	
 	
 	
 	
 	
r#   c                    t          d          }t          j        ||          }t          j        t	          j        ||j                  t	          j        ||j                             t          d          }t          j        ||          }t          j        t                      
                    ||j                  t                      
                    ||j                             d S )Na: categoryr  rj   )r%   r*   r   r
  r
   r  r   r   assert_series_equalr   _constructor_from_mgr)r   r   r'   r  smgrsmgr2s         r!   test_categorical_block_picklez.TestBlockManager.test_categorical_block_pickle  s    ''#C33
#(33349555	
 	
 	

 !,,$T955
HH**4di*@@HH**5uz*BB	
 	
 	
 	
 	
r#   c           	      0   t          t          d                    }t          j                            d                              d          }t          |                                t          t          j        dt          j	                            |j
                  }t          |f|t          t          j        d                    g          }t          j        |                    d                                          |d                    t          j        |                    d	                                          |d	                    t          j        |                    d                                          |d                    d S )
Nabcrk   )rl   rl   rl   ra   )r,   r   rf   r   r   r   r5   )r   r   r9   r   r   r   r@   r   r:   r   rf   r   r*   assert_almost_equalr  internal_values)r   colsr,   blockr'   s        r!   	test_igetzTestBlockManager.test_iget  s0   T%[[!!&&q))0088;;==$RYq%@%@%@AA
 
 

 5($bill8K8K1LMMM
sxx{{::<<fQiHHH
sxx{{::<<fQiHHH
sxx{{::<<fQiHHHHHr#   c                    t          dd          }|                    t          |j                  dt	          j        dgdz                       |                    dt	          j        dgdz                       t          j        |	                    d	          
                                t	          j        d	gdz                       t          j        |	                    d          
                                t	          j        dgdz  t          j        
                     t          j        |	                    d          
                                t	          j        dgdz                       t          j        |	                    d          
                                t	          j        dgdz  t          j        
                     d S )Nz
a,b,c: intrl   r   r[   foorl   r5   barr   ra   rk   )r%   insertr?   r   r9   r   isetr*   r+   r  r  object_r   s     r!   test_setzTestBlockManager.test_set  st   $777

3sy>>3%1(=(=>>>BHeWq[))***
#CHHQKK$?$?$A$A28QCRSGCTCTUUU
#HHQKK''))28UGaKrz+R+R+R	
 	
 	
 	#CHHQKK$?$?$A$A28QCRSGCTCTUUU
#HHQKK''))28UGaKrz+R+R+R	
 	
 	
 	
 	
r#   c                    |                     t          |j                  dt          j        t
          t                               |                    |j                            d          t          j	        dt
                               |j                            d          }|
                    |          j        t          j        k    sJ |                                }|                    |j                            d          t          j	        dt
                               |j                            d          }|
                    |          j        t          j        k    sJ |                     t          |j                  dt          j                            d                              t
                                        t$                               |j                            d          }|
                    |          j        t          j        t$                    k    sJ |                    |j                            d          t          j                            d                              t
                               |
                    |          j        t          j        k    sJ d S )Nbazra   r#  quuxrk   )r%  r?   r   r9   zerosr   r`   r&  get_locrepeatr  r-   r'  consolidater   r   r   r   rI   float64)r   r'   idxr  s       r!   test_set_change_dtypez&TestBlockManager.test_set_change_dtype  s
   

3sy>>5"(1D*A*A*ABBB""5))29UA+>+>???i&&xx}}"bj0000  		$*$$U++RYua-@-@AAAj  ''yy~~#rz1111
OOI!!!$$44Q77>>sCC	
 	
 	

 j  ((yy~~#rx}}4444		Jv&&	(=(=a(@(@(P(PQR(S(S	
 	
 	
 yy~~#rz111111r#   c                 `   |                     d          }t          |j        |j                  D ]\  }}t          j        |j        |j                   t          |j        t          j                  r |j        j	        j	        |j        j	        u sJ c|j        j
        j	        |j        j
        j	        u sJ |                                 |                     d          }t          |j        |j                  D ]\  }}|j        }|j        }t          j        ||           t          |t          j                  r|j	        }|j	        }n|j
        j	        }|j
        j	        }t          |t                    r||||usJ t          |t          j                  s||usJ ||J d S )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   zTestBlockManager.test_copy  s   XX5X!!sz2955 	O 	OKCOFM3:666#*bj11 O}).#*/AAAAA }-2cj6I6NNNNNN 	  """XX4X  sz2955 	7 	7KCJE]FOFE***&"*-- ,
,+ &-00 7%-U%=O=O=OP
33 7E)))))}6)	7 	7r#   c                 v    t          d          }|                                j        t          j        k    sJ d S )Nza: sparse-1; b: sparse-2)r%   r0   r-   r9   r0  r   s     r!   test_sparsezTestBlockManager.test_sparse  s4    344||~~#rz111111r#   c                     t          d          }t          |j                  dk    sJ t          |t                    sJ d S )Nza: sparse-1; b: sparse-2; c: f8rl   )r%   r?   r   r.   r   r   s     r!   test_sparse_mixedz"TestBlockManager.test_sparse_mixed  sE    :;;3:!#####|,,,,,,,r#   zmgr_string, dtypezc: f4; d: f2c: f4; d: f2; e: f8c                 b    t          |          }|                                j        |k    sJ d S r)   r%   r0   r-   r   r  r-   r'   s       r!   test_as_array_floatz$TestBlockManager.test_as_array_float  s3    
 $$||~~#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                 b    t          |          }|                                j        |k    sJ d S r)   rE  rF  s       r!   test_as_array_int_boolz'TestBlockManager.test_as_array_int_bool  s3     $$||~~#u,,,,,,r#   c                 b    t          d          }|                                j        dk    sJ d S )Nzh: datetime-1; g: datetime-2rc   rE  r   s     r!   test_as_array_datetimez'TestBlockManager.test_as_array_datetime(  s2    788||~~#x//////r#   c                     t          d          }|                    d          j        dk    sJ |                    d          j        dk    sJ |                                j        dk    sJ d S )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_tzz*TestBlockManager.test_as_array_datetime_tz,  sp    @AAxx{{ $@@@@@xx{{ $99999||~~#x//////r#   t)float16float32r0  r   int64c                 x   t          d          }t          j        |          }|                    |          }|                    d          j        j        |k    sJ |                    d          j        j        |k    sJ |                    d          j        j        |k    sJ t          d          }t          j        |          }|                    |d          }|                    d          j        j        |k    sJ |                    d          j        j        |k    sJ |                    d	          j        j        |k    sJ |                    d
          j        j        |k    sJ |                    d          j        j        t          j        k    sJ |                    d          j        j        t          j        k    sJ |t          j        k    r1|                    d          j        j        t          j        k    sJ d S |                    d          j        j        |k    sJ d S )NrC  r   r5   rk   z6a,b: object; c: bool; d: datetime; e: f4; f: f2; g: f8ignore)errorsrm   ry   rz   rl   )	r%   r9   r-   r   r  typer'  rQ  
datetime64)r   rN  r'   tmgrs       r!   test_astypezTestBlockManager.test_astype2  s    .//HQKKzz!}}yy||!&!++++yy||!&!++++yy||!&!++++ QRRHQKKzz!Hz--yy||!&!++++yy||!&!++++yy||!&!++++yy||!&!++++yy||!&"*4444yy||!&"*4444==99Q<<%*bm;;;;;;99Q<<%*a//////r#   c                 $   d }t          d          }|                                } |||           t          d          }|                    dt          j        dgt
          z  t          j                             |                    dt          j        dgt
          z  t          j                             |                    d	t          j        d
gt
          z  t          j                             |                                }|rdnt          j        }|                    d          j        |k    sJ |                    d          j        |k    sJ |                    d	          j        |k    sJ |                    d          j        t          j	        k    sJ |                    d          j        t          j
        k    sJ t          d          }|                    dt          j        dgt
          z  t          j                             |                    dt          j        dgt
          z  t          j                             |                    d	t          j        d
gt
          z  t          j                             |                                }|                    d          j        |k    sJ |                    d          j        |k    sJ |                    d	          j        |k    sJ |                    d          j        t          j        k    sJ |                    d          j        t          j        k    sJ |                    d          j        j        sJ t          j                    |                    d          j        t          j	        k    sJ |                    d          j        t          j
        k    sJ |                    d          j        t          j        k    sJ d S )Nc                 r   t          | j                  }t          |j                  }t          |          t          |          k    sJ |D ]3}d}|D ](}|j        |j        k                                    rd} n)|sJ 4|D ]3}d}|D ](}|j        |j        k                                    rd} n)|sJ 4dS )z4compare the blocks, numeric compare ==, object don'tFTN)setr   r?   r,   r   )old_mgrnew_mgr
old_blocks
new_blocksr_   foundr   obs           r!   _comparez/TestBlockManager.test_convert.<locals>._compareO  s   W^,,JW^,,Jz??c*oo5555    $  BBI-2244  $ u  $  BBI-2244  $ u r#   zf: i8; g: f8za,b,foo: object; f: i8; g: f8r   1ra   r5   z2.rk   zfoo.strrl   rm   zEa,b,foo: object; f: i4; bool: bool; dt: datetime; i: i8; g: f8; h: f2ry   rz   r      )r%   convertr&  r9   r   r   r'  r  r-   rQ  r0  r   r   rU  rV  rO  )r   using_infer_stringrb  r'   r]  r-   s         r!   test_convertzTestBlockManager.test_convertN  sO   	 	 	0 ((++--g 899BHcUQYbj999:::BHdVaZrz:::;;;BHfX\<<<===++--+;||A$----||A$----||A$----||A$0000||A$
2222S
 
 	BHcUQYbj999:::BHdVaZrz:::;;;BHfX\<<<===++--||A$----||A$----||A$----||A$0000||A$0000||A$)882=88)||A$0000||A$
2222||A$
222222r#   c                     dD ]g}t          d|           }|                                j        |k    sJ t          d| d|           }|                                j        |k    sJ hd S )N)rF   rJ   rV   r`   rS   rc   ri   za: z; b: rE  )r   r-   r'   s      r!   test_interleavez TestBlockManager.test_interleave  s    R 	1 	1E]5]]++C<<>>'500006566u6677C<<>>'500000		1 	1r#   ))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                    t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d	          }|                                j        dk    sJ t          d
          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ t          d          }|                                j        dk    sJ d S )Nr  rJ   rk  rV   rl  rm  rF   rn  ro  rp  rq  rr  rS   rs  rt  ru  rv  rw  rx  ry  rE  rF  s       r!   test_interleave_dtypez&TestBlockManager.test_interleave_dtype  s   2 ''||~~#t++++455||~~#x////((||~~#x//// !!||~~#t++++((||~~#t++++((||~~#t++++233||~~#x////)**||~~#x////&&||~~#y0000-..||~~#t++++122||~~#x////-..||~~#x////+,,||~~#x////-..||~~#x////+,,||~~#x/////00||~~#x//////r#   c                    |                     |j                            d          t          j                            d                              t                               |                     |j                            d          t          j                            d                              t                               |                     |j                            d          t          j                            d                              t                               |                     |j                            d          t          j                            d                              t                               |                     |j                            d          t          j                            d                              t                               |                                }|j	        dk    sJ |                                
                                }|j	        dk    sJ t          |j        d	         j        t                    sJ t          j        |j        d	         j        j        t          j        t'          |j                  t          j        
                     d S )Nfrk   r[   r_   ghrm   r5   r   ra   )r&  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_issuesz1TestBlockManager.test_consolidate_ordering_issues  s   ""3'')>)>q)A)A)Q)QRS)T)TUUU""3'')>)>q)A)A)Q)QRS)T)TUUU""3'')>)>q)A)A)Q)QRS)T)TUUU""3'')>)>q)A)A)Q)QRS)T)TUUU""3'')>)>q)A)A)Q)QRS)T)TUUU   |q      1133|q    $+a.1>BBBBB
#KN#,biDJrw.W.W.W	
 	
 	
 	
 	
r#   c                    t          d          }|                    g dd          }|                                rJ t          j        |j        t          g d                     t          j        |                    d          	                                |                    d          	                                           t          j        |                    d          	                                |                    d          	                                           t          j        |                    d          	                                |                    d          	                                           t          j        |                    d          	                                |                    d          	                                           d S )	Nz3a: f8; b: i8; c: f8; d: i8; e: f8; f: bool; g: f8-2)r~  rp   ro   r[   r   axisrz   rk   r5   rl   )
r%   reindex_axisis_consolidatedr*   assert_index_equalr   r   r  r  r  )r   r'   	reindexeds      r!   test_reindex_itemsz#TestBlockManager.test_reindex_items  s   NOO$$%9%9%9$BB	,,.....
iou5I5I5I/J/JKKK
HHQKK''))9>>!+<+<+L+L+N+N	
 	
 	
 	HHQKK''))9>>!+<+<+L+L+N+N	
 	
 	
 	HHQKK''))9>>!+<+<+L+L+N+N	
 	
 	
 	HHQKK''))9>>!+<+<+L+L+N+N	
 	
 	
 	
 	
r#   c                    t          dd          }|                    dt          j        g dt          j                             |                                }t          j        |j        t          g d                     t          j
        |                    |j                            d                                                    |                    |j                            d                                                               |                    |j                            d          t          j        g d	          d
           t          j
        |                    |j                            d                                                    t          j        g d                     d S )N[int: int; float: float; complex: complex;str: object; bool: bool; obj: object; dt: datetimer!  r"  ry   r5   rk   rl   ra   )rI   rE   rS   r`   rE   )      Y@g      i@g     r@Tinplace)      ?r  r  )r%   r&  r9   r   r'  r  r*   r  r   r   r  r  r-  r  )r   r'   numerics      r!   test_get_numeric_dataz&TestBlockManager.test_get_numeric_data  s   A
 
 

 	BHYYYbj999:::&&((
gmU3V3V3V-W-WXXX
HHSY&&w//00@@BBLL..w7788HHJJ	
 	
 	
 	M!!'**H***++ 	 	
 	
 	

 	HHSY&&w//00@@BBH___%%	
 	
 	
 	
 	
r#   c                 N   t          dd          }|                    dt          j        g dt          j                             |                                }t          j        |j        t          dg                     t          j
        |                    |j                            d                                                    |                    |j                            d                                                               |                    dt          j        g d          d	
           t          j        |                    |j                            d                                                    t          j        g d                     d S )Nr  r!  r"  rz   )TFTra   r`   r   Tr  )TTT)r%   r&  r9   r   r'  get_bool_datar*   r  r   r   r  r  r-  r  r+   )r   r'   boolss      r!   test_get_bool_dataz#TestBlockManager.test_get_bool_data  so   A
 
 

 	BH000
CCCDDD!!##
ek5&??;;;
HHSY&&v..//??AAJJu{**62233CCEE	
 	
 	

 	

1bh22233T
BBB
#HHSY&&v..//??AAH'''((	
 	
 	
 	
 	
r#   c                 >    t          t          d                     d S )Nu   b,א: object)reprr%   )r   s    r!   test_unicode_repr_doesnt_raisez/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                     t          |          }t          |j        d d d         |j                  }|                    |          sJ d S )Nrs   )r%   r   r   r   equals)r   r  bm1bm2s       r!   test_equalszTestBlockManager.test_equals%  sJ    
 $$3:ddd+SX6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                     t          |          }t          j        |j                  }|D ]R}t	          t          |          |j                  }|                    |          sJ |                    |          sJ Sd S r)   )r%   	itertoolspermutationsr   r   r   r   r  )r   r  bmblock_permsbm_permbm_thiss         r!   (test_equals_block_order_different_dtypesz9TestBlockManager.test_equals_block_order_different_dtypes.  s     
##,RY77" 	& 	&G"5>>27;;G99W%%%%%>>"%%%%%%	& 	&r#   c                     t          dd          }|                                                                g dk    sJ d S )NrF   ry   )r   )rx   r         @g      @g      @)r   external_valuestolistr   s     r!   test_single_mgr_ctorz%TestBlockManager.test_single_mgr_ctorA  sJ    q111""$$++--1J1J1JJJJJJJr#   valuer5   Truer  g      @c                     t          d          }dt          |          j         d}t          j        t
          |          5  |                    dgdg|           d d d            d S # 1 swxY w Y   d S )Nr  z9For argument "inplace" expected type bool, received type .r   r5   rk   r  )r%   rU  r   r   r   r   replace_list)r   r  r  r  s       r!   test_validate_bool_argsz(TestBlockManager.test_validate_bool_argsE  s    3445!%[[15 5 5 	 ]:S111 	6 	6aS1#u555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   A++A/2A/c                    t          d          }|                    dt          j        dg                     t	          j        |j        t          j        g dt          rdnd                     t	          j        |j        t          j        g dt          rdnd                     t          |j
                  dk    sJ d S )	Na,b,c: i8; d: f8r   r   r   r5   r   rQ  r   ra   )r   r   r   r5   rk   )r%   _iset_split_blockr9   r   r*   r+   blklocsr   blknosr?   r   r   r  s     r!   test_iset_split_blockz&TestBlockManager.test_iset_split_blockP  s    *++
Q!...
#J5QWW'RRR	
 	
 	
 	#Irxt4PGGQQQ	
 	
 	
 29~~""""""r#   c                    t          d          }|                    dt          j        dg          t          j        t	          t          d                    g                     t          j        |j        t          j        g dt          rdnd                     t          j        |j
        t          j        g dt          rdnd                     t          |j                  d	k    sJ d S )
Nr  r   rC   r  rQ  r   ra   )r   rk   rk   r5   rl   )r%   r  r9   r   r   ranger*   r+   r  r   r  r?   r   r  s     r!   test_iset_split_block_valuesz-TestBlockManager.test_iset_split_block_values\  s    *++
Q!rxeBii8I/J/JKKK
#J5QWW'RRR	
 	
 	
 	#Irxt4PGGQQQ	
 	
 	
 29~~""""""r#   N)*r   r   r   r   r  r   r   r   r   r  r  r  r(  r2  r   r@  rB  r9   rP  r0  rG  r   rQ  r   rI  rK  rM  rX  rh  rj  r{  r  r  r  r  r  r  r  r  r  r  r  r&   r#   r!   r   r   o  sm         
  *, , , [\J+GHH
 
 IH

 
 
I I I
 
 
2 2 22#7 #7 #7J2 2 2- - -
 [
"*	%(=rz'JK - -	 - [#RX.4bh?"BH-	
 - - -0 0 00 0 0 [S"U"U"UVV0 0 WV0693 93 93v1 1 1 [	
 	
 	
 .#0 #0/ .#0J
 
 
"
 
 
*
 
 
4
 
 
*- - - [13MN    [	
 	
 	
	 	& &	 	&K K K [Wq&)))S&ABB6 6 CB6
# 
# 
#
# 
# 
# 
# 
#r#   r   c                 r    | j         dk    r|                                 S |                                 j        S )Nr5   )rf   r  r0   T)r'   s    r!   	_as_arrayr  i  s0    
x1}}""$$$<<>>r#   c            	       j   e Zd Z ede           ede           edef           edef           edef           edef          gZej        	                    de          d	             Z
ej        	                    de          d
             Zej        	                    de          ej        	                    ddej        dg          d                         Zej        	                    de          ej        	                    ddej        dg          d                         ZdS )TestIndexingrF   rJ   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           
      H   d }|j         dk    sJ |j                     t          |j                   D ]n} |||t          d                       |||t          d                      |||t          d                      |||t          dd                      |||t          ddd                     |j         dk     r |||t          j        |j        |         t          j        	                      |||t          j        |j        |         t          j        	                     |j        |         dk    r^ |||t          j        |j        |                   dz  dk                |||t          j	        g d
t          j        	                     pd S )Nc           	         t          |           }t          |t          j                  r| j        |         }t          |          r{t          |          rlt          |          t          |          k    rLt          j        |t          j        t          |          t          |          z
  t                    g          }t          |t                    r| 
                    ||          }n`| j        dk    rF|dk    r@t          |t          j                  r&|j        t          k    r|                     |          }nt          |          t          d           f|z  |fz   }t          j        ||         t          |          d           t          j        | j        |         |         |j        |                    d S )Nra   r  r5   r   Fcheck_dtype)r  r.   r9   r5  r   r?   concatenater,  r`   r   	get_slicerf   r-   get_rows_with_mask	TypeErrorr*   r+   r  )r'   r  slobjr   axsliced	mat_slobjs          r!   assert_slice_okz4TestIndexing.test_get_slice.<locals>.assert_slice_ok  s   C..C %,, Xd^r77 s5zz c%jjCGG.C.CNR3u::)=T J J JK E %'' 'u488AAIIubj11 K4''//66  &&&t-8I'I	& 1 1u    !#(4."7T9JKKKKKr#   rk   rl   d   r5   rm   r   ra   )TTF)
rf   r  r   r9   r   r7   r   r,  r:   r   )r   r'   r  r  s       r!   test_get_slicezTestIndexing.test_get_slice  s   	L 	L 	L@ x1}}}ch}}}// 	 	BOCU4[[111OCU1XX...OCU3ZZ000OCU1a[[111OCU1a__555x!||  R2bh)O)O)OPPPR#)B-rx)P)P)PQQQ9R=A%%#OCRYsy}-E-E-IQ-NOOO#OR*=*=*=RX!N!N!N  #	 	r#   c                 n   d }t          |j                  D ]} |||t          j        g t          j                              |||t          j        g dt          j                              |||t          j        t          t          |j        |                             t          j                             |j        |         dk    r\ |||t          j        g dt          j                              |||t          j        g dt          j                             d S )Nc                 <   t          |           }|                     ||          }t          j        t	          j        |||          t          |          d           t          j        | j        |                             |          |j        |                    d S )NFr  )r  taker*   r+   r9   r  r   )r'   r  indexerr   takens        r!   assert_take_okz.TestIndexing.test_take.<locals>.assert_take_ok  s    C..CHHWd++E'Wd++Yu-=-=5    !#(4."5"5g">">
4@PQQQQQr#   ra   )r  r   r   r   rl   r   r5   rk   rs   r  )r  rf   r9   r   r   r   r7   )r   r'   r  r  s       r!   	test_takezTestIndexing.test_take  sB   	R 	R 	R // 
	W 
	WBN3BHRrw,G,G,GHHHHN3BHYYYbg,N,N,NOOOONR$uSYr]/C/C*D*DBG!T!T!T    y}!!sB"'0R0R0RSSSSsBRW0U0U0UVVVV
	W 
	Wr#   r|   Nr  c           
      j   d }t          |j                  D ]} |||t          g           |            ||||j        |         |            ||||j        |         g d         |            |||t          g d          |            |||t          d|j        |         d         dg          |           |j        |         dk    rd ||||j        |         d d         |            ||||j        |         dd d	         |            ||||j        |         g d
         |           d S )Nc                 H   t          |           }| j        |                             |          }|                     |||          }t	          j        t          j        ||||          t          |          d           t	          j        |j        |         |           d S Nr{   Fr  )	r  r   get_indexer_forr  r*   r+   algostake_ndr  )r'   r  
new_labelsr|   r   r  r  s          r!   assert_reindex_axis_is_okzATestIndexing.test_reindex_axis.<locals>.assert_reindex_axis_is_ok  s    C..Chtn44Z@@G((Tj(QQI'c7DZHHH)$$!   
 !)."6
CCCCCr#   r  r#  r$  r*  r#  r   r*  rl   r  rs   )r   r5   rk   r   r5   rk   )r  rf   r   r   r7   )r   r|   r'   r  r  s        r!   test_reindex_axiszTestIndexing.test_reindex_axis  s   
	D 
	D 
	D // 	 	B%%c2uRyy*EEE%%c2sx|ZHHH%%c2sx|III/F
SSS%%c2u5J5J5J/K/KZXXX%%Rsx|A>??   y}!!))#r38B<3DjQQQ))#r38B<B3GTTT))SXb\*<*<*<=z  	 	r#   c           
         d }t          |j                  D ]'} |||t          g           t          j        g t          j                  |            ||||j        |         t          j        |j        |                   |            |||t          dg|j        |         z            t          j        |j        |                   |            ||||j        |         d d d         t          j        |j        |                   |            ||||j        |         t          j        |j        |                   d d d         |            |||t          g d          t          j        g d          |            |||t          g d          t          j        g d          |            |||t          d|j        |         d         d	g          t          j        g d
          |           |j        |         dk    r2 |||t          g d          t          j        g d          |           )d S )Nc                    t          |           }t          j        ||||          }|                     ||||          }t	          j        |t          |          d           t	          j        |j        |         |           d S r  )r  r  r  reindex_indexerr*   r+   r  r   )r'   r  r  r  r|   r   reindexed_matr  s           r!   assert_reindex_indexer_is_okzGTestIndexing.test_reindex_indexer.<locals>.assert_reindex_indexer_is_ok  s    C..C!M#wTTTM++GTj ,  I 'y33    !)."6
CCCCCr#   ra   r#  rs   r  r  )rs   r   rs   r   r*  )rs   rs   rs   rl   r  )	r  rf   r   r9   r   r   r   r:   r7   )r   r|   r'   r  r  s        r!   test_reindex_indexerz!TestIndexing.test_reindex_indexer  s   		D 		D 		D // )	 )	B((RrBHRrw$?$?$?   )(R"ry2'?'?   )(ug	"-..	#)B-((   )(R"ddd+RYsy}-E-Ez   )(R"ry2'?'?"'Ez   )(R44455rx			7J7JJ   )(R44455rx7L7Lj   )(uchrl1ou566&&   y}!!,,///00HYYY''  G)	 )	r#   )r   r   r   r   r   r%   MANAGERSr   r   r   r  r  r9   r   r  r  r&   r#   r!   r  r  o  s        	$""$""
$!666
$!666
2tDDD
.A4@@@H [UH--5 5 .-5n [UH--W W .-W* [UH--[\D"&%+@AA  BA .-: [UH--[\D"&%+@AA5 5 BA .-5 5 5r#   r  c                      e Zd Zej                            d edd          df eddd          df eddd          df eddd          df eddd          dfg          d             Zej                            d	 eddd           eddd          g          d
             Zd Z	ej                            d	 edd           edd           eddd           eddd           edd           edd           edd           eddd           eddd           eddd          g
          d             Z
ej                            d	 edd           edd           edd           eddd           eddd          g          d             Zej                            ddg eddd          fdg eddd          fg d eddd          fg d eddd          fddg eddd          fddg eddd          fg          d             Zej                            dg dgg ddgg dg dg dg dg          d              Zej                            d edd          g df edd          g f edd          g fg          d!             Zej                            d" edd          g df edd          g f edd          g f eddd          g d#fg          d$             Zd% Zej                            d& edd          dg f edd          dg d'f eddd          dg d#fg d(dg d(f edd          dg f edd          dg d)f eddd          dg d*fg d(dg d+f edd          dg f edd          dg dfg d(dg d,fg          d-             Zej                            d. edd          g d(g          d/             ZdS )0TestBlockPlacementzslc, expectedr   rm   rk   rl   r5   rs   c                 J    t          t          |                    |k    sJ d S r)   )r?   r   r   slcr   s      r!   test_slice_lenz!TestBlockPlacement.test_slice_len*  s+     >#&&''8333333r#   r  c                     d}t          j        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Nzslice step cannot be zeror   r   r   r   r   r   r  r  s      r!   test_zero_step_raisesz(TestBlockPlacement.test_zero_step_raises7  s    )]:S111 	  	 3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	    ;??c                 ~    t          ddd          }t          |          }|j        t          dd d          k    sJ d S )Nrl   rs   r  )r   r   r  )r   r  bps      r!   !test_slice_canonize_negative_stopz4TestBlockPlacement.test_slice_canonize_negative_stop=  sE    Ar2C  zU1dB////////r#   NrC   c                     d}t          j        t          |          5  t          |           d d d            d S # 1 swxY w Y   d S )Nzunbounded slicer   r  r  s      r!   test_unbounded_slice_raisesz.TestBlockPlacement.test_unbounded_slice_raisesD  s    $  ]:S111 	  	 3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 r  r  c                 2    t          |          j        rJ d S r)   r   is_slice_like)r   r  s     r!   test_not_slice_like_slicesz-TestBlockPlacement.test_not_slice_like_slicesZ  s!     "#&&444444r#   zarr, slce   r  )r   ry   rC      ry      c                 :    t          |          j        |k    sJ d S r)   )r   as_slice)r   rA   r  s      r!   test_array_to_slice_conversionz1TestBlockPlacement.test_array_to_slice_conversiong  s&     c""+s222222r#   rA   r  )rs   r   r5   rk   )r  r   rk   rm   )r5   r   rs   )r5   r5   r5   c                 2    t          |          j        rJ d S r)   r  )r   rA   s     r!   test_not_slice_like_arraysz-TestBlockPlacement.test_not_slice_like_arraysu  s!     "#&&444444r#   c                 J    t          t          |                    |k    sJ d S r)   )r   r   r  s      r!   test_slice_iterz"TestBlockPlacement.test_slice_iter  s+    
 N3''((H444444r#   zslc, arr)rl   rk   r5   c                     t          j        t          |          j        t	          j        |t          j                             d S )Nra   )r*   r+   r   r0   r9   asarrayr   )r   r  rA   s      r!   test_slice_to_array_conversionz1TestBlockPlacement.test_slice_to_array_conversion  sD     	#3("*S*H*H*H	
 	
 	
 	
 	
r#   c           	         t          t          dd                    }|                    d          j        t          ddd          k    sJ |                    t	          j        d                    j        t          ddd          k    sJ t          |                    t	          j        ddd                              g dk    sJ d S )	Nr   ry   r5   rz   rC   rk   rs   )ry   ry   ry   ry   ry   )r   r   addr  r9   r:   r   )r   bpls     r!   test_blockplacement_addz*TestBlockPlacement.test_blockplacement_add  s    U1a[[))wwqzz"eAq!nn4444wwry||$$-q"a@@@@CGGBIaB//0011___DDDDDDr#   zval, inc, expectedr  )r5   rk   rm   )         )r  r  r  )r  r     )r   r5   rl   c                 p    t          t          |                              |                    |k    sJ d S r)   )r   r   r  )r   valincr   s       r!   test_blockplacement_add_intz.TestBlockPlacement.test_blockplacement_add_int  s9    " N3''++C0011X======r#   r  c                     d}t          j        t          |          5  t          |                              d           d d d            d S # 1 swxY w Y   d S )Nziadd causes length changer   r
  )r   r   r   r   r  )r   r  r  s      r!   "test_blockplacement_add_int_raisesz5TestBlockPlacement.test_blockplacement_add_int_raises  s    )]:S111 	) 	)3##C(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   #AAA)r   r   r   r   r   r   r   r  r  r  r  r  r	  r  r  r  r  r  r  r&   r#   r!   r  r  )  s       [U1a[[!U1a^^QU1a^^QU1a^^QU1a__a 	
	 	4 4	 	4 [UUU1a^^UU1a^^$DEE    FE 
0 0 0 [E$E"dOOE$b!!E$B E"dOOE$OOE"bMME"dBE$BE"b"	
 "   # " 
 [E!QKKE#qMME#sOOE#sBE!S"	
	 	5 5	 	5 [S%%1a..!UEE#sA&&'YYaA'ZZq"a)XuuQS))*VUU1a__%	

 
3 3
 
3 [DLLEMMMMJJII		
 5 5 5 [
%1++yyy	!EE!QKK#4uuQ{{B6GH 5 5	 5 [U1a[[)))$U1a[["U1a[["U1a__iii(		
 
 
 

E E E [U1a[[!R U1a[[!YYY'U1a__a+YY999%U1a[["b!U1a[["lll+U1a__b,,,/YYLLL)U1a[["b!U1a[["iii(YYIII&	
  > >!  > [UUU1a[[)))$<==) ) >=) ) )r#   r  c            
       n   e Zd Z ej        d d d d d d d d g	          d
             Zd Zej                            de	j
        e	j        e	j        g          d             Zej                            de	j
        e	j        e	j        g          d             Zd Zd Zd ZdefdZdedefdZdS )TestCanHoldElementc                     | S r)   r&   r6   s    r!   r   zTestCanHoldElement.<lambda>  s    a r#   c                 *    |                                  S r)   )	to_seriesr#  s    r!   r   zTestCanHoldElement.<lambda>  s    akkmm r#   c                     | j         S r)   )r   r#  s    r!   r   zTestCanHoldElement.<lambda>  s    ag r#   c                      t          |           S r)   )r   r#  s    r!   r   zTestCanHoldElement.<lambda>  s    d1gg r#   c                 6    |                      t                    S r)   )r   rV   r#  s    r!   r   zTestCanHoldElement.<lambda>  s    ahhv&& r#   c                 *    t          j        |           S r)   )r9   r  r#  s    r!   r   zTestCanHoldElement.<lambda>  s    bjmm r#   c                     | d         S r   r&   r#  s    r!   r   zTestCanHoldElement.<lambda>  s
    ad r#   c                     | d d         S r   r&   r#  s    r!   r   zTestCanHoldElement.<lambda>  s    ae r#   r   c                     |j         S )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!   elementzTestCanHoldElement.element  s    " }r#   c                 b   t          ddg          }|                    g           sJ t          j        |j                                                  }|                    d           sJ d |d<   |d         t          j        u sJ t          j        d          t          ddd          g}|D ]}|                    |          sJ ||d<   t          ddd          }|                    |          rJ d}t          j        t          |          5  ||d<   d d d            d S # 1 swxY w Y   d S )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   rV  r   r   r   r   r  )r   r  rA   valsr  r  s         r!   $test_datetime_block_can_hold_elementz7TestCanHoldElement.test_datetime_block_can_hold_element  s   Z!--&&r***** hu|))++,, &&t,,,,,A1v l++XdB-C-CD 	 	C**3/////CFF4R  **3/////5 	 ]9C000 	 	CF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   D$$D(+D(r-   c                     t          j        g d|          }t          j        |          }t	          |j        t          dg          d          }|                    g           sJ d S )N)r5   rl   rm   ra   r5   rk   re   )r9   r   r   from_breaksr   r   r   r/  )r   r-   r-  rA   iir   s         r!   (test_interval_can_hold_element_emptylistz;TestCanHoldElement.test_interval_can_hold_element_emptylist  sj    hyyy...&s++.!"5"5A>>>$$R(((((((r#   c                    t          j        g d|          }t          j        |          }t	          |j        t          dg          d          } ||          }|                     ||d           |                    |          sJ t          j        |d d         d	          } ||          }t          j
        t          d
          5  |                     ||d           d d d            n# 1 swxY w Y   |                    |          rJ t          j        t          d          t          d          t          d          g          } ||          }t          j
        t          d
          5  |                     ||d           d d d            n# 1 swxY w Y   |                    |          rJ t          j        t          d          t          d          t          d          g          }	 ||	          }t          j
        t          d
          5  |                     ||d           d d d            n# 1 swxY w Y   |                    |          rJ d S )N)r5   rl   rm   	   ra   r5   rk   re   Trs   neither)closedInvalid valuer   Frl   rm   )r9   r   r   r5  r   r   r   check_series_setitemr/  r   r   r  r   r   )
r   r-   r-  rA   r6  r   elemii2ii3ii4s
             r!   test_interval_can_hold_elementz1TestCanHoldElement.test_interval_can_hold_element  s   h|||5111&s++.!"5"5A>>>wr{{!!$D111$$T***** 'CRCCCCws||]9O<<< 	7 	7%%dB666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7((.....'1y||Yq\\(RSSws||]9O<<< 	7 	7%%dB666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7((.....'1y||Yq\\(RSSws||]9O<<< 	7 	7%%dB666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7((.......s6   C33C7:C79FF!$F!#IIIc                     t          ddd          }t          |j                            dd          t	          dg          d          }|                    g           sJ d S )N2016rl   Yperiodsfreqr5   rk   re   )r   r   r   r   r   r/  )r   pir   s      r!   &test_period_can_hold_element_emptylistz9TestCanHoldElement.test_period_can_hold_element_emptylist  sf    &!#666((A..s0C0C!LLL$$R(((((((r#   c                 8   t          ddd          } ||          }|                     ||d           |                    d          d d         } ||          }t          j        t
          d	          5  |                     ||d
           d d d            n# 1 swxY w Y   |                    d          d d         } ||          }t          j        t
          d	          5  |                     ||d
           d d d            d S # 1 swxY w Y   d S )NrD  rl   rE  rF  TDrs   r<  r   Fru   )r   r=  asfreqr   r   r  to_timestamp)r   r-  rI  r>  pi2dtis         r!   test_period_can_hold_elementz/TestCanHoldElement.test_period_can_hold_element  s   &!#666wr{{!!$D111 iinnSbS!ws||]9O<<< 	7 	7%%dB666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 ooc""3B3'ws||]9O<<< 	7 	7%%dB666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s$   8BB #B *DDDc                 8   t          ddd          }t          |j                            dd          t	          t          d                    d          }t          |ft          t          j	        d                    t          dg          g	          }|
                    t          g d
          d          }t          j        ||j                  }t          |d         |d         |d         ggg d
dg          }t          j        ||           d S )N2020ry   rE  rF  r5   rk   re   ro   r  r   r   r  r  rm   )columnsindex)r   r   r   r   r   r   r   r   r9   r:   r  r
   r  r   r*   r
  )r   rI  r   r'   r  r   r   s          r!   test_period_reindex_axisz+TestCanHoldElement.test_period_reindex_axis*  s    &!#666((A..uQxx0H0HqQQQ3&bill0C0CUC5\\/RSSS$$U999%5%5A$>>	$YY^DDDr!ubeRU34iiiPSuUUU
fh/////r#   r  c                     |j         j        d         }|r|                    |          sJ d S |                    |          rJ d S r   )r   r   r/  )r   objr>  r  r   s        r!   check_can_hold_elementz)TestCanHoldElement.check_can_hold_element4  sX    hoa  	3((.......,,T2222222r#   rU  c                    |j                                         }t          |d          }|                     |||           t	          |          r||d<   n||d t          |          <   |r|j        |u sJ d S |j        t          k    sJ d S )NF)r@   r   )	r   r@   r   rY  r   r?   _valuesr-   rV   )r   r>  rU  r  rA   sers         r!   r=  z'TestCanHoldElement.check_series_setitem;  s    k  Su%%%##Cw777T?? 	$CFF#C#d)) 	';#%%%%%%9&&&&&&r#   N)r   r   r   r   fixturer-  r3  r   r   r9   rQ  uint64r0  r7  rB  rJ  rQ  rV  r`   rY  r   r=  r&   r#   r!   r!  r!    sf       V^K##&&##NO	
      : [WrxBJ&GHH) ) IH) [WrxBJ&GHH/ / IH/:) ) )7 7 7$0 0 03 3 3 3 3' ' ' ' ' ' ' 'r#   r!  c                       e Zd Zd ZdS )TestShouldStorec                 z   t          g d          }t          |          }|j        j        d         }|                    |          sJ |                    |d d                   sJ |                    |                                          rJ |                    t          j        |                    rJ d S )N)rZ   BCr   rs   )r	   r
   r   r   should_store
as_orderedr9   r  )r   catr   r   s       r!   test_should_store_categoricalz-TestShouldStore.test_should_store_categoricalM  s    ///**s^^gnQ $$$$$CRC))))) ##CNN$4$455555 ##BJsOO4444444r#   N)r   r   r   rg  r&   r#   r!   r`  r`  L  s#        5 5 5 5 5r#   r`  c                  d   t          j        ddg          } t          t          d                    }d}d}t	          j        t          |          5  t          j        t          |          5  t          | |d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr  r  rk   z:Wrong number of dimensions. values.ndim != ndim \[1 != 2\]make_block is deprecatedr   re   )r9   r   r   r   r   r   r   r*   assert_produces_warningr   r   )r,   r   r  depr_msgs       r!   test_validate_ndimrl  ]  s+   XsCj!!FuQxx((I
GC)H	z	-	-	- 2 2'hGGG 	2 	2vyq1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s6   B%.BB%B	B%B	B%%B),B)c                  J   t          g d          } t          g d                              |           }t          t          g d                                        |           }|j        j        d         j        j        |j        j        d         j        j        k    sJ d S )N)r   r5   rk   rl   rm   r  r   )r   r   reindexr	   r   r   r/   r  )r1  ro   r_   s      r!   test_block_shapero  h  s    

 
 Cyyy!!#&&A{999%%&&..s33A6=$,a0@0I0QQQQQQQr#   c                    t           j                            t          j        ddg                    }d}| t
          u rt          nd }t          j        ||          5   | |t          t          t          |                              |j                  }d d d            n# 1 swxY w Y   |j        j        dv sJ | t
          u r|j        du sJ t          j        ||          5   | |t          t          |                    |j        |j                  }d d d            n# 1 swxY w Y   |j        j        dv sJ |j        du sJ t          j        ||          5   | |                                t          t          |                    |j        |j                  }d d d            n# 1 swxY w Y   |j        j        dv sJ |j        du sJ d S d S )	Nr5   rk   ri  r   re   )r]   uF)r-   rf   )r0  arraysNumpyExtensionArrayr9   r   r   DeprecationWarningr*   rj  r   r   r?   rf   r-   kindis_extensionto_numpy)r"   rA   rk  warnr   s        r!   test_make_block_no_pandas_arrayry  p  s   
)
'
'!Q(8(8
9
9C)H!,
!:!:D 
	#D	9	9	9 R RS.s3xx"A"AQQQR R R R R R R R R R R R R R R<
****j  "e++++ 'H=== 	W 	W [eCHHooSYSXVVVF	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W 	W| J...."e++++ 'H=== 	 	 [c#hhsysx  F	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 | J...."e++++# ! " ,+s7   ;B%%B),B)+4D++D/2D/'AF99F= F=r)   )Ar   r   r  r   numpyr9   r   pandas._libs.internalsr   pandas.compatr   pandas.errorsr   pandas.core.dtypes.commonr   pandasr0  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`  rl  ro  ry  r&   r#   r!   <module>r     s#              				      1 1 1 1 1 1       ( ( ( ( ( ( / / / / / /    
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
       & & & & & & & & &         
         
          	:.///  0/   Q Q Q    15) V? V? V? V?r   < < < <~ , , ,r) r) r) r) r) r) r) r)jw# w# w# w# w# w# w# w#t  w w w w w w w wtN) N) N) N) N) N) N) N)bO' O' O' O' O' O' O' O'd5 5 5 5 5 5 5 5"2 2 2R R R, , , , ,r#   