a
    Pf<"                     @   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 Z5dS )JzV
Additional tests for NumpyExtensionArray that aren't covered by
the interface tests.
    NNumpyEADtype)NumpyExtensionArrayabdtype   y      ?       @TFdatetime64[ns]ztimedelta64[ns])paramsc                 C   s   | j S )zk
    Parametrized fixture for NumPy arrays with different dtypes.

    This excludes string and bytes.
    )param)request r   ^/var/www/ai-form-bot/venv/lib/python3.9/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   s   t | } | j|u sJ d S N)r   Z_is_numericr   expectedr   r   r   test_is_numeric'   s    r#   )
r   )r   F)r   F)r   F)r   Fr   r   r   r   r   c                 C   s   t | } | j|u sJ d S r    )r   Z_is_booleanr!   r   r   r   test_is_boolean;   s    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    n1 s00    Y  d S )NzNumPy arraymatchr	         )pytestraises
ValueErrorr   r   r   r   r   test_constructor_no_coercione   s    r4   c                  C   s2   t g d} tjt| dd}|j| us.J d S )Nr.   Tcopy)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 )Nr.   Zfloat64r   )      ?g       @g      @)r&   r7   r8   r9   r   tmassert_series_equal)r;   r)   r"   r   r   r   #test_series_constructor_with_astypeq   s    rA   c                  C   sF   t jg ddd} tj| dd}tt jg ddd}t|| d S )Nr.   r%   r   uint64)r&   r7   r   Z_from_sequencer?   assert_extension_array_equalarrr)   r"   r   r   r   test_from_sequence_dtypex   s    rF   c                  C   s.   t ddg} t| dd}t|| r*J d S )Nr   r	   Tr5   )r&   r7   r   r?   Zshares_memory)rE   r)   r   r   r   test_constructor_copy   s    rG   c                 C   s"   | }t |}|jj|jksJ d S r    )r   r   Znumpy_dtyper   ZnparrrE   r   r   r   test_constructor_with_data   s    rI   c                  C   sp   t tg d} |  }|| ju s(J | jdd}|| jusBJ | jdd}tjg ddd}t|| d S )Nr.   Tr5   Zf8r   )r   r&   r7   to_numpy_ndarrayr?   assert_numpy_array_equalrD   r   r   r   test_to_numpy   s    rM   c                  C   s6   t g d} d| jd< t g d}t| | d S )Nr.   
   r   )rN   r/   r0   )r8   r9   r7   r?   r@   )r<   r"   r   r   r   test_setitem_series   s    
rO   c                 C   s<   | }t |dd}|d |d< |d |d< t| | d S )NTr5   r	   r   )r   r?   rL   rJ   rH   r   r   r   test_setitem   s
    rP   c                  C   sZ   t jg ddd} t| } d}tjt|d | | W d    n1 sL0    Y  d S )Nr.   r%   r   z)cannot perform not_a_method with type intr,   )r&   r7   r   r1   r2   	TypeErrorZ_reducerE   msgr   r   r   test_bad_reduce_raises   s
    rT   c                  C   sT   t tg d} d}tjt|d | jdd W d    n1 sF0    Y  d S )Nr.   z/the 'keepdims' parameter is not supported .*allr,   T)Zkeepdims)r   r&   r7   r1   r2   r3   allrR   r   r   r   $test_validate_reduction_keyword_args   s    rV   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sxJ d S )N))jklm)rZ   op)r]   rW   r/   )r8   r9   r7   maxr&   maximumreduce)valsr<   rE   r)   r   r   r   test_np_max_nested_tuples   s    
rd   c                  C   sZ   t ddd} t| }t jj|dd}t||d  |jdd}t||d  d S )N      r0   r   )Zaxis)	r&   ZarangeZreshaper   ra   rb   r?   rC   r`   )rawrE   resZaltr   r   r   test_np_reduce_2d   s    rj   ufuncc                 C   sb   t tg d}| |}t | |j}t|| t tg d}| ||d t|| d S )Ng              r>   )      "rn   rn   )out)r   r&   r7   rK   r?   rC   )rk   rE   r)   r"   ro   r   r   r   test_ufunc_unary   s    rp   c                  C   sr   t tg d} t| t| d\}}t| jt| jd\}}t |}t |}t|| t|| d S )Nrl   r/   )r   r&   r7   divmodaddrK   r?   rC   )rE   r1r2e1e2r   r   r   
test_ufunc   s    rw   c                  C   s<   t tg d} | |  }t tg d}t|| d S )Nr.   )r/   rf      r   r&   r7   r?   rC   )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|   ry   )r   rE   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>0    Y  d| d< t| d ttjfstJ t	| d d S )Nr.   r   r,   r   r         @)
r   r&   r7   r1   r2   r3   
isinstancer   integertype)rE   r   r   r   test_setitem_no_coercion  s
    &r   c                  C   s   t tg d} |  }| d d  }t| }d| d< |d dksHJ |d dksXJ |d dkshJ d| d< d|d< | d dksJ d S )Nr.   	   r   r   rg      )r   r&   r7   viewZasarray)rE   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   rm   g      ?Zlinear)interpolation)	r   r&   r7   r8   IndexZ	_quantilenanr?   rC   )r   rE   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 )Nr.   r   )	r&   r7   rB   r   Z	factorizer8   r?   rL   rC   )rE   objZ	res_codesZ
res_uniqueZ	exp_codesZ
exp_uniquer   r   r   test_factorize_unsigned:  s    r   )6__doc__numpyr&   r1   Zpandas.core.dtypes.dtypesr   Zpandasr8   Zpandas._testingZ_testingr?   Zpandas.arraysr   Zfixturer7   r   r   r   r   r   r   markZparametrizer#   r$   r(   r*   r+   r4   r=   rA   rF   rG   rI   rM   rO   rP   rT   rV   rd   rj   absnegativeZpositiverp   rw   r{   r~   r   r   r%   rB   r   r   r   r   r   r   <module>   sl   




	


