o
    ig                     @   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                   @   ,   e Zd Zdd Zdd Zdd Zdd Zd	S )
	TestLogitc                 C   s:   t |}t|j|j dt|jj }t|||d d S )N   rtol)r   r   dtypenpZfinfoepsr   )selfaexpectedactualr    r   X/home/kim/smarthome/.venv/lib/python3.10/site-packages/scipy/special/tests/test_logit.pycheck_logit_out	   s   zTestLogit.check_logit_outc                 C   sv   t t jdddt jdt dt dt dgf}t jt j dd	d
dddddt jdddgt jd}| || d S )Nr      
   r   g-C6?g9?g㈵ ?g9 gFRQgIvB.gԙ̿gc?gC.?g8*7Q?g9 @g4k"gugu?)r   concatenatelinspacefloat32arrayinfr   r   r   r   r   r   r   test_float32   s   	zTestLogit.test_float32c                 C   s\   t t jdddt jdg df}t t j dddd	d
dddt jdddg}| || d S )Nr   r   r   r   )g:0yE>g?g_   ?gt;? g`=.Qg9B.g%̿g%?g9B.?g]=.Q?gr;? @gak2g     $\g    =)r   r   r   float64r   r   r   r   r   r   r   test_float64    s$   
zTestLogit.test_float64c                 C   s^   t t jgd }t jdd tt g d}W d    n1 s#w   Y  t|| d S )N   ignore)invalid)g      g       g       @g      @)r   r   nanZerrstater   r   )r   r   r   r   r   r   test_nan3   s
   zTestLogit.test_nanN)__name__
__module____qualname__r   r    r"   r'   r   r   r   r   r	      s
    r	   c                   @   r   )
	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   r   r   r   r   check_expit_out<   s
   
zTestExpit.check_expit_outc                 C   s$   t jg dt jd}| d| d S )N)
{j?\wb֥?g~ܟ?g5?s4 ?ǻe?g+?>S?w?gݙ?gl?r   Zf4)r   r   r   r-   r   r   r   r   r   r    C   s   
zTestExpit.test_float32c                 C   s   t g d}| d| d S )N)
r.   r/   gIq?g!/?r0   r1   gw?4S?r2   g4ؙ?g!/l?Zf8)r   r   r-   r3   r   r   r   r"   K   s   zTestExpit.test_float64c                 C   sz   t jt jt jfD ]2}dD ]-}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   r!   Z
longdoubler   r   r   r   r   )r   r   nr   r   r   
test_largeS   s   zTestExpit.test_largeN)r(   r)   r*   r-   r    r"   r8   r   r   r   r   r+   ;   s
    r+   c                   @   r   )
TestLogExpitc                 C   s$   t g d}t|}t|| d S )N)g     g     pg     @g     Ar   r   r   r   r   xyr   r   r   test_large_negative_   s   z TestLogExpit.test_large_negativec                 C   s.   t g d}t|}t|t g d d S )N)g     p@g     @@g     @)       r?   r?   r:   r;   r   r   r   test_large_positived   s   z TestLogExpit.test_large_positivec                 C   s0   t g d}t|}g d}t||dd d S )N)皙&.r   &.>皙?r   r   d   i  r6   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瞯<r   )r   r   r   r   r   r<   r=   r   r   r   r   test_basic_float64m   s   zTestLogExpit.test_basic_float64c                 C   sB   t jg dt jd}t|}t jg dt jd}t||dd d S )N)rA   rB   rC   rD   rE   rF   rG   r   rH   rI   r   r   rJ   r   )g      @g      4g $gcgm{qg8j	C.rM   rM   g@g %zԿgcAVgα!gƠ>r   )r   r   r   r   r   rK   r   r   r   test_basic_float32   s   

zTestLogExpit.test_basic_float32N)r(   r)   r*   r>   r@   rL   rN   r   r   r   r   r9   ]   s
    	r9   )numpyr   Znumpy.testingr   r   r   Zscipy.specialr   r   r   r	   r+   r9   r   r   r   r   <module>   s    4"