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   úd/var/www/html/laksyashrimp/venv/lib/python3.9/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>Ú_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   )Útypestrrm   Ú
item_shapeÚ
num_offsetÚmakerÚ	num_itemsr0   Úmatr&   ÚmrU   rj   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   )rm   r€   )rn   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>)rn   ÚsplitÚstripr6   Ú	partitionÚextendÚlistr2   r3   ÚKeyErrorr
   ÚitemsÚappendr†   Úsortedr   Útuple)Údescrr€   ÚoffsetZ	mgr_itemsZblock_placementsrK   ÚnamesZblockstrrm   Ú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   rg   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&   rz   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   rg   r^   rZ   r   r.   r\   rT   r]   )r2   r3   rp   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.   rh   rl   iñØÿÿr]   r   r.   rh   )r2   ÚrandomÚdefault_rngÚstandard_normalr   r   Ú_splitr&   rz   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\   rh   )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&   rm   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   Úzerosrn   rQ   rì   Úget_locÚrepeatrÓ   r'   rí   Úconsolidater¿   rÀ   rÁ   ro   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^   rg   rh   r]   )	r!   r2   r'   ro   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&   rz   )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: f2rg   rh   r¦   é   )r!   Úconvertrì   r2   r¬   rn   rí   rÓ   r'   r  rô   r£   rs   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Á   rn   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   ©Úaxisrh   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è   rg   ©r.   r\   r]   rR   )r>   r;   rF   rQ   r;   )ç      Y@g      i@g     Àr@T©Úinplace)ç      ð?r9  r9  )r!   rì   r2   r¬   rí   r,  r$   r1  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 )Nr4  rç   rè   rh   )TFTrR   rQ   r   Tr7  )TTT)r!   rì   r2   r¬   rí   Zget_bool_datar$   r1  r˜   r
   râ   rÓ   rñ   rã   r%   )r¤   r:  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Ñ   rA  )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<   rg   )rˆ   )rf   r9  ç       @g      @g      @)r‰   Úexternal_valuesÚtolistrÐ   r   r   r   Útest_single_mgr_ctorS  s    z%TestBlockManager.test_single_mgr_ctorÚvaluer.   ÚTruer5  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\   r7  )r!   r
  rÉ   r¶   r·   r~   Zreplace_list)r¤   rL  rB  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¤   rF  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 )
NrP  r   r:   rQ  r  r£   rR   )r   r\   r\   r.   r]   )r!   rR  r2   r¬   r–   Úranger$   r%   rS  r   rT  r6   rŸ   rU  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   rs   r  r£   r  r  r  r  r  r  r(  r-  r3  r<  r=  r?  rC  rG  rK  rO  rV  rX  r   r   r   r   rÎ   s  sn   
%þ
ýþ

;þ
% ÿ
þ

	

rÎ   c                 C   s   | j dkr|  ¡ S |  ¡ jS )Nr.   )rW   rI  r*   ÚT)r"   r   r   r   Ú	_as_array{  s    
rZ  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)rZ  r(   r2   rø   rÑ   r6   Zconcatenaterð   rQ   r‡   Z	get_slicerW   r'   Zget_rows_with_maskÚ	TypeErrorr$   r%   r1  )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   rW  r‡   r2   rr   r0   rs   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\  )rZ  Ztaker$   r%   r2   r1  rÑ   )r"   r/  Úindexerr„   Ztakenr   r   r   Úassert_take_okÎ  s    ÿz.TestIndexing.test_take.<locals>.assert_take_okrR   )rc  ©r   r   r   r]   ©r   r.   r\   ©rb   ra  éýÿÿÿ)rW  rW   r2   r¬   r­   r–   r0   )r¤   r"   rd  r^  r   r   r   Ú	test_takeÌ  s     ÿzTestIndexing.test_takerj   Nr6  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 ©Nri   Fr\  )	rZ  rÑ   Zget_indexer_forr0  r$   r%   ÚalgosÚtake_ndr1  )r"   r/  Ú
new_labelsrj   r„   rc  r2  r   r   r   Úassert_reindex_axis_is_okå  s    ýzATestIndexing.test_reindex_axis.<locals>.assert_reindex_axis_is_okre  ©ré   rê   rï   ré   r   rï   r]   rh  rb   )r   r.   r\   r   r.   r\   )rW  rW   r
   rÑ   r0   )r¤   rj   r"   rn  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 rj  )rZ  rk  rl  Zreindex_indexerr$   r%   r1  rÑ   )r"   r/  rm  rc  rj   r„   Zreindexed_matr2  r   r   r   Úassert_reindex_indexer_is_ok  s    ÿ
ÿzGTestIndexing.test_reindex_indexer.<locals>.assert_reindex_indexer_is_okrR   ré   rb   ro  re  )rb   r   rb   r   rï   )rb   rb   rb   r]   rf  )	rW  rW   r
   r2   r¬   r­   rÑ   r3   r0   )r¤   rj   r"   rq  r^  r   r   r   Útest_reindex_indexer  sT    ÿÿû&ÿ&ÿÿÿû
ûz!TestIndexing.test_reindex_indexer)rÉ   rÊ   rË   r‰   rn   r!   ZMANAGERSr¶   rÌ   rÍ   rb  ri  r2   r|   rp  rr  r   r   r   r   r[  �  s"   
ù

7
r[  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_lenru  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¤   ru  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   ra  )r‡   r   rc  )r¤   ru  Ú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³   rw  rx  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¤   ru  r   r   r   Útest_not_slice_like_slicesl  s    z-TestBlockPlacement.test_not_slice_like_sliceszarr, slcée   rf  )r   rg   r:   é   rg   éÈ   c                 C   s   t |ƒj|ksJ ‚d S r#   )r   Úas_slice)r¤   r8   ru  r   r   r   Útest_array_to_slice_conversiony  s    z1TestBlockPlacement.test_array_to_slice_conversionr8   rg  éöÿÿÿ)rb   r   r.   r\   )ra  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   rt  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¤   ru  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   rg   r.   rh   r:   r\   rb   )rg   rg   rg   rg   rg   )r   r‡   Úaddr‚  r2   r3   r–   )r¤   Zbplr   r   r   Útest_blockplacement_add­  s    "z*TestBlockPlacement.test_blockplacement_addzval, inc, expectedr5  )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‡   rv  ry  r{  r|  r~  rƒ  r…  r†  rˆ  rŠ  r‘  r’  r   r   r   r   rs  ;  sÀ   ûþ

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

úþ
÷þ
*þ
üþ	
õþ
rs  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#   )rx   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#   )ro   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&   rq   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   rx   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   rx   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   rx   rp   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_elementr7  c                 C   s2   |j jd }|r | |¡s.J ‚n| |¡r.J ‚d S rŽ   )r¼   rŸ   r–  )r¤   Úobjr¢  r8  rª   r   r   r   Úcheck_can_hold_element=  s    z)TestCanHoldElement.check_can_hold_element)Úindexr8  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   )	rx   r7   r   r­  r   r6   r¬   r'   rG   )r¤   r¢  r®  r8  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 )Nr9  rH  r\   z:Wrong number of dimensions. values.ndim != ndim \[1 != 2\]r³   rV   )r2   r¬   r   r‡   r¶   r·   r~   r   )r&   rm   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^   r5  r   )r
   r   Zreindexr   r¼   rŸ   r)   rc  )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   rD  ru   Ú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
algorithmsrk  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   rn   r†   r‰   r!   r¡   r¢   rÎ   rZ  r[  rs  r“  r°  rµ  r¶  r¹  r   r   r   r   Ú<module>   sZ   ,

Y


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