a
    j=icW                     @   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g d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J t jjj} | ds0J tjj} | dsFJ tjj} | ds\J 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__
startswithZisnullr   )doc r   l/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/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v s6J d|||g}|t|d| jv s^J d S )Nother r)__name__lowerjoingetattrr
   )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 usJ qdD ]}t||r&J q&d}tjt|d |  W d    n1 sj0    Y  |jdksJ |jt|ksJ t	dg dksJ t
dg dksJ d S )N)shapedtypeTnbytes)stridesitemsizebasedataz6can only convert an array of size 1 to a Python scalarmatch   )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   sp   t g ddg dd} tt( | tjg ddd}W d    n1 sN0    Y  | d }t|| d S )N)r0         int64)abc)r'   index)r>         )r'   r>   )r   tmZassert_produces_warningDeprecationWarningZ__array_wrap__nparrayZassert_series_equal)origresultexpectedr   r   r   test_array_wrap_compatW   s
    6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 J n&|s|s|r||ksJ n||ksJ |t| }	t|	dk sJ d S )NT)deepzstring[python]r   l   @   d   )memory_usage
isinstancer   r   rD   r   r'   r   r8   r   r   sys	getsizeofabs)
r9   r:   resZres_deepZis_serZ	is_objectZis_categoricalZis_object_stringrM   diffr   r   r   test_memory_usageb   s.    



r\   c                 C   s:   | }|j dd}|j dd}|j  }||| ks6J d S )NTrD   F)rU   rD   )Zseries_with_simple_indexseriestotal_usagenon_index_usageindex_usager   r   r   #test_memory_usage_components_series   s
    
rb   r'   c                 C   sD   t jd| d}|jdd}|jdd}|j }||| ks@J d S )NrA   )namer'   Tr]   F)rG   Zmake_rand_seriesrU   rD   )r'   r^   r_   r`   ra   r   r   r   *test_memory_usage_components_narrow_series   s
    
rd   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 J tj||tt|d}d|  krt|ksn J d S )Nz7np.searchsorted doesn't work on pd.MultiIndex: GH 14833rO   rC   z"complex objects are not comparabler   )default)sorter)rV   r	   Z
MultiIndexnodeZ
add_markerr2   markZxfailr'   kindr   maxrI   Zsearchsortedr8   range)requestr9   r:   rh   Zmax_objrD   r   r   r   test_searchsorted   s    rm   c                 C   s  | }t |dkrtd t|}|d |jd ks8J |d |jd ksNJ |d |jd ksdJ t |}|d ||d  ksJ d| d| }t|jdrd	}tjt|d
 ||  W d    n1 s0    Y  d}tjt|d
 |j|  W d    n1 s0    Y  d S )Nr   z%Test doesn't make sense on empty data   r0   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)	r8   r2   skipr   Zilocr   r'   r3   
IndexError)Z
index_flatrD   r^   r7   r<   r   r   r   test_access_by_position   s"    
&rr   )rW   numpyrI   r2   Zpandas.compatr   r   Zpandas.core.dtypes.commonr   r   r   Zpandasr	   r   r   Zpandas._testingZ_testingrG   r   rh   Zparametrizer%   r=   rN   Zskipifr\   rb   ZNARROW_NP_DTYPESrd   rm   rr   r   r   r   r   <module>   s,   

#
