U
    HvfŸ  ã                   @   s^   d dl Zd dlmZ d dl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_allcloseÚassert_array_equalÚsuppress_warningsc                   @   s`   e Zd Zdd„ Zdd„ Zdd„ Zej de	j
dd	fd
e	j
d	fd
de	j
fg¡dd„ ƒZdd„ ZdS )ÚTestBdtrc                 C   s   t  ddd¡}t|dƒ d S ©Nr   é   ç      à?)ÚscÚbdtrr   ©ÚselfÚval© r   úA/tmp/pip-unpacked-wheel-96ln3f52/scipy/special/tests/test_bdtr.pyÚtest   s    zTestBdtr.testc                 C   s(   t  dddgdd¡}t|dddgƒ d S )Nr   r   é   r   ç      Ð?ç      è?ç      ð?©r	   r
   r   r   r   r   r   Útest_sum_is_one   s    zTestBdtr.test_sum_is_onec                 C   s6   t  dddgdd¡}t  dddgdd¡}t||ƒ d S ©Nçš™™™™™¹?çš™™™™™ñ?çÍÌÌÌÌÌ @r   r   r   r   r   ©r   Z
double_valZint_valr   r   r   Útest_rounding   s    zTestBdtr.test_roundingúk, n, pr   r   r   c              	   C   s<   t ƒ }| t¡ t |||¡}W 5 Q R X t |¡s8t‚d S ©N)r   ÚfilterÚDeprecationWarningr	   r
   ÚnpÚisnanÚAssertionError©r   ÚkÚnÚpÚsupr   r   r   r   Útest_inf   s    
zTestBdtr.test_infc                 C   s    t  ddd¡}t |¡st‚d S )Nçš™™™™™ñ¿r   r   )r	   r
   r!   r"   r#   r   r   r   r   Útest_domain    s    zTestBdtr.test_domainN)Ú__name__Ú
__module__Ú__qualname__r   r   r   ÚpytestÚmarkÚparametrizer!   Úinfr)   r+   r   r   r   r   r      s   


ý
r   c                   @   sh   e Zd Zdd„ Zdd„ Zdd„ Zej de	j
dd	fd
e	j
d	fd
de	j
fg¡dd„ ƒZdd„ Zdd„ ZdS )Ú	TestBdtrcc                 C   s   t  ddd¡}t|dƒ d S r   )r	   Úbdtrcr   r   r   r   r   Ú
test_value&   s    zTestBdtrc.test_valuec                 C   s(   t  dddgdd¡}t|dddgƒ d S )Nr   r   r   r   r   r   g        ©r	   r4   r   r   r   r   r   r   *   s    zTestBdtrc.test_sum_is_onec                 C   s6   t  dddgdd¡}t  dddgdd¡}t||ƒ d S r   r6   r   r   r   r   r   .   s    zTestBdtrc.test_roundingr   r   r   r   c              	   C   s<   t ƒ }| t¡ t |||¡}W 5 Q R X t |¡s8t‚d S r   )r   r   r    r	   r4   r!   r"   r#   r$   r   r   r   r)   3   s    
zTestBdtrc.test_infc                 C   s8   t  ddd¡}t  ddd¡}t |¡s*t‚t|dƒ d S )Nr*   r   r   r   r   )r	   r4   r!   r"   r#   r   )r   r   Zval2r   r   r   r+   >   s    zTestBdtrc.test_domainc                 C   sD   t  dddgdd¡}t  dddgdd¡}|| }t|dddgƒ d S )Nr   r   r   r   r   )r	   r
   r4   r   )r   Ú	bdtr_valsZ
bdtrc_valsÚvalsr   r   r   Útest_bdtr_bdtrc_sum_to_oneD   s    z$TestBdtrc.test_bdtr_bdtrc_sum_to_oneN)r,   r-   r.   r5   r   r   r/   r0   r1   r!   r2   r)   r+   r9   r   r   r   r   r3   %   s   


ý
r3   c                   @   sz   e Zd Zdd„ Zdd„ Zdd„ Zej de	j
dd	fd
e	j
d	fd
de	j
fg¡dd„ ƒZej dddg¡dd„ ƒZdd„ ZdS )Ú	TestBdtric                 C   s   t  ddd¡}t|dƒ d S r   ©r	   Úbdtrir   r   r   r   r   r5   L   s    zTestBdtri.test_valuec                 C   sF   t  ddgdd¡}t ddt d¡  dt d¡ g¡}t||ƒ d S ©Nr   r   r   r   )r	   r<   r!   ZasarrayÚsqrtr   )r   r   Úactualr   r   r   r   P   s    &zTestBdtri.test_sum_is_onec                 C   s2   t  ddgdd¡}t  ddgdd¡}t||ƒ d S )Nr   r   r   r   r   r   r;   r   r   r   r   r   U   s    zTestBdtri.test_roundingr   r   r   r   c              	   C   s<   t ƒ }| t¡ t |||¡}W 5 Q R X t |¡s8t‚d S r   )r   r   r    r	   r<   r!   r"   r#   r$   r   r   r   r)   Z   s    
zTestBdtri.test_inf)r*   r   r   )r   r   r   c                 C   s    t  |||¡}t |¡st‚d S r   )r	   r<   r!   r"   r#   )r   r%   r&   r'   r   r   r   r   r+   e   s    zTestBdtri.test_domainc                 C   s>   t  dddgdd¡}t  dddgd|¡}t|ddtjgƒ d S r=   )r	   r
   r<   r   r!   Únan)r   r7   Zroundtrip_valsr   r   r   Útest_bdtr_bdtri_roundtripm   s    z#TestBdtri.test_bdtr_bdtri_roundtripN)r,   r-   r.   r5   r   r   r/   r0   r1   r!   r2   r)   r+   rA   r   r   r   r   r:   K   s   


ý
þ
r:   )Znumpyr!   Zscipy.specialÚspecialr	   r/   Znumpy.testingr   r   r   r   r3   r:   r   r   r   r   Ú<module>   s   &