a
    j=ic?@                     @   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urt|rf|dkrLd}tj}|| jd qtj	||d}|
| qt|}| }||jd  }||jd  dkrt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   r/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/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$S )%Genericfuncc                 C   s   i | ]}||  qS r   lower.0xr   r   r   
<dictcomp>:       zGeneric.<dictcomp>ABCDc                 C   s   i | ]}||  qS r   r    r"   r   r   r   r%   ;   r&   c           	      C   sf   t d}|jD ]R}||i}tdi |}|jf i ||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i |}| }t|| | }tfddi|}t|trx|j	d d |_	t|| 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r0   nr   r   r%   P   s   z1Generic.test_get_numeric_data.<locals>.<dictcomp>r   r   r   )TTFT)r8   r   r   Z_get_numeric_datar-   r.   Z_get_bool_datar
   r   columnsr   array)r/   r0   r   or4   r5   r   r   r:   r   test_get_numeric_dataM   s     
zGeneric.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 s0    Y  tjt|d t| W d    n1 s0    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 s0    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 |rW d    n1 s0    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)r/   r0   r3   msgZobj1obj2r   r   r   test_nonzeroh   sH    **&,,(,,(( **zGeneric.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   rC   )r   r   r	   )r   r   r0   r   r   f   s    z7Generic.test_frame_or_series_compound_dtypes.<locals>.fz+compound dtypes are not implemented in the z frame_or_seriesrA   ))Azdatetime64[h])Bstr)Cint32int64r   zM8[ns])rD   rE   rF   NotImplementedError)r/   r0   rO   rJ   r   rN   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  qd S )NrM   r@   foobar)__add____sub____truediv____mul__rC   )__eq____le____ge__)r   namegetattrr-   Zassert_metadata_equivalentZcombine_first)r/   r0   r>   o2opr4   v1v2r   r   r   test_metadata_propagation   s2    


z!Generic.test_metadata_propagationc                 C   s>   t |dd}|jt|jks"J |jdt|j ks:J d S )N
   r@   )r   sizer   r   r   lenaxesr/   r0   r>   r   r   r   test_size_compat   s    zGeneric.test_size_compatc                 C   s@   t |dd}tt|ddks$J tt|ddks<J d S )Nrh   r@         )r   rj   r   Zarray_splitrl   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 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 s0    Y  tjt|d |j|d W d    n1 s0    Y  d S )Nrn   z	Star Warszunexpected keywordrA   )Zepic)r   rE   rF   	TypeErrormaxvarsumany)r/   r0   r3   Zstarwarserrmsgr   r   r   test_stat_unexpected_keyword   s    
***z$Generic.test_stat_unexpected_keyword)rt   Zcumsumru   rs   c                 C   s4   |df}t ||}|j|ks J |j|s0J d S )Nrn   )rb   rD   __qualname__endswith)r/   r   r0   r3   rO   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 d    n1 sJ0    Y  tjt|d |j|d W d    n1 s0    Y  tjt|d |j|d W d    n1 s0    Y  tjt|d |j	|d W d    n1 s0    Y  d S )Nrn   r   $the 'out' parameter is not supportedrA   out)
r   r   r=   rE   rF   rG   rr   rs   rt   ru   )r/   r0   r3   r}   rv   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  rC   Zint8)r	   r   r   g     p@)beforeafterg     @@i g    `FAg    >A)r   r   r-   r.   truncate)r/   r0   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>*  r&   zGeneric.<lambda>c                 C   s   | j ddS )NTr   r   r   r   r   r   r   *  r&   r   )r   rC   ro   c                 C   s.   t ||}||}||usJ t|| d S N)r   r-   r.   )r/   r0   r   r   r3   Zobj_copyr   r   r   test_copy_and_deepcopy(  s    
zGeneric.test_copy_and_deepcopyN)rD   
__module__rx   rE   markparametrizerR   r!   r*   r   r6   r?   rL   rW   rg   rm   rp   rw   rz   r~   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 NrP   )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)ra   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,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sJ d	}tjt|d
 |jdd W d    n1 s0    Y  d}tjt|d
 |jdd W d    n1 s.0    Y  d S )NrC   )Znper)rC   rC   r   r2   indexr<   )r   r   z)No axis named 2 for object type DataFramerA   ro   z)No axis named x for object type DataFramer$   )	r-   r   Zilocr   r   r   rE   rF   rG   )r/   r   rJ   r   r   r   test_squeeze_axisP  s    ""*zTestNDFrame.test_squeeze_axisc                 C   s"   t d}t |jdd| d S )NrM   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   s   t  }t ||}|tu r.t t|| t tt|| d}tj	t
|d tj|dd W d    n1 s|0    Y  d S )Nz%the 'axes' parameter is not supportedrA   rC   )rk   )r-   r   get_objr   r   r   r   r.   rE   rF   rG   )r/   r0   r3   rJ   r   r   r   test_numpy_transposev  s    z TestNDFrame.test_numpy_transposec                 C   sB   g d}| |}t|j ||j ||jd}t|| d S )NrC   rn      rM   r   )datar   r	   )taker   valuesr   r	   r-   r   )r/   r   indicesr}   r5   r   r   r   test_take_series  s    


zTestNDFrame.test_take_seriesc                 C   sN   g d}t  }||}t|jj|dd|j||jd}t || d S )Nr   r   r   )r   r   r<   )r-   r   r   r   r   r   r<   r   )r/   r   r   r}   r5   r   r   r   test_take_frame  s    

zTestNDFrame.test_take_framec                 C   s   g d}t  }t ||}d}tjt|d |j|dd W d    n1 sR0    Y  d}tjt|d |j||d W d    n1 s0    Y  d}tjt|d |j|d	d
 W d    n1 s0    Y  d S )N)ro   r   rC   z1take\(\) got an unexpected keyword argument 'foo'rA   ro   )rX   r{   r|   z%the 'mode' parameter is not supportedZclip)mode)r-   r   r   rE   rF   rq   r   rG   )r/   r0   r   r3   rJ   r   r   r   test_take_invalid_kwargs  s    ,,z$TestNDFrame.test_take_invalid_kwargsis_copyTFc                 C   sx   t dg di}t||}d}tt"}|jddg|d W d    n1 sR0    Y  |d jjd |kstJ d S )NrP   )rC   ro   rM   zis_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   rC   )r   )r   r-   r   assert_produces_warningFutureWarningr   messageargs)r/   r   r0   r3   rJ   wr   r   r   test_depr_take_kwarg_is_copy  s    0z(TestNDFrame.test_depr_take_kwarg_is_copyc                 C   sn   |}|t d}|j }|D ]L}||||ks8J ||||ksPJ ||||ksJ qd S )Nr   )objectZ_AXIS_TO_AXIS_NUMBERkeysZ_get_axis_numberr7   Z_get_block_manager_axis)r/   r0   r   r3   r   vr   r   r   test_axis_classmethods  s    

z"TestNDFrame.test_axis_classmethodsc                 C   sJ   |}|t d}d}tjt|d |j W d    n1 s<0    Y  d S )Nr   z_AXIS_NAMES has been deprecatedrA   )r   r-   r   r   Z_AXIS_NAMESr/   r0   r   r3   rJ   r   r   r   test_axis_names_deprecated  s
    
z&TestNDFrame.test_axis_names_deprecatedc                 C   sJ   |}|t d}d}tjt|d |j W d    n1 s<0    Y  d S )Nr   z!_AXIS_NUMBERS has been deprecatedrA   )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u r| }|j|ju s,J | }|j|jusDJ d S )NrC   ro   )r   r   Zto_frameflagsr   )r/   r0   r3   rK   r   r   r   test_flags_identity  s    zTestNDFrame.test_flags_identityc                 C   sR   t dg di}t||}tt |  W d    n1 sD0    Y  d S )NrP   )rC   ro   rM   r(   )r   r-   r   r   r   Zslice_shift)r/   r0   r3   r   r   r   test_slice_shift_deprecated  s    z'TestNDFrame.test_slice_shift_deprecatedN)rD   r   rx   rE   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   rE   Zpandas.core.dtypes.commonr   Zpandasr   r   Zpandas._testingZ_testingr-   r   r   r   r   r   r   r   <module>   s   
   