o
    Eb                     @   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      t ddd}t|d d S Nr            ?)scbdtrr   selfval r   ?/usr/lib/python3/dist-packages/scipy/special/tests/test_bdtr.pytest      zTestBdtr.testc                 C   $   t g ddd}t|g d d S )Nr   r      r   r	   )      ?      ?      ?r
   r   r   r   r   r   r   test_sum_is_one      zTestBdtr.test_sum_is_onec                 C   2   t g ddd}t g ddd}t|| d S N)皙?皙? @r   r	   r   r   r   Z
double_valZint_valr   r   r   test_rounding      zTestBdtr.test_roundingk, n, pr   r	   r   c                 C   P   t  }|t t|||}W d    n1 sw   Y  t|s&J d S N)r   filterDeprecationWarningr
   r   npisnanr   knpsupr   r   r   r   test_inf   
   
zTestBdtr.test_infc                 C   s    t ddd}t|sJ d S )N皙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)   infr0   r3   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   r   r   )r
   bdtrcr   r   r   r   r   
test_value&   r   zTestBdtrc.test_valuec                 C   r   )Nr   r   r	   )r   r   g        r
   r<   r   r   r   r   r   r   *   r   zTestBdtrc.test_sum_is_onec                 C   r   r   r>   r!   r   r   r   r"   .   r#   zTestBdtrc.test_roundingr$   r   r	   r   c                 C   r%   r&   )r   r'   r(   r
   r<   r)   r*   r+   r   r   r   r0   3   r1   zTestBdtrc.test_infc                 C   s8   t ddd}t ddd}t|sJ t|d d S )Nr2   r   r	   r    r   )r
   r<   r)   r*   r   )r   r   Zval2r   r   r   r3   >   s   zTestBdtrc.test_domainc                 C   s>   t g ddd}t g ddd}|| }t|g d d S )Nr   r   r	   )r   r   r   )r
   r   r<   r   )r   	bdtr_valsZ
bdtrc_valsZvalsr   r   r   test_bdtr_bdtrc_sum_to_oneD   s   z$TestBdtrc.test_bdtr_bdtrc_sum_to_oneN)r4   r5   r6   r=   r   r"   r7   r8   r9   r)   r:   r0   r3   r@   r   r   r   r   r;   %   s    



r;   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   r   r   r
   bdtrir   r   r   r   r   r=   L   r   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
   rC   r)   ZasarrayZsqrtr   )r   r   Z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   rB   r!   r   r   r   r"   U   r#   zTestBdtri.test_roundingr$   r   r	   r   c                 C   r%   r&   )r   r'   r(   r
   rC   r)   r*   r+   r   r   r   r0   Z   r1   zTestBdtri.test_inf)r2   r   r	   )r    r   r	   c                 C   s    t |||}t|sJ d S r&   )r
   rC   r)   r*   )r   r,   r-   r.   r   r   r   r   r3   e   s   zTestBdtri.test_domainc                 C   s:   t g ddd}t g dd|}t|ddtjg d S )Nr   r   r	   )r
   r   rC   r   r)   nan)r   r?   Zroundtrip_valsr   r   r   test_bdtr_bdtri_roundtripm   s   z#TestBdtri.test_bdtr_bdtri_roundtripN)r4   r5   r6   r=   r   r"   r7   r8   r9   r)   r:   r0   r3   rE   r   r   r   r   rA   K   s     




rA   )Znumpyr)   Zscipy.specialZspecialr
   r7   Znumpy.testingr   r   r   r   r;   rA   r   r   r   r   <module>   s    &