a
    nÝEb¾  ã                   @   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„Z4d/dd„Z5d0dd„Z6G dd„ dƒZ7G dd„ dƒZ8dd„ Z9G 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,„ Z@d-d.„ ZAdS )1é    )Ú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   úe/home/ja/django-apps/lartica_env/lib/python3.9/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 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_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    ÿr7   é
   c                 C   s6  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|ƒ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ÍÍArR   zM8[nszM8\[ns,\s*(\w+\/?\w*)\]zincompatible typestr -> r   r,   z)must have only 1 num items for a tz-aware)Útz©Úndim)Ú	timedeltaÚtdúm8[ns]rX   )Úcategory)
r,   r,   é   rZ   é   r[   r[   r[   é   r\   )Z	category2)
Úar]   r]   r]   rN   rN   Úcr^   r^   rI   )ÚsparseZ	sparse_naéÿÿÿÿr8   c                 s   s   | ]}|d kV  qdS )r,   Nr   )rJ   Úsr   r   r   Ú	<genexpr>œ   rM   zcreate_block.<locals>.<genexpr>Ú_naç        rZ   r[   r\   é   é   ©Ú
fill_valuezUnsupported typestr: "ú"©Ú	placementrU   )r   r4   ÚNr7   Úastyper0   ÚreshapeÚravelÚonesÚbool_Ú
startswithÚreÚsearchÚgroupsr   r1   Ú_datar   r   ÚNotImplementedErrorÚallÚendswithÚnanr   Z	sp_valuesÚviewÚ
ValueError)Útypestrrk   Ú
item_shapeÚ
num_offsetÚmakerÚ	num_itemsr.   Úmatr$   ÚmrS   rh   r6   r   r   r   Úcreate_blockU   sX    
"



 þ
r„   c                 C   s0   |d u rt }tt| td|ƒdd�tt |¡ƒƒS )Nr   r   )rk   r~   )rl   r   r„   Úslicer	   r0   r1   )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   ú;ú:rZ   ú,ú-)r~   r   c                 S   s
   | j d S ©Nr   )r'   )rN   r   r   r   Ú<lambda>ï   rM   zcreate_mgr.<locals>.<lambda>)Úkeyc                 S   s   g | ]}t t |¡ƒ‘qS r   )r	   r0   r1   )rJ   Únr   r   r   rL   ò   rM   zcreate_mgr.<locals>.<listcomp>)rl   ÚsplitÚstripr4   Ú	partitionÚextendÚlistr0   r1   ÚKeyErrorr	   ÚitemsÚappendr„   Úsortedr   Útuple)Údescrr~   ÚoffsetZ	mgr_itemsZblock_placementsrI   ÚnamesZblockstrrk   Úblocksr   r}   Zsblocksr   r   r   r   ·   sF    
ÿÿþr   c                   @   sŽ   e Zd Zd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d„ ZdS ) Ú	TestBlockc                 C   s@   t dg d¢ƒ| _t ddgƒ| _t dddgƒ| _t dd	gƒ| _d S )
Nr9   ©r   rZ   r\   rD   é   rE   r,   r[   rO   re   )r„   ÚfblockZcblockZoblockZ
bool_block)ÚselfÚmethodr   r   r   Úsetup_method÷   s    zTestBlock.setup_methodc                 C   s    t ddgƒ}|jtjksJ ‚d S )Nr>   r   )r„   r%   r0   Úint32)r¢   Z
int32blockr   r   r   Útest_constructorý   s    zTestBlock.test_constructorz	typ, datar9   rŸ   rD   r    rE   r,   r[   rO   re   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   s8   t | jjtƒsJ ‚t | jjjtjg d¢tj	d�¡ d S )NrŸ   rP   )
r&   r¡   r'   r   r"   r#   r(   r0   ÚarrayÚintp©r¢   r   r   r   Útest_mgr_locs  s    ÿzTestBlock.test_mgr_locsc                 C   sJ   | j j| j jjksJ ‚| j j| j jjks,J ‚t| j ƒt| j jƒksFJ ‚d S r!   )r¡   r.   r$   r%   r4   r®   r   r   r   Ú
test_attrs  s    zTestBlock.test_attrsc                 C   s(   | j  ¡ }|| j usJ ‚t| j |ƒ d S r!   )r¡   r5   r+   )r¢   Úcopr   r   r   Ú	test_copy  s    
zTestBlock.test_copyc                 C   sF  | j  ¡ }| d¡ t|jtƒs$J ‚t |jjt	j
ddgt	jd�¡ |jd dk ¡ sZJ ‚| j  ¡ }| d¡ t|jtƒs~J ‚t |jjt	j
ddgt	jd�¡ |jd dk ¡ s´J ‚| j  ¡ }| d¡ t |jjt	j
ddgt	jd�¡ |jd dk ¡ sþJ ‚| j  ¡ }tjtd d�� | d¡ W d   ƒ n1 �s80    Y  d S )Nr   rZ   r\   rP   r,   ©Úmatchr[   )r¡   r5   Údeleter&   r'   r   r"   r#   r(   r0   r¬   r­   r$   rx   ÚpytestÚraisesÚ
IndexError)r¢   Znewbr   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@J ‚| 
d¡ t|jt	ƒsZJ ‚t| d	¡ƒ}|jjd }t|jtƒs„J ‚| 
dd
g¡ t|jtƒs¢J ‚d S )Né   r=   rP   re   r\   rX   r   r,   rR   r[   )r0   r1   rn   r{   r   Ú_mgrr�   r&   r$   r   rµ   r   )r¢   r6   Údfrª   r   r   r   Útest_delete_datetimelike;  s    
z"TestBlock.test_delete_datetimelikec                 C   s¸   t j dd¡}t|g d¢dd�}| ¡ }d|d d …< |jdk ¡ sFJ ‚t|ƒdksVJ ‚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[   r,   rf   rZ   rj   iñØÿÿr   r,   rf   )
r0   ÚrandomÚrandnr   Ú_splitr$   rx   r4   Úzipr+   )r¢   r$   rª   ÚresultÚexpectedÚresÚexpr   r   r   Ú
test_splitL  s    ýzTestBlock.test_splitc                 C   s:   | j }t t¡� |j W d   ƒ n1 s,0    Y  d S r!   )r¡   r"   Úassert_produces_warningÚDeprecationWarningZis_categorical)r¢   rª   r   r   r   Útest_is_categorical_deprecated_  s    z(TestBlock.test_is_categorical_deprecatedN)Ú__name__Ú
__module__Ú__qualname__r¤   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(g d)¢¡d*d+„ ƒZd,d-„ Zd.d/„ Zd0d1„ Zej dg d2¢¡d3d4„ ƒZd5d6„ Z d7d8„ Z!d9d:„ Z"d;d<„ Z#d=d>„ Z$ej dd?d@g¡dAdB„ ƒZ%ej dg dC¢¡dDdE„ ƒZ&dFdG„ Z'ej dHdIdJg dK¢dLg¡dMdN„ ƒZ(dOS )PÚ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-2rZ   rf   )r   Únblocksr4   ©r¢   r    r   r   r   r°   g  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   r0   r¬   r'   r¶   r·   ÚAssertionErrorr   Z_rebuild_blknos_and_blklocsÚiget)r¢   Ztmp_mgrrÒ   r�   Úmsgr    r   r   r   Útest_duplicate_ref_loc_failurel  s    
&
z/TestBlockManager.test_duplicate_ref_loc_failurec                 C   sR   t  |¡}t  t|ƒt|ƒ¡ t|dƒs,J ‚t|dƒs:J ‚|jrDJ ‚|jrNJ ‚d S )NÚ_is_consolidatedÚ_known_consolidated)r"   r§   Úassert_frame_equalr   Ú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|ƒ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$   rk   rU   )r�   rÒ   r   r,   rZ   )r	   r”   r0   r¾   Zrandr   r5   r1   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~   rI   Úfoor[   r,   Úbarr   rP   rZ   )r   Úinsertr4   r–   r0   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 t¡ t¡¡ |j d¡}| 
|¡jtjksæJ ‚| |j d¡tj t¡¡ | 
|¡jtjk�sJ ‚d S )NÚbazrP   rè   Zquux)rê   r4   r–   r0   Úzerosrl   rO   rë   Úget_locÚrepeatrÔ   r%   rì   Úconsolidater¾   r¿   rm   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	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)r5   rÁ   r�   r"   Zassert_equalr$   r&   r0   ÚndarrayÚbaserv   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J ‚d S )Nza: sparse-1; b: sparse-2)r   r(   r%   r0   Úfloat64rÑ   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   r4   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-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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]rE   )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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,   rZ   z6a,b: object; c: bool; d: datetime; e: f4; f: f2; g: f8Úignore)Úerrorsr\   re   rf   r[   )	r   r0   r%   rm   rÔ   Útyperì   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¦J ‚| d¡jtj
ks¼J ‚| d
¡jt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tj	k�s„J ‚| d¡jtj
k�sœJ ‚| d
¡jtjk�s´J ‚| d¡jtjk�sÌJ ‚| d¡jtjk�säJ ‚| d¡jj�sþJ tjƒ‚| d¡jtj	k�sJ ‚| d¡jtj
k�s.J ‚| d¡jtjk�sFJ ‚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�   r4   r$   rx   )Zold_mgrÚnew_mgrZ
old_blocksZ
new_blocksrN   ÚfoundÚnbÚobr   r   r   Ú_compare7  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: f2re   rf   r    é   )r   Úconvertrë   r0   r¬   rl   rì   rÔ   r%   r  rú   r¥   rq   r
  r  r  )r¢   r  r    r  r   r   r   Útest_convert6  s<    
ÿzTestBlockManager.test_convertc                 C   sp   t jtdd�� tdƒ W d   ƒ n1 s,0    Y  t jtdd�� tdƒ W d   ƒ n1 sb0    Y  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_blockp  s    &z&TestBlockManager.test_invalid_ea_blockc                 C   sT   dD ]J}t d|› �ƒ}| ¡ j|ks(J ‚t d|› d|› �ƒ}| ¡ j|ksJ ‚qd S )N)r:   r=   rE   rO   rD   rR   rX   za: z; b: rþ   )r¢   r%   r    r   r   r   Útest_interleavew  s
    z TestBlockManager.test_interleave))rÞ   r=   )r  r=   )úa: category; b: category2rE   )úa: category2rE   )r  rE   )úa: f8r:   )úa: f8; b: i8r:   )úa: f4; b: i8r:   )úa: f4; b: i8; d: objectrE   )úa: bool; b: i8rE   )ú
a: complexrD   )úa: f8; b: categoryrE   )úa: M8[ns]; b: categoryrE   )úa: M8[ns]; b: boolrE   )úa: M8[ns]; b: i8rE   )úa: m8[ns]; b: boolrE   )úa: m8[ns]; b: i8rE   )úa: M8[ns]; b: m8[ns]rE   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  rE   r  r  r:   r  r   r!  r"  r#  rD   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¢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ÚfrI   rN   ÚgÚhr\   r,   r   rP   )rë   r–   rð   r0   r¾   r¿   rl   rò   rÐ   Úget_numeric_datar&   r�   r'   r   r"   r#   r(   r1   r4   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�}|jdks(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]   rI   r   ©ÚaxisrZ   rf   r,   r[   )
r   Úreindex_axisrÐ   r"   Úassert_index_equalr–   r	   rá   rÔ   râ   )r¢   r    Ú	reindexedr   r   r   Útest_reindex_itemsÌ  s     ÿÿÿÿz#TestBlockManager.test_reindex_itemsc                 C   s0  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� t 
| |j d¡¡ ¡ t g d	¢¡¡ |jd
d�}t |jt	g d¢ƒ¡ |j|j d¡t g d¢¡d
d� t 
| |j d¡¡ ¡ t g d	¢¡¡ d S )Nú[int: int; float: float; complex: complex;str: object; bool: bool; obj: object; dt: datetimeræ   rç   re   ©r,   rZ   r[   rP   )r<   r9   rD   rO   r9   )ç      Y@g      i@g     Àr@T©Úinplace©r5   )g     @�@g     @Ÿ@g     p§@)r   rë   r0   r¬   rì   r/  r"   r4  r–   r	   rá   rÔ   rð   râ   )r¢   r    r  Znumeric2r   r   r   Útest_get_numeric_dataà  s>    ýþ
ýþ
ýþz&TestBlockManager.test_get_numeric_datac                 C   s  t ddd�}| dtjg d¢tjd�¡ | ¡ }t |jt	ddgƒ¡ t 
| |j d¡¡ ¡ | |j d¡¡ ¡ ¡ |jd	t g d¢¡d
d� t | |j d¡¡ ¡ t g d¢¡¡ |jd
d�}| d	t g d¢¡¡ t | |j d¡¡ ¡ t g d¢¡¡ d S )Nr7  ræ   rç   rf   )TFTrP   rO   rQ   r   Tr:  r<  )FTF)r   rë   r0   r¬   rì   Zget_bool_datar"   r4  r–   r	   rá   rÔ   rð   râ   r#   )r¢   r    ZboolsZbools2r   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_raise#  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 )Nr`   )r   r   r�   rÒ   Úequals)r¢   rÜ   Úbm1Zbm2r   r   r   Útest_equals&  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Ò   rB  )r¢   rÜ   Z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:   re   )r†   )rd   ç      ð?ç       @g      @g      @)r‡   Úexternal_valuesÚtolistrÑ   r   r   r   Útest_single_mgr_ctorB  s    z%TestBlockManager.test_single_mgr_ctorÚvaluer,   ÚTruer8  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 )NrA  z9For argument "inplace" expected type bool, received type Ú.r³   r,   rZ   r:  )r   r
  rÊ   r¶   r·   r|   Zreplace_list)r¢   rM  rC  rÕ   r   r   r   Útest_validate_bool_argsF  s    ÿÿz(TestBlockManager.test_validate_bool_argsN))rÊ   rË   rÌ   r°   rÖ   r«   r¶   rÍ   rÎ   rÝ   rß   rå   rí   rõ   r²   rû   rü   r0   r  rú   r   rq   r  r¥   r  r  r  r  r  r  r  r+  r0  r6  r=  r>  r@  rD  rG  rL  rP  r   r   r   r   rÏ   f  sl   
	'þ
ýþ

:þ
%&ÿ
þ

	rÏ   c                 C   s   | j dkr|  ¡ S |  ¡ jS )Nr,   )rU   rJ  r(   ÚT)r    r   r   r   Ú	_as_arrayR  s    
rR  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 �]X}|||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g d¢tjd
�ƒ |||g ƒ |||t
t|j| ƒƒƒ |j| dkr&|||g d¢ƒ |||g 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š|  |¡}nd S t	d ƒf| |f }tj|| t |ƒdd� t | j| | |j| ¡ d S )NrP   r1  r,   r   F©Zcheck_dtype)rR  r&   r0   r÷   rÒ   r4   Zconcatenaterï   rO   r…   Z	get_slicerU   Zgetitem_mgrr"   r#   r4  )r    r2  Zslobjr‚   ÚaxZslicedZ	mat_slobjr   r   r   Úassert_slice_okm  s"    
 ÿ
ÿz4TestIndexing.test_get_slice.<locals>.assert_slice_okrZ   r[   éd   r,   r\   r   éþÿÿÿrP   )TTF©r   r,   rZ   ©r`   rX  éýÿÿÿ)rU   Úranger…   r0   r¬   rq   rp   r.   rï   r1   r”   )r¢   r    rV  rU  r   r   r   Útest_get_slicek  s,    
 ÿzTestIndexing.test_get_slicec                 C   sŠ   dd„ }t |jƒD ]r}|||g d� |||g d¢d� |||tt |j| ƒƒd� |j| dkr|||g d¢d� |||g d¢d� qd S )Nc                 S   sT   t | ƒ}|  ||¡}tjt |||¡t |ƒdd� t | j|  |¡|j| ¡ d S )NFrT  )rR  Ztaker"   r#   r0   r4  rÒ   )r    r2  Úindexerr‚   Ztakenr   r   r   Úassert_take_ok©  s    ÿz.TestIndexing.test_take.<locals>.assert_take_ok)r^  ©r   r   r   r[   rY  rZ  )r\  rU   r”   r.   )r¢   r    r_  rU  r   r   r   Ú	test_take§  s    zTestIndexing.test_takerh   Nr9  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 ©Nrg   FrT  )	rR  rÒ   Zget_indexer_forr3  r"   r#   ÚalgosÚtake_ndr4  )r    r2  Ú
new_labelsrh   r‚   r^  r5  r   r   r   Úassert_reindex_axis_is_ok¾  s    ýzATestIndexing.test_reindex_axis.<locals>.assert_reindex_axis_is_okr`  ©rè   ré   rî   rè   r   rî   r[   r[  r`   )r   r,   rZ   r   r,   rZ   )r\  rU   r	   rÒ   r.   )r¢   rh   r    rf  rU  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 rb  )rR  rc  rd  Zreindex_indexerr"   r#   r4  rÒ   )r    r2  re  r^  rh   r‚   Zreindexed_matr5  r   r   r   Úassert_reindex_indexer_is_okÝ  s    ÿ
ÿzGTestIndexing.test_reindex_indexer.<locals>.assert_reindex_indexer_is_okrP   rè   r`   rg  r`  )r`   r   r`   r   rî   )r`   r`   r`   r[   rY  )	r\  rU   r	   r0   r¬   r­   rÒ   r1   r.   )r¢   rh   r    ri  rU  r   r   r   Útest_reindex_indexerÚ  sT    ÿÿû&ÿ&ÿÿÿû
ûz!TestIndexing.test_reindex_indexer)rÊ   rË   rÌ   r‡   rl   r   ZMANAGERSr¶   rÍ   rÎ   r]  ra  r0   rz   rh  rj  r   r   r   r   rS  X  s"   
ù

;
rS  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\   rZ   r[   r,   r`   c                 C   s   t t|ƒƒ|ksJ ‚d S r!   )r4   r   ©r¢   ÚslcrÃ   r   r   r   Útest_slice_len  s    z!TestBlockPlacement.test_slice_lenrm  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¢   rm  rÕ   r   r   r   Útest_zero_step_raises"  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[   r`   rX  )r…   r   r^  )r¢   rm  Úbpr   r   r   Ú!test_slice_canonize_negative_stop(  s    z4TestBlockPlacement.test_slice_canonize_negative_stopNr8   c                 C   s>   d}t jt|d�� t|ƒ W d   ƒ n1 s00    Y  d S )Nzunbounded slicer³   ro  rp  r   r   r   Útest_unbounded_slice_raises/  s    z.TestBlockPlacement.test_unbounded_slice_raisesrW  c                 C   s   t |ƒjrJ ‚d S r!   ©r   Zis_slice_like)r¢   rm  r   r   r   Útest_not_slice_like_slicesE  s    z-TestBlockPlacement.test_not_slice_like_sliceszarr, slcée   rY  )r   re   r8   é   re   éÈ   c                 C   s   t |ƒj|ksJ ‚d S r!   )r   Úas_slice)r¢   r6   rm  r   r   r   Útest_array_to_slice_conversionR  s    z1TestBlockPlacement.test_array_to_slice_conversionr6   rZ  éöÿÿÿ)r`   r   r,   rZ   )rX  r   rZ   r\   )r,   r   r`   )r,   r,   r,   c                 C   s   t |ƒjrJ ‚d S r!   ru  )r¢   r6   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   rl  r   r   r   Útest_slice_iterq  s    z"TestBlockPlacement.test_slice_iterzslc, arr)r[   rZ   r,   c                 C   s"   t  t|ƒjtj|tjd�¡ d S )NrP   )r"   r#   r   r(   r0   Úasarrayr­   )r¢   rm  r6   r   r   r   Útest_slice_to_array_conversionx  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   re   r,   rf   r8   rZ   r`   )re   re   re   re   re   )r   r…   Úaddrz  r0   r1   r”   )r¢   Zbplr   r   r   Útest_blockplacement_add†  s    "z*TestBlockPlacement.test_blockplacement_addzval, inc, expectedr8  )r,   rZ   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…   rn  rq  rs  rt  rv  r{  r}  r~  r€  r‚  r‰  rŠ  r   r   r   r   rk    sÀ   ûþ

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

úþ
÷þ
*þ
üþ	
õþ
rk  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�   ©  rM   zTestCanHoldElement.<lambda>c                 C   s   |   ¡ S r!   )Z	to_seriesrŒ  r   r   r   r�   ª  rM   c                 C   s   | j S r!   )rv   rŒ  r   r   r   r�   «  rM   c                 C   s   t | ƒS r!   )r”   rŒ  r   r   r   r�   ¬  rM   c                 C   s
   |   t¡S r!   )rm   rE   rŒ  r   r   r   r�   ­  rM   c                 C   s
   t  | ¡S r!   )r0   r  rŒ  r   r   r   r�   ®  rM   c                 C   s   | d S rŒ   r   rŒ  r   r   r   r�   ¯  rM   c                 C   s   | d d… S rŒ   r   rŒ  r   r   r   r�   °  rM   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Ú  r8   zLvalue should be a 'Timestamp', 'NaT', or array of those. Got 'date' instead.r³   )r„   Ú_can_hold_elementÚpdr¬   r$   ro   ZNaTr0   r  r   r   r¶   r·   Ú	TypeError)r¢   rä   r6   Úvalsr‡  rÕ   r   r   r   Ú$test_datetime_block_can_hold_elementº  s     
ÿz7TestCanHoldElement.test_datetime_block_can_hold_elementr%   c                 C   s@   t jg d¢|d�}t |¡}t|jdgdd�}| g ¡s<J ‚d S )N)r,   r[   r\   rP   r,   rZ   rT   )r0   r¬   r
   Úfrom_breaksr   rv   rŽ  )r¢   r%   r�  r6   Ú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dgdd�}||ƒ}|  ||d¡ | |¡sRJ ‚tj|d d… dd	�}||ƒ}|  ||d
¡ | |¡rŒJ ‚t tdƒtdƒtdƒg¡}||ƒ}|  ||d
¡ | |¡rÌJ ‚t t	dƒt	dƒt	dƒg¡}	||	ƒ}|  ||d
¡ | |¡�rJ ‚d S )N)r,   r[   r\   é	   rP   r,   rZ   rT   Tr`   Zneither)ÚclosedFr[   r\   )
r0   r¬   r
   r“  r   rv   Úcheck_series_setitemrŽ  r   r   )
r¢   r%   r�  r6   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 ¡s6J ‚d S )NÚ2016r[   rH   ©ZperiodsÚfreqr,   rZ   rT   )r   r   rv   rn   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[   rH   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)Úindexr;  c                 C   s    |   |||¡ |  |||¡ d S r!   )r˜  Úcheck_frame_setitem)r¢   r™  r£  r;  r   r   r   Úcheck_setting  s    z TestCanHoldElement.check_settingr:  c                 C   s2   |j jd }|r | |¡s.J ‚n| |¡r.J ‚d S rŒ   )r»   r�   rŽ  )r¢   Úobjr™  r;  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|u sdJ ‚n|jtksdJ ‚d S rŒ   )	rv   r5   r   r§  r   r4   r¬   r%   rE   )r¢   r™  r£  r;  r6   Úserr   r   r   r˜    s    

z'TestCanHoldElement.check_series_setitemc                 C   s|   |j  ¡ }t|ƒ}|  |||¡ t|ƒr4||jd< n||jd t|ƒ…df< |rf|jjd j	|u sxJ ‚n|j
d tksxJ ‚d S )N)r   r   r   )rv   r5   r   r§  r   Zilocr4   r»   r�   r$   ZdtypesrE   )r¢   r™  r£  r;  r6   r¼   r   r   r   r¤  ,  s    
z&TestCanHoldElement.check_frame_setitemN)rÊ   rË   rÌ   r¶   Úfixturer�  r’  rÍ   rÎ   r0   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   sn   t g d¢ƒ}t|ƒ}|jjd }| |¡s.J ‚| |d d… ¡sDJ ‚| | ¡ ¡rVJ ‚| t |¡¡rjJ ‚d S )N)rH   ÚBÚCr   r`   )r   r   r»   r�   Zshould_storeZ
as_orderedr0   r  )r¢   Úcatr¼   rª   r   r   r   Útest_should_store_categoricalB  s    z-TestShouldStore.test_should_store_categoricalN)rÊ   rË   rÌ   r®  r   r   r   r   rª  A  s   rª  c                 C   sZ   t  ddg¡}tdƒ}d}tjt|d�� | ||dd� W d   ƒ n1 sL0    Y  d S )NrH  rI  rZ   z:Wrong number of dimensions. values.ndim != ndim \[1 != 2\]r³   rT   )r0   r¬   r…   r¶   r·   r|   )r   r$   rk   rÕ   r   r   r   Útest_validate_ndimR  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,   rZ   r[   r\   r8  r   )r	   r   Zreindexr   r»   r�   r'   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v s>J ‚| t
u rÌ|jdu sTJ ‚| |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,   rZ   rT   )rK   ÚuF)r%   rU   )r�  ZarraysZPandasArrayr0   r¬   r…   r4   rU   r%   Úkindr   Zis_extensionZto_numpy)r   r6   rÂ   r   r   r   Útest_make_block_no_pandas_arrayc  s    ÿr³  c                  C   sV   t tdƒƒ} | jjd }t t¡�  t|| jdd� W d   ƒ n1 sH0    Y  d S )Nr[   r   T)Zfastpath)	r   r\  rv   r�   r"   rÇ   ÚFutureWarningr   r£  )r¨  rª   r   r   r   Ú-test_single_block_manager_fastpath_deprecated}  s    rµ  )N)N)Br   r   rE  rs   Únumpyr0   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
algorithmsrc  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+   r7   rl   r„   r‡   r   rž   rÏ   rR  rS  rk  r‹  rª  r¯  r°  r³  rµ  r   r   r   r   Ú<module>   sT   ,

X


?p   o =  	