o
    Û­j'D  ã                   @   sz   d dl m Z mZ d dlZd dlZd dlmZ d dlmZm	Z	m
Z
mZ d dlmZ ddd„ZG dd„ dƒZG d	d
„ d
ƒZdS )é    )ÚcopyÚdeepcopyN)Ú	is_scalar)Ú	DataFrameÚIndexÚSeriesÚ
date_rangec                 K   sÚ   t |tƒrt|g| j ƒ}|durZt|ƒr3|dkr&d}tj}| | jd¡ n=tj	||d�}| 
|¡ n0t |¡}| ¡ }||jd  }||jd  dkrPtdƒ‚t ||¡ |¡}n	tj d¡ |¡}| |fd|i|¤ŽS )z’
    construct an object for the given shape
    if value is specified use that if its a scalar
    if value is an array, repeat it as needed
    NÚempty©Údtyper   z!invalid value passed in constructé   r   )Ú
isinstanceÚintÚtupleÚ	_AXIS_LENr   ÚnpÚfloat64ÚpopÚ_info_axis_namer	   ÚfillÚprodÚravelÚshapeÚ	ExceptionÚrepeatÚreshapeÚrandomÚdefault_rngÚstandard_normal)Úboxr   Úvaluer   ÚkwargsÚarrÚfshapeÚ	new_shape© r%   ú^/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/generic/test_generic.pyÚ	construct   s$   

r'   c                	   @   sì   e Zd Zej dejdd„ edƒD ƒe	dd„ edƒD ƒƒg¡dd„ ƒZ
dd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZdd„ Zdd„ Zej deedd„ dd„ g¡ej d g d!¢¡d"d#„ ƒƒZd$d%„ Zd&S )'ÚTestGenericÚfuncc                 C   ó   i | ]}||  ¡ “qS r%   ©Úlower©Ú.0Úxr%   r%   r&   Ú
<dictcomp><   ó    zTestGeneric.<dictcomp>ÚABCDc                 C   r*   r%   r+   r-   r%   r%   r&   r0   =   r1   c           	      C   sj   t dƒ}|jD ]+}||i}t|dfi |¤Ž}|jdi ||i¤Ž}| ¡ }t||t dƒƒ t ||¡ qd S )Nr2   é   Úabcdr%   )ÚlistÚ_AXIS_ORDERSr'   Úrenamer   ÚsetattrÚtmÚassert_equal)	ÚselfÚframe_or_seriesr)   ÚidxÚaxisr!   ÚobjÚresultÚexpectedr%   r%   r&   Útest_rename8   s   

øzTestGeneric.test_renamec                    sÌ   d‰‡ ‡fdd„t ˆ jƒD ƒ}tˆ ˆfi |¤Ž}| ¡ }t ||¡ | ¡ }tˆ ˆfddi|¤Ž}t|tƒr>|j	d d… |_	t |j
dd�|¡ t g d	¢¡}tˆ ˆfd|i|¤Ž}| ¡ }t ||¡ d S )
Nr3   c                    s    i | ]}ˆ   |¡ttˆƒƒ“qS r%   )Ú_get_axis_namer5   Úrange©r.   Úi©r<   Únr%   r&   r0   P   s    ÿÿz5TestGeneric.test_get_numeric_data.<locals>.<dictcomp>r    r	   r   T)Údrop)TTFT)rD   r   r'   Ú_get_numeric_datar9   r:   Ú_get_bool_datar   r   ÚcolumnsÚreset_indexr   Úarray)r;   r<   r!   Úor@   rA   r"   r%   rG   r&   Útest_get_numeric_dataN   s    þ
z!TestGeneric.test_get_numeric_datac                 C   s€  t |dd�}d|j› d�}tjt|d�� t|dkƒ W d   ƒ n1 s%w   Y  tjt|d�� t|dkƒ W d   ƒ n1 sBw   Y  tjt|d�� t|ƒ W d   ƒ n1 s]w   Y  t |ddd�}tjt|d�� t|dkƒ W d   ƒ n1 s�w   Y  tjt|d�� t|dkƒ W d   ƒ n1 sžw   Y  tjt|d�� t|ƒ W d   ƒ n1 s¹w   Y  t |dtjd�}tjt|d�� t|dkƒ W d   ƒ n1 sÞw   Y  tjt|d�� t|dkƒ W d   ƒ n1 sûw   Y  tjt|d�� t|ƒ W d   ƒ n	1 �sw   Y  t |dd�}tjt|d�� t|ƒ W d   ƒ n	1 �s9w   Y  t |ddd�}t |ddd�}tjt|d�� |�rX	 W d   ƒ n	1 �scw   Y  tjt|d�� |�ot| W d   ƒ n	1 �s€w   Y  tjt|d�� |�p‘| W d   ƒ n	1 �s�w   Y  tjt|d�� |  W d   ƒ d S 1 �s¹w   Y  d S )	Nr3   ©r   zThe truth value of a z is ambiguous©Úmatchr   é   )r   r    )r'   Ú__name__ÚpytestÚraisesÚ
ValueErrorÚboolr   Únan)r;   r<   r?   ÚmsgÚobj1Úobj2r%   r%   r&   Útest_nonzeroi   sj   ÿÿ
ÿÿÿ
ÿÿÿ
ÿ
ÿ€þ€ÿ€ÿ$ÿzTestGeneric.test_nonzeroc                    sp   ‡ fdd„}dˆ j › d�}tjt|d�� |g d¢ƒ W d   ƒ n1 s%w   Y  |dƒ |dƒ |d	ƒ d S )
Nc                    s   t ˆ dd| d�S )Né   rT   )r   r    r   )r'   r
   ©r<   r%   r&   Úfž   s   z;TestGeneric.test_frame_or_series_compound_dtypes.<locals>.fz+compound dtypes are not implemented in the z constructorrR   ))ÚAzdatetime64[h])ÚBÚstr)ÚCÚint32Úint64r   zM8[ns])rU   rV   rW   ÚNotImplementedError)r;   r<   ra   r[   r%   r`   r&   Ú$test_frame_or_series_compound_dtypesš   s   ÿÿÿz0TestGeneric.test_frame_or_series_compound_dtypesc                 C   s(  t |dd�}d|_t |dd�}d|_dD ]}t||ƒdƒ}t ||¡ qdD ]}t||ƒ|ƒ}t ||¡ q&dD ]}t||ƒ|ƒ}t ||¡ t |||@ ¡ t |||B ¡ q8| |¡}t ||¡ || }t |¡ dD ]#}t||ƒ|ƒ}t||ƒ|ƒ}t |¡ t ||@ ¡ t ||B ¡ qnd S )Nr_   rQ   ÚfooÚbar)Ú__add__Ú__sub__Ú__truediv__Ú__mul__rT   )Ú__eq__Ú__le__Ú__ge__)r'   ÚnameÚgetattrr9   Úassert_metadata_equivalentÚcombine_first)r;   r<   rO   Úo2Úopr@   Úv1Úv2r%   r%   r&   Útest_metadata_propagation®   s4   


úz%TestGeneric.test_metadata_propagationc                 C   s>   t |dd�}|jt |j¡ksJ ‚|jdt|jƒ ksJ ‚d S )Né
   rQ   )r'   Úsizer   r   r   ÚlenÚaxes©r;   r<   rO   r%   r%   r&   Útest_size_compatà   s   zTestGeneric.test_size_compatc                 C   sr   t |dd�}tjtddd��! tt |d¡ƒdksJ ‚tt |d¡ƒdks'J ‚W d   ƒ d S 1 s2w   Y  d S )Nr|   rQ   z.swapaxes' is deprecatedF)rS   Úcheck_stacklevelé   r   )r'   r9   Úassert_produces_warningÚFutureWarningr~   r   Úarray_splitr€   r%   r%   r&   Útest_split_compatè   s   ÿ"üzTestGeneric.test_split_compatc                 C   s   t |dƒ}d}d}tjt|d�� |j|d� W d   ƒ n1 s!w   Y  tjt|d�� |j|d� W d   ƒ n1 s>w   Y  tjt|d�� |j|d� W d   ƒ n1 s[w   Y  tjt|d�� |j|d� W d   ƒ d S 1 syw   Y  d S )Nrƒ   z	Star Warszunexpected keywordrR   )Úepic)r'   rV   rW   Ú	TypeErrorÚmaxÚvarÚsumÚany)r;   r<   r?   ÚstarwarsÚerrmsgr%   r%   r&   Útest_stat_unexpected_keywordò   s   
ÿÿÿ"ÿz(TestGeneric.test_stat_unexpected_keyword)rŒ   Úcumsumr�   r‹   c                 C   s6   t |dƒ}t||ƒ}|j|ksJ ‚|j |¡sJ ‚d S )Nrƒ   )r'   rt   rU   Ú__qualname__Úendswith)r;   r)   r<   r?   ra   r%   r%   r&   Útest_api_compat   s   

zTestGeneric.test_api_compatc                 C   s  t |dƒ}t dg¡}d}tjt|d�� |j|d� W d   ƒ n1 s%w   Y  tjt|d�� |j|d� W d   ƒ n1 sBw   Y  tjt|d�� |j|d� W d   ƒ n1 s_w   Y  tjt|d�� |j	|d� W d   ƒ d S 1 s}w   Y  d S )Nrƒ   r   ú$the 'out' parameter is not supportedrR   ©Úout)
r'   r   rN   rV   rW   rX   rŠ   r‹   rŒ   r�   )r;   r<   r?   r—   r�   r%   r%   r&   Útest_stat_non_defaults_args
  s   
ÿÿÿ"ÿz'TestGeneric.test_stat_non_defaults_argsc                 C   sÈ   dgdg|j d   }t||ddd�}t | ¡ |¡ t |jddd�|¡ t |jdd	d�|¡ d
gdg|j d   }t||ddd�}t | ¡ |¡ t |jddd�|¡ t |jddd�|¡ d S )NiÐ  rT   Úint8)r   r    r   g     p§@)ÚbeforeÚafteréÿÿÿÿg     @Ÿ@i€„ g    `ãFAg    €„>A)r   r'   r9   r:   Útruncate)r;   r<   r   ÚsmallÚbigr%   r%   r&   Útest_truncate_out_of_bounds  s   z'TestGeneric.test_truncate_out_of_boundsc                 C   ó   | j dd�S )NF©Údeep©r   ©r/   r%   r%   r&   Ú<lambda>+  ó    zTestGeneric.<lambda>c                 C   r¡   )NTr¢   r¤   r¥   r%   r%   r&   r¦   +  r§   r   )r   rT   r   c                 C   s.   t ||ƒ}||ƒ}||usJ ‚t ||¡ d S ©N)r'   r9   r:   )r;   r<   r   r)   r?   Úobj_copyr%   r%   r&   Útest_copy_and_deepcopy)  s   
z"TestGeneric.test_copy_and_deepcopyc                 C   sP   |ƒ }d}t jt|d�� |j}W d   ƒ n1 sw   Y  ||ju s&J ‚d S )Nz&(Series|DataFrame)._data is deprecatedrR   )r9   r„   ÚDeprecationWarningÚ_dataÚ_mgr)r;   r<   r?   r[   Úmgrr%   r%   r&   Útest_data_deprecated5  s   ÿz TestGeneric.test_data_deprecatedN)rU   Ú
__module__r’   rV   ÚmarkÚparametrizerd   r,   r5   r   rB   rP   r^   ri   r{   r�   r‡   r�   r”   r˜   r    r   r   rª   r¯   r%   r%   r%   r&   r(   7   s6    ýþ
12

	þr(   c                   @   s0  e Zd Zej deedƒej	d�edd„ edƒD ƒe
d�g¡dd„ ƒZdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zej deedƒej	d�edd„ edƒD ƒe
d�g¡dd„ ƒZdd„ Zdd„ Zej deedƒej	d�edd„ edƒD ƒe
d�g¡dd„ ƒZdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd*d(d)„Zd'S )+ÚTestNDFrameÚserr|   r
   c                 C   ó   g | ]}t |ƒ‘qS r%   ©rd   rE   r%   r%   r&   Ú
<listcomp>D  ó    zTestNDFrame.<listcomp>c                 C   ó   t  | ¡ |¡ d S r¨   )r9   Úassert_series_equalÚsqueeze©r;   r´   r%   r%   r&   Útest_squeeze_series_noop@  ó   	z$TestNDFrame.test_squeeze_series_noopc                 C   s"   t t d¡ƒ}t | ¡ |¡ d S )Nr   )r   r   Úeyer9   Úassert_frame_equalr»   ©r;   Údfr%   r%   r&   Útest_squeeze_frame_noopK  s   z#TestNDFrame.test_squeeze_frame_noopc                 C   sT   t tj d¡ d¡ttdƒtd�tdddd�d	�j	d
gd�}t
 | ¡ |d
 ¡ d S )Nr   ©r|   r3   r2   r
   ú
2000-01-01r|   rc   ©ÚperiodsÚfreq©rL   Úindexrb   ©rL   )r   r   r   r   r   r   r5   Úobjectr   Úreindexr9   rº   r»   rÁ   r%   r%   r&   Útest_squeeze_frame_reindexP  s   ýüz&TestNDFrame.test_squeeze_frame_reindexc                 C   s>   t g dtjd�}t|gƒ}t || ¡ ¡ t || ¡ ¡ d S )NÚfive)rs   r   )r   r   r   r   r9   rº   r»   )r;   Úempty_seriesÚempty_framer%   r%   r&   Útest_squeeze_0_len_dimY  s   
z"TestNDFrame.test_squeeze_0_len_dimc                 C   sb  t tj d¡ d¡ttdƒtd�tdddd�d	�j	d d …d d…f }|j
d
ks)J ‚t |jdd�|j	d ¡ t |jdd�|j	d ¡ t |jdd�|j	d d …df ¡ t |jdd�|j	d d …df ¡ | ¡ |j	d kspJ ‚d}tjt|d�� |jdd� W d   ƒ n1 sŠw   Y  d}tjt|d�� |jdd� W d   ƒ d S 1 sªw   Y  d S )Nr   )rT   r3   r2   r
   rÅ   rT   rc   rÆ   rÉ   )rT   rT   r   ©r>   rÊ   rL   )r   r   z)No axis named 2 for object type DataFramerR   z)No axis named x for object type DataFramer/   )r   r   r   r   r   r   r5   rÌ   r   Úilocr   r9   rº   r»   rV   rW   rX   )r;   rÂ   r[   r%   r%   r&   Útest_squeeze_axis`  s*   ýü""ÿ"ÿzTestNDFrame.test_squeeze_axisc                 C   sJ   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	 
|jd
d�|¡ d S )Nr   )r_   r3   r2   r
   rÅ   r_   rc   rÆ   rÉ   r   rÓ   )r   r   r   r   r   r   r5   rÌ   r   r9   rÀ   r»   rÁ   r%   r%   r&   Útest_squeeze_axis_len_3t  ó   ýz#TestNDFrame.test_squeeze_axis_len_3c                 C   sz   t tdƒtjd�}t t |¡|¡ ttj 	d¡ 
d¡ttdƒtd�tdddd�d	�jd
gd�}t t |¡|d
 ¡ d S )Nr   r
   rÄ   r2   rÅ   r|   rc   rÆ   rÉ   rb   rË   )r   rD   r   r   r9   rº   r»   r   r   r   r   r   r5   rÌ   r   rÍ   )r;   ÚsrÂ   r%   r%   r&   Útest_numpy_squeeze|  s   ýüzTestNDFrame.test_numpy_squeezec                 C   rµ   r%   r¶   rE   r%   r%   r&   r·   ‹  r¸   c                 C   r¹   r¨   )r9   rº   Ú	transposer¼   r%   r%   r&   Útest_transpose_series‡  r¾   z!TestNDFrame.test_transpose_seriesc                 C   sJ   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	 
| ¡  ¡ |¡ d S )
Nr   rÄ   r2   r
   rÅ   r|   rc   rÆ   rÉ   )r   r   r   r   r   r   r5   rÌ   r   r9   rÀ   rÚ   rÁ   r%   r%   r&   Útest_transpose_frame’  r×   z TestNDFrame.test_transpose_framec                 C   s¶   t tj d¡ d¡ttdƒtd�tdddd�d	�}t	 
||¡}|tu r,t	 t |¡|¡ t	 t t |¡¡|¡ d
}tjt|d�� tj|dd� W d   ƒ d S 1 sTw   Y  d S )Nr   rÄ   r2   r
   rÅ   r|   rc   rÆ   rÉ   z%the 'axes' parameter is not supportedrR   rT   )r   )r   r   r   r   r   r   r5   rÌ   r   r9   Úget_objr   rº   rÚ   r:   rV   rW   rX   )r;   r<   r?   r[   r%   r%   r&   Útest_numpy_transposeš  s   ý"ÿz TestNDFrame.test_numpy_transposec                 C   rµ   r%   r¶   rE   r%   r%   r&   r·   ±  r¸   c                 C   sB   g d¢}|  |¡}t|j  |¡|j  |¡|jd�}t ||¡ d S )N©rT   rƒ   éþÿÿÿé   r_   rœ   )ÚdatarÊ   r   )Útaker   ÚvaluesrÊ   r   r9   rº   )r;   r´   Úindicesr—   rA   r%   r%   r&   Útest_take_series­  s   


ýzTestNDFrame.test_take_seriesc                 C   sx   g d¢}t tj d¡ d¡ttdƒtd�tdddd	�d
�}| 	|¡}t |j
j	|dd�|j 	|¡|jd�}t ||¡ d S )Nrß   r   rÄ   r2   r
   rÅ   r|   rc   rÆ   rÉ   r   rÓ   )râ   rÊ   rL   )r   r   r   r   r   r   r5   rÌ   r   rã   rä   rÊ   rL   r9   rÀ   )r;   rå   rÂ   r—   rA   r%   r%   r&   Útest_take_frame¾  s   ý

ýzTestNDFrame.test_take_framec                 C   sæ   g d¢}t tdƒƒ}t ||¡}d}tjt|d�� |j|dd� W d   ƒ n1 s+w   Y  d}tjt|d�� |j||d� W d   ƒ n1 sKw   Y  d	}tjt|d�� |j|d
d� W d   ƒ d S 1 slw   Y  d S )N)éýÿÿÿr   r   rT   rƒ   z1take\(\) got an unexpected keyword argument 'foo'rR   r   )rj   r•   r–   z%the 'mode' parameter is not supportedÚclip)Úmode)	r   rD   r9   rÝ   rV   rW   r‰   rã   rX   )r;   r<   rå   r?   r[   r%   r%   r&   Útest_take_invalid_kwargsÍ  s   ÿÿ"ÿz$TestNDFrame.test_take_invalid_kwargsc                 C   sn   |}|t d�}|j ¡ }|D ]&}| |¡| |¡ksJ ‚| |¡| |¡ks(J ‚| |¡| |¡ks4J ‚qd S )Nr
   )rÌ   Ú_AXIS_TO_AXIS_NUMBERÚkeysÚ_get_axis_numberrC   Ú_get_block_manager_axis)r;   r<   r   r?   rä   Úvr%   r%   r&   Útest_axis_classmethodsß  s   

ýz"TestNDFrame.test_axis_classmethodsc                 C   sH   t ddgƒ}|tu r| ¡ }|j|ju sJ ‚| ¡ }|j|jus"J ‚d S )NrT   r   )r   r   Úto_frameÚflagsr   )r;   r<   r?   r]   r%   r%   r&   Útest_flags_identityè  s   zTestNDFrame.test_flags_identityÚreturnNc                 C   sJ   d}t jt|d�� tddgiƒ ¡  W d   ƒ d S 1 sw   Y  d S )NzPDataFrame.bool is now deprecated and will be removed in future version of pandasrR   ÚcolF)r9   r„   r…   r   rY   )r;   Úmsg_warnr%   r%   r&   Útest_bool_depñ  s
   ÿ"ÿzTestNDFrame.test_bool_dep)rõ   N)rU   r°   r’   rV   r±   r²   r   rD   r   r   rÌ   r½   rÃ   rÎ   rÒ   rÕ   rÖ   rÙ   rÛ   rÜ   rÞ   ræ   rç   rë   rñ   rô   rø   r%   r%   r%   r&   r³   =  sF    þþ
	þþ
þþ

		r³   )NN)r   r   Únumpyr   rV   Úpandas.core.dtypes.commonr   Úpandasr   r   r   r   Úpandas._testingÚ_testingr9   r'   r(   r³   r%   r%   r%   r&   Ú<module>   s    
   