o
    d`W                     @   s   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlZd dlmZ d dlmZ d dlmZ G dd deZdS )	    N)Dtype)is_bool_dtype)na_value_for_dtype)nargsort)BaseExtensionTestsc                   @   s  e Zd ZU 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d Zdd Zdd Zejdddgdd Zejdddgdd Zejd d!d"d#d$d%dejfd&dejfd'd(gd)d* Zd+d, Zejd-d.ejg d/ed0d1fd2ejg d3ed0d1fgd4d5 Zejd6ddgd7d8 Zejd6ddgd9d: Zejd6ddgd;d< Zejd=ejd>d? gejdd@d? ejgdAdB Z dCdD Z!dEdF Z"dGdH Z#dIdJ Z$dKdL Z%dMdN Z&ee'Z(e)e*dO< dPdQ Z+dRdS Z,dTdU Z-ejdVddgejdWdXg dYfdZg d[fd\g d]fgd^d_ Z.d`da Z/ejdbdcdXgddde Z0ejdWdfdgdgggdgdcdgggdZdZdcggdcdgdZggdhdgdggggdidj Z1ejdbg dkdldm Z2dndo Z3dpdq Z4drds Z5dtdu Z6dvdw Z7dxdy Z8ejdzdZdcd\g d{gd|d} Z9ejd~d\ddcie:dfdgi e:dfdcd\gi e:dfd\ddie;dfgdd Z<dd Z=dd Z>dd Z?dd Z@ejd=ejejejAgdd ZBdS )BaseMethodsTestsz%Various Series and DataFrame methods.c                 C   sF   t |dstdt|  t|j}|jd }|jdu s!J d S )Nvalue_countsz$value_counts is not implemented for dropnaT)	hasattrpytestskiptypeinspect	signaturer   
parametersdefault)selfdatasigkwarg r   h/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/extension/base/methods.py test_value_counts_default_dropna   s
   

z1BaseMethodsTests.test_value_counts_default_dropnar	   TFc                 C   s`   |d d }|r||    }n|}t|j|d }t|j|d }| || d S )N
   )r	   )isnapdSeriesr   
sort_indexassert_series_equal)r   all_datar	   otherresultexpectedr   r   r   test_value_counts   s   z"BaseMethodsTests.test_value_countsc                 C   s   |d d   }t||   }tj||jd}|jdd }t	|tj
s;tjdt| gt| |jdd}ntjd|jdd}dt| ||d	k< t|jtju r[|d
}| || d S )Nr   dtypeT)	normalize   
proportion)indexnameg        r   Float64)uniquenparrayr   r   r   r%   r   r   
isinstanceCategoricallenr)   r   NAastyper   )r   r   valuesserr!   r"   r   r   r    test_value_counts_with_normalize*   s   
z1BaseMethodsTests.test_value_counts_with_normalizec                 C   s8   t d|i}|jdd}t ddg}| || d S )NAcolumnsaxisr   r'   )r   	DataFramecountr   r   )r   data_missingdfr!   r"   r   r   r   
test_count?   s   zBaseMethodsTests.test_countc                 C   s&   t |}| }d}||ksJ d S )Nr'   )r   r   r<   )r   r=   r5   r!   r"   r   r   r   test_series_countE   s   
z"BaseMethodsTests.test_series_countc                 C   s$   t |t}t|t jsJ d S N)r   r   applyidr/   r   r   r!   r   r   r   test_apply_simple_seriesL   s   z)BaseMethodsTests.test_apply_simple_seriesc                 C   8   t | }t tjg dtjd}| || d S N   r   r'   r$   r   r   argsortr-   r.   intpr   )r   data_for_sortingr!   r"   r   r   r   test_argsortP   s   zBaseMethodsTests.test_argsortc                 C   s,   |  }tjg dtjd}t|| d S rG   )rK   r-   r.   rL   tmassert_numpy_array_equalr   data_missing_for_sortingr!   r"   r   r   r   test_argsort_missing_arrayV   s   z+BaseMethodsTests.test_argsort_missing_arrayc                 C   rF   )N)r'   r   r$   rJ   rQ   r   r   r   test_argsort_missing\   s   z%BaseMethodsTests.test_argsort_missingc                 C   sr   |  dksJ | dksJ |g d}|  dksJ | dks'J |  dks/J | dks7J d S )Nr'   rI   )rI   r   r   r'   r'   rI      r   )argmaxargmintake)r   rM   rR   na_valuer   r   r   r   test_argmin_argmaxa   s   z#BaseMethodsTests.test_argmin_argmaxmethodrW   rX   c                 C   sL   d}t jt|d t|d d |  W d    d S 1 sw   Y  d S )Nattempt to getmatchr   )r   raises
ValueErrorgetattr)r   r\   r   err_msgr   r   r   test_argmin_argmax_empty_arrayr   s   "z/BaseMethodsTests.test_argmin_argmax_empty_arrayc                 C   s\   d}t |j||g|jd}tjt|d t||  W d    d S 1 s'w   Y  d S )Nr]   r$   r^   )r   _from_sequencer%   r   r`   ra   rb   )r   r\   r   rZ   rc   data_nar   r   r   test_argmin_argmax_all_nay   s
   "z*BaseMethodsTests.test_argmin_argmax_all_nazop_name, skipna, expected)idxmaxTr   )idxminTrI   )rW   Tr   )rX   TrI   rh   ri   )rW   FrT   )rX   FrT   c                 C   s*   t |}t|||d}t|| d S )Nskipna)r   r   rb   rO   assert_almost_equal)r   rR   op_namerk   r"   r5   r!   r   r   r   test_argreduce_series   s   
z&BaseMethodsTests.test_argreduce_seriesc                 C   s~   |}t jtdd |jdd W d    n1 sw   Y  t jtdd |jdd W d    d S 1 s8w   Y  d S )N r^   Frj   )r   r`   NotImplementedErrorrX   rW   )r   rR   r   r   r   r   +test_argmax_argmin_no_skipna_notimplemented   s   "z<BaseMethodsTests.test_argmax_argmin_no_skipna_notimplementedzna_position, expectedlastrH   rL   r$   firstr'   rI   r   c                 C   s   t ||d}t|| d S )N)na_position)r   rO   rP   )r   rR   ru   r"   r!   r   r   r   test_nargsort   s   	zBaseMethodsTests.test_nargsort	ascendingc                 C   sd   t |}|j||d}|jg d }|s*| dkr#|jg d }n|jg d }| || d S )Nrw   keyrH   rI   )r   r'   rI   )r'   r   rI   )r   r   sort_valuesilocnuniquer   )r   rM   rw   sort_by_keyr5   r!   r"   r   r   r   test_sort_values   s   
z!BaseMethodsTests.test_sort_valuesc                 C   sJ   t |}|j||d}|r|jg d }n|jg d }| || d S )Nrx   rH   )r   rI   r'   )r   r   rz   r{   r   )r   rR   rw   r}   r5   r!   r"   r   r   r   test_sort_values_missing   s   
z)BaseMethodsTests.test_sort_values_missingc                 C   sX   t g d|d}|ddg}t jg d|g ddg dd}| || d S )N)r'   rI   r'   r7   Br7   r   )r'   r'   rI   rH   r)   )r   r;   rz   rY   assert_frame_equal)r   rM   rw   r>   r!   r"   r   r   r   test_sort_values_frame   s   z'BaseMethodsTests.test_sort_values_frameboxc                 C   s   | S rA   r   xr   r   r   <lambda>   s    zBaseMethodsTests.<lambda>c                 C   s   |   S rA   )r,   r   r   r   r   r          c                 C   s\   || |d |d g}||}t|dksJ t|t|s"J |d |d ks,J d S Nr   r'   )re   r1   r/   r   )r   r   r   r\   
duplicatedr!   r   r   r   test_unique   s
   zBaseMethodsTests.test_uniquec                 C   sP   t j|dd\}}tjg dtjd}|g d}t|| | || d S )NTuse_na_sentinel)r   r   rT   rT   r'   r'   r   rI   r$   )r         )	r   	factorizer-   r.   rL   rY   rO   rP   assert_extension_array_equal)r   data_for_groupingcodesuniquesexpected_codesexpected_uniquesr   r   r   test_factorize   s
   zBaseMethodsTests.test_factorizec                 C   sh   t j|dd\}}|jdd\}}t|| | || t|tt |ks*J |j|jks2J d S )NTr   )r   r   rO   rP   r   r1   r,   r%   )r   r   codes_1	uniques_1codes_2	uniques_2r   r   r   test_factorize_equivalence   s   z+BaseMethodsTests.test_factorize_equivalencec                 C   s^   t |d d \}}tjg tjd}t|jg |d d jd}t	|| | 
|| d S )Nr   r$   )r   r   r-   r.   rL   r   re   r%   rO   rP   r   )r   r   r   r   r   r   r   r   r   test_factorize_empty   s
   z%BaseMethodsTests.test_factorize_emptyc                 C   sR   | ddg}td|i}| }|jd }||}||jd< | || d S )Nr'   r7   )r   r   )rY   r   r;   copyr{   fillnar   )r   r=   arrr>   df_orig
filled_valr!   r   r   r   test_fillna_copy_frame   s   


z'BaseMethodsTests.test_fillna_copy_framec                 C   sP   | ddg}tj|dd}| }|d }||}||jd< | || d S )Nr'   F)r   r   )rY   r   r   r   r   r{   r   )r   r=   r   r5   ser_origr   r!   r   r   r   test_fillna_copy_series   s   

z(BaseMethodsTests.test_fillna_copy_seriesc                 C   sJ   d}t jt|d ||dg W d    d S 1 sw   Y  d S )Nz!Length of 'value' does not match.r^   r'   )r   r`   ra   r   rY   )r   r=   msgr   r   r   test_fillna_length_mismatch
  s   "z,BaseMethodsTests.test_fillna_length_mismatch_combine_le_expected_dtypec                    s   |d\}}t |}t |}||dd }t jdd tt|t|D | jd}| || |jd  | dd }t j fd	dt|D | jd}| || d S )
NrI   c                 S      | |kS rA   r   x1x2r   r   r   r     r   z2BaseMethodsTests.test_combine_le.<locals>.<lambda>c                 S   s   g | ]\}}||kqS r   r   .0abr   r   r   
<listcomp>      z4BaseMethodsTests.test_combine_le.<locals>.<listcomp>r$   r   c                 S   r   rA   r   r   r   r   r   r      r   c                    s   g | ]}| kqS r   r   r   r   valr   r   r   "      )r   r   combineziplistr   r   r{   r   data_repeated
orig_data1
orig_data2s1s2r!   r"   r   r   r   test_combine_le  s    


z BaseMethodsTests.test_combine_lec              
      s   |d\}}t |}t |}||dd }tjdd t |dd tt|t|D }W d    n1 s=w   Y  | || |j	d  | d	d }t | fd
dt|D }| || d S )NrI   c                 S      | | S rA   r   r   r   r   r   r   ,  r   z3BaseMethodsTests.test_combine_add.<locals>.<lambda>ignore)overc                 S   s   g | ]\}}|| qS r   r   r   r   r   r   r   0  r   z5BaseMethodsTests.test_combine_add.<locals>.<listcomp>r   c                 S   r   rA   r   r   r   r   r   r   6  r   c                    s   g | ]}|  qS r   r   r   r   r   r   r   8  r   )
r   r   r   r-   errstatere   r   r   r   r{   r   r   r   r   test_combine_add'  s$   


z!BaseMethodsTests.test_combine_addc                 C   sX   t |d d }t j|dd g dd}||}t |d d }| || d S )NrV   rI      )rI   rV   r   r   )r   r   combine_firstr   )r   r   r   r   r!   r"   r   r   r   test_combine_first<  s
   
z#BaseMethodsTests.test_combine_firstframezperiods, indices)rI   rV   r   rT   rT   r   )r   r'   rI   rV   r   rI   )rT   rT   r   r'   rI   c           	      C   s   |d d }t j|dd}t j|j|dddd}|r@|jddjdd|}t j|t jdgd dd|gdd	}| j}n||}| j}||| d S )
Nr   r7   r*   T
allow_fillr'   )r   r   r9   )	r   r   rY   to_frameassignshiftconcatr   r   )	r   r   r   periodsindicessubsetr"   r!   comparer   r   r   test_container_shiftD  s   
z%BaseMethodsTests.test_container_shiftc                 C   sB   | d}|d |d ksJ |d |d< |d |d ksJ d S r   r   rD   r   r   r   test_shift_0_periods[  s   
z%BaseMethodsTests.test_shift_0_periodsr   r'   c           	      C   s   |d d }t |jrtj}ntj}z||| W n ty,   tt| d Y nw t	
|}||}t	
||||}| || t	|dgd d}||}|dkretjddddg}n	dddtjtjg}t	||d}| || d S )Nr   z does not support diffg      ?r   r'   r   )r   r%   operatorxorsub	Exceptionr   r   r   r   r   diffr   r   r;   r-   nanr   )	r   r   r   opsr!   r"   r>   r   r   r   r   	test_diffb  s(   



zBaseMethodsTests.test_diffrT   r   c                 C   s4   |d d }| |}|j|dd}| || d S )NrI   Tr   r   rY   r   )r   r   r   r   r   r!   r"   r   r   r   test_shift_non_empty_array|  s   
z+BaseMethodsTests.test_shift_non_empty_array)r   rT   r   r'   r   c                 C   s*   |d d }| |}|}| || d S )Nr   )r   r   )r   r   r   emptyr!   r"   r   r   r   test_shift_empty_array  s   
z'BaseMethodsTests.test_shift_empty_arrayc                 C   s8   | d}||usJ |d d  d}||usJ d S )Nr   rI   r   rD   r   r   r   test_shift_zero_copies  s   
z'BaseMethodsTests.test_shift_zero_copiesc                 C   sh   |d d }|d }|j d|d}|g d}| || |j d|d}|g d}| || d S )Nr   r   r'   )
fill_value)r   r   r'   rI   r   )rI   rV   r   r   r   )r   r   r   r   r!   r"   r   r   r   test_shift_fill_value  s   z&BaseMethodsTests.test_shift_fill_valuec                 C   s<   t jtdd t| W d    d S 1 sw   Y  d S )Nzunhashable typer^   )r   r`   	TypeErrorhash)r   r   r   r   r   test_not_hashable  s   
"z"BaseMethodsTests.test_not_hashablec                 C   s>   t |}|r| }t j|}t j|}| || d S rA   )r   r   r   utilhash_pandas_objectassert_equal)r   r   as_framer   r   r   r   r   test_hash_pandas_object_works  s   
z.BaseMethodsTests.test_hash_pandas_object_worksc           
      C   s   |\}}}| g d}|rt|}||dksJ |j|dddks'J ||dks0J |j|dddks;J ||dksDJ |j|dddksOJ || ddg}tjddgtjd}t|| tg d	}	|j||	d
dks{J d S )NrH   r   right)sider'   rI   rV   r$   rt   )sorter)	rY   r   r   searchsortedr-   r.   rL   rO   rP   )
r   rM   	as_seriesr   cr   r   r!   r"   r   r   r   r   test_searchsorted  s   

z"BaseMethodsTests.test_searchsortedc                 C   s  |d |d ks
J t |}|d d \}}t|j||||g|jd}| }tg d}	|r>|jdd}|		dd}	|
|	}
t|j||||g|jd}|rZ|jdd}| |
| |j|	 d	d
 | || | }|rz|jdd}tg d}	|j||||g|jd}|rtd|i}td|	i}	|
|	|}
t|j||||g|jd}|r|jdd}| |
| |j|	 |d	d
 | || d S )Nr   r'   rI   r$   )TTFFr   r   rT   T)inplace)TFTT)r   r   r   re   r%   r   r-   r.   r   reshapewherer   maskr;   )r   r   rZ   r   clsr   r   origr5   condr!   r"   r    r   r   r   test_where_series  sB   
z"BaseMethodsTests.test_where_seriesrepeats)r'   rI   rV   c                 C   s   t |j|d d |jd}|rt|}|rt||n||}t|tr,|gd n|}dd t	||D }t |j||jd}|rOtj||j
|d}| || d S )NrV   r$   c                 S   s"   g | ]\}}t |D ]}|q
qS r   )range)r   r   n_r   r   r   r     s   " z0BaseMethodsTests.test_repeat.<locals>.<listcomp>r   )r   re   r%   r   r   r-   repeatr/   intr   r)   r   )r   r   r  r   	use_numpyr   r!   r"   r   r   r   test_repeat  s   
zBaseMethodsTests.test_repeatzrepeats, kwargs, error, msgr:   negativeshapefoobarz'foo'c                 C   sp   t j||d' |rtj||fi | n|j|fi | W d    d S W d    d S 1 s1w   Y  d S )Nr^   )r   r`   r-   r  )r   r   r  kwargserrorr   r  r   r   r   test_repeat_raises  s   
"z#BaseMethodsTests.test_repeat_raisesc                 C   sd   | d}|dd  }| || | ddg}||dg |dg |dd  g}| || d S )Nr   r'   rV   rI   r   )deleter   _concat_same_type)r   r   r!   r"   r   r   r   test_delete  s   
$zBaseMethodsTests.test_deletec                 C   s   |dd   d|d }| || |dd   t|dd   |d }| || |d d  d|d }tt|}|dd |dd < t|d |d< ||}| || d S )Nr'   r   rT   r   r   )insertr   r1   r-   arangerY   )r   r   r!   takerr"   r   r   r   test_insert  s   &
zBaseMethodsTests.test_insertc                 C   s   |}t ttf |d| W d    n1 sw   Y  t ttf |d| W d    n1 s7w   Y  t ttf |t|d | W d    d S 1 sYw   Y  d S )Nr   r   r'   )r   r`   r   ra   r  r1   )r   r   invalid_scalaritemr   r   r   test_insert_invalid-  s   "z$BaseMethodsTests.test_insert_invalidc                 C   s   t |}tt ||d |d  W d    n1 sw   Y  tt || d |d  W d    n1 s>w   Y  tt |d|d  W d    d S 1 s\w   Y  d S )Nr'   r   g      ?)r1   r   r`   
IndexErrorr  r   )r   r   ubr   r   r   test_insert_invalid_loc9  s   "z(BaseMethodsTests.test_insert_invalid_locc                 C   s2  t |j|d gt| |jd}t |j|gt| |jd}tj||dd}tj||dd}tj||dd}||du sAJ || du sLJ ||du sUJ ||du s^J |d d |d d du soJ |d d |d d du sJ |d du sJ |dg |d du sJ d S )Nr   r$   F)	transposeTrI   rV   )r   re   r1   r%   rO   box_expectedequalsr   )r   r   rZ   r   r   data2rf   r   r   r   test_equalsF  s   """ zBaseMethodsTests.test_equalsN)C__name__
__module____qualname____doc__r   r   markparametrizer#   r6   r?   r@   rE   rN   rS   rU   r[   rd   rg   r-   r   rn   rq   r.   r%   rv   r~   r   r   r   r   r,   r   r   r   r   r   r   r   boolr   r   __annotations__r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  ra   r   r  r  r  r  r  r;   r"  r   r   r   r   r      s   
 










		 
4

	+


		r   )r   r   numpyr-   r   pandas._typingr   pandas.core.dtypes.commonr   pandas.core.dtypes.missingr   pandasr   pandas._testing_testingrO   pandas.core.sortingr    pandas.tests.extension.base.baser   r   r   r   r   r   <module>   s    