U
    ¾mœdF„  ã                   @  sÊ   d dl mZ d dlmZ d dlZd dlZd dlZd dlmZ d dl	m
Z
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mZ d dlmZ d dlmZ G d	d
„ d
ƒZG dd„ deƒZ dS )é    )Úannotations)ÚdatetimeN)Ú	Timestamp)Úis_datetime64tz_dtypeÚis_integer_dtype)ÚCategoricalDtype)
ÚCategoricalIndexÚDatetimeIndexÚIndexÚIntervalIndexÚ
MultiIndexÚPeriodIndexÚ
RangeIndexÚSeriesÚTimedeltaIndexÚisna)ÚBaseMaskedArrayc                   @  sþ  e Zd ZU dZded< ejdd„ ƒZddœ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d„ Z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*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Z d:d;„ Z!d<d=„ Z"d>d?„ Z#ej$ %d@dAdB„ dCdB„ g¡dDdE„ ƒZ&dFdG„ Z'ej$ %dHdIdJg¡ej$ %dKdLdMg¡ej$ %dNdIdJg¡dOdP„ ƒƒƒZ(dQdR„ Z)ej$j*dSdT„ ƒZ+dUdV„ Z,dWdX„ Z-dYdZ„ Z.d[d\„ Z/d]d^„ Z0d_d`„ Z1dadb„ Z2dcdd„ Z3dedf„ Z4dgdh„ Z5didj„ Z6dkdl„ Z7dmdn„ Z8dodp„ Z9dLS )qÚBasez/
    Base class for index sub-class tests.
    ztype[Index]Ú
_index_clsc                 C  s   t dƒ‚d S ©NzMethod not implemented©ÚNotImplementedError©Úself© r   úT/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/indexes/common.pyÚsimple_index)   s    zBase.simple_indexr
   )Úreturnc                 C  s   t dƒ‚d S r   r   r   r   r   r   Úcreate_index-   s    zBase.create_indexc              	   C  s:   d  dddddg¡}tjt|d�� |  ¡  W 5 Q R X d S )Nú|zNIndex\(\.\.\.\) must be called with a collection of some kind, None was passedzPDatetimeIndex\(\) must be called with a collection of some kind, None was passedzQTimedeltaIndex\(\) must be called with a collection of some kind, None was passedz:__new__\(\) missing 1 required positional argument: 'data'z2__new__\(\) takes at least 2 arguments \(1 given\)©Úmatch)ÚjoinÚpytestÚraisesÚ	TypeErrorr   )r   Úmsgr   r   r   Útest_pickle_compat_construction0   s    øÿz$Base.test_pickle_compat_constructionc              	   C  sb   |}dt |ƒj› �}tjt|d�� | d¡ W 5 Q R X tjt|d�� | dd¡ W 5 Q R X d S )Nz\This method is only implemented for DatetimeIndex, PeriodIndex and TimedeltaIndex; Got type r    é   é   )ÚtypeÚ__name__r#   r$   r   Úshift©r   r   Úidxr&   r   r   r   Ú
test_shiftA   s    ÿzBase.test_shiftc              	   C  s2   |}t jtdd�� t|ƒ|g d� W 5 Q R X d S )Nz"Index.name must be a hashable typer    ©Úname)r#   r$   r%   r*   ©r   r   r.   r   r   r   Ú test_constructor_name_unhashableM   s    z%Base.test_constructor_name_unhashablec                 C  sÆ   |}t |tƒsHd|_t|ƒ}t ||¡ t|dd�}d|_t ||¡ nzddg|_t|ƒ}t |ttdddddd	gd
d�ddgd�¡ t|ddgd�}t |ttdddddd	gd
d�ddgd�¡ d S )NÚfooÚbarr0   )r4   Úone)r4   Útwo)r5   r6   )Zbazr7   )Úquxr6   )r8   r7   Úobject©Údtype)ÚnamesÚAÚB)Ú
isinstancer   r1   r
   ÚtmÚassert_index_equalr<   )r   r   ÚexpectedÚresultr   r   r   Útest_create_index_existing_nameT   sV    

ú÷ôþú÷ôþz$Base.test_create_index_existing_namec           	   	   C  s€  |}t |tƒrt‚t|ƒtkr"d S t|jƒj}t|ƒj}d d|› d�d|› d|› d�g¡}tj	t
|d�� |d  W 5 Q R X d d|› d	�d
|› d|› d�g¡}tj	t
|d�� d|  W 5 Q R X | dd¡}tj	t
|d�� |d  W 5 Q R X | dd¡}tj	t
|d�� d|  W 5 Q R X | dd¡}tj	t
|d�� |d  W 5 Q R X | dd¡}tj	t
|d�� d|  W 5 Q R X d S )Nr   z'unsupported operand type\(s\) for \*: 'z' and 'int'zIcannot perform (__mul__|__truediv__|__floordiv__) with this index type: (ú)r    r(   z1unsupported operand type\(s\) for \*: 'int' and 'ú'zLcannot perform (__rmul__|__rtruediv__|__rfloordiv__) with this index type: (Ú*ú/z//)r?   r   ÚAssertionErrorr*   r
   Ú_datar+   r"   r#   r$   r%   Úreplace)	r   r   r.   ÚtypÚclsZlmsgZrmsgZdiv_errZfloordiv_errr   r   r   Útest_numeric_compatˆ   s@    

þÿ
þÿzBase.test_numeric_compatc              	   C  sL   |}t jtdd�� | ¡  W 5 Q R X t jtdd�� | ¡  W 5 Q R X d S )Nzcannot perform allr    zcannot perform any)r#   r$   r%   ÚallÚanyr2   r   r   r   Útest_logical_compat³   s
    zBase.test_logical_compatc                 C  s   |}t  tt|ƒƒ|¡ d S ©N)r@   rA   ÚevalÚreprr2   r   r   r   Útest_repr_roundtripº   s    zBase.test_repr_roundtripc              	   C  sB   |}|  d¡}t dd ¡� t|ƒ dt|ƒks4t‚W 5 Q R X d S )Né2   zdisplay.max_seq_itemsz...)ÚrepeatÚpdZoption_contextrT   ÚstrrI   r2   r   r   r   Útest_repr_max_seq_item_setting¾   s
    
z#Base.test_repr_max_seq_item_settingc                 C  sB  i }t |tƒr|j|d< n2t |tttfƒr.d S |jtkrL|jdkrL|j|d< t	|ƒ}||j
fddi|—Ž}t|jƒr†| d¡ |j¡}t |ttfƒrž| d ¡}t ||¡ t |tƒrâ|f |jddœ|—Ž}tj|j|jd	d
� �n\t |tƒrð�nNt	|ƒtk�rt |jtjƒ�s||j
fddi|—Ž}t ||¡ t |jtƒ�r¤t |jj|jj¡�sXt‚tj|jj|jjd	d
� t |jj|jj¡�sŠt‚tj|jj|jjd	d
� nn|jdk�rät |jj|jj¡�sÊt‚tj|jj|jjd	d
� n.|jdk�rt |j|j¡�st‚n
t |jƒ‚n*||j
fddi|—Ž}tj|j
|j
d	d
� d S )NÚfreqÚbooleanr;   ÚcopyTÚUTCF)Zordinalr]   Zsame)Z
check_samezstring[python]zstring[pyarrow])!r?   r   r[   r   r   r   r;   r9   Úinferred_typer*   Úvaluesr   Ztz_localizeZ
tz_convertÚtzr	   r   Ú
_with_freqr@   rA   Zasi8Úassert_numpy_array_equalr   r
   ÚnpÚ_valuesr   Zshares_memoryrJ   rI   Z_maskZ_ndarrayr   )r   ÚindexZinit_kwargsZ
index_typerC   r   r   r   Útest_ensure_copied_dataÆ   s^    





  ÿ  ÿ  ÿzBase.test_ensure_copied_datac                 C  s˜   |j  ¡  | ¡ }|jr(|dks$t‚d S | |d ¡ | ¡ }|jdd�}t|ttfƒs~t	|ƒt
krrt|jtjƒr~||ks~t‚|jdkr”||ks”t‚d S )Nr   T©Údeepr9   )Ú_engineZclear_mappingZmemory_usageÚemptyrI   Úget_locr?   r   r   r*   r
   r;   rd   r_   )r   rf   rC   Zresult2Zresult3r   r   r   Útest_memory_usageþ   s     

ÿÿ
zBase.test_memory_usagec                 C  s8   t |tƒrd S | ¡ }t |¡ ¡ }tj||dd� d S )NF)Zcheck_dtype)r?   r   Úargsortrd   Úarrayr@   rc   )r   rf   rC   rB   r   r   r   Útest_argsort  s
    
zBase.test_argsortc              	   C  s®   t  |¡}| ¡ }t ||¡ t j|dd�}|jdd�}t ||¡ t|ttfƒrªd}tjt	|d�� t j|dd� W 5 Q R X d}tjt	|d�� t j|dd	� W 5 Q R X d S )
NZ	mergesort)Úkindú%the 'axis' parameter is not supportedr    r(   ©Zaxisz&the 'order' parameter is not supported)ÚaÚb)Úorder)
rd   rn   r@   rc   r?   r   r   r#   r$   Ú
ValueError)r   rf   rC   rB   r&   r   r   r   Útest_numpy_argsort  s    
	zBase.test_numpy_argsortc                 C  sx   d}|  ¡ }|j}||j |¡|jd�}t | |¡|¡ |}t t	|ƒ¡}||j |¡|jd�}t | |¡|¡ d S )Nr)   r0   )
r]   Z_constructorr`   rW   r1   r@   rA   rd   ÚarangeÚlen)r   r   Úrepr.   Znew_index_clsrB   r   r   r   Útest_repeat8  s    zBase.test_repeatc              	   C  sX   d}|}|  |¡}t t  ||¡|¡ d}tjt|d�� tj ||dd� W 5 Q R X d S )Nr)   rr   r    r   rs   )rW   r@   rA   rd   r#   r$   rw   )r   r   r{   r.   rB   r&   r   r   r   Útest_numpy_repeatD  s    
zBase.test_numpy_repeatc                 C  s¨   |}|}t |ttfƒr | d ¡}dgt|ƒ }| ||ƒ¡}|}t ||¡ dgdgt|dd … ƒ  }t|j	g|dd …  
¡  |jd�}| ||ƒ¡}t ||¡ d S )NTFr(   r:   )r?   r	   r   rb   rz   Úwherer@   rA   r
   Z	_na_valueÚtolistr;   )r   Zlistlike_boxr   Úklassr.   ZcondrC   rB   r   r   r   Ú
test_whereN  s    
"zBase.test_wherec                 C  s>   |dd… }t |ƒsd S |dd…  | d|d ¡¡s:t‚d S )Nr(   é   r   )rz   ÚequalsÚinsertrI   )r   rf   rC   r   r   r   Útest_insert_base`  s    zBase.test_insert_basec              	   C  sÂ   t |ƒdkrt}nt}t |ƒdkr(d}nd}tj||d�� | dd¡ W 5 Q R X d dd	g¡}tjt|d�� | t |ƒd
 d
¡ W 5 Q R X tjt|d�� | t |ƒ d
 d
¡ W 5 Q R X d S )Nr   z5index (0|0.5) is out of bounds for axis 0 with size 0zBslice indices must be integers or None or have an __index__ methodr    g      à?r4   r   z5index -?\d+ is out of bounds for axis 0 with size \d+zloc must be an integer betweenr(   )rz   r%   Ú
IndexErrorr#   r$   r„   r"   )r   rf   Úerrr&   r   r   r   Útest_insert_out_of_boundsi  s"    þÿzBase.test_insert_out_of_boundsc              	   C  sÂ   t |ƒsd S t|tƒrd S |dd … }| d¡}| |¡s>t‚|j|jksNt‚|d d… }| d¡}| |¡srt‚|j|jks‚t‚t |ƒ}d|› d|› �}tjt	|d�� | |¡ W 5 Q R X d S )Nr(   r   éÿÿÿÿzindex z' is out of bounds for axis 0 with size r    )
rz   r?   r   Údeleterƒ   rI   r1   r#   r$   r†   )r   rf   rB   rC   Úlengthr&   r   r   r   Útest_delete_base„  s     


zBase.test_delete_basec                 C  sÞ   t |tƒrd S t|ƒtko(t |jtjƒ }| |¡s8t‚| | ¡ ¡sJt‚|sb| | 	t
¡¡sbt‚| t|ƒ¡rtt‚| t |¡¡rˆt‚t |tƒs¾|s¾t|t
d�}| |¡s°t‚| |¡s¾t‚|jdkrÚ| t|ƒ¡rÚt‚d S )Nr:   r(   )r?   r   r*   r
   r;   rd   rƒ   rI   r]   Úastyper9   Úlistro   r   Znlevelsr   )r   rf   Z	is_ea_idxZsame_valuesr   r   r   Útest_equals›  s    

zBase.test_equalsc              	   C  sª  |}t |ƒ}|dd… }|dd…  |dd… ¡}|dd… }d}tjt|d�� ||k W 5 Q R X t dg| ¡}t dg|d  dg ¡}	t ||k|¡ t ||k|	¡ t |¡}
t |dd… ¡}t |dd…  |dd… ¡¡}t |dd… ¡}tjt|d�� ||k W 5 Q R X t ||
k|¡ t ||k|	¡ t	|
ƒ}t	|ƒ}t	|ƒ}t	|ƒ}tjt|d�� ||k W 5 Q R X t ||k|¡ t ||k|	¡ tjtd	d�� ||k W 5 Q R X tjtd	d�� ||k W 5 Q R X tjtd	d�� ||k W 5 Q R X d
}tjt|d�� ||k W 5 Q R X tjtd	d�� ||k W 5 Q R X t
|tƒ�s¦t dgt |ƒd  ddg ¡}|d }t ||k|¡ t ||kt	|ƒ¡ d S )Nr   r‰   éþÿÿÿr(   z)Lengths must match|could not be broadcastr    TFzLengths must matchz3Can only compare identically-labeled Series objectsr)   )rz   Úappendr#   r$   rw   rd   ro   r@   rc   r   r?   r   Úassert_series_equal)r   r   Zindex_aÚnZindex_bZindex_cZindex_dr&   Z	expected1Z	expected2Zarray_aZarray_bZarray_cZarray_dZseries_aZseries_bZseries_cZseries_dZ	expected3Úitemr   r   r   Útest_equals_op¶  sX    
  zBase.test_equals_opc                 C  s&   |}dd„ |D ƒ}|  ¡ |ks"t‚d S )Nc                 S  s   g | ]}t |ƒ‘qS r   ©rY   ©Ú.0Úxr   r   r   Ú
<listcomp>÷  s     z$Base.test_format.<locals>.<listcomp>)ÚformatrI   ©r   r   r.   rB   r   r   r   Útest_formatô  s    zBase.test_formatc                 C  s4   |   g ¡}| ¡ g kst‚|jdd�dgks0t‚d S )NTr0   Ú )r   r›   rI   )r   Z	empty_idxr   r   r   Útest_format_emptyú  s    
zBase.test_format_emptyc              	   C  st  t |ƒdkrd S |jtkrd S t|tƒr6t|jƒr6d S t|tƒrz|jdd�}d}tj	t
|d�� | |d ¡ W 5 Q R X nö|jdd�}| |d ¡}t ||¡ ||k	s¬t‚d}tj	t|d�� | |d g¡ W 5 Q R X |jdd�}|j}tj|d< t|ƒ|ƒ}d}tj	t
|d�� |j|d d	d
� W 5 Q R X tjdgt |ƒ td�}d|d< t |j|¡ |jdk�spt‚d S )Nr   Trh   ú"isna is not defined for MultiIndexr    z"'value' must be a scalar, passed: r(   zdoes not support 'downcast'Zinfer)ZdowncastFr:   )rz   r;   Úboolr?   r
   r   r   r]   r#   r$   r   Zfillnar@   rA   rI   r%   re   rd   Únanr*   ro   rc   Z_isnanÚhasnans)r   rf   r.   r&   rC   r`   rB   r   r   r   Útest_fillna   s:    


zBase.test_fillnac              	   C  sÔ   t |ƒdkr(t | ¡ tjg td�¡ n¨t|tƒrb| 	¡ }d}t
jt|d�� | ¡  W 5 Q R X nn|js¦t | ¡ tjt |ƒtd�¡ t | ¡ tjt |ƒtd�¡ n*t|ƒ}t | ¡ |¡ t | ¡ | ¡ d S )Nr   r:   r    r    )rz   r@   rc   r   rd   ro   r¡   r?   r   r]   r#   r$   r   r£   ÚzerosZnotnaZones)r   rf   r.   r&   rC   r   r   r   Ú
test_nulls)  s    
 zBase.test_nullsc                 C  s$   |}|j rt‚|d d… j s t‚d S ©Nr   )rk   rI   r2   r   r   r   Ú
test_empty;  s    
zBase.test_emptyc                 C  s,   |}|j r(|j||d�}||k ¡ s(t‚d S )N)Úhow)Ú	is_uniquer"   rO   rI   )r   Z	join_typer   r.   Zjoinedr   r   r   Útest_join_self_uniqueA  s    zBase.test_join_self_uniquec                 C  s&   |}|  dd„ ¡}tj||dd� d S )Nc                 S  s   | S rR   r   )r™   r   r   r   Ú<lambda>K  ó    zBase.test_map.<locals>.<lambda>Úequiv©Úexact)Úmapr@   rA   )r   r   r.   rC   r   r   r   Útest_mapG  s    zBase.test_mapÚmapperc                 C  s   dd„ t | |ƒD ƒS )Nc                 S  s   i | ]\}}||“qS r   r   )r˜   ÚeÚir   r   r   Ú
<dictcomp>R  s      z!Base.<lambda>.<locals>.<dictcomp>)Úzip©r`   rf   r   r   r   r¬   R  r­   zBase.<lambda>c                 C  s
   t | |ƒS rR   )r   r¸   r   r   r   r¬   S  r­   c                 C  s–   |}t |tƒr"t dt|ƒ› �¡ ||j|ƒ}| |¡}tj||dd� d }|j	j
dkr^|j	}ttjgt|ƒ |d�}| |||ƒ¡}t ||¡ d S )Nzskipping tests for r®   r¯   Úfr:   )r?   r   r#   Úskipr*   r`   r±   r@   rA   r;   rq   r
   rd   r¢   rz   )r   r³   r   r.   ÚidentityrC   r;   rB   r   r   r   Útest_map_dictlikeO  s    

zBase.test_map_dictlikec                 C  s4   |}|  t¡}tdd„ |D ƒtd�}t ||¡ d S )Nc                 S  s   g | ]}t |ƒ‘qS r   r–   r—   r   r   r   rš   r  s     z%Base.test_map_str.<locals>.<listcomp>r:   )r±   rY   r
   r9   r@   rA   )r   r   r.   rC   rB   r   r   r   Útest_map_strn  s    
zBase.test_map_strr]   TFr1   Nr4   Úorderedc           	      C  sÄ   |}|r|  |¡}t|d�}|j||d�}t|||d�}tj||dd� t| ¡  ¡ d d… |ƒ}|j||d�}t|||d�}tj||dd� |dkrÀ|jd	|d�}t||d
�}tj||dd� d S )N)r¾   )r]   )r1   r¾   Tr¯   r‰   )r1   r;   FÚcategoryr0   )Úrenamer   r�   r   r@   rA   Úuniquer   )	r   r]   r1   r¾   r   r.   r;   rC   rB   r   r   r   Útest_astype_categoryu  s    

zBase.test_astype_categoryc                 C  sŠ   |  ¡ }|jdkst‚|d d… }|jdks0t‚| d|d ¡}|jdksNt‚| dtj¡}|jdksjt‚| dtj¡}|jdks†t‚d S )NTr   F)Zdrop_duplicatesrª   rI   r„   rd   r¢   )r   r   rf   Zindex_emptyZ	index_dupZindex_naZindex_na_dupr   r   r   Útest_is_unique�  s    zBase.test_is_uniquec                 C  s2   |}t t |¡ƒ}|j t t |¡ƒ|ks.t‚d S rR   )rz   ÚgcZget_referrersrj   rI   )r   r   rf   Z	nrefs_prer   r   r   Útest_engine_reference_cycle¥  s    z Base.test_engine_reference_cyclec              	   C  sÎ   |}d}t jt|d�� |d d …d f  W 5 Q R X t|tƒs‚t jt|d�� |d  W 5 Q R X t jt|d�� |d  W 5 Q R X nHd}t jt|d�� |d  W 5 Q R X t jt|d�� |d  W 5 Q R X d S )NzMulti-dimensional indexingr    TFzonly integers, slices)r#   r$   rw   r?   r   r†   r-   r   r   r   Útest_getitem_2d_deprecated­  s    
zBase.test_getitem_2d_deprecatedc                 C  s.   |}|  |d ¡ | ¡ }|j|jks*t‚d S r§   )rl   r]   Ú_cacherI   )r   r   r.   r]   r   r   r   Útest_copy_shares_cacheÁ  s    zBase.test_copy_shares_cachec                 C  sX   |}|  |d ¡ | ¡ }|j|jks*t‚| |j¡}|j|jk	sFt‚|ji ksTt‚d S r§   )rl   Z_viewrÇ   rI   Z_shallow_copyrJ   )r   r   r.   Zshallow_copyr   r   r   Útest_shallow_copy_shares_cacheÉ  s    z#Base.test_shallow_copy_shares_cachec              	   C  sÎ   |d d… }t  ddt jddg¡}t | |¡|ddg |ddg dœ¡ ttdd	dƒtdd
dƒtj	tdd
dƒtdd	dƒgdd�j
}tdƒtdƒg}|d |ddg |d |ddg i}t | |¡|¡ d S )Né   r(   r)   r   r‚   é   )g      ð?g       @iÛ  é   é   r^   )ra   z
2011-11-01z
2011-12-01)rd   ro   r¢   r@   Zassert_dict_equalÚgroupbyr	   r   rX   ÚNaTr`   r   )r   r   r.   Z
to_groupbyZex_keysrB   r   r   r   Útest_index_groupbyÕ  s$     ÿ



ûø$zBase.test_index_groupbyc                 C  s€   |}t |ƒ}| |¡}|j|jks&t‚tj|d |… |dd� tj||d … |dd� | tt|ƒƒd ¡}tj||dd� d S )NT)Zcheck_exactr)   )	rz   r‘   r;   rI   r@   rA   ZtakerŽ   Úrange)r   r   rf   ÚNrC   Zaltr   r   r   Útest_append_preserves_dtypeë  s    
z Base.test_append_preserves_dtypec              	   C  s®   |}|j jdkrP| }t|j |jd�}t ||¡ t|ƒ }t |t|ƒ¡ nZ|j jdkrbd}nd}t	j
t|d�� |  W 5 Q R X t	j
t|d�� t|ƒ  W 5 Q R X d S )N)rµ   Úur0   r¹   z0ufunc 'invert' not supported for the input typeszbad operandr    )r;   rq   r
   r`   r1   r@   rA   r   r’   r#   r$   r%   )r   r   r.   ÚresrB   Zres2r&   r   r   r   Útest_invø  s    
zBase.test_invc              	   C  s&   |}t  t¡� | ¡  W 5 Q R X d S rR   )r@   Úassert_produces_warningÚFutureWarningZ
is_booleanr2   r   r   r   Útest_is_boolean_is_deprecated  s    z"Base.test_is_boolean_is_deprecatedc              	   C  s&   |}t  t¡� | ¡  W 5 Q R X d S rR   )r@   r×   rØ   Zis_floatingr2   r   r   r   Útest_is_floating_is_deprecated  s    z#Base.test_is_floating_is_deprecatedc              	   C  s&   |}t  t¡� | ¡  W 5 Q R X d S rR   )r@   r×   rØ   Ú
is_integerr2   r   r   r   Útest_is_integer_is_deprecated  s    z"Base.test_is_integer_is_deprecatedc              	   C  s:   |}t |ƒj› d�}tjt|d�� | ¡  W 5 Q R X d S )Nz.holds_integer is deprecated. r    )r*   r+   r@   r×   rØ   Zholds_integerr-   r   r   r   Útest_holds_integer_deprecated!  s    z"Base.test_holds_integer_deprecatedc              	   C  s6   |}t jtt|ƒj› d�d�� | ¡  W 5 Q R X d S )Nz.is_numeric is deprecated. r    )r@   r×   rØ   r*   r+   Z
is_numericr2   r   r   r   Útest_is_numeric_is_deprecated(  s    þz"Base.test_is_numeric_is_deprecatedc              	   C  s*   |}t jtdd�� | ¡  W 5 Q R X d S )Nz4Use pandas\.api\.types\.is_categorical_dtype insteadr    )r@   r×   rØ   Zis_categoricalr2   r   r   r   Ú!test_is_categorical_is_deprecated1  s    þz&Base.test_is_categorical_is_deprecatedc              	   C  s&   |}t  t¡� | ¡  W 5 Q R X d S rR   )r@   r×   rØ   Zis_intervalr2   r   r   r   Útest_is_interval_is_deprecated:  s    z#Base.test_is_interval_is_deprecatedc              	   C  s&   |}t  t¡� | ¡  W 5 Q R X d S rR   )r@   r×   rØ   Z	is_objectr2   r   r   r   Útest_is_object_is_deprecated@  s    z!Base.test_is_object_is_deprecated):r+   Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r#   Zfixturer   r   r'   r/   r3   rD   rN   rQ   rU   rZ   rg   rm   rp   rx   r|   r}   r�   r…   rˆ   rŒ   r�   r•   r�   rŸ   r¤   r¦   r¨   r«   r²   ÚmarkÚparametrizer¼   r½   rÂ   rÃ   Zarm_slowrÅ   rÆ   rÈ   rÉ   rÐ   rÓ   rÖ   rÙ   rÚ   rÜ   rÝ   rÞ   rß   rà   rá   r   r   r   r   r   "   sz   

4+8	
	>)þþ

		r   c                   @  s~   e Zd ZdZ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d„ Zej dejejg¡dd„ ƒZdd„ ZdS )ÚNumericBasezJ
    Base class for numeric index (incl. RangeIndex) sub-class tests.
    c                 C  sD   | j }tddg|d�}||ƒ}tjddg|jd�}t |j|¡ d S )Nr(   r)   r:   )r   r
   rd   ro   r;   r@   rc   rJ   )r   r;   Ú	index_clsr.   rC   rB   r   r   r   Útest_constructor_unwraps_indexL  s
    z*NumericBase.test_constructor_unwraps_indexc                 C  s   d S rR   r   r   r   r   r   r�   T  s    zNumericBase.test_wherec                 C  s"   |}|d }|  |¡dkst‚d S )Nr   F)Z$_can_hold_identifiers_and_holds_namerI   )r   r   r.   Úkeyr   r   r   Útest_can_hold_identifiersX  s    z%NumericBase.test_can_hold_identifiersc                 C  sr   | j }|g |dd�}| ¡ }|jdks*t‚| |¡}tj|||dd�dd� | |¡}tj|||dd�dd� d S )NZFoo)r;   r1   r0   Tr¯   )r   Úviewr1   rI   r@   rA   )r   r;   ré   r.   Zidx_viewr   r   r   Ú	test_view]  s    

zNumericBase.test_viewc                   s<   |}t dd„ |D ƒƒ‰ ‡ fdd„|D ƒ}| ¡ |ks8t‚d S )Nc                 s  s   | ]}t t|ƒƒV  qd S rR   )rz   rY   r—   r   r   r   Ú	<genexpr>m  s     z*NumericBase.test_format.<locals>.<genexpr>c                   s   g | ]}t |ƒ ˆ ¡‘qS r   )rY   Úljustr—   ©Ú	max_widthr   r   rš   n  s     z+NumericBase.test_format.<locals>.<listcomp>)Úmaxr›   rI   rœ   r   rñ   r   r�   j  s    zNumericBase.test_formatc                 C  s   d S rR   r   r   r   r   r   rN   q  s    zNumericBase.test_numeric_compatc                 C  sD   |}|  d|d ¡}t|d gt|ƒ |jd�}tj||dd� d S )Nr   r:   Tr¯   )r„   r
   rŽ   r;   r@   rA   )r   r   rf   rC   rB   r   r   r   Útest_insert_non_nat  s    zNumericBase.test_insert_non_nac                 C  s–   |}|}|t jkr:t|d t jgt|dd … ƒ td�}n<t|d tjgt|dd … ƒ ƒ}|jjdkrvt||jd�}| 	d|¡}t
j||dd� d S )Nr   r(   r:   r¹   Tr¯   )rX   rÏ   r
   rŽ   r9   rd   r¢   r;   rq   r„   r@   rA   )r   Znulls_fixturer   rf   Zna_valrB   rC   r   r   r   Útest_insert_na~  s    
("zNumericBase.test_insert_nac                 C  sØ   | j }|tkrtdƒ}n|tjddd�ƒ}tjddd�d }t|tjd�}|d }t ||¡ d| }t ||¡ t|tjd�}tjddd�}|| }t ||¡ t| tjd�}tjddd�}|| }t ||¡ d S )NrÊ   Zint64r:   gš™™™™™	@Úfloat64)	r   r   rd   ry   r
   rö   r@   rA   r¥   )r   ré   r.   ZarrrB   Zfidxrt   rC   r   r   r   Ú$test_arithmetic_explicit_conversionsŽ  s$    
z0NumericBase.test_arithmetic_explicit_conversionsÚcomplex_dtypec                 C  s(   |  |¡}t|ƒtkr |j|ks$t‚d S rR   )r�   r*   r
   r;   rI   )r   rø   r   rC   r   r   r   Útest_astype_to_complexª  s    
z"NumericBase.test_astype_to_complexc                 C  s8   | j dddg|d�}| j dddg|d�}t ||¡ d S )NÚ0Ú1Ú2r:   r   r(   r)   )r   r@   rA   )r   r;   rC   rB   r   r   r   Útest_cast_string°  s    zNumericBase.test_cast_stringN)r+   râ   rã   rä   rê   r�   rì   rî   r�   rN   rô   rõ   r÷   r#   ræ   rç   rd   Z	complex64Z
complex128rù   rý   r   r   r   r   rè   G  s   

rè   )!Ú
__future__r   r   rÄ   Únumpyrd   r#   Zpandas._libs.tslibsr   Zpandas.core.dtypes.commonr   r   Zpandas.core.dtypes.dtypesr   ZpandasrX   r   r	   r
   r   r   r   r   r   r   r   Zpandas._testingZ_testingr@   Zpandas.core.arraysr   r   rè   r   r   r   r   Ú<module>   s&   0      +