a
    +ñ»jçÁ  ã                   @   sÞ  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  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   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/Z0ej1e.e*gd
�dd„ ƒZ2ej1dd„ ƒZ3dd„ Z4dd„ Z5dZ6dd e.fdd„Z7d0dd„Z8d1dd„Z9ej1dd„ ƒZ:G dd„ dƒZ;G dd„ dƒZ<d d!„ Z=G d"d#„ d#ƒZ>G d$d%„ d%ƒZ?G d&d'„ d'ƒZ@G d(d)„ d)ƒZAd*d+„ ZBd,d-„ ZCd.d/„ ZDdS )2é    )ÚdateÚdatetimeN)ÚBlockPlacement)ÚIS64)Ú	is_scalar)	ÚCategoricalÚ	DataFrameÚDatetimeIndexÚIndexÚIntervalIndexÚSeriesÚ	TimedeltaÚ	TimestampÚperiod_range)ÚDatetimeArrayÚSparseArrayÚTimedeltaArray)ÚBlockManagerÚSingleBlockManagerÚ
make_block)Úensure_block_shapeÚmaybe_coerce_valuesÚ	new_block©Úparamsc                 C   s   | j S )zS
    Fixture to test both the internal new_block and pseudo-public make_block.
    ©Úparam)Úrequest© r   úKE:\soccer\ml_env\Lib\site-packages\pandas/tests/internals/test_internals.pyÚblock_maker4   s    r    c                   C   s   t dƒS )Nz‰a: f8; b: object; c: f8; d: object; e: f8;f: bool; g: i8; h: complex; i: datetime-1; j: datetime-2;k: M8[ns, US/Eastern]; l: M8[ns, CET];)Ú
create_mgrr   r   r   r   Úmgr<   s    ÿr"   c                 C   sX   t  | j|j¡ | j|jks J ‚t| jtƒs0J ‚t|jtƒs@J ‚t  | jj|jj¡ d S ©N)ÚtmÚassert_numpy_array_equalÚvaluesÚdtypeÚ
isinstanceÚmgr_locsr   Úas_array)ÚleftÚrightr   r   r   Úassert_block_equalE   s
    r-   c                 C   s:   t  | d ¡}t jjj|| |jfdt| ƒd   d� ¡ S )Nr   )r   é   )ÚxÚshapeÚstrides)ÚnpÚarangeÚlibZstride_tricksZ
as_stridedÚitemsizeÚlenÚcopy)r0   Úarrr   r   r   Úget_numeric_matM   s    ÿr9   é
   c                 C   s>  t |ƒ}t|ƒ}|du rtf}|f| }t|ƒ}| dv rJ| | ¡| }�nÚ| dv rhd| | ¡|  }�n¼| dv r’t dd„ | ¡ | D ƒ|¡}�n’| dv r®tj|tj	d	�}�nv| d
v rÈ|d  d¡}�n\|  
d¡�r>t d| ¡}	|	dusöJ d| › �ƒ‚|	 ¡ d }
|dk�sJ dƒ‚tt t¡d |
d�j}t|t|ƒd�}næ| dv �rX|d  d¡}nÌ| dv �rptg d¢ƒ}n´| dv �rˆtg d¢ƒ}nœ| dv �r|d dk�r¤t‚tdd „ |dd… D ƒƒ�sÄJ ‚|  d!¡�rØtj}nd"}t||dd#d$|d%d&|d'g
|d(�}|j ¡ }||d 7 }ntd)| › d*�ƒ‚t|ƒ}|||t|ƒd+�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Úf8Zf4Úf2ÚintÚi8Úi4Úi2Úi1ZuintÚu8Zu4Úu2Úu1)ÚcomplexZc16Zc8y              ð?)ÚobjectÚstringÚOc                 S   s   g | ]}d |d›�‘qS )ÚAÚdr   )Ú.0Úir   r   r   Ú
<listcomp>†   ó    z create_block.<locals>.<listcomp>)ÚbÚbool©r'   )r   ÚdtúM8[ns]g    eÍÍArT   zM8[nszM8\[ns,\s*(\w+\/?\w*)\]zincompatible typestr -> r   r.   z)must have only 1 num items for a tz-awarei Êš;)Útz©Úndim)Ú	timedeltaÚtdúm8[ns]rZ   )Úcategory)
r.   r.   é   r\   é   r]   r]   r]   é   r^   )Z	category2)
Úar_   r_   r_   rP   rP   Úcr`   r`   rK   )ÚsparseZ	sparse_naéÿÿÿÿr:   c                 s   s   | ]}|d kV  qdS )r.   Nr   )rL   Úsr   r   r   Ú	<genexpr>ž   rO   zcreate_block.<locals>.<genexpr>Z_naç        r\   r]   r^   é   é   ©Ú
fill_valuezUnsupported typestr: "ú"©Ú	placementrW   )r   r6   ÚNr9   Úastyper2   ÚreshapeÚravelÚonesÚbool_Ú
startswithÚreÚsearchÚgroupsr	   r3   Ú_datar   r   ÚNotImplementedErrorÚallÚendswithÚnanr   Z	sp_valuesÚviewÚ
ValueErrorr   )Útypestrrl   Ú
item_shapeÚ
num_offsetÚmakerÚ	num_itemsr0   Úmatr&   ÚmrU   ri   r8   r   r   r   Úcreate_blockW   sZ    
"



 þ
r…   c                 C   s0   |d u rt }tt| td|ƒdd�tt |¡ƒƒS )Nr   r   )rl   r   )rm   r   r…   Úslicer
   r2   r3   )r~   Únum_rowsr   r   r   Úcreate_single_mgr°   s    þrˆ   c              	   C   sD  |du rt f}d}g }i }|  d¡D ]ž}| ¡ }t|ƒs:q$| d¡ddd… \}}| ¡ }| ¡  d¡}| |¡ tt t|ƒ¡| ƒ}z||  |¡ W n t	y´   |||< Y n0 |t|ƒ7 }q$t
|ƒ}g }	d}
| ¡ D ]8\}}| d¡d }|	 t||||
d�¡ |
t|ƒ7 }
qÜt|	d	d
„ d�}tt|ƒ|gdd„ |D ƒ ƒ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   ú;ú:r\   ú,ú-)r   r€   c                 S   s
   | j d S ©Nr   )r)   )rP   r   r   r   Ú<lambda>ò   rO   zcreate_mgr.<locals>.<lambda>)Úkeyc                 S   s   g | ]}t t |¡ƒ‘qS r   )r
   r2   r3   )rL   Únr   r   r   rN   õ   rO   zcreate_mgr.<locals>.<listcomp>)rm   ÚsplitÚstripr6   Ú	partitionÚextendÚlistr2   r3   ÚKeyErrorr
   ÚitemsÚappendr…   Úsortedr   Útuple)Údescrr   ÚoffsetZ	mgr_itemsZblock_placementsrK   ÚnamesZblockstrrl   Úblocksr€   r~   Zsblocksr   r   r   r!   º   sF    
ÿÿþr!   c                   C   s   t dg d¢ƒS )Nr;   ©r   r\   r^   )r…   r   r   r   r   Úfblockù   s    r    c                   @   s~   e Zd Zdd„ Zej ddg d¢gddggdd	d
ggddggg¡dd„ ƒZdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )Ú	TestBlockc                 C   s    t ddgƒ}|jtjksJ ‚d S )Nr@   r   )r…   r'   r2   Úint32)ÚselfZ
int32blockr   r   r   Útest_constructorÿ   s    zTestBlock.test_constructorz	typ, datar;   rŸ   rF   é   rG   r.   r]   rQ   rf   c                 C   s   t ||ƒ}tt |¡|ƒ d S r#   )r…   r-   r$   Úround_trip_pickle)r£   ÚtypÚdataÚblkr   r   r   Útest_pickle  s    

zTestBlock.test_picklec                 C   s4   t |jtƒsJ ‚t |jjtjg d¢tjd�¡ d S )NrŸ   rR   )	r(   r)   r   r$   r%   r*   r2   ÚarrayÚintp©r£   r    r   r   r   Útest_mgr_locs  s    ÿzTestBlock.test_mgr_locsc                 C   s>   |j |jj ksJ ‚|j|jjks$J ‚t|ƒt|jƒks:J ‚d S r#   )r0   r&   r'   r6   r­   r   r   r   Ú
test_attrs  s    zTestBlock.test_attrsc                 C   s"   |  ¡ }||usJ ‚t||ƒ d S r#   )r7   r-   )r£   r    Úcopr   r   r   Ú	test_copy  s    zTestBlock.test_copyc                 C   sÚ  |  ¡ }|j}| d¡d }|j|u s*J ‚||us6J ‚t |jjtjddgtjd�¡ |j	d dk 
¡ rlJ ‚|j	d dk 
¡ s‚J ‚|  ¡ }|j}| d¡}t|ƒdksªJ ‚|j|u s¸J ‚t |d jjtjdgtjd�¡ t |d jjtjdgtjd�¡ |j	d dk 
¡ �rJ ‚|d j	d dk 
¡ �s0J ‚|  ¡ }| d¡}t|ƒdk�sTJ ‚t |d jjtjddgtjd�¡ |d j	d dk 
¡ �s”J ‚|  ¡ }tjtd d�� | d¡ W d   ƒ n1 �sÌ0    Y  d S )Nr   r\   r^   rR   r.   ©Úmatchr]   )r7   r)   Údeleter$   r%   r*   r2   r«   r¬   r&   ry   r6   ÚpytestÚraisesÚ
IndexError)r£   r    ZnewbZlocsÚnbr   r   r   Útest_delete   sB    ÿ
ÿÿ
ÿzTestBlock.test_deletec                 C   sö   t jddd� dd¡ d¡}t|ƒ}|jjd }t|jt	ƒs@J ‚| 
d¡}t|ƒd	ksZJ ‚t|d jt	ƒsnJ ‚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é   r?   rR   rf   r^   rZ   r   r.   r\   rT   r]   )r2   r3   ro   r|   r   Ú_mgrrž   r(   r&   r   r´   r6   r   )r£   r8   Údfr©   r¸   r   r   r   Útest_delete_datetimelikeJ  s    
z"TestBlock.test_delete_datetimelikec                 C   sÌ   t j d¡ d¡}t|tg d¢ƒdd�}| ¡ }d|d d …< |jdk ¡ sNJ ‚t	|ƒdks^J ‚t|dg tdgƒdd�t|dg tdgƒdd�t|dg td	gƒdd�g}t
||ƒD ]\}}t||ƒ q´d S )
Nr\   )r]   r^   )r]   r.   rg   rk   iñØÿÿr]   r   r.   rg   )r2   ÚrandomÚdefault_rngÚstandard_normalr   r   Ú_splitr&   ry   r6   Úzipr-   )r£   r&   r©   ÚresultÚexpectedÚresÚexpr   r   r   Ú
test_split_  s    ýzTestBlock.test_splitN)Ú__name__Ú
__module__Ú__qualname__r¤   rµ   ÚmarkÚparametrizerª   r®   r¯   r±   r¹   r½   rÇ   r   r   r   r   r¡   þ   s    

üþ	
*r¡   c                   @   s´  e Zd Zdd„ Zdd„ Zdd„ Zej ddd	g¡d
d„ ƒZ	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej ddejfdejfg¡dd„ ƒZej ddejfd ejfd!ejfg¡d"d#„ ƒZd$d%„ Zd&d'„ Zej d(g d)¢¡d*d+„ ƒZd,d-„ Zd.d/„ Zej dg d0¢¡d1d2„ ƒZd3d4„ Zd5d6„ Z d7d8„ Z!d9d:„ Z"d;d<„ Z#ej dd=d>g¡d?d@„ ƒZ$ej dg dA¢¡dBdC„ ƒZ%dDdE„ Z&ej dFdGdHg dI¢dJg¡dKdL„ ƒZ'dMdN„ Z(dOdP„ Z)dQS )RÚTestBlockManagerc                 C   s*   t dƒ}|jdksJ ‚t|ƒdks&J ‚d S )Nza,b,c: f8-1; d,e,f: f8-2r\   rg   )r!   Únblocksr6   ©r£   r"   r   r   r   r¯   t  s    zTestBlockManager.test_attrsc                 C   sÊ   t dƒ}|j|j }}tt dg¡ƒ|d _tt dg¡ƒ|d _d}tjt	|d��" t
||ƒ}| ¡  W d   ƒ n1 s|0    Y  tt dg¡ƒ|d _tt dg¡ƒ|d _t
||ƒ}| d¡ d S )Nza:bool; a: f8r   r.   zGaps in blk ref_locsr²   )r!   Úaxesrž   r   r2   r«   r)   rµ   r¶   ÚAssertionErrorr   Z_rebuild_blknos_and_blklocsÚiget)r£   Ztmp_mgrrÐ   rž   Úmsgr"   r   r   r   Útest_duplicate_ref_loc_failurey  s    
&
z/TestBlockManager.test_duplicate_ref_loc_failurec                 C   sb   t  |¡}t  tj||jd�tj||jd�¡ t|dƒs<J ‚t|dƒsJJ ‚|jrTJ ‚|jr^J ‚d S )N©rÐ   Ú_is_consolidatedÚ_known_consolidated)	r$   r¦   Úassert_frame_equalr   Ú	_from_mgrrÐ   ÚhasattrrÖ   r×   )r£   r"   Úmgr2r   r   r   rª   Ž  s    
þ
zTestBlockManager.test_pickleÚ
mgr_stringza,a,a:f8za: f8; a: i8c                 C   s:   t |ƒ}t |¡}t tj||jd�tj||jd�¡ d S )NrÕ   )r!   r$   r¦   rØ   r   rÙ   rÐ   )r£   rÜ   r"   rÛ   r   r   r   Útest_non_unique_pickle�  s    
þz'TestBlockManager.test_non_unique_picklec                 C   st   t dƒ}t |¡}t tj||jd�tj||jd�¡ tdƒ}t |¡}t t	ƒ j
||jd�t	ƒ j
||jd�¡ d S )Núa: categoryrÕ   r[   )r!   r$   r¦   rØ   r   rÙ   rÐ   rˆ   Zassert_series_equalr   Z_constructor_from_mgr)r£   r"   rÛ   ZsmgrZsmgr2r   r   r   Útest_categorical_block_pickle¦  s    
þ
þz.TestBlockManager.test_categorical_block_picklec                 C   s°   t tdƒƒ}tj d¡ d¡}t| ¡ ttjdtj	d�ƒ|j
d�}t|f|t t d¡ƒgd�}t | d¡ ¡ |d ¡ t | d	¡ ¡ |d	 ¡ t | d¡ ¡ |d ¡ d S )
NÚabcr\   )r]   r]   r]   rR   )r&   rl   rW   )rž   rÐ   r   r.   )r
   r•   r2   r¾   r¿   r   r7   r   r3   r¬   rW   r   r$   Úassert_almost_equalrÒ   Úinternal_values)r£   Úcolsr&   Úblockr"   r   r   r   Ú	test_igetµ  s    ýzTestBlockManager.test_igetc                 C   sÜ   t ddd�}| t|jƒdt dgd ¡¡ | dt dgd ¡¡ t | 	d	¡ 
¡ t d	gd ¡¡ t | 	d¡ 
¡ tjdgd tjd
�¡ t | 	d¡ 
¡ t dgd ¡¡ t | 	d¡ 
¡ tjdgd tjd
�¡ d S )Nz
a,b,c: int©r]   ©r   rK   Úfoor]   r.   Úbarr   rR   r\   )r!   Úinsertr6   r—   r2   r«   Úisetr$   r%   rÒ   râ   Úobject_rÏ   r   r   r   Útest_setÃ  s     " ÿ" ÿzTestBlockManager.test_setc                 C   s.  |  t|jƒdtjttd�¡ | |j d¡t 	dt¡¡ |j d¡}| 
|¡jtjks\J ‚| ¡ }| |j d¡t 	dt¡¡ |j d¡}| 
|¡jtjks¢J ‚|  t|jƒdtj d¡ t¡ t¡¡ |j d¡}| 
|¡jt t¡ksðJ ‚| |j d¡tj d¡ t¡¡ | 
|¡jtjk�s*J ‚d S )NÚbazrR   rè   Zquuxr\   )rê   r6   r—   r2   Úzerosrm   rQ   rë   Úget_locÚrepeatrÒ   r'   rì   Úconsolidater¾   r¿   rÀ   rn   r>   Úfloat64)r£   r"   ÚidxrÛ   r   r   r   Útest_set_change_dtypeÑ  s&    ýÿz&TestBlockManager.test_set_change_dtypec           	      C   sD  |j dd�}t|j|jƒD ]T\}}t |j|j¡ t|jtjƒrV|jj	|jj	u snJ ‚q|jj
j	|jj
j	u sJ ‚q| ¡  |j dd�}t|j|jƒD ]¬\}}|j}|j}t ||¡ t|tjƒrÌ|j	}|j	}n|j
j	}|j
j	}t|tƒ�r
|d u rú|d u �s>||u�s>J ‚q’t|tjƒ�s(||u�s>J ‚q’|d u �r:|d u s’J ‚q’d S )NF)ÚdeepT)r7   rÂ   rž   r$   Zassert_equalr&   r(   r2   ÚndarrayÚbaseZ_ndarrayZ_consolidate_inplacer   )	r£   r"   Úcpr©   Zcp_blkZbvalsZcpvalsZlbaseZrbaser   r   r   r±   ê  s,    "zTestBlockManager.test_copyc                 C   s    t dƒ}| ¡ jtjksJ ‚d S )Nza: sparse-1; b: sparse-2)r!   r*   r'   r2   ró   rÏ   r   r   r   Útest_sparse  s    zTestBlockManager.test_sparsec                 C   s,   t dƒ}t|jƒdksJ ‚t|tƒs(J ‚d S )Nza: sparse-1; b: sparse-2; c: f8r]   )r!   r6   rž   r(   r   rÏ   r   r   r   Útest_sparse_mixed  s    z"TestBlockManager.test_sparse_mixedzmgr_string, dtypezc: f4; d: f2úc: f4; d: f2; e: f8c                 C   s   t |ƒ}| ¡ j|ksJ ‚d S r#   ©r!   r*   r'   ©r£   rÜ   r'   r"   r   r   r   Útest_as_array_float  s    z$TestBlockManager.test_as_array_floatza: bool-1; b: bool-2z%a: i8-1; b: i8-2; c: i4; d: i2; e: u1zc: i4; d: i2; e: u1c                 C   s   t |ƒ}| ¡ j|ksJ ‚d S r#   rý   rþ   r   r   r   Útest_as_array_int_bool   s    	z'TestBlockManager.test_as_array_int_boolc                 C   s   t dƒ}| ¡ jdksJ ‚d S )Nzh: datetime-1; g: datetime-2rT   rý   rÏ   r   r   r   Útest_as_array_datetime,  s    z'TestBlockManager.test_as_array_datetimec                 C   sF   t dƒ}| d¡jdksJ ‚| d¡jdks0J ‚| ¡ jdksBJ ‚d S )Nz%h: M8[ns, US/Eastern]; g: M8[ns, CET]r   zdatetime64[ns, US/Eastern]r.   zdatetime64[ns, CET]rG   )r!   rÒ   r'   r*   rÏ   r   r   r   Útest_as_array_datetime_tz0  s    z*TestBlockManager.test_as_array_datetime_tzÚt)Úfloat16Úfloat32ró   r¢   Úint64c                 C   sL  t dƒ}t |¡}| |¡}| d¡jj|ks2J ‚| d¡jj|ksHJ ‚| d¡jj|ks^J ‚t dƒ}t |¡}|j|d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�r0| d¡jjtjk�sHJ ‚n| d¡jj|k�sHJ ‚d S )Nrü   r   r.   r\   z6a,b: object; c: bool; d: datetime; e: f4; f: f2; g: f8Úignore)Úerrorsr^   rf   rg   r]   )	r!   r2   r'   rn   rÒ   Útyperì   r  Ú
datetime64)r£   r  r"   Ztmgrr   r   r   Útest_astype6  s$    


zTestBlockManager.test_astypec                 C   sR  dd„ }t dƒ}|jdd�}|||ƒ t dƒ}| dtjdgt tjd	�¡ | d
tjdgt tjd	�¡ | dtjdgt tjd	�¡ |jdd�}|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 tjd	�¡ | d
tjdgt tjd	�¡ | dtjdgt tjd	�¡ |jdd�}| 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�s6J ‚| d¡jtjk�sNJ ‚d S )Nc                 S   sœ   t | jƒ}t |jƒ}t|ƒt|ƒks(J ‚|D ]2}d}|D ]}|j|jk ¡ r8d} qVq8|s,J ‚q,|D ]2}d}|D ]}|j|jk ¡ rpd} qŽqp|sdJ ‚qddS )z4compare the blocks, numeric compare ==, object don'tFTN)Úsetrž   r6   r&   ry   )Zold_mgrÚnew_mgrZ
old_blocksZ
new_blocksrP   Úfoundr¸   Úobr   r   r   Ú_compareS  s"    


z/TestBlockManager.test_convert.<locals>._comparezf: i8; g: f8T©r7   za,b,foo: object; f: i8; g: f8r   Ú1rR   r.   z2.r\   zfoo.Ústrr]   r^   zEa,b,foo: object; f: i4; bool: bool; dt: datetime; i: i8; g: f8; h: f2rf   rg   r¥   é   )r!   Úconvertrë   r2   r«   rm   rì   rÒ   r'   r  ró   r¢   rr   r	  r
  r  )r£   Zusing_infer_stringr  r"   r  r'   r   r   r   Útest_convertR  s>    
ÿzTestBlockManager.test_convertc                 C   sT   dD ]J}t d|› �ƒ}| ¡ j|ks(J ‚t d|› d|› �ƒ}| ¡ j|ksJ ‚qd S )N)r<   r?   rG   rQ   rF   rT   rZ   za: z; b: rý   )r£   r'   r"   r   r   r   Útest_interleave�  s
    z TestBlockManager.test_interleave))rÞ   r?   )za: category; b: categoryr?   )úa: category; b: category2rG   )úa: category2rG   )za: category2; b: category2rG   )úa: f8r<   )úa: f8; b: i8r<   )úa: f4; b: i8r<   )úa: f4; b: i8; d: objectrG   )úa: bool; b: i8rG   )ú
a: complexrF   )úa: f8; b: categoryrG   )úa: M8[ns]; b: categoryrG   )úa: M8[ns]; b: boolrG   )úa: M8[ns]; b: i8rG   )úa: m8[ns]; b: boolrG   )úa: m8[ns]; b: i8rG   )úa: M8[ns]; b: m8[ns]rG   c                 C   s²  t dƒ}| ¡ jdksJ ‚t dƒ}| ¡ jdks4J ‚t dƒ}| ¡ jdksNJ ‚t dƒ}| ¡ jdkshJ ‚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�sZJ ‚t dƒ}| ¡ jdk�svJ ‚t dƒ}| ¡ jdk�s’J ‚t dƒ}| ¡ jdk�s®J ‚d S )NrÞ   r?   r  rG   r  r  r<   r  r  r  r  r  rF   r   r!  r"  r#  r$  r%  r&  rý   rþ   r   r   r   Útest_interleave_dtype•  s@    z&TestBlockManager.test_interleave_dtypec                 C   s  |  |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d	 jjtjt|jƒtjd
�¡ d S )NÚfr\   rK   rP   ÚgÚhr^   r.   r   rR   )rë   r—   rð   r2   r¾   r¿   rÀ   rm   rò   rÎ   Úget_numeric_datar(   rž   r)   r   r$   r%   r*   r3   r6   r¬   )r£   r"   Zconsr   r   r   Ú test_consolidate_ordering_issuesÑ  s    """"" ÿz1TestBlockManager.test_consolidate_ordering_issuesc                 C   sÀ   t dƒ}|jg d¢dd�}| ¡ r&J ‚t |jtg d¢ƒ¡ t | d¡ 	¡ | d¡ 	¡ ¡ t | d¡ 	¡ | d¡ 	¡ ¡ t | d¡ 	¡ | d¡ 	¡ ¡ t | d¡ 	¡ | d¡ 	¡ ¡ d S )	Nz3a: f8; b: i8; c: f8; d: i8; e: f8; f: bool; g: f8-2)r)  r`   r_   rK   r   ©Úaxisrg   r\   r.   r]   )
r!   Úreindex_axisZis_consolidatedr$   Úassert_index_equalr—   r
   rá   rÒ   râ   )r£   r"   Ú	reindexedr   r   r   Útest_reindex_itemsâ  s     ÿÿÿÿz#TestBlockManager.test_reindex_itemsc                 C   sò   t ddd�}| dtjg d¢tjd�¡ | ¡ }t |jt	g d¢ƒ¡ t 
| |j d¡¡ ¡ | |j d¡¡ ¡ ¡ |j|j d¡t g d	¢¡d
d� |rÆt 
| |j d¡¡ ¡ t g d¢¡¡ n(t 
| |j d¡¡ ¡ t g d	¢¡¡ d S )Nú[int: int; float: float; complex: complex;str: object; bool: bool; obj: object; dt: datetimeræ   rç   rf   ©r.   r\   r]   rR   )r>   r;   rF   rQ   r;   )ç      Y@g      i@g     Àr@T©Úinplace)ç      ð?r8  r8  )r!   rë   r2   r«   rì   r+  r$   r0  r—   r
   rá   rÒ   rð   râ   )r£   Úusing_copy_on_writer"   Únumericr   r   r   Útest_get_numeric_dataù  s2    ýþ
ýþþz&TestBlockManager.test_get_numeric_datac                 C   sè   t ddd�}| dtjg d¢tjd�¡ | ¡ }t |jt	dgƒ¡ t 
| |j d¡¡ ¡ | |j d¡¡ ¡ ¡ |jdt g d¢¡d	d
� |r¼t | |j d¡¡ ¡ t g d¢¡¡ n(t | |j d¡¡ ¡ t g d¢¡¡ d S )Nr3  ræ   rç   rg   )TFTrR   rQ   r   Tr6  )TTT)r!   rë   r2   r«   rì   Zget_bool_datar$   r0  r—   r
   rá   rÒ   rð   râ   r%   )r£   r9  r"   Zboolsr   r   r   Útest_get_bool_data  s*    ýþþþz#TestBlockManager.test_get_bool_datac                 C   s   t tdƒƒ d S )Nu   b,×�: object)Úreprr!   )r£   r   r   r   Útest_unicode_repr_doesnt_raise4  s    z/TestBlockManager.test_unicode_repr_doesnt_raiseúa,b,c: i8-1; d,e,f: i8-2za,a,a: i8-1; b,b,b: i8-2c                 C   s2   t |ƒ}t|jd d d… |jƒ}| |¡s.J ‚d S )Nrb   )r!   r   rž   rÐ   Úequals)r£   rÜ   Úbm1Zbm2r   r   r   Útest_equals7  s    zTestBlockManager.test_equals)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                 C   sN   t |ƒ}t |j¡}|D ]0}tt|ƒ|jƒ}| |¡s:J ‚| |¡sJ ‚qd S r#   )r!   Ú	itertoolsÚpermutationsrž   r   rš   rÐ   r@  )r£   rÜ   ÚbmZblock_permsZbm_permZbm_thisr   r   r   Ú(test_equals_block_order_different_dtypes@  s    z9TestBlockManager.test_equals_block_order_different_dtypesc                 C   s(   t ddd�}| ¡  ¡ g d¢ks$J ‚d S )Nr<   rf   )r‡   )re   r8  ç       @g      @g      @)rˆ   Úexternal_valuesÚtolistrÏ   r   r   r   Útest_single_mgr_ctorS  s    z%TestBlockManager.test_single_mgr_ctorÚvaluer.   ÚTruer4  g      @c                 C   s`   t dƒ}dt|ƒj› d�}tjt|d��$ |jdgdg|d� W d   ƒ n1 sR0    Y  d S )Nr?  z9For argument "inplace" expected type bool, received type Ú.r²   r.   r\   r6  )r!   r	  rÈ   rµ   r¶   r}   Zreplace_list)r£   rK  rA  rÓ   r   r   r   Útest_validate_bool_argsW  s    ÿÿz(TestBlockManager.test_validate_bool_argsc                 C   sz   t dƒ}| dt dg¡¡ t |jtjg d¢tr6dndd�¡ t |jtjg d¢trZdndd�¡ t	|j
ƒdksvJ ‚d S )	Núa,b,c: i8; d: f8r   ©r   r   r.   r   r  r¢   rR   )r   r   r   r.   r\   )r!   Ú_iset_split_blockr2   r«   r$   r%   Úblklocsr   Úblknosr6   rž   ©r£   rE  r   r   r   Útest_iset_split_blockb  s    ÿÿz&TestBlockManager.test_iset_split_blockc              	   C   sŒ   t dƒ}| dt dg¡t ttdƒƒg¡¡ t |jtjg d¢t	rHdndd�¡ t |j
tjg d¢t	rldndd�¡ t|jƒd	ksˆJ ‚d S )
NrO  r   r:   rP  r  r¢   rR   )r   r\   r\   r.   r]   )r!   rQ  r2   r«   r•   Úranger$   r%   rR  r   rS  r6   rž   rT  r   r   r   Útest_iset_split_block_valuesn  s    &ÿÿz-TestBlockManager.test_iset_split_block_valuesN)*rÈ   rÉ   rÊ   r¯   rÔ   rª   rµ   rË   rÌ   rÝ   rß   rå   rí   rõ   r±   rú   rû   r2   r  ró   rÿ   rr   r  r¢   r   r  r  r  r  r  r'  r,  r2  r;  r<  r>  rB  rF  rJ  rN  rU  rW  r   r   r   r   rÍ   s  sn   
%þ
ýþ

;þ
% ÿ
þ

	

rÍ   c                 C   s   | j dkr|  ¡ S |  ¡ jS )Nr.   )rW   rH  r*   ÚT)r"   r   r   r   Ú	_as_array{  s    
rY  c                	   @   sÔ   e Zd Zedeƒedeƒedefd�edefd�edefd�edefd�gZej 	de¡d	d
„ ƒZ
ej 	de¡dd„ ƒZej 	de¡ej 	ddejdg¡dd„ ƒƒZej 	de¡ej 	ddejdg¡dd„ ƒƒZdS )ÚTestIndexingr<   r?   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                 C   s  dd„ }|j dksJ |j ƒ‚t|j ƒD ]ê}|||td ƒƒ |||tdƒƒ |||tdƒƒ |||tddƒƒ |||tddd	ƒƒ |j dk r&|||tj|j| tjd
�ƒ |||tj|j| tjd
�ƒ |j| dkr&|||t |j| ¡d dkƒ |||tj	g d¢tjd
�ƒ q&d S )Nc                 S   s  t | ƒ}t|tjƒrb| j| }t|ƒrbt|ƒrbt|ƒt|ƒkrbt |tjt|ƒt|ƒ td�g¡}t|t	ƒr|| j
||d�}n<| jdkr°|dkr°t|tjƒr°|jtkr°|  |¡}nt|ƒ‚t	d ƒf| |f }tj|| t |ƒdd� t | j| | |j| ¡ d S )NrR   r-  r.   r   F©Zcheck_dtype)rY  r(   r2   r÷   rÐ   r6   Zconcatenaterï   rQ   r†   Z	get_slicerW   r'   Zget_rows_with_maskÚ	TypeErrorr$   r%   r0  )r"   r.  Zslobjrƒ   ÚaxZslicedZ	mat_slobjr   r   r   Úassert_slice_ok–  s0    
 ÿ
ÿþ
ýüÿz4TestIndexing.test_get_slice.<locals>.assert_slice_okr\   r]   éd   r.   r^   r   éþÿÿÿrR   )TTF)
rW   rV  r†   r2   rq   r0   rr   rï   r3   r«   )r£   r"   r^  r]  r   r   r   Útest_get_slice”  s      
 ÿzTestIndexing.test_get_slicec              	   C   sÆ   dd„ }t |jƒD ]®}|||tjg tjd�d� |||tjg d¢tjd�d� |||tjtt |j| ƒƒtjd�d� |j| dkr|||tjg d¢tjd�d� |||tjg d¢tjd�d� qd S )	Nc                 S   sT   t | ƒ}|  ||¡}tjt |||¡t |ƒdd� t | j|  |¡|j| ¡ d S )NFr[  )rY  Ztaker$   r%   r2   r0  rÐ   )r"   r.  Úindexerrƒ   Ztakenr   r   r   Úassert_take_okÎ  s    ÿz.TestIndexing.test_take.<locals>.assert_take_okrR   )rb  ©r   r   r   r]   ©r   r.   r\   ©rb   r`  éýÿÿÿ)rV  rW   r2   r«   r¬   r•   r0   )r£   r"   rc  r]  r   r   r   Ú	test_takeÌ  s     ÿzTestIndexing.test_takeri   Nr5  c                 C   sú   dd„ }t |jƒD ]â}|||tg ƒ|ƒ ||||j| |ƒ ||||j| g d¢ |ƒ |||tg d¢ƒ|ƒ |||td|j| d dgƒ|ƒ |j| dkr||||j| d d	… |ƒ ||||j| d	d d
… |ƒ ||||j| g d¢ |ƒ qd S )Nc                 S   s`   t | ƒ}| j|  |¡}| j|||d�}tjtj||||d�t |ƒdd� t |j| |¡ d S ©Nrh   Fr[  )	rY  rÐ   Zget_indexer_forr/  r$   r%   ÚalgosÚtake_ndr0  )r"   r.  Ú
new_labelsri   rƒ   rb  r1  r   r   r   Úassert_reindex_axis_is_okå  s    ýzATestIndexing.test_reindex_axis.<locals>.assert_reindex_axis_is_okrd  ©rè   ré   rî   rè   r   rî   r]   rg  rb   )r   r.   r\   r   r.   r\   )rV  rW   r
   rÐ   r0   )r£   ri   r"   rm  r]  r   r   r   Útest_reindex_axisâ  s    ÿÿzTestIndexing.test_reindex_axisc              	   C   s†  dd„ }t |jƒD �]l}|||tg ƒtjg tjd�|ƒ ||||j| t |j| ¡|ƒ |||tdg|j|  ƒt |j| ¡|ƒ ||||j| d d d… t |j| ¡|ƒ ||||j| t |j| ¡d d d… |ƒ |||tg d¢ƒt g d¢¡|ƒ |||tg d¢ƒt g d¢¡|ƒ |||td|j| d	 d
gƒt g d¢¡|ƒ |j| dkr|||tg d¢ƒt g d¢¡|ƒ qd S )Nc                 S   sV   t | ƒ}tj||||d�}| j||||d�}tj|t |ƒdd� t |j| |¡ d S ri  )rY  rj  rk  Zreindex_indexerr$   r%   r0  rÐ   )r"   r.  rl  rb  ri   rƒ   Zreindexed_matr1  r   r   r   Úassert_reindex_indexer_is_ok  s    ÿ
ÿzGTestIndexing.test_reindex_indexer.<locals>.assert_reindex_indexer_is_okrR   rè   rb   rn  rd  )rb   r   rb   r   rî   )rb   rb   rb   r]   re  )	rV  rW   r
   r2   r«   r¬   rÐ   r3   r0   )r£   ri   r"   rp  r]  r   r   r   Útest_reindex_indexer  sT    ÿÿû&ÿ&ÿÿÿû
ûz!TestIndexing.test_reindex_indexer)rÈ   rÉ   rÊ   rˆ   rm   r!   ZMANAGERSrµ   rË   rÌ   ra  rh  r2   r{   ro  rq  r   r   r   r   rZ  �  s"   
ù

7
rZ  c                   @   s’  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d	„ ƒZej d
edddƒedddƒg¡dd„ ƒZd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d„ ƒZ
ej d
eddƒeddƒeddƒedddƒedddƒg¡d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d„ ƒZej dg dgg d ¢d!gdgg d"¢g d#¢g d$¢g d%¢g	¡d&d'„ ƒZej deddƒg d¢feddƒg feddƒg fg¡d(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,d-„ ƒZd.d/„ Zej d0eddƒdg feddƒdg d1¢fedddƒdg d+¢fg d2¢dg d2¢feddƒdg feddƒdg d3¢fedddƒdg d4¢fg d2¢dg d5¢feddƒdg feddƒdg d¢fg d2¢dg d6¢fg¡d7d8„ ƒZej d9eddƒg d2¢g¡d:d;„ ƒZdS )<ÚTestBlockPlacementzslc, expectedr   r^   r\   r]   r.   rb   c                 C   s   t t|ƒƒ|ksJ ‚d S r#   )r6   r   ©r£   ÚslcrÄ   r   r   r   Útest_slice_len<  s    z!TestBlockPlacement.test_slice_lenrt  c                 C   s>   d}t jt|d�� t|ƒ W d   ƒ n1 s00    Y  d S )Nzslice step cannot be zeror²   ©rµ   r¶   r}   r   ©r£   rt  rÓ   r   r   r   Útest_zero_step_raisesI  s    z(TestBlockPlacement.test_zero_step_raisesc                 C   s.   t dddƒ}t|ƒ}|jt dd dƒks*J ‚d S )Nr]   rb   r`  )r†   r   rb  )r£   rt  Úbpr   r   r   Ú!test_slice_canonize_negative_stopO  s    z4TestBlockPlacement.test_slice_canonize_negative_stopNr:   c                 C   s>   d}t jt|d�� t|ƒ W d   ƒ n1 s00    Y  d S )Nzunbounded slicer²   rv  rw  r   r   r   Útest_unbounded_slice_raisesV  s    z.TestBlockPlacement.test_unbounded_slice_raisesr_  c                 C   s   t |ƒjrJ ‚d S r#   ©r   Zis_slice_like)r£   rt  r   r   r   Útest_not_slice_like_slicesl  s    z-TestBlockPlacement.test_not_slice_like_sliceszarr, slcée   re  )r   rf   r:   é   rf   éÈ   c                 C   s   t |ƒj|ksJ ‚d S r#   )r   Úas_slice)r£   r8   rt  r   r   r   Útest_array_to_slice_conversiony  s    z1TestBlockPlacement.test_array_to_slice_conversionr8   rf  éöÿÿÿ)rb   r   r.   r\   )r`  r   r\   r^   )r.   r   rb   )r.   r.   r.   c                 C   s   t |ƒjrJ ‚d S r#   r|  )r£   r8   r   r   r   Útest_not_slice_like_arrays‡  s    z-TestBlockPlacement.test_not_slice_like_arraysc                 C   s   t t|ƒƒ|ksJ ‚d S r#   )r•   r   rs  r   r   r   Útest_slice_iter˜  s    z"TestBlockPlacement.test_slice_iterzslc, arr)r]   r\   r.   c                 C   s"   t  t|ƒjtj|tjd�¡ d S )NrR   )r$   r%   r   r*   r2   Úasarrayr¬   )r£   rt  r8   r   r   r   Útest_slice_to_array_conversionŸ  s    
ÿz1TestBlockPlacement.test_slice_to_array_conversionc                 C   st   t tddƒƒ}| d¡jtdddƒks*J ‚| t d¡¡jtdddƒksLJ ‚t| t ddd¡¡ƒg d¢kspJ ‚d S )	Nr   rf   r.   rg   r:   r\   rb   )rf   rf   rf   rf   rf   )r   r†   Úaddr�  r2   r3   r•   )r£   Zbplr   r   r   Útest_blockplacement_add­  s    "z*TestBlockPlacement.test_blockplacement_addzval, inc, expectedr4  )r.   r\   r^   )é   é   é   )rŒ  r‹  rŠ  )rŠ  r‹  é   )r   r.   r]   c                 C   s   t t|ƒ |¡ƒ|ksJ ‚d S r#   )r•   r   rˆ  )r£   ÚvalÚincrÄ   r   r   r   Útest_blockplacement_add_int³  s    z.TestBlockPlacement.test_blockplacement_add_intrŽ  c                 C   sD   d}t jt|d�� t|ƒ d¡ W d   ƒ n1 s60    Y  d S )Nziadd causes length changer²   rƒ  )rµ   r¶   r}   r   rˆ  )r£   rŽ  rÓ   r   r   r   Ú"test_blockplacement_add_int_raisesÆ  s    z5TestBlockPlacement.test_blockplacement_add_int_raises)rÈ   rÉ   rÊ   rµ   rË   rÌ   r†   ru  rx  rz  r{  r}  r‚  r„  r…  r‡  r‰  r�  r‘  r   r   r   r   rr  ;  sÀ   ûþ

 





ôþ


ûþ

úþ
÷þ
*þ
üþ	
õþ
rr  c                
   @   sÊ   e Zd Zejdd„ dd„ dd„ dd„ dd„ dd„ dd„ d	d„ gd
�dd„ ƒZdd„ Zej de	j
e	je	jg¡dd„ ƒZej de	j
e	je	jg¡dd„ ƒZdd„ Zdd„ Zedœdd„Zeedœdd„ZdS )ÚTestCanHoldElementc                 C   s   | S r#   r   ©r/   r   r   r   rŽ   Ð  rO   zTestCanHoldElement.<lambda>c                 C   s   |   ¡ S r#   )Z	to_seriesr“  r   r   r   rŽ   Ñ  rO   c                 C   s   | j S r#   )rw   r“  r   r   r   rŽ   Ò  rO   c                 C   s   t | ƒS r#   )r•   r“  r   r   r   rŽ   Ó  rO   c                 C   s
   |   t¡S r#   )rn   rG   r“  r   r   r   rŽ   Ô  rO   c                 C   s
   t  | ¡S r#   )r2   r†  r“  r   r   r   rŽ   Õ  rO   c                 C   s   | d S r�   r   r“  r   r   r   rŽ   Ö  rO   c                 C   s   | d d… S r�   r   r“  r   r   r   rŽ   ×  rO   r   c                 C   s   |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   r   r   r   ÚelementÎ  s    zTestCanHoldElement.elementc                 C   sà   t ddgƒ}| g ¡sJ ‚t |j ¡ ¡}| d ¡s8J ‚d |d< |d tju sRJ ‚t d¡t	dddƒg}|D ]}| |¡s~J ‚||d< qlt
dddƒ}| |¡r¢J ‚d}tjt|d�� ||d< W d   ƒ n1 sÒ0    Y  d S )Nr   r   z
2010-10-10iÚ  r:   zLvalue should be a 'Timestamp', 'NaT', or array of those. Got 'date' instead.r²   )r…   Ú_can_hold_elementÚpdr«   r&   rp   ZNaTr2   r
  r   r   rµ   r¶   r\  )r£   rä   r8   ÚvalsrŽ  rÓ   r   r   r   Ú$test_datetime_block_can_hold_elementá  s     
ÿz7TestCanHoldElement.test_datetime_block_can_hold_elementr'   c                 C   sD   t jg d¢|d�}t |¡}t|jtdgƒdd�}| g ¡s@J ‚d S )N)r.   r]   r^   rR   r.   r\   rV   )r2   r«   r   Úfrom_breaksr   rw   r   r•  )r£   r'   r”  r8   Úiir©   r   r   r   Ú(test_interval_can_hold_element_emptylistþ  s    
z;TestCanHoldElement.test_interval_can_hold_element_emptylistc           
      C   sš  t jg d¢|d�}t |¡}t|jtdgƒdd�}||ƒ}|  ||d¡ | |¡sVJ ‚tj|d d… dd	�}||ƒ}t	 
t¡� |  ||d
¡ W d   ƒ n1 s¢0    Y  | |¡rºJ ‚t tdƒtdƒtdƒg¡}||ƒ}t	 
t¡� |  ||d
¡ W d   ƒ n1 �s0    Y  | |¡�r(J ‚t tdƒtdƒtdƒg¡}	||	ƒ}t	 
t¡� |  ||d
¡ W d   ƒ n1 �s|0    Y  | |¡�r–J ‚d S )N)r.   r]   r^   é	   rR   r.   r\   rV   Trb   Zneither)ÚclosedFr]   r^   )r2   r«   r   r™  r   rw   r   Úcheck_series_setitemr•  r$   Úassert_produces_warningÚFutureWarningr   r   )
r£   r'   r”  r8   rš  r©   ÚelemZii2Zii3Zii4r   r   r   Útest_interval_can_hold_element  s*    
,..z1TestCanHoldElement.test_interval_can_hold_elementc                 C   s>   t dddd�}t|j dd¡tdgƒdd�}| g ¡s:J ‚d S )NÚ2016r]   ÚY©ZperiodsÚfreqr.   r\   rV   )r   r   rw   ro   r   r•  )r£   Úpir©   r   r   r   Ú&test_period_can_hold_element_emptylist%  s    z9TestCanHoldElement.test_period_can_hold_element_emptylistc                 C   sÌ   t dddd�}||ƒ}|  ||d¡ | d¡d d… }||ƒ}t t¡� |  ||d¡ W d   ƒ n1 sl0    Y  | d	¡d d… }||ƒ}t t¡� |  ||d¡ W d   ƒ n1 s¾0    Y  d S )
Nr£  r]   r¤  r¥  TÚDrb   Frc   )r   rž  Zasfreqr$   rŸ  r   Zto_timestamp)r£   r”  r§  r¡  Zpi2Zdtir   r   r   Útest_period_can_hold_element+  s    ,z/TestCanHoldElement.test_period_can_hold_elementr6  c                 C   s2   |j jd }|r | |¡s.J ‚n| |¡r.J ‚d S r�   )r»   rž   r•  )r£   Úobjr¡  r7  r©   r   r   r   Úcheck_can_hold_element=  s    z)TestCanHoldElement.check_can_hold_element)Úindexr7  c                 C   sl   |j  ¡ }t|dd�}|  |||¡ t|ƒr6||d< n||d t|ƒ…< |rZ|j|u shJ ‚n|jtkshJ ‚d S )NFr  r   )	rw   r7   r   r¬  r   r6   r«   r'   rG   )r£   r¡  r­  r7  r8   Zserr   r   r   rž  D  s    

z'TestCanHoldElement.check_series_setitemN)rÈ   rÉ   rÊ   rµ   Úfixturer”  r˜  rË   rÌ   r2   r  Zuint64ró   r›  r¢  r¨  rª  rQ   r¬  r
   rž  r   r   r   r   r’  Í  s*   øÿ


r’  c                   @   s   e Zd Zdd„ ZdS )ÚTestShouldStorec                 C   sn   t g d¢ƒ}t|ƒ}|jjd }| |¡s.J ‚| |d d… ¡sDJ ‚| | ¡ ¡rVJ ‚| t |¡¡rjJ ‚d S )N)rJ   ÚBÚCr   rb   )r   r   r»   rž   Zshould_storeZ
as_orderedr2   r†  )r£   Úcatr¼   r©   r   r   r   Útest_should_store_categoricalV  s    z-TestShouldStore.test_should_store_categoricalN)rÈ   rÉ   rÊ   r³  r   r   r   r   r¯  U  s   r¯  c                  C   s^   t  ddg¡} ttdƒƒ}d}tjt|d�� t| |dd� W d   ƒ n1 sP0    Y  d S )Nr8  rG  r\   z:Wrong number of dimensions. values.ndim != ndim \[1 != 2\]r²   rV   )r2   r«   r   r†   rµ   r¶   r}   r   )r&   rl   rÓ   r   r   r   Útest_validate_ndimf  s
    r´  c                  C   s\   t g d¢ƒ} tg d¢ƒ | ¡}ttg d¢ƒƒ | ¡}|jjd jj|jjd jjksXJ ‚d S )N)r   r.   r\   r]   r^   r4  r   )r
   r   Zreindexr   r»   rž   r)   rb  )rô   r_   rP   r   r   r   Útest_block_shapeo  s    rµ  c                 C   sÔ   t j t ddg¡¡}| |ttt|ƒƒƒ|jd�}|j	j
dv sBJ ‚| tu rÐ|jdu sXJ ‚| |tt|ƒƒ|j	|jd�}|j	j
dv s„J ‚|jdu s’J ‚| | ¡ tt|ƒƒ|j	|jd�}|j	j
dv sÂJ ‚|jdu sÐJ ‚d S )Nr.   r\   rV   )rM   ÚuF)r'   rW   )r–  ZarraysZNumpyExtensionArrayr2   r«   r   r†   r6   rW   r'   Úkindr   Zis_extensionZto_numpy)r    r8   rÃ   r   r   r   Útest_make_block_no_pandas_arrayw  s    ÿr¸  )N)N)Er   r   rC  rt   Únumpyr2   rµ   Zpandas._libs.internalsr   Zpandas.compatr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrY   Zpandas.core.dtypes.commonr   Zpandasr–  r   r   r	   r
   r   r   r   r   r   Zpandas._testingZ_testingr$   Zpandas.core.algorithmsÚcoreZ
algorithmsrj  Zpandas.core.arraysr   r   r   Zpandas.core.internalsr   r   r   Zpandas.core.internals.blocksr   r   r   Zskip_array_manager_invalid_testZ
pytestmarkr®  r    r"   r-   r9   rm   r…   rˆ   r!   r    r¡   rÍ   rY  rZ  rr  r’  r¯  r´  rµ  r¸  r   r   r   r   Ú<module>   sZ   ,

Y


?
u     ;  		