o
    ôT·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   úh/home/dinkstrade/pdmp-scanner/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   Ú_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   Ú_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   Úconstruct_from_stringr,   r   )Úresultr&   r   r   r   Útest_constructor_from_stringT   s   
r1   c                 C   s    t | ƒ}t |ƒ}||ksJ ‚d S r#   r   )Úany_numpy_dtyper   r0   r   r   r   Útest_dtype_idempotentZ   s   r3   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   "ÿr<   c                  C   s2   t  g d¢¡} tjt| ƒdd�}|j| usJ ‚d S )Nr6   T©r   )r,   ÚarrayÚpdÚSeriesr   Úvalues)ÚndarrayÚserr   r   r   Ú!test_series_constructor_with_copyj   s   rD   c                  C   sB   t  g d¢¡} tjt| ƒdd�}tjg d¢dd�}t ||¡ d S )Nr6   Úfloat64r   )ç      ð?g       @g      @)r,   r>   r?   r@   r   ÚtmÚassert_series_equal)rB   r0   r&   r   r   r   Ú#test_series_constructor_with_astypeq   s   rI   c                  C   sF   t jg d¢dd�} tj| dd�}tt jg d¢dd�ƒ}t ||¡ d S )Nr6   r+   r   Úuint64)r,   r>   r   Ú_from_sequencerG   Úassert_extension_array_equal©Úarrr0   r&   r   r   r   Útest_from_sequence_dtypex   s   rO   c                  C   s.   t  ddg¡} t| dd�}t || ¡rJ ‚d S )Nr   r	   Tr=   )r,   r>   r   rG   Úshares_memory)rN   r0   r   r   r   Útest_constructor_copy   s   rQ   c                 C   s"   | }t |ƒ}|jj|jksJ ‚d S r#   )r   r   Únumpy_dtype©r   ÚnparrrN   r   r   r   Útest_constructor_with_data†   s   rU   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 )Nr6   Tr=   Úf8r   )r   r,   r>   Úto_numpyÚ_ndarrayrG   Úassert_numpy_array_equalrM   r   r   r   Útest_to_numpy�   s   rZ   c                  C   s6   t  g d¢¡} d| jd< t  g d¢¡}t | |¡ d S )Nr6   é
   r   )r[   r7   r8   )r?   r@   r>   rG   rH   )rC   r&   r   r   r   Útest_setitem_series¡   s   
r\   c                 C   s<   | }t |dd�}|d |d< |d |d< t | ¡ |¡ d S )NTr=   r	   r   )r   rG   rY   rW   rS   r   r   r   Útest_setitem¨   s
   r]   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 )Nr6   r+   r   z)cannot perform not_a_method with type intr4   )r,   r>   r   r9   r:   Ú	TypeErrorÚ_reduce©rN   Úmsgr   r   r   Útest_bad_reduce_raises¶   s   "ÿrb   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 )Nr6   z/the 'keepdims' parameter is not supported .*allr4   T)Úkeepdims)r   r,   r>   r9   r:   r;   Úallr`   r   r   r   Ú$test_validate_reduction_keyword_args¾   s
   "ÿre   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)ri   ©ÚoÚp)rl   rf   r7   )r?   r@   r>   Úmaxr,   ÚmaximumÚreduce)ÚvalsrC   rN   r0   r   r   r   Útest_np_max_nested_tuplesÅ   s   
rs   c                  C   sZ   t  d¡ dd¡} t| ƒ}t jj|dd�}t ||d ¡ |jdd�}t ||d ¡ d S )Né   é   r8   r   )Úaxiséÿÿÿÿ)	r,   ÚarangeÚreshaper   rp   rq   rG   rL   ro   )ÚrawrN   ÚresÚaltr   r   r   Útest_np_reduce_2dÚ   s   r}   Úufuncc                 C   sb   t t g d¢¡ƒ}| |ƒ}t | |jƒƒ}t ||¡ t t g d¢¡ƒ}| ||d� t ||¡ d S )N©g      ð¿ç        rF   )ç      "Àr�   r�   )Úout)r   r,   r>   rX   rG   rL   )r~   rN   r0   r&   r‚   r   r   r   Útest_ufunc_unaryé   s   rƒ   c                  C   sr   t t g d¢¡ƒ} t | t | d¡¡\}}t | jt | jd¡¡\}}t |ƒ}t |ƒ}t ||¡ t ||¡ d S )Nr   r7   )r   r,   r>   ÚdivmodÚaddrX   rG   rL   )rN   Úr1Úr2Úe1Úe2r   r   r   Ú
test_ufuncö   s   rŠ   c                  C   s<   t t g d¢¡ƒ} | |  }t t g d¢¡ƒ}t ||¡ d S )Nr6   )r7   ru   é   ©r   r,   r>   rG   rL   )Úxr0   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   rN   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 )Nr6   r   r4   r   r   ç      @)
r   r,   r>   r9   r:   r;   Ú
isinstancer   ÚintegerÚtype)rN   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 )Nr6   é	   r   r’   rw   é   )r   r,   r>   ÚviewÚasarray)rN   Úview1Úview2Ú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   r€   g      à?Úlinear)Úinterpolation)	r   r,   r>   r?   ÚIndexÚ	_quantileÚnanrG   rL   )r   rN   Úidxr0   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 )Nr6   r   )	r,   r>   rJ   r   Ú	factorizer?   rG   rY   rL   )rN   ÚobjÚ	res_codesÚ
res_uniqueÚ	exp_codesÚ
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']rE   z
[0.0, 1.0]r   z[0, 1]Ú
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   ÚnparrayrN   rA   r&   r0   r   r   r   Útest_array_reprK  s&   





r°   )7Ú__doc__Únumpyr,   r9   Úpandas.core.dtypes.dtypesr   Úpandasr?   Úpandas._testingÚ_testingrG   Úpandas.arraysr   Úfixturer>   r   r   r   r   r   r   ÚmarkÚparametrizer'   r*   r.   r1   r3   r<   rD   rI   rO   rQ   rU   rZ   r\   r]   rb   re   rs   r}   ÚabsÚnegativeÚpositiverƒ   rŠ   rŽ   r‘   r–   rž   r+   rJ   r¥   r¬   r°   r   r   r   r   Ú<module>   sp    ùÿ
þ
þ


	


