U
    ÎZj^Â  ã                   @   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
  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+ ej,Z-ej.e+e(gd	�d
d„ ƒZ/ej.dd„ ƒZ0dd„ Z1dd„ Z2dZ3dd e+fdd„Z4d1dd„Z5d2dd„Z6ej.dd„ ƒZ7G dd„ dƒZ8G dd„ dƒZ9dd „ Z:G d!d"„ d"ƒZ;G d#d$„ d$ƒZ<G d%d&„ d&ƒZ=G d'd(„ d(ƒZ>d)d*„ Z?d+d,„ Z@d-d.„ ZAd/d0„ ZBdS )3é    )ÚdateÚdatetimeN)ÚBlockPlacement)Ú	is_scalar)	ÚCategoricalÚ	DataFrameÚDatetimeIndexÚIndexÚIntervalIndexÚSeriesÚ	TimedeltaÚ	TimestampÚperiod_range)ÚDatetimeArrayÚSparseArrayÚTimedeltaArray)ÚBlockManagerÚSingleBlockManagerÚ
make_block)Úensure_block_shapeÚ	new_block©Úparamsc                 C   s   | j S )zS
    Fixture to test both the internal new_block and pseudo-public make_block.
    ©Úparam)Úrequest© r   úh/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/internals/test_internals.pyÚblock_maker2   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 t‚t| jtƒs0t‚t|jtƒs@t‚t  | jj|jj¡ d S ©N)	ÚtmÚassert_numpy_array_equalÚvaluesÚdtypeÚAssertionErrorÚ
isinstanceÚmgr_locsr   Úas_array)ÚleftÚrightr   r   r   Úassert_block_equalC   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)r/   Úarrr   r   r   Úget_numeric_matK   s      ÿr8   é
   c                 C   sX  t |ƒ}t|ƒ}|dkrtf}|f| }t|ƒ}| dkrJ| | ¡| }�nü| dkrhd| | ¡|  }�nÞ| dkr’t dd„ | ¡ | D ƒ|¡}�n´| dkr®tj|tj	d	�}�n˜| d
krÈ|d  d¡}�n~|  
d¡�r@t d| ¡}	|	dk	sötd| › �ƒ‚|	 ¡ d }
|dk�stdƒ‚tt t¡d |
d�j}t|t|ƒd�}�n| dk�rZ|d  d¡}nì| dk�r‚tddddddddddg
ƒ}nÄ| dk�rªtdddddddddd g
ƒ}nœ| d!k�r6|d" d#k�rÆt‚td$d%„ |dd"… D ƒƒ�sæt‚|  d&¡�rútj}nd'}t||ddd|dd(|d)g
|d*�}|j ¡ }||d 7 }ntd+| › d,�ƒ‚|||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>„   s     z create_block.<locals>.<listcomp>)ÚbÚbool©r%   )r   ÚdtúM8[ns]g    eÍÍArR   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]rX   )Úcategoryé   é   é   )Z	category2ÚarN   ÚcrJ   )ÚsparseZ	sparse_naéÿÿÿÿr9   c                 s   s   | ]}|d kV  qdS )r-   Nr   )rK   Úsr   r   r   Ú	<genexpr>œ   s     zcreate_block.<locals>.<genexpr>Z_naç        é   é   ©Ú
fill_valuezUnsupported typestr: "ú"©Ú	placementrU   )r   r5   ÚNr8   Úastyper1   ÚreshapeÚravelÚonesÚbool_Ú
startswithÚreÚsearchr&   Úgroupsr   r2   Ú_datar   r   ÚNotImplementedErrorÚallÚendswithÚnanr   Z	sp_valuesÚviewÚ
ValueError)Útypestrrj   Ú
item_shapeÚ
num_offsetÚmakerÚ	num_itemsr/   Úmatr$   ÚmrS   rg   r7   r   r   r   Úcreate_blockU   sX    
"



 þ
rƒ   c                 C   s0   |d krt }tt| td|ƒdd�tt |¡ƒƒS )Nr   r   )rj   r}   )rk   r   rƒ   Úslicer	   r1   r2   )r|   Únum_rowsr   r   r   Úcreate_single_mgr­   s    þr†   c              	   C   sF  |dkrt f}d}g }i }|  d¡D ] }| ¡ }t|ƒs:q$| d¡ddd… \}}| ¡ }| ¡  d¡}| |¡ tt t|ƒ¡| ƒ}z||  |¡ W n t	k
r¶   |||< Y nX |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   ú;ú:rZ   ú,ú-)r}   r~   c                 S   s
   | j d S ©Nr   )r(   )rN   r   r   r   Ú<lambda>ï   ó    zcreate_mgr.<locals>.<lambda>)Úkeyc                 S   s   g | ]}t t |¡ƒ‘qS r   )r	   r1   r2   )rK   Únr   r   r   rM   ò   s     zcreate_mgr.<locals>.<listcomp>)rk   ÚsplitÚstripr5   Ú	partitionÚextendÚlistr1   r2   ÚKeyErrorr	   ÚitemsÚappendrƒ   Úsortedr   Útuple)Údescrr}   ÚoffsetZ	mgr_itemsZblock_placementsrJ   ÚnamesZblockstrrj   Úblocksr~   r|   Zsblocksr   r   r   r   ·   sL    
   ÿÿþr   c                   C   s   t ddddgƒS )Nr:   r   rZ   r\   )rƒ   r   r   r   r   Úfblockö   s    rž   c                   @   sˆ   e Zd Zdd„ Zej dddddg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d„ ZdS ) Ú	TestBlockc                 C   s    t ddgƒ}|jtjkst‚d S )Nr?   r   )rƒ   r%   r1   Úint32r&   )ÚselfZ
int32blockr   r   r   Útest_constructorü   s    zTestBlock.test_constructorz	typ, datar:   r   rZ   r\   rE   é   rF   r-   r[   rO   rd   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   s6   t |jtƒst‚t |jjtjdddgtj	d�¡ d S )Nr   rZ   r\   rP   )
r'   r(   r   r&   r"   r#   r)   r1   ÚarrayÚintp©r¡   rž   r   r   r   Útest_mgr_locs  s
     ÿzTestBlock.test_mgr_locsc                 C   s>   |j |jj kst‚|j|jjks$t‚t|ƒt|jƒks:t‚d S r!   )r/   r$   r&   r%   r5   r«   r   r   r   Ú
test_attrs  s    zTestBlock.test_attrsc                 C   s"   |  ¡ }||k	st‚t||ƒ d S r!   )r6   r&   r,   )r¡   rž   Úcopr   r   r   Ú	test_copy  s    zTestBlock.test_copyc              	   C   sp  |  ¡ }|j}| d¡}|j|ks&t‚||k	s2t‚t |jjtjddgtj	d�¡ |j
d dk ¡ rht‚|j
d dk ¡ s~t‚|  ¡ }|j}| d¡}|j|ks¤t‚t |jjtjddgtj	d�¡ |j
d dk ¡ rÚt‚|j
d dk ¡ sðt‚|  ¡ }|j}| d¡}t |jjtjddgtj	d�¡ |j
d dk ¡ �s@t‚|  ¡ }tjtd d�� | d¡ W 5 Q R X d S )Nr   rZ   r\   rP   r-   ©Úmatchr[   )r6   r(   Údeleter&   r"   r#   r)   r1   r©   rª   r$   rw   ÚpytestÚraisesÚ
IndexError)r¡   rž   ZnewbZlocsÚnbr   r   r   Útest_delete  s@    
 ÿ
 ÿ
 ÿzTestBlock.test_deletec                 C   s¦   t jddd� dd¡ d¡}t|ƒ}|jjd }t|jt	ƒs@t
‚| d¡}t|jt	ƒsZt
‚t| d	¡ƒ}|jjd }t|jtƒs„t
‚| dd
g¡}t|jtƒs¢t
‚d S )Né   r>   rP   rd   r\   rX   r   r-   rR   r[   )r1   r2   rm   rz   r   Ú_mgrr�   r'   r$   r   r&   r²   r   )r¡   r7   Údfr§   r¶   r   r   r   Útest_delete_datetimelikeC  s    
z"TestBlock.test_delete_datetimelikec                 C   sº   t j dd¡}t|dddgdd�}| ¡ }d|d d …< |jdk ¡ sHt‚t|ƒdksXt‚t|dg dgdd�t|dg dgdd�t|dg dgdd�g}t	||ƒD ]\}}t
||ƒ q¢d S )	Nr[   r\   r-   re   rZ   ri   iñØÿÿr   )r1   ÚrandomÚrandnr   Ú_splitr$   rw   r&   r5   Úzipr,   )r¡   r$   r§   ÚresultÚexpectedÚresÚexpr   r   r   Ú
test_splitT  s    ýzTestBlock.test_splitc              	   C   s$   |}t  t¡� |j W 5 Q R X d S r!   )r"   Úassert_produces_warningÚDeprecationWarningZis_categorical)r¡   rž   r§   r   r   r   Útest_is_categorical_deprecatedg  s    z(TestBlock.test_is_categorical_deprecatedN)Ú__name__Ú
__module__Ú__qualname__r¢   r³   ÚmarkÚparametrizer¨   r¬   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(d)d*d+d,d-g¡d.d/„ ƒZd0d1„ Zd2d3„ Zd4d5„ Zej dd6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGg¡dHdI„ ƒZdJdK„ Z dLdM„ Z!dNdO„ Z"dPdQ„ Z#dRdS„ Z$ej ddTdUg¡dVdW„ ƒZ%ej ddXdYdZd[d\g¡d]d^„ ƒZ&d_d`„ Z'ej dadbdcdbdddegdfg¡dgdh„ ƒZ(diS )jÚTestBlockManagerc                 C   s*   t dƒ}|jdkst‚t|ƒdks&t‚d S )Nza,b,c: f8-1; d,e,f: f8-2rZ   re   )r   Únblocksr&   r5   ©r¡   r    r   r   r   r­   o  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 5 Q R X 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   r1   r©   r(   r³   r´   r&   r   Z_rebuild_blknos_and_blklocsÚiget)r¡   Ztmp_mgrrÐ   r�   Úmsgr    r   r   r   Útest_duplicate_ref_loc_failuret  s    

z/TestBlockManager.test_duplicate_ref_loc_failurec                 C   sR   t  |¡}t  t|ƒt|ƒ¡ t|dƒs,t‚t|dƒs:t‚|jrDt‚|jrNt‚d S )NÚ_is_consolidatedÚ_known_consolidated)r"   r¤   Úassert_frame_equalr   Úhasattrr&   rÔ   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|ƒt|ƒ¡ d S 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   sP   t dƒ}t |¡}t t|ƒt|ƒ¡ tdƒ}t |¡}t t|ƒt|ƒ¡ d S )Núa: categoryrY   )r   r"   r¤   rÖ   r   r†   Zassert_series_equalr   )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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[   rP   )r$   rj   rU   )r�   rÐ   r   r-   rZ   )r	   r”   r1   r¼   Zrandr   r6   r2   rª   rU   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}   rJ   Úfoor[   r-   Úbarr   rP   rZ   )r   Úinsertr5   r–   r1   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\t‚| ¡ }| |j d¡t 	dt¡¡ |j d¡}| 
|¡jtjks¢t‚|  t|jƒdtj t¡ t¡¡ |j d¡}| 
|¡jtjksæt‚| |j d¡tj t¡¡ | 
|¡jtjk�st‚d S )NÚbazrP   rå   Zquux)rç   r5   r–   r1   Úzerosrk   rO   rè   Úget_locÚrepeatrÑ   r%   ré   r&   Úconsolidater¼   r½   rl   r=   Úint_Zfloat_)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	ksnt
‚q|jjj	|jjj	kst
‚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 krú|d k�s>||k	�s>t
‚q’t|tjƒ�s(||k	�s>t
‚q’|d k�r:|d ks’t
‚q’d S )NF)ÚdeepT)r6   r¿   r�   r"   Zassert_equalr$   r'   r1   ÚndarrayÚbaser&   ru   Z_consolidate_inplaceZ_ndarrayr   )	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t‚d S )Nza: sparse-1; b: sparse-2)r   r)   r%   r1   Úfloat64r&   rÏ   r   r   r   Útest_sparseû  s    zTestBlockManager.test_sparsec                 C   s,   t dƒ}t|jƒdkst‚t|tƒs(t‚d S )Nza: sparse-1; b: sparse-2; c: f8r[   )r   r5   r�   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t‚d S r!   ©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t‚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t‚d S )Nzh: datetime-1; g: datetime-2rR   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t‚| d¡jdks0t‚| ¡ jdksBt‚d S )Nz%h: M8[ns, US/Eastern]; g: M8[ns, CET]r   zdatetime64[ns, US/Eastern]r-   zdatetime64[ns, CET]rF   )r   rÑ   r%   r&   r)   rÏ   r   r   r   Útest_as_array_datetime_tz  s    z*TestBlockManager.test_as_array_datetime_tzÚtÚfloat16Úfloat32r÷   r    Úint64c                 C   sL  t dƒ}t |¡}| |¡}| d¡jj|ks2t‚| d¡jj|ksHt‚| d¡jj|ks^t‚t dƒ}t |¡}|j|dd�}| d¡jj|ks”t‚| d¡jj|ksªt‚| d	¡jj|ksÀt‚| d
¡jj|ksÖt‚| d¡jjtjksît‚| d¡jjtjk�st‚|tjk�r0| d¡jjtj	k�sHt‚n| d¡jj|k�sHt‚d S )Nrú   r   r-   rZ   z6a,b: object; c: bool; d: datetime; e: f4; f: f2; g: f8Úignore)Úerrorsr\   rd   re   r[   )
r   r1   r%   rl   rÑ   Útyper&   ré   r  Ú
datetime64)r¡   r  r    Ztmgrr   r   r   Útest_astype"  s$    


zTestBlockManager.test_astypec                 C   sJ  dd„ }t 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�}| d¡jtj	ks¦t
‚| d¡jtjks¼t
‚| d
¡jtjksÒt
‚| d¡jtj	ksèt
‚| d¡jtjksþt
‚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tj	k�s„t
‚| d¡jtjk�sœt
‚| d
¡jtjk�s´t
‚| d¡jtjk�sÌt
‚| d¡jtjk�sät
‚| d¡jj�sþt
tjƒ‚| d¡jtj	k�st
‚| d¡jtjk�s.t
‚| d¡jtjk�sFt
‚d S )Nc                 S   sœ   t | jƒ}t |jƒ}t|ƒt|ƒks(t‚|D ]2}d}|D ]}|j|jk ¡ r8d} qVq8|s,t‚q,|D ]2}d}|D ]}|j|jk ¡ rpd} qŽqp|sdt‚qddS )z4compare the blocks, numeric compare ==, object don'tFTN)Úsetr�   r5   r&   r$   rw   )Zold_mgrÚnew_mgrZ
old_blocksZ
new_blocksrN   Úfoundr¶   Úobr   r   r   Ú_compare?  s"    


z/TestBlockManager.test_convert.<locals>._comparezf: i8; g: f8za,b,foo: object; f: i8; g: f8r   Ú1rP   r-   z2.rZ   zfoo.T)Únumericr[   r\   zEa,b,foo: object; f: i4; bool: bool; dt: datetime; i: i8; g: f8; h: f2rd   re   r£   é   )r   Úconvertrè   r1   r©   rk   ré   rÑ   r%   r  r&   r÷   r    rp   r  r  r  )r¡   r  r    r  r   r   r   Útest_convert>  s<    
ÿzTestBlockManager.test_convertc              	   C   sH   t jtdd�� tdƒ W 5 Q R X t jtdd�� tdƒ W 5 Q R X d S )Nzneed to splitr°   úa: category; b: categoryúa: category2; b: category2)r³   r´   r{   r   ©r¡   r   r   r   Útest_invalid_ea_blockx  s    z&TestBlockManager.test_invalid_ea_blockc                 C   sT   dD ]J}t d|› �ƒ}| ¡ j|ks(t‚t d|› d|› �ƒ}| ¡ j|kst‚qd S )N)r;   r>   rF   rO   rE   rR   rX   za: z; b: rû   )r¡   r%   r    r   r   r   Útest_interleave  s
    z TestBlockManager.test_interleave)rÛ   r>   )r  r>   )úa: category; b: category2rF   )úa: category2rF   )r  rF   )úa: f8r;   )úa: f8; b: i8r;   )úa: f4; b: i8r;   )úa: f4; b: i8; d: objectrF   )úa: bool; b: i8rF   )ú
a: complexrE   )úa: f8; b: categoryrF   )úa: M8[ns]; b: categoryrF   )úa: M8[ns]; b: boolrF   )úa: M8[ns]; b: i8rF   )úa: m8[ns]; b: boolrF   )úa: m8[ns]; b: i8rF   )úa: M8[ns]; b: m8[ns]rF   c                 C   s²  t dƒ}| ¡ jdkst‚t dƒ}| ¡ jdks4t‚t dƒ}| ¡ jdksNt‚t dƒ}| ¡ jdksht‚t dƒ}| ¡ jdks‚t‚t d	ƒ}| ¡ jdksœt‚t d
ƒ}| ¡ jdks¶t‚t dƒ}| ¡ jdksÐt‚t dƒ}| ¡ jdksêt‚t dƒ}| ¡ jdk�st‚t dƒ}| ¡ jdk�s"t‚t dƒ}| ¡ jdk�s>t‚t dƒ}| ¡ jdk�sZt‚t dƒ}| ¡ jdk�svt‚t dƒ}| ¡ jdk�s’t‚t dƒ}| ¡ jdk�s®t‚d S )NrÛ   r>   r  rF   r  r  r;   r  r  r  r  r   rE   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 t¡¡ |  |j d¡tj t¡¡ |  |j d¡tj t¡¡ |  |j d¡tj t¡¡ |  |j d¡tj t¡¡ | ¡ }|jdks¢t	‚| ¡  
¡ }|jdks¼t	‚t|jd jtƒsÒt	‚t |jd jjtjt|jƒtjd	�¡ d S )
NÚfrJ   rN   ÚgÚhr\   r-   r   rP   )rè   r–   rí   r1   r¼   r½   rk   rï   rÎ   r&   Úget_numeric_datar'   r�   r(   r   r"   r#   r)   r2   r5   rª   )r¡   r    Zconsr   r   r   Ú test_consolidate_ordering_issuesÃ  s     ÿz1TestBlockManager.test_consolidate_ordering_issuesc                 C   sÈ   t dƒ}|jddddgdd�}| ¡ r*t‚t |jtddddgƒ¡ 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-2r*  r^   r]   rJ   r   ©Úaxisre   rZ   r-   r[   )r   Úreindex_axisZis_consolidatedr&   r"   Ú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dddgtjd�¡ | ¡ }t |jt	d	d
ddgƒ¡ t 
| |j d
¡¡ ¡ | |j d
¡¡ ¡ ¡ |j|j d
¡t dddg¡dd� |rÐt 
| |j d
¡¡ ¡ t dddg¡¡ n*t 
| |j d
¡¡ ¡ t dddg¡¡ |jdd�}t |jt	d	d
ddgƒ¡ |j|j d
¡t dddg¡dd� |�rvt 
| |j d
¡¡ ¡ t dddg¡¡ n*t 
| |j d
¡¡ ¡ t dddg¡¡ d S )Nú[int: int; float: float; complex: complex;str: object; bool: bool; obj: object; dt: datetimerã   rä   rd   r-   rZ   r[   rP   r=   r:   rE   rO   ç      Y@g      i@g     Àr@T©Úinplaceç      ð?©r6   g     @�@g     @Ÿ@g     p§@)r   rè   r1   r©   ré   r,  r"   r1  r–   r	   rÞ   rÑ   rí   rß   )r¡   Úusing_copy_on_writer    r  Znumeric2r   r   r   Útest_get_numeric_dataë  sR    ýþ
ýþþ
ýþþz&TestBlockManager.test_get_numeric_datac              	   C   sª  d}t ddd�}| dtjdddgtjd�¡ tjt|d	�� | ¡ }W 5 Q R X t 	|j
td
dgƒ¡ t | |j
 d
¡¡ ¡ | |j
 d
¡¡ ¡ ¡ |jdt dddg¡dd� |rât | |j
 d
¡¡ ¡ t dddg¡¡ n*t | |j
 d
¡¡ ¡ t dddg¡¡ tjt|d	�� |jdd�}W 5 Q R X | dt dddg¡¡ |�r|t | |j
 d
¡¡ ¡ t dddg¡¡ n*t | |j
 d
¡¡ ¡ t dddg¡¡ d S )Nz)object-dtype columns with all-bool valuesr4  rã   rä   re   TFrP   r°   rO   rQ   r   r6  r9  )r   rè   r1   r©   ré   r"   rÅ   ÚFutureWarningZget_bool_datar1  r–   r	   rÞ   rÑ   rí   rß   r#   )r¡   r:  rÒ   r    ZboolsZbools2r   r   r   Útest_get_bool_data  sF    ýþþþþþ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_raiseI  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.t‚d S )Nr`   )r   r   r�   rÐ   Úequalsr&   )r¡   rÙ   Úbm1Zbm2r   r   r   Útest_equalsL  s    zTestBlockManager.test_equalsz	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:t‚| |¡st‚qd S r!   )	r   Ú	itertoolsÚpermutationsr�   r   r™   rÐ   rA  r&   )r¡   rÙ   ZbmZblock_permsZbm_permZbm_thisr   r   r   Ú(test_equals_block_order_different_dtypesU  s    z9TestBlockManager.test_equals_block_order_different_dtypesc                 C   s.   t ddd�}| ¡  ¡ dddddgks*t‚d S )	Nr;   rd   )r…   rc   r8  ç       @g      @g      @)r†   Úexternal_valuesÚtolistr&   rÏ   r   r   r   Útest_single_mgr_ctorh  s    z%TestBlockManager.test_single_mgr_ctorÚvaluer-   ÚTruerZ   r[   g      @c              	   C   sL   t dƒ}dt|ƒj› d�}tjt|d�� |jdgdg|d� W 5 Q R X d S )Nr@  z9For argument "inplace" expected type bool, received type Ú.r°   r-   rZ   r6  )r   r  rÈ   r³   r´   r{   Zreplace_list)r¡   rK  rB  rÒ   r   r   r   Útest_validate_bool_argsl  s
    ÿz(TestBlockManager.test_validate_bool_argsN))rÈ   rÉ   rÊ   r­   rÓ   r¨   r³   rË   rÌ   rÚ   rÜ   râ   rê   rò   r¯   rø   rù   r1   r  r÷   rý   rp   r  r    rþ   rÿ   r   r	  r  r  r  r(  r-  r3  r;  r=  r?  rC  rF  rJ  rN  r   r   r   r   rÍ   n  sœ   
	'þ
ýþ

:îþ
%2, ÿ
ûþ

	rÍ   c                 C   s   | j dkr|  ¡ S |  ¡ jS )Nr-   )rU   rH  r)   ÚT)r    r   r   r   Ú	_as_arrayx  s    
rP  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t|j ƒ‚t|j ƒD �]^}|||td ƒƒ |||tdƒƒ |||tdƒƒ |||tddƒƒ |||tddd	ƒƒ |j dk r&|||tjg tjd
�ƒ |||tj|j| tjd
�ƒ |||tj	|j| tjd
�ƒ |j| dk�r.|||t 
|j| ¡d dkƒ |||tjdddgtjd
�ƒ |||g ƒ |||tt|j| ƒƒƒ |j| dkr&|||dddgƒ |||dd	dgƒ 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š|  |¡}nd S t	d ƒf| |f }tj|| t |ƒdd� t | j| | |j| ¡ d S )NrP   r.  r-   r   F©Zcheck_dtype)rP  r'   r1   rô   rÐ   r5   Zconcatenaterì   rO   r„   Z	get_slicerU   Zgetitem_mgrr"   r#   r1  )r    r/  Zslobjr�   ÚaxZslicedZ	mat_slobjr   r   r   Úassert_slice_ok“  s&    
 ÿ
  ÿz4TestIndexing.test_get_slice.<locals>.assert_slice_okrZ   r[   éd   r-   r\   r   éþÿÿÿrP   TFr`   éýÿÿÿ)rU   r&   Úranger„   r1   r©   rp   ro   r/   rì   r2   r”   )r¡   r    rT  rS  r   r   r   Útest_get_slice‘  s0    
   ÿzTestIndexing.test_get_slicec                 C   s�   dd„ }t |jƒD ]x}|||g d� |||dddgd� |||tt |j| ƒƒd� |j| dkr|||dddgd� |||dd	d
gd� qd S )Nc                 S   sT   t | ƒ}|  ||¡}tjt |||¡t |ƒdd� t | j|  |¡|j| ¡ d S )NFrR  )rP  Ztaker"   r#   r1   r1  rÐ   )r    r/  Úindexerr�   Ztakenr   r   r   Úassert_take_okÏ  s      ÿz.TestIndexing.test_take.<locals>.assert_take_ok)rZ  r   r[   r-   rZ   r`   rV  rW  )rX  rU   r”   r/   )r¡   r    r[  rS  r   r   r   Ú	test_takeÍ  s    zTestIndexing.test_takerg   Nr5  c                 C   s  dd„ }t |jƒD ]î}|||tg ƒ|ƒ ||||j| |ƒ ||||j| dddg |ƒ |||tdddgƒ|ƒ |||td|j| d dgƒ|ƒ |j| dkr||||j| d d… |ƒ ||||j| dd d	… |ƒ ||||j| dd
ddd
dg |ƒ qd S )Nc                 S   s`   t | ƒ}| j|  |¡}| j|||d�}tjtj||||d�t |ƒdd� t |j| |¡ d S ©Nrf   FrR  )	rP  rÐ   Zget_indexer_forr0  r"   r#   ÚalgosÚtake_ndr1  )r    r/  Ú
new_labelsrg   r�   rZ  r2  r   r   r   Úassert_reindex_axis_is_okä  s    ýzATestIndexing.test_reindex_axis.<locals>.assert_reindex_axis_is_okr   rå   ræ   rë   r[   rW  r`   r-   rZ   )rX  rU   r	   rÐ   r/   )r¡   rg   r    ra  rS  r   r   r   Útest_reindex_axisá  s*       ÿ   ÿzTestIndexing.test_reindex_axisc              
   C   s”  dd„ }t |jƒD �]z}|||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dddgƒt dddg¡|ƒ |||tdddgƒt dddg¡|ƒ |||td|j| d dgƒt dddg¡|ƒ |j| d	kr|||tdddgƒt dd
dg¡|ƒ qd S )Nc                 S   sV   t | ƒ}tj||||d�}| j||||d�}tj|t |ƒdd� t |j| |¡ d S r]  )rP  r^  r_  Zreindex_indexerr"   r#   r1  rÐ   )r    r/  r`  rZ  rg   r�   Zreindexed_matr2  r   r   r   Úassert_reindex_indexer_is_ok  s       ÿ  ÿzGTestIndexing.test_reindex_indexer.<locals>.assert_reindex_indexer_is_okrP   rå   r`   ræ   rë   r   r[   r-   rZ   )	rX  rU   r	   r1   r©   rª   rÐ   r2   r/   )r¡   rg   r    rc  rS  r   r   r   Útest_reindex_indexer   s„        ÿ    ÿû    ÿ    ÿ    ÿ    ÿûûz!TestIndexing.test_reindex_indexer)rÈ   rÉ   rÊ   r†   rk   r   ZMANAGERSr³   rË   rÌ   rY  r\  r1   ry   rb  rd  r   r   r   r   rQ  ~  s"   
ù

;
rQ  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dddgedddƒfdddg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dddgd gdgddddgddddgdddgdddgg	¡d!d"„ ƒZej deddƒdddgfeddƒg feddƒg fg¡d#d$„ ƒZej d%eddƒdddgfeddƒg feddƒg fedddƒdddgfg¡d&d'„ ƒZd(d)„ Zej d*eddƒdg feddƒddddgfedddƒddddgfdddgddddgfeddƒdg feddƒdd+d,d-gfedddƒdd-d,d+gfdddgdd+d,d.gfeddƒdg feddƒddddgfdddgddddgfg¡d/d0„ ƒZej d1eddƒdddgg¡d2d3„ ƒZdS )4ÚTestBlockPlacementzslc, expectedr   r\   rZ   r[   r-   r`   c                 C   s   t t|ƒƒ|kst‚d S r!   )r5   r   r&   ©r¡   ÚslcrÁ   r   r   r   Útest_slice_len;  s    z!TestBlockPlacement.test_slice_lenrg  c              	   C   s*   d}t jt|d�� t|ƒ W 5 Q R X d S )Nzslice step cannot be zeror°   ©r³   r´   r{   r   ©r¡   rg  rÒ   r   r   r   Útest_zero_step_raisesH  s    z(TestBlockPlacement.test_zero_step_raisesc                 C   s.   t dddƒ}t|ƒ}|jt dd dƒks*t‚d S )Nr[   r`   rV  )r„   r   rZ  r&   )r¡   rg  Úbpr   r   r   Ú!test_slice_canonize_negative_stopN  s    z4TestBlockPlacement.test_slice_canonize_negative_stopNr9   c              	   C   s*   d}t jt|d�� t|ƒ W 5 Q R X d S )Nzunbounded slicer°   ri  rj  r   r   r   Útest_unbounded_slice_raisesU  s    z.TestBlockPlacement.test_unbounded_slice_raisesrU  c                 C   s   t |ƒjrt‚d S r!   ©r   Zis_slice_liker&   )r¡   rg  r   r   r   Útest_not_slice_like_slicesk  s    z-TestBlockPlacement.test_not_slice_like_sliceszarr, slcée   rd   é   éÈ   c                 C   s   t |ƒj|kst‚d S r!   )r   Úas_slicer&   )r¡   r7   rg  r   r   r   Útest_array_to_slice_conversionx  s    z1TestBlockPlacement.test_array_to_slice_conversionr7   rV  rW  éöÿÿÿc                 C   s   t |ƒjrt‚d S r!   ro  )r¡   r7   r   r   r   Útest_not_slice_like_arrays†  s    z-TestBlockPlacement.test_not_slice_like_arraysc                 C   s   t t|ƒƒ|kst‚d S r!   )r”   r   r&   rf  r   r   r   Útest_slice_iter—  s    z"TestBlockPlacement.test_slice_iterzslc, arrc                 C   s"   t  t|ƒjtj|tjd�¡ d S )NrP   )r"   r#   r   r)   r1   Úasarrayrª   )r¡   rg  r7   r   r   r   Útest_slice_to_array_conversionž  s    
 ÿz1TestBlockPlacement.test_slice_to_array_conversionc                 C   sz   t tddƒƒ}| d¡jtdddƒks*t‚| t d¡¡jtdddƒksLt‚t| t ddd¡¡ƒdddddgksvt‚d S )Nr   rd   r-   re   r9   rZ   r`   )r   r„   Úaddrt  r&   r1   r2   r”   )r¡   Zbplr   r   r   Útest_blockplacement_add¬  s    "z*TestBlockPlacement.test_blockplacement_addzval, inc, expectedé   é   é   é   c                 C   s   t t|ƒ |¡ƒ|kst‚d S r!   )r”   r   r{  r&   )r¡   ÚvalÚincrÁ   r   r   r   Útest_blockplacement_add_int²  s    z.TestBlockPlacement.test_blockplacement_add_intr�  c              	   C   s0   d}t jt|d�� t|ƒ d¡ W 5 Q R X d S )Nziadd causes length changer°   rv  )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„   rh  rk  rm  rn  rp  ru  rw  rx  rz  r|  rƒ  r„  r   r   r   r   re  :  sÀ   ûþ

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

úþ


÷þ
,þ
üþ	
õþ
re  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edœdd„Zedœdd„Zeedœdd„Zeedœd d!„Zd"S )#ÚTestCanHoldElementc                 C   s   | S r!   r   ©r.   r   r   r   rŒ   Ï  r�   zTestCanHoldElement.<lambda>c                 C   s   |   ¡ S r!   )Z	to_seriesr†  r   r   r   rŒ   Ð  r�   c                 C   s   | j S r!   )ru   r†  r   r   r   rŒ   Ñ  r�   c                 C   s   t | ƒS r!   )r”   r†  r   r   r   rŒ   Ò  r�   c                 C   s
   |   t¡S r!   )rl   rF   r†  r   r   r   rŒ   Ó  r�   c                 C   s
   t  | ¡S r!   )r1   ry  r†  r   r   r   rŒ   Ô  r�   c                 C   s   | d S r‹   r   r†  r   r   r   rŒ   Õ  r�   c                 C   s   | d d… S r‹   r   r†  r   r   r   rŒ   Ö  r�   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t‚t |j ¡ ¡}| d ¡s8t‚d |d< |d tjksRt‚t 	d¡t
dddƒg}|D ]}| |¡s~t‚||d< qltdddƒ}| |¡r¢t‚d}tjt|d�� ||d< W 5 Q R X d S )Nr   r   z
2010-10-10iÚ  r9   zLvalue should be a 'Timestamp', 'NaT', or array of those. Got 'date' instead.r°   )rƒ   Ú_can_hold_elementr&   Úpdr©   r$   rn   ZNaTr1   r  r   r   r³   r´   Ú	TypeError)r¡   rá   r7   Úvalsr�  rÒ   r   r   r   Ú$test_datetime_block_can_hold_elementà  s     
ÿz7TestCanHoldElement.test_datetime_block_can_hold_elementr%   c                 C   sB   t jdddg|d�}t |¡}t|jdgdd�}| g ¡s>t‚d S )Nr-   r[   r\   rP   rZ   rT   )r1   r©   r
   Úfrom_breaksr   ru   rˆ  r&   )r¡   r%   r‡  r7   Úiir§   r   r   r   Ú(test_interval_can_hold_element_emptylistý  s    
z;TestCanHoldElement.test_interval_can_hold_element_emptylistc           
      C   s  t jddddg|d�}t |¡}t|jdgdd�}||ƒ}|  ||d¡ | |¡sVt‚tj|d d	… d
d�}||ƒ}|  ||d¡ | |¡r�t‚t t	dƒt	dƒt	dƒg¡}||ƒ}|  ||d¡ | |¡rÐt‚t t
dƒt
dƒt
dƒg¡}	||	ƒ}|  ||d¡ | |¡�rt‚d S )Nr-   r[   r\   é	   rP   rZ   rT   Tr`   Zneither)ÚclosedF)r1   r©   r
   r�  r   ru   Úcheck_series_setitemrˆ  r&   r   r   )
r¡   r%   r‡  r7   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¡dgdd�}| g ¡s6t‚d S )NÚ2016r[   rI   ©ZperiodsÚfreqr-   rZ   rT   )r   r   ru   rm   rˆ  r&   )r¡   Úpir§   r   r   r   Ú&test_period_can_hold_element_emptylist!  s    z9TestCanHoldElement.test_period_can_hold_element_emptylistc                 C   sx   t dddd�}||ƒ}|  ||d¡ | d¡d d… }||ƒ}|  ||d¡ | d	¡d d… }||ƒ}|  ||d¡ d S )
Nr•  r[   rI   r–  TÚDr`   FÚS)r   r’  ZasfreqZto_timestamp)r¡   r‡  r˜  r“  Zpi2Zdtir   r   r   Útest_period_can_hold_element'  s    z/TestCanHoldElement.test_period_can_hold_element)Úindexr7  c                 C   s    |   |||¡ |  |||¡ d S r!   )r’  Úcheck_frame_setitem)r¡   r“  r�  r7  r   r   r   Úcheck_setting7  s    z TestCanHoldElement.check_settingr6  c                 C   s2   |j jd }|r | |¡s.t‚n| |¡r.t‚d S r‹   )r¹   r�   rˆ  r&   )r¡   Úobjr“  r7  r§   r   r   r   Úcheck_can_hold_element;  s    z)TestCanHoldElement.check_can_hold_elementc                 C   sh   |j  ¡ }t|ƒ}|  |||¡ t|ƒr2||d< n||d t|ƒ…< |rV|j|ksdt‚n|jt	ksdt‚d S r‹   )
ru   r6   r   r¡  r   r5   r©   r&   r%   rF   )r¡   r“  r�  r7  r7   Úserr   r   r   r’  B  s    

z'TestCanHoldElement.check_series_setitemc                 C   sz   |j  ¡ }t|ƒ}|  |||¡ t|ƒr4||jd< n||jd t|ƒ…df< |rd|jjd |ksvt	‚n|j
d tksvt	‚d S )N)r   r   r   )ru   r6   r   r¡  r   Zilocr5   r¹   Úarraysr&   ZdtypesrF   )r¡   r“  r�  r7  r7   rº   r   r   r   rž  R  s    
z&TestCanHoldElement.check_frame_setitemN)rÈ   rÉ   rÊ   r³   Úfixturer‡  rŒ  rË   rÌ   r1   r  Zuint64r÷   r�  r”  r™  rœ  r	   rO   rŸ  r¡  r’  rž  r   r   r   r   r…  Ì  s.   øÿ


r…  c                   @   s   e Zd Zdd„ ZdS )ÚTestShouldStorec                 C   sp   t dddgƒ}t|ƒ}|jjd }| |¡s0t‚| |d d… ¡sFt‚| | ¡ ¡rXt‚| t |¡¡rlt‚d S )NrI   ÚBÚCr   r`   )	r   r   r¹   r�   Zshould_storer&   Z
as_orderedr1   ry  )r¡   Úcatrº   r§   r   r   r   Útest_should_store_categoricale  s    z-TestShouldStore.test_should_store_categoricalN)rÈ   rÉ   rÊ   r©  r   r   r   r   r¥  d  s   r¥  c              	   C   sF   t  ddg¡}tdƒ}d}tjt|d�� | ||dd� W 5 Q R X d S )Nr8  rG  rZ   z:Wrong number of dimensions. values.ndim != ndim \[1 != 2\]r°   rT   )r1   r©   r„   r³   r´   r{   )r   r$   rj   rÒ   r   r   r   Útest_validate_ndimu  s
    rª  c                  C   sf   t dddddgƒ} tdddgƒ | ¡}ttdddgƒƒ | ¡}|jjd jj|jjd jjksbt‚d S )Nr   r-   rZ   r[   r\   )	r	   r   Zreindexr   r¹   r�   r(   rZ  r&   )rñ   r]   rN   r   r   r   Útest_block_shape~  s    r«  c                 C   sÐ   t j t ddg¡¡}| |tt|ƒƒ|jd�}|jj	dks>t
‚| tkrÌ|jdksTt
‚| |tt|ƒƒ|j|jd�}|jj	dks€t
‚|jdksŽt
‚| | ¡ tt|ƒƒ|j|jd�}|jj	dks¾t
‚|jdksÌt
‚d S )Nr-   rZ   rT   )rL   ÚuF)r%   rU   )r‰  r£  ZPandasArrayr1   r©   r„   r5   rU   r%   Úkindr&   r   Zis_extensionZto_numpy)r   r7   rÀ   r   r   r   Útest_make_block_no_pandas_array†  s      
  ÿr®  c               	   C   sB   t tdƒƒ} | jjd }t t¡� t|| jdd� W 5 Q R X d S )Nr[   r   T)Zfastpath)	r   rX  ru   r�   r"   rÅ   r<  r   r�  )r¢  r§   r   r   r   Ú-test_single_block_manager_fastpath_deprecated   s    r¯  )N)N)Cr   r   rD  rr   Únumpyr1   r³   Zpandas._libs.internalsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsrW   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
algorithmsr^  Zpandas.core.arraysr   r   r   Zpandas.core.internalsr   r   r   Zpandas.core.internals.blocksr   r   Zskip_array_manager_invalid_testZ
pytestmarkr¤  r   r    r,   r8   rk   rƒ   r†   r   rž   rŸ   rÍ   rP  rQ  re  r…  r¥  rª  r«  r®  r¯  r   r   r   r   Ú<module>   sZ   ,

X


?
s     =  	