o
    d                     @   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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sJ tjj} | ds#J 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   O/app/.heroku/python/lib/python3.10/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 sJ 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 s5w   Y  |jdksAJ |jt|ksJJ t	dg dksUJ t
dg dks`J 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=   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p<|o<t|jjd}t|dkr`t|t	rKd}nt
rOdnd}||  kr\|ks_J  J n|sf|sf|rm||kslJ n||kssJ |t| }	t|	dk sJ d S )NT)deepzstring[python]r   l   @   d   )memory_usage
isinstancer   r   indexr   r'   r   r8   r   r   sys	getsizeofabs)
r9   r:   resZres_deepZis_serZ	is_objectZis_categoricalZis_object_stringexpecteddiffr   r   r   test_memory_usageW   s.   



rM   c                 C   s:   | }|j dd}|j dd}|j  }||| ksJ d S )NTrF   F)rD   rF   )Zseries_with_simple_indexseriestotal_usagenon_index_usageindex_usager   r   r   #test_memory_usage_components_series{   s
   
rS   r'   c                 C   sD   t jd| d}|jdd}|jdd}|j }||| ks J d S )Na)namer'   TrN   F)tmZmake_rand_seriesrD   rF   )r'   rO   rP   rQ   rR   r   r   r   *test_memory_usage_components_narrow_series   s
   
rW   c                 C   s   |}t |tjr| jtjjdd n|jj	dkr,t |t
r,tjjdd}| j| t|dd}t||}d|  krEt|ksHJ  J tj||tt|d}d|  krat|ksdJ  J d S )Nz7np.searchsorted doesn't work on pd.MultiIndex: GH 14833r>   cz"complex objects are not comparabler   )default)Zsorter)rE   r	   Z
MultiIndexnodeZ
add_markerr2   markZxfailr'   kindr   maxnpZsearchsortedr8   range)requestr9   r:   r[   Zmax_objrF   r   r   r   test_searchsorted   s    $ra   c                 C   s  | }t |dkrtd t|}|d |jd ksJ |d |jd ks'J |d |jd ks2J t |}|d ||d  ksBJ d| d| }t|jdrRd	}tjt|d
 ||  W d    n1 shw   Y  d}tjt|d
 |j|  W d    d S 1 sw   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_flatrF   rO   r7   r<   r   r   r   test_access_by_position   s&   

"rf   )rG   numpyr^   r2   Zpandas.compatr   r   Zpandas.core.dtypes.commonr   r   r   Zpandasr	   r   r   Zpandas._testingZ_testingrV   r   r[   Zparametrizer%   r=   ZskipifrM   rS   ZNARROW_NP_DTYPESrW   ra   rf   r   r   r   r   <module>   s,    

#
