a
    Pf'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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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    Z/var/www/ai-form-bot/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 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)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  qd 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   Zv1Z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 )Nrj   rF   z.swapaxes' is deprecatedF)rH   Zcheck_stacklevel   r   )r"   r2   assert_produces_warningFutureWarningrl   r   Zarray_splitrn   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 s0    Y  tjt|d |j|d W d    n1 s0    Y  d S )Nrp   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)rw   Zcumsumrx   rv   c                 C   s6   t |d}t||}|j|ks"J |j|s2J d S )Nrp   )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 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 )Nrp   r   $the 'out' parameter is not supportedrG   out)
r"   r   rC   rK   rL   rM   ru   rv   rw   rx   )r4   r5   r8   r   ry   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afterg     @@i g    `FAg    >A)r   r"   r2   r3   truncate)r4   r5   r   Z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   rq   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[   ri   ro   rs   rz   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serrj   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   rj   r-   r,   r
   
2000-01-01rj   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sJ 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   rj   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   rj   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 s0    Y  d S )Nr   r   r,   r
   r   rj   rW   r   r   z%the 'axes' parameter is not supportedrG   rI   )rm   )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   rp      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   rj   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 s0    Y  d	}tjt|d |j|d
d W d    n1 s0    Y  d S )N)r   r   rI   rp   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   rt   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   rq   rr   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   
   