U
    f/e                     @   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ddddddddddg
dd Zejddddd d!dd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d0d1 Zd2d3 Z d4d5 Z!d6d7 Z"d8d9 Z#d:d; Z$d<d= Z%d>d? Z&d@dA Z'dBdC Z(ejdDdegdEdF Z)dGdH Z*dIdJ Z+dS )KzN
Additional tests for PandasArray that aren't covered by
the interface tests.
    N)PandasDtype)PandasArray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   B/tmp/pip-unpacked-wheel-tiezk1ph/pandas/tests/arrays/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|kstd S N)r   Z_is_numericAssertionErrorr   expectedr   r   r   test_is_numeric'   s    r   )r   F)r   F)r   F)r   Fc                 C   s   t | } | j|kstd S r   )r   Z_is_booleanr   r   r   r   r   test_is_boolean;   s    r   c                  C   s"   t td} t| dkstd S )Nint64zPandasDtype('int64'))r   npr   reprr   r   r   r   r   	test_reprO   s    r"   c                  C   s(   t d} t td}| |ks$td S )Nr   )r   Zconstruct_from_stringr    r   r   )resultr   r   r   r   test_constructor_from_stringT   s    
r$   c                 C   s    t | }t |}||kstd S r   )r   r   )Zany_numpy_dtyper   r#   r   r   r   test_dtype_univalentZ   s    r%   c                	   C   s,   t jtdd tdddg W 5 Q R X d S )NzNumPy arraymatchr         )pytestraises
ValueErrorr   r   r   r   r   test_constructor_no_coercione   s    r-   c                  C   s4   t dddg} tjt| dd}|j| k	s0td S )Nr   r(   r)   Tcopy)r    arraypdSeriesr   valuesr   )ndarrayserr   r   r   !test_series_constructor_with_copyj   s    r6   c                  C   sF   t dddg} tjt| dd}tjdddgdd}t|| d S )	Nr   r(   r)   Zfloat64r         ?g       @g      @)r    r0   r1   r2   r   tmassert_series_equal)r4   r#   r   r   r   r   #test_series_constructor_with_astypeq   s    r:   c                  C   sJ   t jdddgdd} tj| dd}tt jdddgdd}t|| d S )Nr   r(   r)   r   r   Zuint64)r    r0   r   Z_from_sequencer8   assert_extension_array_equalarrr#   r   r   r   r   test_from_sequence_dtypex   s    r>   c                  C   s4   t ddg} t| dd}t |j| dks0td S )Nr   r   Tr.   F)r    r0   r   Zshares_memory_ndarrayr   )r=   r#   r   r   r   test_constructor_copy   s    r@   c                 C   s"   | }t |}|jj|jkstd S r   )r   r   Znumpy_dtyper   r   Znparrr=   r   r   r   test_constructor_with_data   s    rB   c                  C   st   t tdddg} |  }|| jks*t| jdd}|| jk	sDt| jdd}tjdddgdd}t|| d S )Nr   r(   r)   Tr.   Zf8r   )r   r    r0   to_numpyr?   r   r8   assert_numpy_array_equalr<   r   r   r   test_to_numpy   s    rE   c                  C   s:   t dddg} d| jd< t dddg}t| | d S )Nr   r(   r)   
   r   )r1   r2   r0   r8   r9   )r5   r   r   r   r   test_setitem_series   s    
rG   c                 C   s<   | }t |dd}|d |d< |d |d< t| | d S )NTr.   r   r   )r   r8   rD   rC   rA   r   r   r   test_setitem   s
    rH   c               	   C   sH   t jdddgdd} t| } d}tjt|d | | W 5 Q R X d S )Nr   r(   r)   r   r   z)cannot perform not_a_method with type intr&   )r    r0   r   r*   r+   	TypeErrorZ_reducer=   msgr   r   r   test_bad_reduce_raises   s
    rL   c               	   C   sB   t tdddg} d}tjt|d | jdd W 5 Q R X d S )Nr   r(   r)   z/the 'keepdims' parameter is not supported .*allr&   T)Zkeepdims)r   r    r0   r*   r+   r,   allrJ   r   r   r   $test_validate_reduction_keyword_args   s    rN   c                  C   s   t tdddg} t| }t t| j}t|| t| t| d\}}t| jt| jd\}}t |}t |}t|| t|| d S )Ng      g        r7   r(   )	r   r    r0   absr?   r8   r;   divmodadd)r=   r#   r   Zr1Zr2e1e2r   r   r   
test_ufunc   s    
rT   c                  C   s@   t tdddg} | |  }t tdddg}t|| d S )Nr   r(   r)         r   r    r0   r8   r;   )xr#   r   r   r   r   test_basic_binop   s    rY   r   c                 C   sH   t tjdddg| d}d|d< t tjdddg| d}t|| d S )Nr   r   cr   tr   rW   )r   r=   r   r   r   r   test_setitem_object_typecode   s    r\   c               	   C   sf   t tdddg} tjtdd d| d< W 5 Q R X d| d< t| d ttjfsbt	t
| d d S )	Nr   r(   r)   r   r&   r   r         @)r   r    r0   r*   r+   r,   
isinstancer   integerr   type)r=   r   r   r   test_setitem_no_coercion   s
    ra   c                  C   s   t tdddg} |  }| d d  }t| }d| d< |d dksJt|d dksZt|d dksjtd| d< d|d< | d dkstd S )	Nr   r(   r)   	   r   r]      )r   r    r0   viewZasarrayr   )r=   Zview1Zview2Zview3r   r   r   test_setitem_preserves_views   s    
rf   ),__doc__Znumpyr    r*   Zpandas.core.dtypes.dtypesr   Zpandasr1   Zpandas._testingZ_testingr8   Zpandas.arraysr   Zfixturer0   r   r   r   r   r   r   markZparametrizer   r   r"   r$   r%   r-   r6   r:   r>   r@   rB   rE   rG   rH   rL   rN   rT   rY   r\   ra   rf   r   r   r   r   <module>   s   



	
