o
    Û­j¥  ã                   @   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pNeƒ dd�dd„ ƒZdd„ Zej dej¡dd„ ƒZdd„ Zej d¡dd„ ƒZdS )é    N)Úusing_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¡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.
)ÚpdÚ	DataFrameÚnotnullÚ__doc__Ú
startswithÚisnullr   )Údoc© r   úX/var/www/html/CropPilot/venv/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   )Úframe_or_seriesÚop_nameÚopÚklassÚoperand1Úoperand2Ú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_properties?   s   
ÿrD   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|ƒp+|o+t|jƒ}t |jtj	ƒp<|o<t |jjtj	ƒ}t
|dƒpJ|oJt
|jjdƒ}t|ƒdkrbd}||  kr^|ksaJ ‚ J ‚n|sh|sh|ro||ksnJ ‚n||ksuJ ‚|t |¡ }	t|	ƒdk s„J ‚d S )NTF)Údeepzstring[python]r   éd   )Ú
isinstancer   ÚindexÚ_engineÚclear_mappingÚmemory_usager   r.   r   ÚCategoricalDtyper   r?   ÚsysÚ	getsizeofÚabs)
Úindex_or_series_memory_objrA   Úis_serÚresÚres_deepÚ	is_objectÚis_categoricalÚis_object_stringÚexpectedÚdiffr   r   r   Útest_memory_usageU   s.   

ÿ
ÿr[   c                 C   s:   | }|j dd�}|j dd�}|j  ¡ }||| ksJ ‚d S )NT©rJ   F)rM   rJ   )Úseries_with_simple_indexÚseriesÚtotal_usageÚnon_index_usageÚindex_usager   r   r   Ú#test_memory_usage_components_series}   s
   
rb   r.   c                 C   sX   t tdƒ| dd„ tdƒD ƒdd�}|jdd�}|jdd�}|j ¡ }||| ks*J ‚d S )	Né   c                 S   s   g | ]}d |› �‘qS )zi-r   )Ú.0Úir   r   r   Ú
<listcomp>‡   s    z>test_memory_usage_components_narrow_series.<locals>.<listcomp>Úa)r.   rJ   ÚnameTr\   F)r   ÚrangerM   rJ   )r.   r^   r_   r`   ra   r   r   r   Ú*test_memory_usage_components_narrow_series…   s
   "
rj   c                 C   sÈ   |}t |tjƒr|  tjjdd�¡ n|jjdkr*t |t	ƒr*tjjdd�}|  |¡ t
|dd�}t ||¡}d|  krCt|ƒksFJ ‚ J ‚tj||tt|ƒƒd�}d|  kr_t|ƒksbJ ‚ J ‚d S )Nz7np.searchsorted doesn't work on pd.MultiIndex: GH 14833rE   Úcz"complex objects are not comparabler   )Údefault)Úsorter)rI   r   Ú
MultiIndexÚapplymarkerr9   ÚmarkÚxfailr.   Úkindr   ÚmaxÚnpÚsearchsortedr?   ri   )Úrequestr@   rA   rp   Úmax_objrJ   r   r   r   Útest_searchsortedŽ   s   ÿÿ
 $rx   z$ignore:Dtype inference:FutureWarningc                 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tjƒrY|jj	dkrYd	}tj
t|d
�� ||  W d   ƒ n1 sow   Y  d}tj
t|d
�� |j|  W d   ƒ d S 1 sŽw   Y  d S )Nr   z%Test doesn't make sense on empty datarc   éÿÿÿÿr7   zindex z' is out of bounds for axis 0 with size Úpyarrowzindex out of boundsr5   z*single positional indexer is out-of-bounds)r?   r9   Úskipr   ÚilocrI   r.   r   ÚStringDtypeÚstorager:   Ú
IndexError)Ú
index_flatrJ   r^   r>   rC   r   r   r   Útest_access_by_position¨   s&   

ÿ"ÿr�   )rO   Únumpyrt   r9   Úpandas._configr   Úpandas.compatr   Úpandas.core.dtypes.commonr   r   Úpandasr   r   r   Úpandas._testingÚ_testingÚtmr   rp   Úparametrizer,   rD   Úskipifr[   rb   ÚNARROW_NP_DTYPESrj   rx   Úfilterwarningsr�   r   r   r   r   Ú<module>   s6    þ
þ
$

