o
    _~#g'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/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/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 sw   Y  tjt|d t|dk W d    n1 sw   Y  tjt|d t| W d    n1 sw   Y  t |dtjd}tjt|d t|dk W d    n1 sw   Y  tjt|d t|dk W d    n1 sw   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 sw   Y  tjt|d |p| W d    n	1 sw   Y  tjt|d |  W d    d S 1 sw   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afterg     @@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 sw   Y  d}tjt|d |jdd W d    d S 1 sw   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    
   