U
    ÎZj?@  ã                   @   sr   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	 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ÚSeriesc                 K   sÔ   t |tƒrt|g| j ƒ}|dk	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j|Ž }| |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 constructr	   )Ú
isinstanceÚintÚtupleÚ	_AXIS_LENr   ÚnpÚfloat64ÚpopZ_info_axis_namer   ÚfillÚprodZravelÚshapeÚ	ExceptionÚrepeatZreshapeÚrandomZrandn)Úboxr   Úvaluer	   ÚkwargsÚarrZfshapeZ	new_shape© r   úd/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/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ddddg¡dd„ ƒZdd„ Zdd„ Zej deed d!„ d"d!„ g¡ej d#d$d%d&g¡d'd(„ ƒƒZd)S )*ÚGenericÚfuncc                 C   s   i | ]}||  ¡ “qS r   ©Úlower©Ú.0Úxr   r   r   Ú
<dictcomp>:   s      zGeneric.<dictcomp>ÚABCDc                 C   s   i | ]}||  ¡ “qS r   r    r"   r   r   r   r%   ;   s      c           	      C   s^   t dƒ}|jD ]J}||i}td|Ž}|jf ||iŽ}| ¡ }t||t dƒƒ t ||¡ qd S )Nr&   é   Úabcd)r'   )ÚlistZ_AXIS_ORDERSr   Úrenamer   ÚsetattrÚtmÚassert_equal)	ÚselfÚframe_or_seriesr   ÚidxÚaxisr   ÚobjÚresultÚexpectedr   r   r   Útest_rename6   s    

zGeneric.test_renamec                    s¾   d‰‡ ‡fdd„t ˆ jƒD ƒ}tˆf|Ž}| ¡ }t ||¡ | ¡ }tˆfddi|—Ž}t|tƒrt|j	d d… |_	t ||¡ t
 ddddg¡}tˆfd|i|—Ž}| ¡ }t ||¡ d S )	Nr'   c                    s    i | ]}ˆ   |¡ttˆƒƒ“qS r   )Ú_get_axis_namer)   Úrange)r#   Úi©r/   Únr   r   r%   P   s   ÿ z1Generic.test_get_numeric_data.<locals>.<dictcomp>r   r   r   TF)r7   r   r   Z_get_numeric_datar,   r-   Z_get_bool_datar
   r   Úcolumnsr   Úarray)r.   r/   r   Úor3   r4   r   r   r9   r   Útest_get_numeric_dataM   s     þ
zGeneric.test_get_numeric_datac              	   C   sX  t |dd�}d|j› d�}tjt|d�� t|dkƒ W 5 Q R X tjt|d�� t|dkƒ W 5 Q R X tjt|d�� t|ƒ W 5 Q R X t |ddd�}tjt|d�� t|dkƒ W 5 Q R X tjt|d�� t|dkƒ W 5 Q R X tjt|d�� t|ƒ W 5 Q R X t |dtjd�}tjt|d�� t|dkƒ W 5 Q R X tjt|d�� t|dkƒ W 5 Q R X tjt|d�� t|ƒ W 5 Q R X t |dd�}tjt|d�� t|ƒ W 5 Q R X t |ddd�}t |ddd�}tjt|d�� |�râW 5 Q R X tjt|d�� |�o| W 5 Q R X tjt|d�� |�p(| W 5 Q R X tjt|d�� |  W 5 Q R X d S )	Nr'   ©r   zThe truth value of a z is ambiguous©Úmatchr   é   )r   r   )r   Ú__name__ÚpytestÚraisesÚ
ValueErrorÚboolr   Únan)r.   r/   r2   ÚmsgZobj1Úobj2r   r   r   Útest_nonzeroh   sH    
zGeneric.test_nonzeroc              	      s^   ‡ fdd„}dˆ j › d�}tjt|d�� |dddgƒ W 5 Q R X |d	ƒ |d
ƒ |dƒ d S )Nc                    s   t ˆ dd| d�S )Né   rB   )r   r   r	   )r   r   ©r/   r   r   Úfž   s    z7Generic.test_frame_or_series_compound_dtypes.<locals>.fz+compound dtypes are not implemented in the z frame_or_seriesr@   )ÚAzdatetime64[h])ÚBÚstr)ÚCZint32Zint64r   zM8[ns])rC   rD   rE   ÚNotImplementedError)r.   r/   rN   rI   r   rM   r   Ú$test_frame_or_series_compound_dtypesš   s    ÿz,Generic.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 )NrL   r?   ÚfooÚbar)Ú__add__Ú__sub__Ú__truediv__Ú__mul__rB   )Ú__eq__Ú__le__Ú__ge__)r   ÚnameÚgetattrr,   Zassert_metadata_equivalentZcombine_first)r.   r/   r=   Úo2Úopr3   Zv1Zv2r   r   r   Útest_metadata_propagation®   s2    


z!Generic.test_metadata_propagationc                 C   s>   t |dd�}|jt |j¡ks"t‚|jdt|jƒ ks:t‚d S )Né
   r?   )r   Úsizer   r   r   ÚAssertionErrorÚlenÚaxes©r.   r/   r=   r   r   r   Útest_size_compatá   s    zGeneric.test_size_compatc                 C   s@   t |dd�}tt |d¡ƒdks$t‚tt |d¡ƒdks<t‚d S )Nrc   r?   é   é   )r   rf   r   Zarray_splitre   rh   r   r   r   Útest_split_compaté   s    zGeneric.test_split_compatc              	   C   s®   t |dƒ}d}d}tjt|d�� |j|d� W 5 Q R X tjt|d�� |j|d� W 5 Q R X tjt|d�� |j|d� W 5 Q R X tjt|d�� |j|d� W 5 Q R X d S )Nrj   z	Star Warszunexpected keywordr@   )Zepic)r   rD   rE   Ú	TypeErrorÚmaxÚvarÚsumÚany)r.   r/   r2   ZstarwarsÚerrmsgr   r   r   Útest_stat_unexpected_keywordð   s    
z$Generic.test_stat_unexpected_keywordrp   Zcumsumrq   ro   c                 C   s4   |df}t ||ƒ}|j|ks t‚|j |¡s0t‚d S )Nrj   )r_   rC   re   Ú__qualname__Úendswith)r.   r   r/   r2   rN   r   r   r   Útest_api_compatþ   s    
zGeneric.test_api_compatc              	   C   s¶   t |dƒ}t dg¡}d}tjt|d�� |j|d� W 5 Q R X tjt|d�� |j|d� W 5 Q R X tjt|d�� |j|d� W 5 Q R X tjt|d�� |j	|d� W 5 Q R X d S )Nrj   r   ú$the 'out' parameter is not supportedr@   ©Úout)
r   r   r<   rD   rE   rF   rn   ro   rp   rq   )r.   r/   r2   ry   rr   r   r   r   Útest_stat_non_defaults_args	  s    
z#Generic.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Ð  rB   Zint8)r	   r   r   g     p§@)ÚbeforeÚafteréÿÿÿÿg     @Ÿ@i€„ g    `ãFAg    €„>A)r   r   r,   r-   Útruncate)r.   r/   r   ZsmallÚbigr   r   r   Útest_truncate_out_of_bounds  s    z#Generic.test_truncate_out_of_boundsc                 C   s   | j dd�S )NF©Údeep©r   ©r$   r   r   r   Ú<lambda>*  ó    zGeneric.<lambda>c                 C   s   | j dd�S )NTr�   rƒ   r„   r   r   r   r…   *  r†   r   r   rB   rk   c                 C   s.   t ||ƒ}||ƒ}||k	st‚t ||¡ d S ©N)r   re   r,   r-   )r.   r/   r   r   r2   Zobj_copyr   r   r   Útest_copy_and_deepcopy(  s    
zGeneric.test_copy_and_deepcopyN)rC   Ú
__module__rt   rD   ÚmarkÚparametrizerQ   r!   r)   r   r5   r>   rK   rT   rb   ri   rl   rs   rv   rz   r€   r   r   rˆ   r   r   r   r   r   5   s2   ýþ
23

þr   c                   @   s  e Zd Zej de ¡ e ¡ e 	¡ 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 ¡ e 	¡ g¡dd„ ƒZdd„ Zdd„ Zej de ¡ e ¡ e 	¡ g¡dd„ ƒZdd„ Zdd„ Zej dddg¡dd „ ƒZd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+S ),ÚTestNDFrameÚserc                 C   s   t  | ¡ |¡ d S r‡   )r,   Úassert_series_equalÚsqueeze©r.   r�   r   r   r   Útest_squeeze_series_noop8  s    z$TestNDFrame.test_squeeze_series_noopc                 C   s   t  ¡ }t  | ¡ |¡ d S r‡   ©r,   ÚmakeTimeDataFrameÚassert_frame_equalr�   ©r.   Údfr   r   r   Útest_squeeze_frame_noop?  s    z#TestNDFrame.test_squeeze_frame_noopc                 C   s*   t  ¡ jdgd�}t  | ¡ |d ¡ d S ©NrO   )r;   )r,   r“   ÚreindexrŽ   r�   r•   r   r   r   Útest_squeeze_frame_reindexD  s    z&TestNDFrame.test_squeeze_frame_reindexc                 C   s>   t g dtjd�}t|gƒ}t || ¡ ¡ t || ¡ ¡ d S )NÚfive)r^   r	   )r   r   r   r   r,   rŽ   r�   )r.   Zempty_seriesZempty_framer   r   r   Útest_squeeze_0_len_dimI  s    
z"TestNDFrame.test_squeeze_0_len_dimc              	   C   s  t jdd�jd d …d d…f }|jdks,t‚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ºt‚d	}tjt	|d
�� |jdd� W 5 Q R X d}tjt	|d
�� |jdd� W 5 Q R X d S )NrB   )Znper)rB   rB   r   ©r1   Úindexr;   )r   r   z)No axis named 2 for object type DataFramer@   rk   z)No axis named x for object type DataFramer$   )
r,   r“   Zilocr   re   rŽ   r�   rD   rE   rF   )r.   r–   rI   r   r   r   Útest_squeeze_axisP  s    ""zTestNDFrame.test_squeeze_axisc                 C   s"   t  d¡}t  |jdd�|¡ d S )NrL   r   r�   r’   r•   r   r   r   Útest_squeeze_axis_len_3`  s    
z#TestNDFrame.test_squeeze_axis_len_3c                 C   sF   t  ¡ }t  t |¡|¡ t  ¡ jdgd�}t  t |¡|d ¡ d S r˜   )r,   ÚmakeFloatSeriesrŽ   r   r�   r“   r™   )r.   Úsr–   r   r   r   Útest_numpy_squeezed  s    zTestNDFrame.test_numpy_squeezec                 C   s   t  | ¡ |¡ d S r‡   )r,   rŽ   Ú	transposer�   r   r   r   Útest_transpose_seriesk  s    z!TestNDFrame.test_transpose_seriesc                 C   s    t  ¡ }t  | ¡  ¡ |¡ d S r‡   )r,   r“   r”   r¤   r•   r   r   r   Útest_transpose_framer  s    z TestNDFrame.test_transpose_framec              	   C   sv   t  ¡ }t  ||¡}|tkr.t  t |¡|¡ t  t t |¡¡|¡ d}tj	t
|d�� tj|dd� W 5 Q R X d S )Nz%the 'axes' parameter is not supportedr@   rB   )rg   )r,   r“   Úget_objr   rŽ   r   r¤   r-   rD   rE   rF   )r.   r/   r2   rI   r   r   r   Útest_numpy_transposev  s    z TestNDFrame.test_numpy_transposec                 C   sJ   ddddddg}|  |¡}t|j  |¡|j  |¡|jd�}t ||¡ d S )NrB   rj   éþÿÿÿé   rL   r}   )Údatarž   r	   )Útaker   Úvaluesrž   r	   r,   rŽ   )r.   r�   Úindicesry   r4   r   r   r   Útest_take_series†  s    


ýzTestNDFrame.test_take_seriesc                 C   sV   ddddddg}t  ¡ }| |¡}t|jj|dd�|j |¡|jd	�}t  ||¡ d S )
NrB   rj   r©   rª   rL   r}   r   r�   )r«   rž   r;   )r,   r“   r¬   r   r­   rž   r;   r”   )r.   r®   r–   ry   r4   r   r   r   Útest_take_frame“  s    

ýzTestNDFrame.test_take_framec              	   C   s¨   ddddg}t  ¡ }t  ||¡}d}tjt|d�� |j|dd� W 5 Q R X d}tjt|d�� |j||d	� W 5 Q R X d
}tjt|d�� |j|dd� W 5 Q R X d S )Néýÿÿÿrk   r   rB   z1take\(\) got an unexpected keyword argument 'foo'r@   )rU   rw   rx   z%the 'mode' parameter is not supportedZclip)Úmode)r,   r“   r§   rD   rE   rm   r¬   rF   )r.   r/   r®   r2   rI   r   r   r   Útest_take_invalid_kwargsž  s    z$TestNDFrame.test_take_invalid_kwargsÚis_copyTFc              	   C   sf   t ddddgiƒ}t ||¡}d}t t¡�}|jddg|d� W 5 Q R X |d jjd |ksbt‚d S )NrO   rB   rk   rL   z�is_copy is deprecated and will be removed in a future version. 'take' always returns a copy, so there is no need to specify this.r   )r´   )	r   r,   r§   Úassert_produces_warningÚFutureWarningr¬   ÚmessageÚargsre   )r.   r´   r/   r2   rI   Úwr   r   r   Útest_depr_take_kwarg_is_copy°  s    ÿz(TestNDFrame.test_depr_take_kwarg_is_copyc                 C   sn   |}|t d�}|j ¡ }|D ]L}| |¡| |¡ks8t‚| |¡| |¡ksPt‚| |¡| |¡kst‚qd S )Nr   )ÚobjectZ_AXIS_TO_AXIS_NUMBERÚkeysZ_get_axis_numberre   r6   Z_get_block_manager_axis)r.   r/   r   r2   r­   Úvr   r   r   Útest_axis_classmethods¿  s    

z"TestNDFrame.test_axis_classmethodsc              	   C   s6   |}|t d�}d}tjt|d�� |j W 5 Q R X d S )Nr   z_AXIS_NAMES has been deprecatedr@   )r»   r,   rµ   r¶   Z_AXIS_NAMES©r.   r/   r   r2   rI   r   r   r   Útest_axis_names_deprecatedÈ  s
    
z&TestNDFrame.test_axis_names_deprecatedc              	   C   s6   |}|t d�}d}tjt|d�� |j W 5 Q R X d S )Nr   z!_AXIS_NUMBERS has been deprecatedr@   )r»   r,   rµ   r¶   Z_AXIS_NUMBERSr¿   r   r   r   Útest_axis_numbers_deprecatedÐ  s
    
z(TestNDFrame.test_axis_numbers_deprecatedc                 C   sH   t ddgƒ}|tkr| ¡ }|j|jks,t‚| ¡ }|j|jk	sDt‚d S )NrB   rk   )r   r   Zto_frameÚflagsre   r   )r.   r/   r2   rJ   r   r   r   Útest_flags_identityØ  s    zTestNDFrame.test_flags_identityc              	   C   sB   t dddddgiƒ}t ||¡}t t¡� | ¡  W 5 Q R X d S )NrO   rB   rk   rL   r'   )r   r,   r§   rµ   r¶   Zslice_shift)r.   r/   r2   r   r   r   Útest_slice_shift_deprecatedá  s    z'TestNDFrame.test_slice_shift_deprecatedN)rC   r‰   rt   rD   rŠ   r‹   r,   r¡   ZmakeStringSeriesZmakeObjectSeriesr‘   r—   rš   rœ   rŸ   r    r£   r¥   r¦   r¨   r¯   r°   r³   rº   r¾   rÀ   rÁ   rÃ   rÄ   r   r   r   r   rŒ   5  s@    ÿ
 ÿ
 ÿ


		rŒ   )NN)r   r   Únumpyr   rD   Zpandas.core.dtypes.commonr   Zpandasr   r   Zpandas._testingZ_testingr,   r   r   rŒ   r   r   r   r   Ú<module>   s   
   