U
    O8c                     @   sT   d dl Zd dlmZ d dlm  mZ d dl	m
Z
mZmZmZmZ G dd dZdS )    N)assert_assert_equalassert_array_equalassert_warnsassert_raisesc                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestUfunclikec              	   C   s   t t jt j t jdddg}t |jt}t ddddddg}t|}t	|| t||}t	|| t	|| |
tj}tt t| W 5 Q R X d S )N              @      TF)nxarrayinfnanzerosshapebooluflisposinfr   astypenpcomplex_r   	TypeErrorselfaoutZtgtres r   B/tmp/pip-unpacked-wheel-fd_gsd75/numpy/lib/tests/test_ufunclike.pytest_isposinf   s    




zTestUfunclike.test_isposinfc              	   C   s   t t jt j t jdddg}t |jt}t ddddddg}t|}t	|| t||}t	|| t	|| |
tj}tt t| W 5 Q R X d S )Nr   r	   r
   FT)r   r   r   r   r   r   r   r   isneginfr   r   r   r   r   r   r   r   r   r   test_isneginf   s    




zTestUfunclike.test_isneginfc                 C   s   t ddddgddddgg}t |jt}t ddddgddddgg}t|}t|| t||}t|| t|| ttd	d
 d S )Ng      ?皙?g      ?g?g      皙g      ggQ	@   )r   r   r   r   floatr   fixr   r   r   r   r   test_fix)   s    



zTestUfunclike.test_fixc                    s   G  fdddt j t ddg} |dd}t|}t|t ddg tt|  t|j	d |d	 }d
|_	t|}tt|  t|j	d
 d S )Nc                       s,   e Zd ZdddZd	 fdd	Zdd ZdS )
z5TestUfunclike.test_fix_with_subclass.<locals>.MyArrayNc                 S   s   t j|dd| }||_|S )NT)copy)r   r   viewmetadata)clsdatar*   r   r   r   r   __new__7   s    z=TestUfunclike.test_fix_with_subclass.<locals>.MyArray.__new__c                    s   t | r| j|_|S )N)
isinstancer*   )r   objcontextMyArrayr   r   __array_wrap__<   s    
zDTestUfunclike.test_fix_with_subclass.<locals>.MyArray.__array_wrap__c                 S   s   t |dd | _| S )Nr*   )getattrr*   )r   r/   r   r   r   __array_finalize__A   s    zHTestUfunclike.test_fix_with_subclass.<locals>.MyArray.__array_finalize__)N)N)__name__
__module____qualname__r-   r3   r5   r   r1   r   r   r2   6   s   
r2   r"   r#   Zfoo)r*      )r   .bar)
r   Zndarrayr   r   r&   r   r   r.   r   r*   )r   r   mfZm0dZf0dr   r1   r   test_fix_with_subclass5   s    

z$TestUfunclike.test_fix_with_subclassc                 C   sX   t ttjddgtdd t ttjddgtdd t ttjddgtdd d S )Nr9      )y)r   DeprecationWarningr   r&   r   emptyr   r    )r   r   r   r   test_deprecatedS   s    zTestUfunclike.test_deprecatedc                 C   s   t j}t |}t j}t|| tt|t| d}t |}t d}t|| tt|t| t d}t j||d}t	||k d S )Ng333333r
   r   )r   )
r   r   r   ZTrue_r   typer&   Zfloat64r   r   )r   xactualexpectedr   r   r   r   test_scalarY   s    





zTestUfunclike.test_scalarN)	r6   r7   r8   r   r!   r'   r>   rC   rH   r   r   r   r   r   	   s   r   )Znumpyr   Z
numpy.corecorer   Znumpy.lib.ufunclikelibZ	ufuncliker   Znumpy.testingr   r   r   r   r   r   r   r   r   r   <module>   s   