U
    sVcW                  
   @   s   d dl Z d dlZd dlZd dlmZmZ d dlmZm	Z	m
Z
 d dlZd dlmZmZ d dlmZ dd Zejddd	d
ddddgdd Zdd Zdd Zejjedddd Zdd Zejdejdd Zdd Zd d! ZdS )"    N)IS64PYPY)is_categorical_dtypeis_dtype_equalis_object_dtype)IndexSeriesc                  C   s`   t jjj} | dstt jjj} | ds0ttjj} | dsFttjj} | ds\td S )Nz4
DataFrame.notnull is an alias for DataFrame.notna.
z2
DataFrame.isnull is an alias for DataFrame.isna.
z.
Series.notnull is an alias for Series.notna.
z,
Series.isnull is an alias for Series.isna.
)pdZ	DataFrameZnotnull__doc__
startswithAssertionErrorZisnullr   )doc r   ?/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/base/test_misc.pytest_isnull_notnull_docstrings   s    

r   zop_name, op)add+)sub-)mul*)mod%)powz**)truediv/)floordivz//c                 C   sb   | }|j  }d}d|||g}|t||jks6td|||g}|t|d| jks^td S )Nother r)__name__lowerjoingetattrr
   r   )Zframe_or_seriesZop_nameopklassZoperand1Zoperand2Zexpected_strr   r   r   test_binary_ops_docstring&   s    
r&   c              	   C   s   | }dD ]}t ||d d k	stqdD ]}t||r&tq&d}tjt|d |  W 5 Q R X |jdksnt|jt	|kstt
dg dksttdg dkstd S )N)shapedtypeTnbytes)stridesitemsizebasedataz6can only convert an array of size 1 to a Python scalarmatch   )r#   r   hasattrpytestraises
ValueErroritemndimsizelenr   r   )index_or_series_objobjpmsgr   r   r   test_ndarray_compat_propertiesA   s    r>   c               	   C   sb   t dddgddddgd} tt  | tjdd	d
gdd}W 5 Q R X | d }t|| d S )Nr1         Zint64abc)r(   index      )r(   )r   tmZassert_produces_warningDeprecationWarningZ__array_wrap__nparrayZassert_series_equal)origresultexpectedr   r   r   test_array_wrap_compatW   s
    $rN   znot relevant for PyPyreasonc           
      C   s  | }|  }|j dd}t|t}t|p<t|to<t|j}t|jp\t|to\t|jj}t|dpx|oxt|jjd}t|dkrt|t	rd}nt
rdnd}||  kr|ksn tn&|s|s|r||kstn||kst|t| }	t|	dk std S )NT)deepzstring[python]r   l   @   d   )memory_usage
isinstancer   r   rD   r   r(   r   r9   r   r   r   sys	getsizeofabs)
r:   r;   resZres_deepZis_serZ	is_objectZis_categoricalZis_object_stringrM   Zdiffr   r   r   test_memory_usageb   s.    



r[   c                 C   s:   | }|j dd}|j dd}|j  }||| ks6td S )NTrD   F)rU   rD   r   )Zseries_with_simple_indexseriestotal_usagenon_index_usageindex_usager   r   r   #test_memory_usage_components_series   s
    
ra   r(   c                 C   sD   t jd| d}|jdd}|jdd}|j }||| ks@td S )NrA   )namer(   Tr\   F)rG   Zmake_rand_seriesrU   rD   r   )r(   r]   r^   r_   r`   r   r   r   *test_memory_usage_components_narrow_series   s
    
rc   c                 C   s   |}t |tjr(| jtjjdd n0|jj	dkrXt |t
rXtjjdd}| j| t|dd}t||}d|  krt|ksn ttj||tt|d}d|  krt|ksn td S )Nz7np.searchsorted doesn't work on pd.MultiIndex: GH 14833rO   rC   z"complex objects are not comparabler   )default)Zsorter)rV   r	   Z
MultiIndexnodeZ
add_markerr3   markZxfailr(   kindr   maxrI   Zsearchsortedr9   r   range)requestr:   r;   rf   Zmax_objrD   r   r   r   test_searchsorted   s    rk   c              	   C   s   | }t |dkrtd t|}|d |jd ks8t|d |jd ksNt|d |jd ksdtt |}|d ||d  kstd| d| }t|jdrd	}tjt	|d
 ||  W 5 Q R X d}tjt	|d
 |j|  W 5 Q R X d S )Nr   z%Test doesn't make sense on empty data   r1   zindex z' is out of bounds for axis 0 with size zstring[pyarrow]zindex out of boundsr/   z*single positional indexer is out-of-bounds)
r9   r3   skipr   Zilocr   r   r(   r4   
IndexError)Z
index_flatrD   r]   r8   r=   r   r   r   test_access_by_position   s"    
rp   )rW   ZnumpyrI   r3   Zpandas.compatr   r   Zpandas.core.dtypes.commonr   r   r   Zpandasr	   r   r   Zpandas._testingZ_testingrG   r   rf   Zparametrizer&   r>   rN   Zskipifr[   ra   ZNARROW_NP_DTYPESrc   rk   rp   r   r   r   r   <module>   s:   

#
