U
    Hvf                     @   s^   d dl Zd dlmZmZmZ d dlmZmZm	Z	 G dd dZ
G dd dZG dd	 d	ZdS )
    N)assert_equalassert_almost_equalassert_allclose)logitexpit	log_expitc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
	TestLogitc              	   C   s\   t ddd}t j||d}t jdd t|}W 5 Q R X t|| t|jt | d S )Nr      
   dtypeignore)divide)nplinspacearrayerrstater   r   r   r   selfr   expectedaactual r   B/tmp/pip-unpacked-wheel-96ln3f52/scipy/special/tests/test_logit.pycheck_logit_out   s    
zTestLogit.check_logit_outc                 C   s:   t jt j ddddddddt jg
t jd	}| d
| d S )NgcY@ gwQDB.gԙ̿gc?gC?C.?gN7?Q?gcY@ @r   f4)r   r   inffloat32r   r   r   r   r   r   test_float32   s        zTestLogit.test_float32c                 C   s4   t t j ddddddddt jg
}| d	| d S )
Ngu? g$/Qr   g̿g?gDB.?g$/Q?gu? @f8)r   r   r   r   r   r   r   r   test_float64   s        zTestLogit.test_float64c              	   C   sN   t t jgd }t jdd tt ddddg}W 5 Q R X t|| d S )N   r   )invalidg      g       g       @g      @)r   r   nanr   r   r   )r   r   r   r   r   r   test_nan"   s     zTestLogit.test_nanN)__name__
__module____qualname__r   r    r"   r&   r   r   r   r   r      s   
r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
	TestExpitc                 C   sD   t ddd}t j||d}t|}t|| t|jt | d S )Nr#   r
   r   )r   r   r   r   r   r   r   r   r   r   r   check_expit_out+   s
    
zTestExpit.check_expit_outc                 C   s4   t jddddddddd	d
g
t jd}| d| d S )N{j?\wb֥?g~ܟ?g5?s4 ?ǻe?g+?>S?w?gݙ?gl?r   r   )r   r   r   r,   r   r   r   r   r    2   s        zTestExpit.test_float32c                 C   s.   t ddddddddd	d
g
}| d| d S )Nr-   r.   gIq?g!/?r/   r0   gw?4S?r1   g4ؙ?g!/l?r!   )r   r   r,   r   r   r   r   r"   :   s        zTestExpit.test_float64c                 C   sz   t jt jt jfD ]d}dD ]Z}t j||d}tt|ddd tt| ddd tt|j| tt| j| qqd S )N)X   Y   i    i\,  i],  r   g      ?g#B;)Zatolg        )	r   r   Zfloat64Z
longdoubler   r   r   r   r   )r   r   nr   r   r   
test_largeB   s    zTestExpit.test_largeN)r'   r(   r)   r,   r    r"   r6   r   r   r   r   r*   *   s   r*   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestLogExpitc                 C   s(   t ddddg}t|}t|| d S )Ng     g     pg     @g     Ar   r   r   r   r   xyr   r   r   test_large_negativeN   s    z TestLogExpit.test_large_negativec                 C   s2   t dddg}t|}t|t dddg d S )Ng     p@g     @@g     @g       r8   r9   r   r   r   test_large_positiveS   s    z TestLogExpit.test_large_positivec                 C   sl   t ddddddddd	d
dddddddg}t|}ddddddddddddddd d!d"g}t||d#d$ d S )%N皙&.r   &.>皙?r	   r
   d   i  r4   i  i  g     @gC   4g(U $g\ÁcgIgOg>B.g9B.gB.g]g$zԿgLVg]gCx^&ْgó(8g   g'1     gV瞯<Zrtol)r   r   r   r   r   r:   r;   r   r   r   r   test_basic_float64\   s>                    zTestLogExpit.test_basic_float64c                 C   sn   t jddddddddd	d
dddgt jd}t|}t jdddddddddddddgt jd}t||dd d S )Nr>   r?   r@   rA   rB   rC   rD   r   rE   rF   r	   r
   rG   r   g      @g      4g $gcgm{qg8gj	C.g@g %zԿgcAVgα!gƠ>rH   )r   r   r   r   r   rI   r   r   r   test_basic_float32{   s2               zTestLogExpit.test_basic_float32N)r'   r(   r)   r<   r=   rJ   rK   r   r   r   r   r7   L   s   	r7   )Znumpyr   Znumpy.testingr   r   r   Zscipy.specialr   r   r   r   r*   r7   r   r   r   r   <module>   s
   #"