o
    `^h                     @   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   [/home/air/shanriGPT/back/venv/lib/python3.10/site-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   
double_val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+   infr2   r5   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   r2   3   r3   zTestBdtrc.test_infc                 C   s8   t ddd}t ddd}t|sJ t|d d S )Nr4   r   r	   r    r   )r
   r>   r+   r,   r   )r   r   val2r   r   r   r5   >   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_vals
bdtrc_valsvalsr   r   r   test_bdtr_bdtrc_sum_to_oneD   s   z$TestBdtrc.test_bdtr_bdtrc_sum_to_oneN)r6   r7   r8   r?   r   r$   r9   r:   r;   r+   r<   r2   r5   rE   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
   rH   r+   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   rG   r!   r   r   r   r$   U   r%   zTestBdtri.test_roundingr&   r   r	   r   c                 C   r'   r(   )r   r)   r*   r
   rH   r+   r,   r-   r   r   r   r2   Z   r3   zTestBdtri.test_inf)r4   r   r	   )r    r   r	   c                 C   s    t |||}t|sJ d S r(   )r
   rH   r+   r,   )r   r.   r/   r0   r   r   r   r   r5   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   rH   r   r+   nan)r   rB   roundtrip_valsr   r   r   test_bdtr_bdtri_roundtripm   s   z#TestBdtri.test_bdtr_bdtri_roundtripN)r6   r7   r8   r?   r   r$   r9   r:   r;   r+   r<   r2   r5   rN   r   r   r   r   rF   K   s     




rF   )numpyr+   scipy.specialspecialr
   r9   numpy.testingr   r   r   r   r=   rF   r   r   r   r   <module>   s    &