o
    $j%                     @   s  d Z ddlZddlZddlmZ ddlZddlm	Z
 ddlmZ ejejddgedejddgedejddgedejdd	gedejd
dgedejddgddejddgddgddd Zejdg ddd Zejdg d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 d(d) Z!d*d+ Z"d,d- Z#d.d/ Z$d0d1 Z%d2d3 Z&d4d5 Z'd6d7 Z(ejd8ej)ej*ej+gd9d: Z,d;d< Z-d=d> Z.ejd?degd@dA Z/dBdC Z0dDdE Z1ejd?ej2ej3gdFdG Z4dHdI Z5dJdK Z6dS )LzV
Additional tests for NumpyExtensionArray that aren't covered by
the interface tests.
    NNumpyEADtype)NumpyExtensionArrayabdtype   y      ?       @TFdatetime64[ns]timedelta64[ns])paramsc                 C   s
   | j  S )zk
    Parametrized fixture for NumPy arrays with different dtypes.

    This excludes string and bytes.
    )paramcopy)request r   f/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/arrays/numpy_/test_numpy.pyany_numpy_array   s   
r   zdtype, expected)
boolT)intT)uintT)floatT)complexTstrFbytesFr
   FobjectFvoidFc                 C      t | } | j|u sJ d S N)r   Z_is_numericr   expectedr   r   r   test_is_numeric'      r&   )
r   )r   F)r   F)r   F)r   Fr   r   r   r   r    c                 C   r"   r#   )r   Z_is_booleanr$   r   r   r   test_is_boolean;   r'   r(   c                  C   s"   t td} t| dksJ d S )Nint64zNumpyEADtype('int64'))r   npr   reprr   r   r   r   	test_reprO   s   r,   c                  C   s(   t d} t td}| |ksJ d S )Nr)   )r   Zconstruct_from_stringr*   r   )resultr%   r   r   r   test_constructor_from_stringT   s   
r.   c                 C   s    t | }t |}||ksJ d S r#   r   )Zany_numpy_dtyper   r-   r   r   r   test_dtype_idempotentZ   s   r/   c                   C   s@   t jtdd tg d W d    d S 1 sw   Y  d S )NzNumPy arraymatchr	         )pytestraises
ValueErrorr   r   r   r   r   test_constructor_no_coercione   s   "r8   c                  C   s2   t g d} tjt| dd}|j| usJ d S )Nr2   Tr   )r*   arraypdSeriesr   values)ndarrayserr   r   r   !test_series_constructor_with_copyj   s   r@   c                  C   sB   t g d} tjt| dd}tjg ddd}t|| d S )Nr2   float64r   )      ?g       @g      @)r*   r:   r;   r<   r   tmassert_series_equal)r>   r-   r%   r   r   r   #test_series_constructor_with_astypeq   s   rE   c                  C   sF   t jg ddd} tj| dd}tt jg ddd}t|| d S )Nr2   r)   r   uint64)r*   r:   r   Z_from_sequencerC   assert_extension_array_equalarrr-   r%   r   r   r   test_from_sequence_dtypex   s   rJ   c                  C   s.   t ddg} t| dd}t|| rJ d S )Nr   r	   Tr9   )r*   r:   r   rC   Zshares_memory)rI   r-   r   r   r   test_constructor_copy   s   rK   c                 C   s"   | }t |}|jj|jksJ d S r#   )r   r   Znumpy_dtyper   ZnparrrI   r   r   r   test_constructor_with_data   s   rM   c                  C   sp   t tg d} |  }|| ju sJ | jdd}|| jus!J | jdd}tjg ddd}t|| d S )Nr2   Tr9   Zf8r   )r   r*   r:   to_numpy_ndarrayrC   assert_numpy_array_equalrH   r   r   r   test_to_numpy   s   rQ   c                  C   s6   t g d} d| jd< t g d}t| | d S )Nr2   
   r   )rR   r3   r4   )r;   r<   r:   rC   rD   )r?   r%   r   r   r   test_setitem_series   s   
rS   c                 C   s<   | }t |dd}|d |d< |d |d< t| | d S )NTr9   r	   r   )r   rC   rP   rN   rL   r   r   r   test_setitem   s
   rT   c                  C   s\   t jg ddd} t| } d}tjt|d | | W d    d S 1 s'w   Y  d S )Nr2   r)   r   z)cannot perform not_a_method with type intr0   )r*   r:   r   r5   r6   	TypeErrorZ_reducerI   msgr   r   r   test_bad_reduce_raises   s   "rX   c                  C   sV   t tg d} d}tjt|d | jdd W d    d S 1 s$w   Y  d S )Nr2   z/the 'keepdims' parameter is not supported .*allr0   T)Zkeepdims)r   r*   r:   r5   r6   r7   allrV   r   r   r   $test_validate_reduction_keyword_args   s
   "rZ   c                  C   s|   g d} t | }|j}| |d u sJ | |d u s J tj|}||d ks.J tj|}||d ks<J d S )N))jklm)r^   op)ra   r[   r3   )r;   r<   r:   maxr*   maximumreduce)valsr?   rI   r-   r   r   r   test_np_max_nested_tuples   s   
rh   c                  C   sZ   t ddd} t| }t jj|dd}t||d  |jdd}t||d  d S )N      r4   r   )Zaxis)	r*   ZarangeZreshaper   re   rf   rC   rG   rd   )rawrI   resZaltr   r   r   test_np_reduce_2d   s   rn   ufuncc                 C   sb   t tg d}| |}t | |j}t|| t tg d}| ||d t|| d S )Ng              rB   )      "rr   rr   )out)r   r*   r:   rO   rC   rG   )ro   rI   r-   r%   rs   r   r   r   test_ufunc_unary   s   rt   c                  C   sr   t tg d} t| t| d\}}t| jt| jd\}}t |}t |}t|| t|| d S )Nrp   r3   )r   r*   r:   divmodaddrO   rC   rG   )rI   r1r2e1e2r   r   r   
test_ufunc   s   r{   c                  C   s<   t tg d} | |  }t tg d}t|| d S )Nr2   )r3   rj      r   r*   r:   rC   rG   )xr-   r%   r   r   r   test_basic_binop  s   r   r   c                 C   sD   t tjg d| d}d|d< t tjg d| d}t|| d S )N)r   r   cr   tr   )r   r   r   r}   )r   rI   r%   r   r   r   test_setitem_object_typecode
  s   r   c                  C   sx   t tg d} tjtdd d| d< W d    n1 sw   Y  d| d< t| d ttjfs:J t	| d d S )Nr2   r   r0   r   r         @)
r   r*   r:   r5   r6   r7   
isinstancer   integertype)rI   r   r   r   test_setitem_no_coercion  s   
(r   c                  C   s   t tg d} |  }| d d  }t| }d| d< |d dks$J |d dks,J |d dks4J d| d< d|d< | d dksDJ d S )Nr2   	   r   r   rk      )r   r*   r:   viewZasarray)rI   Zview1Zview2Zview3r   r   r   test_setitem_preserves_views  s   
r   c                 C   sT   t tjg | d}tddg}|j|dd}t ttjtjg}t|| d S )Nr   rq   g      ?Zlinear)interpolation)	r   r*   r:   r;   IndexZ	_quantilenanrC   rG   )r   rI   idxr-   r%   r   r   r   test_quantile_empty/  s
   r   c                  C   sV   t jg dt jd} t| }| \}}t| \}}t|| t|t| d S )Nr2   r   )	r*   r:   rF   r   Z	factorizer;   rC   rP   rG   )rI   objZ	res_codesZ
res_uniqueZ	exp_codesZ
exp_uniquer   r   r   test_factorize_unsigned:  s   r   c                 C   s   | }t |}|jdkrd}n2|jdkrd}n*t|jdr!d}n|jdkr)d}n|jd	kr1d
}n|jdkr9d}n|jdkr@d}d| d|j }t|}||ksZJ | d| d S )Nr   z
['a', 'b']rA   z
[0.0, 1.0]r   z[0, 1]Z
complex128z[0j, (1+2j)]r   z[True, False]r
   z>[1970-01-01T00:00:00.000000000, 1970-01-01T00:00:00.000000001]r   z[0 nanoseconds, 1 nanoseconds]z<NumpyExtensionArray>
z
Length: 2, dtype: z vs )r   r   r   
startswithr+   )r   ZnparrayrI   r=   r%   r-   r   r   r   test_array_reprK  s&   





r   )7__doc__numpyr*   r5   Zpandas.core.dtypes.dtypesr   Zpandasr;   Zpandas._testingZ_testingrC   Zpandas.arraysr   Zfixturer:   r   r   r   r   r   r   markZparametrizer&   r(   r,   r.   r/   r8   r@   rE   rJ   rK   rM   rQ   rS   rT   rX   rZ   rh   rn   absnegativeZpositivert   r{   r   r   r   r   r)   rF   r   r   r   r   r   r   r   <module>   sp    




	


