o
    Û­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„Z8d0d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 )1é    )Ú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   ó   | j S )zS
    Fixture to test both the internal new_block and pseudo-public make_block.
    ©Úparam)Úrequest© r   úb/var/www/html/CropPilot/venv/lib/python3.10/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ƒsJ ‚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ÚlibÚstride_tricksÚ
as_stridedÚitemsizeÚlenÚcopy)r1   Úarrr   r   r    Úget_numeric_matM   s   ÿþr<   é
   c                 C   s"  t |ƒ}t|ƒ}|du rtf}|f| }t|ƒ}| dv r$| | ¡| }nà| dv r2d| | ¡|  }nÒ| dv rFt dd„ | ¡ | D ƒ|¡}n¾| dv rStj|tj	d	�}n±| d
v r_|d  d¡}n¥|  
d¡r˜t d| ¡}	|	dusuJ d| › �ƒ‚|	 ¡ d }
|dksƒJ dƒ‚tt t¡d |
d�j}t|t|ƒd�}nl| dv r¤|d  d¡}n`| dv r¯tg d¢ƒ}nU| dv rºtg d¢ƒ}nJ| 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Úf8Úf4Úf2ÚintÚi8Úi4Úi2Úi1ÚuintÚu8Úu4Úu2Úu1)ÚcomplexÚc16Ú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ÍÍAr[   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]ra   )Úcategory)
r/   r/   é   rc   é   rd   rd   rd   é   re   )Ú	category2)
Úarg   rg   rg   rW   rW   Úcrh   rh   rS   )ÚsparseÚ	sparse_naéÿÿÿÿr=   c                 s   s   � | ]}|d kV  qdS )r/   Nr   )rT   Úsr   r   r    Ú	<genexpr>ž   s   € zcreate_block.<locals>.<genexpr>Ú_naç        rc   rd   re   é   é   ©Ú
fill_valuezUnsupported typestr: "ú"©Ú	placementr^   )r   r9   ÚNr<   Úastyper3   ÚreshapeÚravelÚonesÚbool_Ú
startswithÚreÚsearchÚgroupsr	   r4   Ú_datar   r   ÚNotImplementedErrorÚallÚendswithÚnanr   Ú	sp_valuesÚviewÚ
ValueErrorr   )Útypestrrv   Ú
item_shapeÚ
num_offsetÚmakerÚ	num_itemsr1   Úmatr'   Úmr\   rs   r;   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   )rv   rŠ   )rw   r   r�   Úslicer
   r3   r4   )r‰   Únum_rowsr   r   r    Úcreate_single_mgr°   s   þr“   c              	   C   sD  |du rt f}d}g }i }|  d¡D ]O}| ¡ }t|ƒsq| d¡ddd… \}}| ¡ }| ¡  d¡}| |¡ tt t|ƒ¡| ƒ}z	||  |¡ W n t	yZ   |||< Y nw |t|ƒ7 }qt
|ƒ}g }	d}
| ¡ D ]\}}| d¡d }|	 t||||
d�¡ |
t|ƒ7 }
qnt|	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   ú;ú:rc   ú,ú-)rŠ   r‹   c                 S   s
   | j d S ©Nr   )r*   )rW   r   r   r    Ú<lambda>ò   ó   
 zcreate_mgr.<locals>.<lambda>)Úkeyc                 S   s   g | ]	}t t |¡ƒ‘qS r   )r
   r3   r4   )rT   Únr   r   r    rV   õ   s    zcreate_mgr.<locals>.<listcomp>)rw   ÚsplitÚstripr9   Ú	partitionÚextendÚlistr3   r4   ÚKeyErrorr
   ÚitemsÚappendr�   Úsortedr   Útuple)ÚdescrrŠ   ÚoffsetÚ	mgr_itemsÚblock_placementsrS   ÚnamesÚblockstrrv   Úblocksr‹   r‰   Úsblocksr   r   r    r"   º   sH   
ÿÿÿþr"   c                   C   s   t dg d¢ƒS )Nr>   ©r   rc   re   )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 )NrD   r   )r�   r(   r3   Úint32)ÚselfÚ
int32blockr   r   r    Útest_constructorÿ   s   zTestBlock.test_constructorz	typ, datar>   r¯   rL   é   rO   r/   rd   rX   rp   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¯   rY   )	r)   r*   r   r%   r&   r+   r3   Ú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$   )r1   r'   r(   r9   r¾   r   r   r    Ú
test_attrs  s   zTestBlock.test_attrsc                 C   s"   |  ¡ }||us
J ‚t||ƒ d S r$   )r:   r.   )r³   r°   Úcopr   r   r    Ú	test_copy  s   zTestBlock.test_copyc                 C   sÒ  |  ¡ }|j}| d¡d }|j|u sJ ‚||usJ ‚t |jjtjddgtjd�¡ |j	d dk 
¡ r6J ‚|j	d dk 
¡ sAJ ‚|  ¡ }|j}| d¡}t|ƒdksUJ ‚|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 
¡ s–J ‚|  ¡ }| d¡}t|ƒdks§J ‚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   ƒ d S 1 sâw   Y  d S )Nr   rc   re   rY   r/   ©Úmatchrd   )r:   r*   Údeleter%   r&   r+   r3   r¼   r½   r'   rƒ   r9   ÚpytestÚraisesÚ
IndexError)r³   r°   ÚnewbÚlocsÚnbr   r   r    Útest_delete   sD   ÿ
ÿÿ
ÿ"ÿ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s-J ‚t|d jt	ƒs7J ‚t|d jt	ƒsAJ ‚t| d
¡ƒ}|jjd }t|jtƒsVJ ‚| 
ddg¡}t|ƒd	kseJ ‚t|d jtƒsoJ ‚t|d jtƒsyJ ‚d S )Né   rC   rY   rp   re   ra   r   r/   rc   r[   rd   )r3   r4   ry   r‡   r   Ú_mgrr­   r)   r'   r   rÅ   r9   r   )r³   r;   Ú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 ¡ s'J ‚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||ƒ qZd S )
Nrc   )rd   re   )rd   r/   rq   ru   iñØÿÿrd   r   r/   rq   )r3   ÚrandomÚdefault_rngÚstandard_normalr   r   Ú_splitr'   rƒ   r9   Ú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-2rc   rq   )r"   Únblocksr9   ©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>w   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   r3   r¼   r*   rÆ   rÇ   ÚAssertionErrorr   Ú_rebuild_blknos_and_blklocsÚiget)r³   Ú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ƒs%J ‚|jr*J ‚|jr/J ‚d S )N©rã   Ú_is_consolidatedÚ_known_consolidated)	r%   r·   Úassert_frame_equalr   Ú	_from_mgrrã   Úhasattrrë   rì   )r³   r#   Ú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ê   rb   )r"   r%   r·   rí   r   rî   rã   r“   Úassert_series_equalr   Ú_constructor_from_mgr)r³   r#   rð   ÚsmgrÚ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Úabcrc   )rd   rd   rd   rY   )r'   rv   r^   )r­   rã   r   r/   )r
   r¡   r3   rÑ   rÒ   r   r:   r   r4   r½   r^   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©rd   ©rŠ   rS   Úfoord   r/   Úbarr   rY   rc   )r"   Úinsertr9   r£   r3   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sQJ ‚|  t|jƒdtj d¡ t¡ t¡¡ |j d¡}| 
|¡jt t¡ksxJ ‚| |j d¡tj d¡ t¡¡ | 
|¡jtjks”J ‚d S )NÚbazrY   r  Úquuxrc   )r  r9   r£   r3   Úzerosrw   rX   r  Úget_locÚrepeatræ   r(   r  ÚconsolidaterÑ   rÒ   rÓ   rx   rB   Úfloat64)r³   r#   Úidxrð   r   r   r    Útest_set_change_dtypeÑ  s&   ýÿz&TestBlockManager.test_set_change_dtypec           	      C   s8  |j dd�}t|j|jƒD ]*\}}t |j|j¡ t|jtjƒr+|jj	|jj	u s*J ‚q|jj
j	|jj
j	u s7J ‚q| ¡  |j dd�}t|j|jƒD ]P\}}|j}|j}t ||¡ t|tjƒrf|j	}|j	}n|j
j	}|j
j	}t|tƒr‚|d u r{|d u s�||us�J ‚qIt|tjƒs�||usŽJ ‚qI|d u r—|d u s™J ‚qId S )NF)ÚdeepT)r:   rÕ   r­   r%   Úassert_equalr'   r)   r3   ÚndarrayÚbaseÚ_ndarrayÚ_consolidate_inplacer   )	r³   r#   Úcprº   Úcp_blkÚbvalsÚcpvalsÚlbaseÚrbaser   r   r    rÂ   ê  s0   
€ì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(   r3   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: f8rd   )r"   r9   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   ó   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   r  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-2r[   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sJ ‚| ¡ jdks!J ‚d S )Nz%h: M8[ns, US/Eastern]; g: M8[ns, CET]r   zdatetime64[ns, US/Eastern]r/   zdatetime64[ns, CET]rO   )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   sF  t dƒ}t |¡}| |¡}| d¡jj|ksJ ‚| d¡jj|ks$J ‚| d¡jj|ks/J ‚t dƒ}t |¡}|j|dd�}| d¡jj|ksJJ ‚| d¡jj|ksUJ ‚| d	¡jj|ks`J ‚| d
¡jj|kskJ ‚| d¡jjtjkswJ ‚| d¡jjtjksƒJ ‚|tjkr–| d¡jjtjks”J ‚d S | d¡jj|ks¡J ‚d S )Nr  r   r/   rc   z6a,b: object; c: bool; d: datetime; e: f4; f: f2; g: f8Úignore)Úerrorsre   rp   rq   rd   )	r"   r3   r(   rx   ræ   Útyper  r)  Ú
datetime64)r³   r&  r#   Útmgrr   r   r    Útest_astype6  s$   



zTestBlockManager.test_astypec                 C   sD  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�}|rNdntj}| d¡j|ks[J ‚| d
¡j|kseJ ‚| d¡j|ksoJ ‚| d¡jtj	kszJ ‚| 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�sJ ‚| d¡jtjk�s J ‚d S )Nc                 S   sœ   t | jƒ}t |jƒ}t|ƒt|ƒksJ ‚|D ]}d}|D ]}|j|jk ¡ r*d} nq|s/J ‚q|D ]}d}|D ]}|j|jk ¡ rFd} nq8|sKJ ‚q2dS )z4compare the blocks, numeric compare ==, object don'tFTN)Úsetr­   r9   r'   rƒ   )Úold_mgrÚnew_mgrÚ
old_blocksÚ
new_blocksrW   ÚfoundrË   Úobr   r   r    Ú_compareS  s(   

þ
þ
úz/TestBlockManager.test_convert.<locals>._comparezf: i8; g: f8T©r:   za,b,foo: object; f: i8; g: f8r   Ú1rY   r/   z2.rc   zfoo.Ústrrd   re   zEa,b,foo: object; f: i4; bool: bool; dt: datetime; i: i8; g: f8; h: f2rp   rq   r¶   é   )r"   Úconvertr  r3   r¼   rw   r  ræ   r(   r)  r  r²   r|   r,  r-  r'  )r³   Úusing_infer_stringr7  r#   r2  r(   r   r   r    Útest_convertR  s>   
ÿzTestBlockManager.test_convertc                 C   sT   dD ]%}t d|› �ƒ}| ¡ j|ksJ ‚t d|› d|› �ƒ}| ¡ j|ks'J ‚qd S )N)r?   rC   rO   rX   rL   r[   ra   za: z; b: r   )r³   r(   r#   r   r   r    Útest_interleave�  s   üz TestBlockManager.test_interleave))ró   rC   )za: category; b: categoryrC   )úa: category; b: category2rO   )úa: category2rO   )za: category2; b: category2rO   )úa: f8r?   )úa: f8; b: i8r?   )úa: f4; b: i8r?   )úa: f4; b: i8; d: objectrO   )úa: bool; b: i8rO   )ú
a: complexrL   )úa: f8; b: categoryrO   )úa: M8[ns]; b: categoryrO   )úa: M8[ns]; b: boolrO   )úa: M8[ns]; b: i8rO   )úa: m8[ns]; b: boolrO   )úa: m8[ns]; b: i8rO   )úa: M8[ns]; b: m8[ns]rO   c                 C   s¤  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s4J ‚t dƒ}| ¡ jdksAJ ‚t d	ƒ}| ¡ jdksNJ ‚t d
ƒ}| ¡ jdks[J ‚t dƒ}| ¡ jdkshJ ‚t dƒ}| ¡ jdksuJ ‚t dƒ}| ¡ jdks‚J ‚t dƒ}| ¡ jdks�J ‚t dƒ}| ¡ jdksœJ ‚t dƒ}| ¡ jdks©J ‚t dƒ}| ¡ jdks¶J ‚t dƒ}| ¡ jdksÃJ ‚t dƒ}| ¡ jdksÐJ ‚d S )Nró   rC   r@  rO   rA  rB  r?   rC  rD  rE  rF  rG  rL   rH  rI  rJ  rK  rL  rM  rN  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smJ ‚t|jd	 jtƒsxJ ‚t |jd	 jjtjt|jƒtjd
�¡ d S )NÚfrc   rS   rW   ÚgÚhre   r/   r   rY   )r  r£   r
  r3   rÑ   rÒ   rÓ   rw   r  rá   Úget_numeric_datar)   r­   r*   r   r%   r&   r+   r4   r9   r½   )r³   r#   Ú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)rQ  rh   rg   rS   r   ©Úaxisrq   rc   r/   rd   )
r"   Úreindex_axisÚ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� |rdt 
| |j d¡¡ ¡ t g d¢¡¡ d S t 
| |j d¡¡ ¡ t g d	¢¡¡ d S )Nú[int: int; float: float; complex: complex;str: object; bool: bool; obj: object; dt: datetimerÿ   r   rp   ©r/   rc   rd   rY   )rB   r>   rL   rX   r>   )ç      Y@g      i@g     Àr@T©Úinplace)ç      ð?rb  rb  )r"   r  r3   r¼   r  rS  r%   rZ  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¢¡¡ d S t | |j d¡¡ ¡ t g d¢¡¡ d S )Nr]  rÿ   r   rq   )TFTrY   rX   r   Tr`  )TTT)r"   r  r3   r¼   r  Úget_bool_datar%   rZ  r£   r
   rú   ræ   r
  rû   r&   )r³   rc  r#   Ú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 )Nrk   )r"   r   r­   rã   Úequals)r³   rñ   Úbm1Ú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 ]}tt|ƒ|jƒ}| |¡sJ ‚| |¡s$J ‚qd S r$   )r"   Ú	itertoolsÚpermutationsr­   r   r¦   rã   rl  )r³   rñ   ÚbmÚblock_permsÚbm_permÚ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?   rp   )r’   )ro   rb  ç       @g      @g      @)r“   Úexternal_valuesÚtolistrâ   r   r   r    Útest_single_mgr_ctorS  s   z%TestBlockManager.test_single_mgr_ctorÚvaluer/   ÚTruer^  g      @c                 C   sb   t dƒ}dt|ƒj› d�}tjt|d�� |jdgdg|d� W d   ƒ d S 1 s*w   Y  d S )Nrk  z9For argument "inplace" expected type bool, received type Ú.rÃ   r/   rc   r`  )r"   r,  rÛ   rÆ   rÇ   rˆ   Úreplace_list)r³   r{  rm  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rdndd�¡ t |jtjg d¢tr-dndd�¡ t	|j
ƒdks;J ‚d S )	Núa,b,c: i8; d: f8r   ©r   r   r/   r   r)  r²   rY   )r   r   r   r/   rc   )r"   Ú_iset_split_blockr3   r¼   r%   r&   Úblklocsr   Úblknosr9   r­   ©r³   rr  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	r$dndd�¡ t |j
tjg d¢t	r6dndd�¡ t|jƒd	ksDJ ‚d S )
Nr€  r   r=   r�  r)  r²   rY   )r   rc   rc   r/   rd   )r"   r‚  r3   r¼   r¡   Úranger%   r&   rƒ  r   r„  r9   r­   r…  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  r3   r(  r  r"  r|   r)  r²   r#  r$  r%  r/  r>  r?  rO  rU  r\  re  rh  rj  ro  rv  rz  r  r†  rˆ  r   r   r   r    rà   s  sp    
%þ
ýþ

;þ
% ÿ
þ

	

rà   c                 C   s   | j dkr	|  ¡ S |  ¡ jS )Nr/   )r^   rx  r+   ÚT)r#   r   r   r    Ú	_as_array{  s   

rŠ  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?   rC   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 ]u}|||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ƒr1| j| }t|ƒr1t|ƒr1t|ƒt|ƒkr1t |tjt|ƒt|ƒ td�g¡}t|t	ƒr>| j
||d�}n| jdkrX|dkrXt|tjƒrX|jtkrX|  |¡}nt|ƒ‚t	d ƒf| |f }tj|| t |ƒdd� t | j| | |j| ¡ d S )NrY   rV  r/   r   F©Úcheck_dtype)rŠ  r)   r3   r  rã   r9   Úconcatenater	  rX   r‘   Ú	get_slicer^   r(   Úget_rows_with_maskÚ	TypeErrorr%   r&   rZ  )r#   rW  ÚslobjrŽ   ÚaxÚslicedÚ	mat_slobjr   r   r    Úassert_slice_ok–  s*   
 ÿ


ÿ
ÿ z4TestIndexing.test_get_slice.<locals>.assert_slice_okrc   rd   éd   r/   re   r   éþÿÿÿrY   )TTF)
r^   r‡  r‘   r3   r{   r1   r|   r	  r4   r¼   )r³   r#   r–  r“  r   r   r    Útest_get_slice”  s$    
 ÿ€ïzTestIndexing.test_get_slicec              	   C   sÆ   dd„ }t |jƒD ]W}|||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Œ  )rŠ  Útaker%   r&   r3   rZ  rã   )r#   rW  ÚindexerrŽ   Útakenr   r   r    Úassert_take_okÎ  s   ÿ"z.TestIndexing.test_take.<locals>.assert_take_okrY   )r›  ©r   r   r   rd   ©r   r/   rc   ©rk   r˜  éýÿÿÿ)r‡  r^   r3   r¼   r½   r¡   r1   )r³   r#   r�  r“  r   r   r    Ú	test_takeÌ  s    ÿ€özTestIndexing.test_takers   Nr_  c                 C   sú   dd„ }t |jƒD ]q}|||tg ƒ|ƒ ||||j| |ƒ ||||j| g d¢ |ƒ |||tg d¢ƒ|ƒ |||td|j| d dgƒ|ƒ |j| dkrz||||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 ©Nrr   FrŒ  )	rŠ  rã   Úget_indexer_forrX  r%   r&   ÚalgosÚtake_ndrZ  )r#   rW  Ú
new_labelsrs   rŽ   r›  r[  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  rd   r¡  rk   )r   r/   rc   r   r/   rc   )r‡  r^   r
   rã   r1   )r³   rs   r#   r¨  r“  r   r   r    Útest_reindex_axisâ  s"   ÿÿ€ôzTestIndexing.test_reindex_axisc              	   C   s„  dd„ }t |jƒD ]¶}|||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 r£  )rŠ  r¥  r¦  Úreindex_indexerr%   r&   rZ  rã   )r#   rW  r§  r›  rs   rŽ   Úreindexed_matr[  r   r   r    Úassert_reindex_indexer_is_ok  s   ÿ
ÿzGTestIndexing.test_reindex_indexer.<locals>.assert_reindex_indexer_is_okrY   r  rk   r©  rž  )rk   r   rk   r   r  )rk   rk   rk   rd   rŸ  )	r‡  r^   r
   r3   r¼   r½   rã   r4   r1   )r³   rs   r#   r­  r“  r   r   r    Útest_reindex_indexer  sX   ÿÿû&ÿ&ÿÿÿû
û€Ýz!TestIndexing.test_reindex_indexer)rÛ   rÜ   rÝ   r“   rw   r"   ÚMANAGERSrÆ   rÞ   rß   r™  r¢  r3   r…   rª  r®  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   re   rc   rd   r/   rk   c                 C   ó   t t|ƒƒ|ks
J ‚d S r$   )r9   r   ©r³   Úslcr×   r   r   r    Útest_slice_len<  s   z!TestBlockPlacement.test_slice_lenr³  c                 C   ó@   d}t jt|d�� t|ƒ W d   ƒ d S 1 sw   Y  d S )Nzslice step cannot be zerorÃ   ©rÆ   rÇ   rˆ   r   ©r³   r³  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 )Nrd   rk   r˜  )r‘   r   r›  )r³   r³  Úbpr   r   r    Ú!test_slice_canonize_negative_stopO  s   z4TestBlockPlacement.test_slice_canonize_negative_stopNr=   c                 C   rµ  )Nzunbounded slicerÃ   r¶  r·  r   r   r    Útest_unbounded_slice_raisesV  s   
"ÿz.TestBlockPlacement.test_unbounded_slice_raisesr—  c                 C   ó   t |ƒjrJ ‚d S r$   ©r   Úis_slice_like)r³   r³  r   r   r    Útest_not_slice_like_slicesl  s   z-TestBlockPlacement.test_not_slice_like_sliceszarr, slcée   rŸ  )r   rp   r=   é   rp   éÈ   c                 C   s   t |ƒj|ks	J ‚d S r$   )r   Úas_slice)r³   r;   r³  r   r   r    Útest_array_to_slice_conversiony  s   z1TestBlockPlacement.test_array_to_slice_conversionr;   r   éöÿÿÿ)rk   r   r/   rc   )r˜  r   rc   re   )r/   r   rk   )r/   r/   r/   c                 C   r¼  r$   r½  )r³   r;   r   r   r    Útest_not_slice_like_arrays‡  s   z-TestBlockPlacement.test_not_slice_like_arraysc                 C   r±  r$   )r¡   r   r²  r   r   r    Útest_slice_iter˜  s   z"TestBlockPlacement.test_slice_iterzslc, arr)rd   rc   r/   c                 C   s"   t  t|ƒjtj|tjd�¡ d S )NrY   )r%   r&   r   r+   r3   Úasarrayr½   )r³   r³  r;   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s&J ‚t| t ddd¡¡ƒg d¢ks8J ‚d S )	Nr   rp   r/   rq   r=   rc   rk   )rp   rp   rp   rp   rp   )r   r‘   ÚaddrÃ  r3   r4   r¡   )r³   Úbplr   r   r    Útest_blockplacement_add­  s   "(z*TestBlockPlacement.test_blockplacement_addzval, inc, expectedr^  )r/   rc   re   )é   é   é   )rÏ  rÎ  rÍ  )rÍ  rÎ  é   )r   r/   rd   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   sF   d}t jt|d�� t|ƒ d¡ W d   ƒ d S 1 sw   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‘   r´  r¸  rº  r»  r¿  rÄ  rÆ  rÇ  rÉ  rÌ  rÓ  rÔ  r   r   r   r    r°  ;  sÂ    ûþ

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

úþ
÷þ
*þ
üþ
	õþ
r°  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defdd„Zdedefdd„ZdS )ÚTestCanHoldElementc                 C   s   | S r$   r   ©r0   r   r   r    r™   Ð  s    zTestCanHoldElement.<lambda>c                 C   s   |   ¡ S r$   )Ú	to_seriesrÖ  r   r   r    r™   Ñ  ó    c                 C   r   r$   )r�   rÖ  r   r   r    r™   Ò  s    c                 C   s   t | ƒS r$   )r¡   rÖ  r   r   r    r™   Ó  rØ  c                 C   s
   |   t¡S r$   )rx   rO   rÖ  r   r   r    r™   Ô  rš   c                 C   s
   t  | ¡S r$   )r3   rÈ  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™   ×  s    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 ¡sJ ‚d |d< |d tju s)J ‚t d¡t	dddƒg}|D ]}| |¡s?J ‚||d< q6t
dddƒ}| |¡rQJ ‚d}tjt|d�� ||d< W d   ƒ d S 1 sjw   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'   rz   ÚNaTr3   r-  r   r   rÆ   rÇ   r‘  )r³   rý   r;   Ú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/   rd   re   rY   r/   rc   r]   )r3   r¼   r   Úfrom_breaksr   r�   r   rÚ  )r³   r(   rÙ  r;   Ú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¡ | |¡s+J ‚tj|d d… dd	�}||ƒ}t	 
t¡� |  ||d
¡ W d   ƒ n1 sQw   Y  | |¡r]J ‚t tdƒtdƒtdƒg¡}||ƒ}t	 
t¡� |  ||d
¡ W d   ƒ n1 s†w   Y  | |¡r’J ‚t tdƒtdƒtdƒg¡}	||	ƒ}t	 
t¡� |  ||d
¡ W d   ƒ n1 s»w   Y  | |¡rÇJ ‚d S )N)r/   rd   re   é	   rY   r/   rc   r]   Trk   Úneither)ÚclosedFrd   re   )r3   r¼   r   rß  r   r�   r   Úcheck_series_setitemrÚ  r%   Úassert_produces_warningÚFutureWarningr   r   )
r³   r(   rÙ  r;   rà  rº   ÚelemÚii2Úii3Úii4r   r   r    Útest_interval_can_hold_element  s0   
ÿÿÿ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Ú2016rd   ÚY©ÚperiodsÚfreqr/   rc   r]   )r   r   r�   ry   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 s6w   Y  | d	¡d d… }||ƒ}t t¡� |  ||d¡ W d   ƒ d S 1 s`w   Y  d S )
Nrí  rd   rî  rï  TÚDrk   Frl   )r   rå  Úasfreqr%   ræ  rç  Úto_timestamp)r³   rÙ  rò  rè  Úpi2Údtir   r   r    Útest_period_can_hold_element+  s   ÿ"ÿz/TestCanHoldElement.test_period_can_hold_elementra  c                 C   s4   |j jd }|r| |¡sJ ‚d S | |¡rJ ‚d S r˜   )rÎ   r­   rÚ  )r³   Úobjrè  ra  rº   r   r   r    Úcheck_can_hold_element=  s   z)TestCanHoldElement.check_can_hold_elementÚindexc                 C   sn   |j  ¡ }t|dd�}|  |||¡ t|ƒr||d< n||d t|ƒ…< |r.|j|u s,J ‚d S |jtks5J ‚d S )NFr8  r   )	r�   r:   r   rû  r   r9   r¼   r(   rO   )r³   rè  rü  ra  r;   Úserr   r   r    rå  D  s   

z'TestCanHoldElement.check_series_setitemN)rÛ   rÜ   rÝ   rÆ   ÚfixturerÙ  rÞ  rÞ   rß   r3   r)  Úuint64r  rá  rì  ró  rù  rX   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… ¡s"J ‚| | ¡ ¡r+J ‚| t |¡¡r5J ‚d S )N)rR   ÚBÚCr   rk   )r   r   rÎ   r­   Úshould_storeÚ
as_orderedr3   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   ƒ d S 1 s)w   Y  d S )Nrb  rw  rc   z:Wrong number of dimensions. values.ndim != ndim \[1 != 2\]rÃ   r]   )r3   r¼   r   r‘   rÆ   rÇ   rˆ   r   )r'   rv   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s,J ‚d S )N)r   r/   rc   rd   re   r^  r   )r
   r   Úreindexr   rÎ   r­   r*   r›  )r  rg   rW   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 s!J ‚| tu rh|jdu s,J ‚| |tt|ƒƒ|j	|jd�}|j	j
dv sBJ ‚|jdu sIJ ‚| | ¡ tt|ƒƒ|j	|jd�}|j	j
dv saJ ‚|jdu sjJ ‚d S d S )Nr/   rc   r]   )rU   ÚuF)r(   r^   )rÛ  ÚarraysÚNumpyExtensionArrayr3   r¼   r   r‘   r9   r^   r(   Úkindr   Úis_extensionÚto_numpy)r!   r;   rÖ   r   r   r    Útest_make_block_no_pandas_arrayw  s   ÿñr  r$   )Er   r   rp  r~   Únumpyr3   rÆ   Úpandas._libs.internalsr   Úpandas.compatr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsr`   Úpandas.core.dtypes.commonr   ÚpandasrÛ  r   r   r	   r
   r   r   r   r   r   Úpandas._testingÚ_testingr%   Úpandas.core.algorithmsÚcoreÚ
algorithmsr¥  Úpandas.core.arraysr   r   r   Úpandas.core.internalsr   r   r   Úpandas.core.internals.blocksr   r   r   Úskip_array_manager_invalid_testÚ
pytestmarkrþ  r!   r#   r.   r<   rw   r�   r“   r"   r°   r±   rà   rŠ  r‹  r°  rÕ  r   r  r	  r  r   r   r   r    Ú<module>   s\    ,


Y

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