U
    ¸mœdÎ  ã                   @   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   úW/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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      ø¿gÍÌÌÌÌÌü¿g…ë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   )Ú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   