
    ^Mht              	          d dl Z d dlZd dlmZ d dlmZ d dlmZ e j	        
                    dg d          Zed             Zed             Zd	 Zd
 Ze j	                            d          d             Zd Ze j	                            d          e j	        
                    dddg          e j	        
                    dddg          d                                     Zed             Zd Zd Ze j	        
                    ddd ej        fej        d fej         ej        fej        ej         fg          d             Ze j	        j        d             ZdS )    N)assert_allclose)quad_vec)Pool
quadrature)Ngk15gk21	trapezoidc           	         t          j        d          fd}dD ]}| dk    r|dk     rt          ||           }ddz   z  dz   z  }t          |d	dfd
di|\  }}t	          ||d	|           t          |d	dfd
di|\  }}t           j                            ||z
            |k     sJ t          |d	dfddd|\  }}t	          ||d	|           t          |d	dfddddd|^}}}t	          ||d	|           d S )N
   c                     | z  S N )xns    d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/integrate/tests/test__quad_vec.pyfztest_quad_vec_simple.<locals>.f   s    Av    皙?gMbP?gư>r	   -C6?)epsabsr         r   normmaxrtolatol2)      ?      ?)r   pointsg:0yE>Ti'  )r   epsrelfull_outputlimit)nparangedictr   r   linalgr   )	r   r   r   kwargsexactreserrrestr   s	           @r   test_quad_vec_simpler/      s   
	"A    # 9 9$$$V
;;;AaC!a% Aq!::%:6::SU8888Aq!88#888Sy~~cEk**V3333Aq!M%
MMfMMSU8888"1a -*./3).- - &,	- -S4
 	U88888/9 9r   c           
         d }dD ]}| dk    r|dk     rt          d||           }t          |dt          j        fi |\  }}t	          |t          j        dz  dt          ||          	           t          |dt          j         fi |\  }}t	          |t          j         dz  dt          ||          	           t          |t          j         dfi |\  }}t	          |t          j        dz  dt          ||          	           t          |t          j        dfi |\  }}t	          |t          j         dz  dt          ||          	           t          |t          j         t          j        fi |\  }}t	          |t          j        dt          ||          	           t          |t          j        t          j         fi |\  }}t	          |t          j         dt          ||          	           t          |t          j        t          j        fi |\  }}t	          |ddt          ||          	           t          |t          j         t          j         fi |\  }}t	          |ddt          ||          	           t          |dt          j        fd
di|\  }}t	          |t          j        dz  dt          ||          	           d }t          j        t          j        z  t          j        d          z  }d}t          |t          j         t          j        dd|| d          \  }}}|j	        dk    sJ t	          ||dt          |d|z            	           d S )Nc                 <    ddt          j        |           dz  z   z  S Nr   r   )r&   float64r   s    r   r   z#test_quad_vec_simple_inf.<locals>.f0   s    A
1**++r   r   r	   r   r   )r   r   r   r   r   r   r"   )r!   g       @c                 B    t          j        | dz             d| dz  z   z  S )Nr   r   )r&   sinr4   s    r   r   z#test_quad_vec_simple_inf.<locals>.fU   s!    va!e}}AF
++r   gh㈵>i  T)r%   r   r   r   r$   r   g      ?)
r(   r   r&   infr   pir   er6   status)r   r   r   r*   r,   r-   r+   infos           r   test_quad_vec_simple_infr<   .   ss   , , , $  E  E$$$5JGGGAq"&33F33SRU1W13vs3C3CDDDDAq26'44V44SbeVAXAC4D4DEEEEAw44V44SRU1W13vs3C3CDDDDArvq33F33SbeVAXAC4D4DEEEEAw99&99SRUVS1A1ABBBBArvw99&99SbeV!#fc2B2BCCCCArvrv8888SQQS-=-=>>>>Aw::6::SQQS-=-=>>>>Aq"&FFFvFFSRU1W13vs3C3CDDDDD, , ,EBDL26!99$EFa"&"&5QW)3G G GNCd;!CQSs-C-CDDDDDDr   c                      d } d}t          j        g d          }t          | dd|f          \  }}t          ||dd           d S )	Nc                 <    | | |z   z  t          j        d          z  S N   r&   r'   r   as     r   r   ztest_quad_vec_args.<locals>.fa   s    AE{RYq\\))r   r   r   gUUUUUU?gUUUUUU@r   r   )argsr   r   )r&   arrayr   r   )r   rC   r+   r,   r-   s        r   test_quad_vec_argsrG   `   sb    * * *	AH]]]##E1aqd+++HCCQT222222r   c                     dd| dz  z   z  S r2   r   r4   s    r   
_lorenzianrI   j   s    AqD>r   r   c            	         t           } t          | t          j         t          j        ddd          \  }}t	          |t          j        dd           t          d          5 }d } t          | t          j         t          j        dd|j                  \  }}t	          |t          j        dd           d d d            d S # 1 swxY w Y   d S )	Nr   r      )r   r   workersr   r   r   c                     dd| dz  z   z  S r2   r   r4   s    r   r   ztest_quad_vec_pool.<locals>.fu   s    AF
##r   )rI   r   r&   r7   r   r8   r   map)r   r,   r-   pool_s        r   test_quad_vec_poolrQ   n   s    ABF7BFtQOOOHCCQT2222	b 7T	$ 	$ 	$!bfWbf5txXXXQRU6666	7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   !ACCCc                 <    | | |z   z  t          j        d          z  S r?   rA   rB   s     r   _func_with_argsrS   {   s    A;1%%r   
extra_argsr   )r   rL   r   c                 B   t           }t          j        g d          }t          |dd| |          \  }}t	          ||dd           t          |          5 }t          |dd| |j                  \  }}t	          ||dd           d d d            d S # 1 swxY w Y   d S )NrD   r   r   )rE   rL   r   r   )rS   r&   rF   r   r   r   rN   )rT   rL   r   r+   r,   r-   rO   s          r   test_quad_vec_pool_argsrV      s     	AH]]]##E1aj'BBBHCCQT2222	g 7$Aq!*dhGGGSU66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s   0BBBc                 t    fd}dgt          |dddd|           }|d         j        d         k    sJ d S )Nc                 .    dxx         dz  cc<   | dz  S )Nr   r      r   )r   counts    r   r   ztest_num_eval.<locals>.f   s!    aA!tr   r   r   r   T)r   r$   r   r   )r   neval)r   r   r,   rZ   s      @r   test_num_evalr\      s`         CE
1aDZ
P
P
PCq6<58######r   c                  b   d } t          | dddd          \  }}}|j        du sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ |j        j        d         dk    sJ |j        j        |j        j        d         d	ddfk    sJ |j        j        |j        j        d         fk    sJ d S )
Nc                 *    t          j        d          S )N)r@   r   r   )r&   onesr4   s    r   r   ztest_info.<locals>.f   s    wy!!!r   r   r   r   T)r   r$   zTarget precision reached.r   r@   )	r   successr:   messager[   	intervalsshape	integralserrors)r   r,   r-   r;   s       r   	test_inforf      s    " " " aAEtDDDNCd<4;!<66666:>>>>>"a''''>DN$8$;Q1#EEEEE;!5a!8 :::::::r   c                      d } d }t          | ddd          \  }}}|j        dk    sJ t          |ddd          \  }}}|j        dk    sJ d S )Nc                     t           j        S r   )r&   nanr4   s    r   f_nanztest_nan_inf.<locals>.f_nan   s	    vr   c                 0    | dk     rt           j        nd| z  S )Nr   r   )r&   r7   r4   s    r   f_infztest_nan_inf.<locals>.f_inf   s    Srvvac)r   r   r   T)r$   r@   )r   r:   )rj   rl   r,   r-   r;   s        r   test_nan_infrm      s      * * * eQt<<<NCd;!eQt<<<NCd;!r   za,b)r   r   c                 4   d}|t          d |D                       z  }dg dfd}t          || ||dd           D ]Q}t          j        t	          |          t          |                    }t          j        ||d         k              sJ Rd S )N)r   g      ?r    g      ?r!   c              3      K   | ]}| V  d S r   r   ).0r   s     r   	<genexpr>ztest_points.<locals>.<genexpr>   s$      ''1QB''''''r      r   c                     z  dk    r!                     t                                 dz  d                             t          |                      dS )Nr   r   g        )appendsetaddfloat)r   rZ   interval_setsquadrature_pointss    r   r   ztest_points.<locals>.f   s[     $$))  '''
beAhh'''sr   r   )r"   r   r%   )tupler   r&   searchsortedsortedall)	rC   br"   r   pjrZ   ry   rz   s	         @@@r   test_pointsr      s     'F
e''''''''FME       Q1Va@@@@  ! !OF6NNE!HH55va1Q4i      ! !r   c                      t          j        d          5  t          d ddd           d d d            d S # 1 swxY w Y   d S )Nz`quadrature='trapz'`)matchc                     | S r   r   r4   s    r   <lambda>z(test_trapz_deprecation.<locals>.<lambda>   s    1 r   r   r   trapz)r   )pytestdeprecated_callr   r   r   r   test_trapz_deprecationr      s    		&<	=	=	= 8 8aw77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   8<<)r   numpyr&   numpy.testingr   scipy.integrater   multiprocessing.dummyr   markparametrizequadrature_paramsr/   r<   rG   rI   	fail_slowrQ   rS   rV   r\   rf   rm   r7   r   thread_unsafer   r   r   r   <module>r      sG        ) ) ) ) ) ) $ $ $ $ $ $ & & & & & & K++5557 7  9 9 9< .E .E .Eb3 3 3   r	7 	7 	7& & & r4y11QG,,	7 	7 -, 21 	7 $ $ $; ; ;   !RVrvqk#%6'26!2RVbfW4E!G H H! !H H!< 8 8 8 8 8r   