3
Od                 @   st   d dl Z d dlZd dlmZmZ d dljZd dl	m
Z
 d
ddejdfdejfgZG dd deZG dd deZdS )    N)assert_allcloseassert_array_equal)FuncData   c               @   s   e Zd Zejjdedd Zdd Zejjde	j
ddfe	j
ddfe	j
e	j
e	jfde	j
dfgd	d
 Zdd Zdd Zdd Zdd Zdd Zdd ZdS )TestGammaincza, xc             C   s   t jtj||std S )N)npisnanscgammaincAssertionError)selfax r   U/var/www/html/virt/lib64/python3.6/site-packages/scipy/special/tests/test_gammainc.pytest_domain   s    zTestGammainc.test_domainc             C   s   t jdddkstd S )Nr   r   )r	   r
   r   )r   r   r   r   test_a_eq_0_x_gt_0   s    zTestGammainc.test_a_eq_0_x_gt_0za, x, desiredr   r   c             C   s6   t j||}tj|r&tj|s2tn||ks2td S )N)r	   r
   r   r   r   )r   r   r   desiredresultr   r   r   test_infinite_arguments   s    
z$TestGammainc.test_infinite_argumentsc             C   sD   t tjddtjtjdddd tjddtjdtjks@td S )Ni  d   gN~hr   )atolrtol)r   r	   r
   r   infr   )r   r   r   r   test_infinite_limits)   s    
z!TestGammainc.test_infinite_limitsc             C   s"   t jdd}ttj|dd d S )Nr   
   r   )r   aranger   r	   r
   )r   r   r   r   r   test_x_zero4   s    zTestGammainc.test_x_zeroc             C   s,   t jdd}t jdd}tj||s(td S )Ng|=r   r   )r	   r
   r   iscloser   )r   r   limitr   r   r   test_limit_check8   s    zTestGammainc.test_limit_checkc             C   sd   t jddddddg}d}d}x |D ]}||| 8 }|| }q$W |t jdt j |  }|d7 }|S )Nr      i     i  e   i_ i0 l    8 i) l   d K r      g      ?gUUUUUUտr%   gt:W^g;dp?g4;GE?iUgg{>Likg
6)r   arraysqrtpi)r   r   cresZxfacZckr   r   r   gammainc_line=   s    

zTestGammainc.gammainc_linec             C   sL   t jt jddd}|}t j||| j|fj}ttj|d	dddj	  d S )
Nr"   i,  i  r   r   r$   gdy=)r   )r   r   )
r   logspacelog10Zvstackr+   Tr   r	   r
   check)r   r   r   Zdatasetr   r   r   	test_lineK   s    zTestGammainc.test_linec             C   sB   t jddd}t jddd}tj|tj||}t||dd d S )N   r   r   g|=)r   r2   )r   r,   r	   Zgammaincinvr
   r   )r   r   r   yr   r   r   test_roundtripQ   s    zTestGammainc.test_roundtripN)__name__
__module____qualname__pytestmarkparametrizeINVALID_POINTSr   r   r   r   nanr   r   r   r    r+   r0   r4   r   r   r   r   r      s   

	r   c               @   s   e Zd Zejjdedd Zdd Zejjde	j
ddfe	j
ddfe	j
e	j
e	jfde	j
dfgd	d
 Zdd Zdd Zdd Zdd ZdS )TestGammainccza, xc             C   s   t jtj||std S )N)r   r   r	   	gammainccr   )r   r   r   r   r   r   r   [   s    zTestGammaincc.test_domainc             C   s   t jdddkstd S )Nr   r   )r	   r>   r   )r   r   r   r   r   _   s    z TestGammaincc.test_a_eq_0_x_gt_0za, x, desiredr   r   c             C   s6   t j||}tj|r&tj|s2tn||ks2td S )N)r	   r>   r   r   r   )r   r   r   r   r   r   r   r   r   b   s    
z%TestGammaincc.test_infinite_argumentsc             C   sD   t jddt jtjdksttt jddt jdtjddd d S )Ni  r   gN~hr   )r   r   )r	   r>   r   r   r   r   )r   r   r   r   r   o   s    
z"TestGammaincc.test_infinite_limitsc             C   s,   t jdd}t jdd}tj||s(td S )Ng|=r   r   )r	   r>   r   r   r   )r   r   r   r   r   r   r    z   s    zTestGammaincc.test_limit_checkc             C   s"   t jdd}ttj|dd d S )Nr   r   r   )r   r   r   r	   r>   )r   r   r   r   r   r      s    zTestGammaincc.test_x_zeroc             C   sB   t jddd}t jddd}tj|tj||}t||dd d S )Nr1   r   r   g+=)r   r2   r2   )r   r,   r	   Zgammainccinvr>   r   )r   r   r   r3   r   r   r   r4      s    zTestGammaincc.test_roundtripN)r5   r6   r7   r8   r9   r:   r;   r   r   r   r   r<   r   r   r    r   r4   r   r   r   r   r=   Y   s   

	r=   r%   )r   r%   )r   r   r%   )r%   r   )r8   Znumpyr   Znumpy.testingr   r   Zscipy.specialZspecialr	   Zscipy.special._testutilsr   r<   r;   objectr   r=   r   r   r   r   <module>   s   
F