o
    Ch%                     @   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   w/var/www/html/myvaluetrips/my_value_trip_new/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    




	


