o
    TiT>                     @   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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popZ_info_axis_namer   fillprodZravelshape	ExceptionrepeatZreshaperandomZdefault_rngZstandard_normal)boxr   valuer	   kwargsarrZfshapeZ	new_shape r   a/var/www/html/evchargy.com/venv/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   r'   ;   r(   c           	      C   sj   t d}|jD ]+}||i}t|dfi |}|jdi ||i}| }t||t d t|| qd S )Nr)      abcdr   )listZ_AXIS_ORDERSr   renamer   setattrtmassert_equal)	selfframe_or_seriesr    idxaxisr   objresultexpectedr   r   r   test_rename6   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r2   nr   r   r'   N   s    z5TestGeneric.test_get_numeric_data.<locals>.<dictcomp>r   r   r   T)Zdrop)TTFT)r:   r   r   Z_get_numeric_datar/   r0   Z_get_bool_datar   r   columnsZreset_indexr   array)r1   r2   r   or6   r7   r   r   r<   r   test_get_numeric_dataL   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 )	Nr*   r   zThe truth value of a z is ambiguousmatchr      )r   r   )r   __name__pytestraises
ValueErrorboolr   nan)r1   r2   r5   msgZobj1obj2r   r   r   test_nonzerog   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   rE   )r   r   r	   )r   r   r2   r   r   f   s   z;TestGeneric.test_frame_or_series_compound_dtypes.<locals>.fz+compound dtypes are not implemented in the z constructorrC   ))Azdatetime64[h])Bstr)CZint32Zint64r   zM8[ns])rF   rG   rH   NotImplementedError)r1   r2   rQ   rL   r   rP   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 )NrO   rB   foobar)__add____sub____truediv____mul__rE   )__eq____le____ge__)r   namegetattrr/   Zassert_metadata_equivalentZcombine_first)r1   r2   r@   o2opr6   Zv1Z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
   rB   )r   sizer   r   r   lenaxesr1   r2   r@   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 )Nrf   rB   z.swapaxes' is deprecatedF)rD   Zcheck_stacklevel   r
   )r   r/   assert_produces_warningFutureWarningrh   r   Zarray_splitrj   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 )Nrl   z	Star Warszunexpected keywordrC   )Zepic)r   rG   rH   	TypeErrormaxvarsumany)r1   r2   r5   Zstarwarserrmsgr   r   r   test_stat_unexpected_keyword   s   
"z(TestGeneric.test_stat_unexpected_keyword)rs   Zcumsumrt   rr   c                 C   s6   t |d}t||}|j|ksJ |j|sJ d S )Nrl   )r   rb   rF   __qualname__endswith)r1   r    r2   r5   rQ   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 )Nrl   r   $the 'out' parameter is not supportedrC   out)
r   r   r?   rG   rH   rI   rq   rr   rs   rt   )r1   r2   r5   r|   ru   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  rE   Zint8)r	   r   r   g     p@)beforeafterg     @@i g    `FAg    >A)r   r   r/   r0   truncate)r1   r2   r   Z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   rE   r
   c                 C   s.   t ||}||}||usJ t|| d S N)r   r/   r0   )r1   r2   r   r    r5   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 sw   Y  ||ju s&J d S )Nz&(Series|DataFrame)._data is deprecatedrC   )r/   rm   DeprecationWarning_dataZ_mgr)r1   r2   r5   rL   Zmgrr   r   r   test_data_deprecated3  s   z TestGeneric.test_data_deprecatedN)rF   
__module__rw   rG   markparametrizerT   r#   r,   r   r8   rA   rN   rW   re   rk   ro   rv   ry   r}   r   r   r   r   r   r   r   r   r   r   5   s6    
12

	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dd Zdd Zd$d"d#Zd!S )%TestNDFrameserc                 C      t | | d S r   )r/   assert_series_equalsqueezer1   r   r   r   r   test_squeeze_series_noop>     z$TestNDFrame.test_squeeze_series_noopc                 C   s   t  }t | | d S r   r/   makeTimeDataFrameassert_frame_equalr   r1   dfr   r   r   test_squeeze_frame_noopE  s   z#TestNDFrame.test_squeeze_frame_noopc                 C   s*   t  jdgd}t | |d  d S NrR   )r>   )r/   r   reindexr   r   r   r   r   r   test_squeeze_frame_reindexJ  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   )r1   Zempty_seriesZempty_framer   r   r   test_squeeze_0_len_dimO  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s]J d	}tjt|d
 |jdd W d    n1 sww   Y  d}tjt|d
 |jdd W d    d S 1 sw   Y  d S )NrE   )Znper)rE   rE   r   r4   indexr>   )r   r   z)No axis named 2 for object type DataFramerC   r
   z)No axis named x for object type DataFramer&   )	r/   r   Zilocr   r   r   rG   rH   rI   )r1   r   rL   r   r   r   test_squeeze_axisV  s   """zTestNDFrame.test_squeeze_axisc                 C   s"   t d}t |jdd| d S )NrO   r   r   r   r   r   r   r   test_squeeze_axis_len_3f  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   )r1   sr   r   r   r   test_numpy_squeezej  s   zTestNDFrame.test_numpy_squeezec                 C   r   r   )r/   r   	transposer   r   r   r   test_transpose_seriesq  r   z!TestNDFrame.test_transpose_seriesc                 C   s    t  }t |  | d S r   )r/   r   r   r   r   r   r   r   test_transpose_framex  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    d S 1 s?w   Y  d S )Nz%the 'axes' parameter is not supportedrC   rE   )ri   )r/   r   get_objr   r   r   r   r0   rG   rH   rI   )r1   r2   r5   rL   r   r   r   test_numpy_transpose|  s   "z TestNDFrame.test_numpy_transposec                 C   sB   g d}| |}t|j ||j ||jd}t|| d S )NrE   rl      rO   r   )datar   r	   )taker   valuesr   r	   r/   r   )r1   r   indicesr|   r7   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   )r1   r   r   r|   r7   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 s)w   Y  d}tjt|d |j||d W d    n1 sIw   Y  d}tjt|d |j|d	d
 W d    d S 1 sjw   Y  d S )N)r
   r   rE   z1take\(\) got an unexpected keyword argument 'foo'rC   r
   )rX   rz   r{   z%the 'mode' parameter is not supportedZclip)mode)r/   r   r   rG   rH   rp   r   rI   )r1   r2   r   r5   rL   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   )objectZ_AXIS_TO_AXIS_NUMBERkeysZ_get_axis_numberr9   Z_get_block_manager_axis)r1   r2   r   r5   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 )NrE   r
   )r   r   Zto_frameflagsr   )r1   r2   r5   rM   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 pandasrC   colF)r/   rm   rn   r   rJ   )r1   Zmsg_warnr   r   r   test_bool_dep  s
   "zTestNDFrame.test_bool_dep)r   N)rF   r   rw   rG   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   ;  s4    



		r   )NN)r   r   numpyr   rG   Zpandas.core.dtypes.commonr   Zpandasr   r   Zpandas._testingZ_testingr/   r   r   r   r   r   r   r   <module>   s    
   