a
    Pf                     @   s   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	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pe 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)using_pyarrow_string_dtype)PYPY)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   T/var/www/ai-form-bot/venv/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_properties?   s    &r<   z=not relevant for PyPy doesn't work properly for arrow stringsreasonc           
      C   s  | }t |tr d}|jj  nd}|j  | }|jdd}t|pV|oVt|j}t |jtj	px|oxt |jjtj	}t
|dp|ot
|jjd}t|dkrd}||  kr|ksn J n&|s|s|r||ksJ n||ksJ |t| }	t|	dk sJ d S )NTF)deepzstring[python]r   d   )
isinstancer   indexZ_engineZclear_mappingmemory_usager   r&   r   ZCategoricalDtyper   r7   sys	getsizeofabs)
Zindex_or_series_memory_objr9   Zis_serresZres_deepZ	is_objectZis_categoricalZis_object_stringexpecteddiffr   r   r   test_memory_usageU   s.    


rJ   c                 C   s:   | }|j dd}|j dd}|j  }||| ks6J d S )NTrB   F)rC   rB   )Zseries_with_simple_indexseriestotal_usagenon_index_usageindex_usager   r   r   #test_memory_usage_components_series}   s
    
rP   r&   c                 C   sX   t td| dd tdD dd}|jdd}|jdd}|j }||| ksTJ d S )	N   c                 S   s   g | ]}d | qS )zi-r   ).0ir   r   r   
<listcomp>       z>test_memory_usage_components_narrow_series.<locals>.<listcomp>a)r&   rB   nameTrK   F)r   rangerC   rB   )r&   rL   rM   rN   rO   r   r   r   *test_memory_usage_components_narrow_series   s
    "
rY   c                 C   s   |}t |tjr&| tjjdd n.|jjdkrTt |t	rTtjjdd}| | 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 14833r=   cz"complex objects are not comparabler   )default)Zsorter)rA   r   Z
MultiIndexZapplymarkerr1   markZxfailr&   kindr   maxnpZsearchsortedr7   rX   )requestr8   r9   r\   Zmax_objrB   r   r   r   test_searchsorted   s    
ra   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st|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 datarQ   r/   zindex z' is out of bounds for axis 0 with size zstring[pyarrow]zstring[pyarrow_numpy]zindex out of boundsr-   z*single positional indexer is out-of-bounds)	r7   r1   skipr   Zilocr   r&   r2   
IndexError)Z
index_flatrB   rL   r6   r;   r   r   r   test_access_by_position   s&    
&re   )rD   numpyr_   r1   Zpandas._configr   Zpandas.compatr   Zpandas.core.dtypes.commonr   r   Zpandasr   r   r   Zpandas._testingZ_testingtmr   r\   Zparametrizer$   r<   ZskipifrJ   rP   ZNARROW_NP_DTYPESrY   ra   re   r   r   r   r   <module>   s2   

$
