a
    é´«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r´t|ƒrf|dkrLd}tj}| | jd¡ q²tj	||d�}| 
|¡ qÆt |¡}| ¡ }||jd  }||jd  dkr t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ÚpopZ_info_axis_namer	   ÚfillÚprodZravelÚshapeÚ	ExceptionÚrepeatZreshapeÚrandomÚdefault_rngÚstandard_normal)Úboxr   Úvaluer   ÚkwargsÚarrZfshapeZ	new_shape© r    ú`/var/www/html/laksyashrimp/venv/lib/python3.9/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   s   i | ]}||  ¡ “qS r    ©Úlower©Ú.0Úxr    r    r!   Ú
<dictcomp><   ó    zTestGeneric.<dictcomp>ÚABCDc                 C   s   i | ]}||  ¡ “qS r    r%   r'   r    r    r!   r*   =   r+   c           	      C   sj   t dƒ}|jD ]V}||i}t|dfi |¤Ž}|jf i ||i¤Ž}| ¡ }t||t dƒƒ t ||¡ qd S )Nr,   é   Úabcd)ÚlistZ_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 )
Nr-   c                    s    i | ]}ˆ   |¡ttˆƒƒ“qS r    )Ú_get_axis_namer/   Úrange©r(   Úi©r5   Únr    r!   r*   P   s   ÿz5TestGeneric.test_get_numeric_data.<locals>.<dictcomp>r   r	   r   T)Zdrop)TTFT)r=   r   r"   Z_get_numeric_datar2   r3   Z_get_bool_datar   r   ÚcolumnsZreset_indexr   Úarray)r4   r5   r   Úor9   r:   r   r    r@   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 sJ0    Y  tjt|d�� t|dkƒ W d   ƒ n1 s„0    Y  tjt|d�� t|ƒ W d   ƒ n1 sº0    Y  t |ddd�}tjt|d�� t|dkƒ W d   ƒ n1 �s0    Y  tjt|d�� t|dkƒ W d   ƒ n1 �s@0    Y  tjt|d�� t|ƒ W d   ƒ n1 �sx0    Y  t |dtjd�}tjt|d�� t|dkƒ W d   ƒ n1 �sÄ0    Y  tjt|d�� t|dkƒ W d   ƒ n1 �s 0    Y  tjt|d�� t|ƒ W d   ƒ n1 �s80    Y  t |dd�}tjt|d�� t|ƒ W d   ƒ n1 �s|0    Y  t |ddd�}t |ddd�}tjt|d�� |�r¸W d   ƒ n1 �sÎ0    Y  tjt|d�� |�oð| W d   ƒ n1 �s0    Y  tjt|d�� |�p*| W d   ƒ n1 �sB0    Y  tjt|d�� |  W d   ƒ n1 �sx0    Y  d S )	Nr-   ©r   zThe truth value of a z is ambiguous©Úmatchr   é   )r   r   )r"   Ú__name__ÚpytestÚraisesÚ
ValueErrorÚboolr   Únan)r4   r5   r8   ÚmsgZobj1Úobj2r    r    r!   Útest_nonzeroi   sH    **&,,(,,(( **zTestGeneric.test_nonzeroc                    sp   ‡ fdd„}dˆ j › d�}tjt|d�� |g d¢ƒ W d   ƒ n1 sJ0    Y  |dƒ |dƒ |d	ƒ d S )
Nc                    s   t ˆ dd| d�S )Né   rI   )r   r   r   )r"   r
   ©r5   r    r!   Úfž   s    z;TestGeneric.test_frame_or_series_compound_dtypes.<locals>.fz+compound dtypes are not implemented in the z constructorrG   ))ÚAzdatetime64[h])ÚBÚstr)ÚCZint32Zint64r   zM8[ns])rJ   rK   rL   ÚNotImplementedError)r4   r5   rU   rP   r    rT   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 ||¡ qLdD ]>}t||ƒ|ƒ}t ||¡ t |||@ ¡ t |||B ¡ qp| |¡}t ||¡ || }t |¡ dD ]F}t||ƒ|ƒ}t||ƒ|ƒ}t |¡ t ||@ ¡ t ||B ¡ qÜd S )NrS   rF   ÚfooÚbar)Ú__add__Ú__sub__Ú__truediv__Ú__mul__rI   )Ú__eq__Ú__le__Ú__ge__)r"   ÚnameÚgetattrr2   Zassert_metadata_equivalentZcombine_first)r4   r5   rD   Úo2Úopr9   Úv1Úv2r    r    r!   Útest_metadata_propagation®   s2    


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é
   rF   )r"   Úsizer   r   r   ÚlenÚaxes©r4   r5   rD   r    r    r!   Útest_size_compatà   s    zTestGeneric.test_size_compatc                 C   sp   t |dd�}tjtddd��@ tt |d¡ƒdks6J ‚tt |d¡ƒdksNJ ‚W d   ƒ n1 sb0    Y  d S )Nrl   rF   z.swapaxes' is deprecatedF)rH   Zcheck_stacklevelé   r   )r"   r2   Úassert_produces_warningÚFutureWarningrn   r   Zarray_splitrp   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 sB0    Y  tjt|d�� |j|d� W d   ƒ n1 s|0    Y  tjt|d�� |j|d� W d   ƒ n1 s¶0    Y  tjt|d�� |j|d� W d   ƒ n1 sð0    Y  d S )Nrr   z	Star Warszunexpected keywordrG   )Zepic)r"   rK   rL   Ú	TypeErrorÚmaxÚvarÚsumÚany)r4   r5   r8   ZstarwarsÚerrmsgr    r    r!   Útest_stat_unexpected_keywordò   s    
***z(TestGeneric.test_stat_unexpected_keyword)ry   Zcumsumrz   rx   c                 C   s6   t |dƒ}t||ƒ}|j|ks"J ‚|j |¡s2J ‚d S )Nrr   )r"   rf   rJ   Ú__qualname__Úendswith)r4   r$   r5   r8   rU   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 sJ0    Y  tjt|d�� |j|d� W d   ƒ n1 s„0    Y  tjt|d�� |j|d� W d   ƒ n1 s¾0    Y  tjt|d�� |j	|d� W d   ƒ n1 sø0    Y  d S )Nrr   r   ú$the 'out' parameter is not supportedrG   ©Úout)
r"   r   rC   rK   rL   rM   rw   rx   ry   rz   )r4   r5   r8   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Ð  rI   Zint8)r   r   r   g     p§@)ÚbeforeÚafteréÿÿÿÿg     @Ÿ@i€„ g    `ãFAg    €„>A)r   r"   r2   r3   Útruncate)r4   r5   r   ÚsmallÚbigr    r    r!   Útest_truncate_out_of_bounds  s    z'TestGeneric.test_truncate_out_of_boundsc                 C   s   | j dd�S )NF©Údeep©r   ©r)   r    r    r!   Ú<lambda>+  r+   zTestGeneric.<lambda>c                 C   s   | j dd�S )NTr‹   r�   rŽ   r    r    r!   r�   +  r+   r   )r   rI   r   c                 C   s.   t ||ƒ}||ƒ}||usJ ‚t ||¡ d S ©N)r"   r2   r3   )r4   r5   r   r$   r8   Z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 s40    Y  ||ju sLJ ‚d S )Nz&(Series|DataFrame)._data is deprecatedrG   )r2   rs   ÚDeprecationWarningÚ_dataZ_mgr)r4   r5   r8   rP   Zmgrr    r    r!   Útest_data_deprecated5  s
    $z TestGeneric.test_data_deprecatedN)rJ   Ú
__module__r}   rK   ÚmarkÚparametrizerX   r&   r/   r   r;   rE   rR   r[   rk   rq   ru   r|   r   rƒ   rŠ   r   r   r‘   r”   r    r    r    r!   r#   7   s4   ýþ
12

	þr#   c                   @   s4  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(d)„Zd&S )*ÚTestNDFrameÚserrl   r
   c                 C   s   g | ]}t |ƒ‘qS r    ©rX   r>   r    r    r!   Ú
<listcomp>D  r+   zTestNDFrame.<listcomp>c                 C   s   t  | ¡ |¡ d S r�   )r2   Úassert_series_equalÚsqueeze©r4   r™   r    r    r!   Útest_squeeze_series_noop@  s    	z$TestNDFrame.test_squeeze_series_noopc                 C   s"   t t d¡ƒ}t | ¡ |¡ d S )Nr   )r   r   Úeyer2   Úassert_frame_equalr�   ©r4   Ú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   ©rl   r-   r,   r
   ú
2000-01-01rl   rW   ©ZperiodsÚfreq©rB   ÚindexrV   ©rB   )r   r   r   r   r   r   r/   Úobjectr   Úreindexr2   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)re   r   )r   r   r   r   r2   rœ   r�   )r4   Zempty_seriesZempty_framer    r    r!   Útest_squeeze_0_len_dimY  s    
z"TestNDFrame.test_squeeze_0_len_dimc                 C   sd  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sRJ ‚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sàJ ‚d}tjt|d�� |jdd� W d   ƒ n1 �s0    Y  d}tjt|d�� |jdd� W d   ƒ n1 �sV0    Y  d S )Nr   )rI   r-   r,   r
   r¦   rI   rW   r§   r©   )rI   rI   r   ©r7   rª   rB   )r   r   z)No axis named 2 for object type DataFramerG   z)No axis named x for object type DataFramer)   )r   r   r   r   r   r   r/   r¬   r   Zilocr   r2   rœ   r�   rK   rL   rM   )r4   r£   rP   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   )rS   r-   r,   r
   r¦   rS   rW   r§   r©   r   r±   )r   r   r   r   r   r   r/   r¬   r   r2   r¡   r�   r¢   r    r    r!   Útest_squeeze_axis_len_3t  s    ý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¥   r,   r¦   rl   rW   r§   r©   rV   r«   )r   r=   r   r   r2   rœ   r�   r   r   r   r   r   r/   r¬   r   r­   )r4   Úsr£   r    r    r!   Útest_numpy_squeeze|  s    ýüzTestNDFrame.test_numpy_squeezec                 C   s   g | ]}t |ƒ‘qS r    rš   r>   r    r    r!   r›   ‹  r+   c                 C   s   t  | ¡ |¡ d S r�   )r2   rœ   Ú	transposerž   r    r    r!   Útest_transpose_series‡  s    	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¥   r,   r
   r¦   rl   rW   r§   r©   )r   r   r   r   r   r   r/   r¬   r   r2   r¡   r¶   r¢   r    r    r!   Útest_transpose_frame’  s    ý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 rXt	 t |¡|¡ t	 t t |¡¡|¡ d
}tjt|d�� tj|dd� W d   ƒ n1 s¦0    Y  d S )Nr   r¥   r,   r
   r¦   rl   rW   r§   r©   z%the 'axes' parameter is not supportedrG   rI   )ro   )r   r   r   r   r   r   r/   r¬   r   r2   Úget_objr   rœ   r¶   r3   rK   rL   rM   )r4   r5   r8   rP   r    r    r!   Útest_numpy_transposeš  s    ýz TestNDFrame.test_numpy_transposec                 C   s   g | ]}t |ƒ‘qS r    rš   r>   r    r    r!   r›   ±  r+   c                 C   sB   g d¢}|  |¡}t|j  |¡|j  |¡|jd�}t ||¡ d S )N©rI   rr   éþÿÿÿé   rS   r†   )Údatarª   r   )Útaker   Úvaluesrª   r   r2   rœ   )r4   r™   Úindicesr‚   r:   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¥   r,   r
   r¦   rl   rW   r§   r©   r   r±   )r¾   rª   rB   )r   r   r   r   r   r   r/   r¬   r   r¿   rÀ   rª   rB   r2   r¡   )r4   rÁ   r£   r‚   r:   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 sV0    Y  d}tjt|d�� |j||d� W d   ƒ n1 s–0    Y  d	}tjt|d�� |j|d
d� W d   ƒ n1 sÖ0    Y  d S )N)éýÿÿÿr   r   rI   rr   z1take\(\) got an unexpected keyword argument 'foo'rG   r   )r\   r€   r�   z%the 'mode' parameter is not supportedZclip)Úmode)	r   r=   r2   r¹   rK   rL   rv   r¿   rM   )r4   r5   rÁ   r8   rP   r    r    r!   Útest_take_invalid_kwargsÍ  s    ,,z$TestNDFrame.test_take_invalid_kwargsc                 C   sn   |}|t d�}|j ¡ }|D ]L}| |¡| |¡ks8J ‚| |¡| |¡ksPJ ‚| |¡| |¡ksJ ‚qd S )Nr
   )r¬   Z_AXIS_TO_AXIS_NUMBERÚkeysZ_get_axis_numberr<   Z_get_block_manager_axis)r4   r5   r   r8   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sDJ ‚d S )NrI   r   )r   r   Zto_frameÚflagsr   )r4   r5   r8   rQ   r    r    r!   Útest_flags_identityè  s    zTestNDFrame.test_flags_identityN)Úreturnc                 C   sH   d}t jt|d��" tddgiƒ ¡  W d   ƒ n1 s:0    Y  d S )NzPDataFrame.bool is now deprecated and will be removed in future version of pandasrG   ÚcolF)r2   rs   rt   r   rN   )r4   Zmsg_warnr    r    r!   Útest_bool_depñ  s    ÿzTestNDFrame.test_bool_dep)rJ   r•   r}   rK   r–   r—   r   r=   r   r   r¬   rŸ   r¤   r®   r°   r²   r³   rµ   r·   r¸   rº   rÂ   rÃ   rÆ   rÉ   rË   rÎ   r    r    r    r!   r˜   =  sD   þþ
	þþ
þþ

		r˜   )NN)r   r   Únumpyr   rK   Zpandas.core.dtypes.commonr   Zpandasr   r   r   r   Zpandas._testingZ_testingr2   r"   r#   r˜   r    r    r    r!   Ú<module>   s   
   