
    tKgV              	          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                  j                  dg d      Zed        Zed        Zd	 Zd
 Ze j                  j!                  d      d        Zd Ze j                  j!                  d      e j                  j                  dddg      e j                  j                  dddg      d                      Zed        Zd Zd Ze j                  j                  ddd ej.                  fej.                  d fej.                   ej.                  fej.                  ej.                   fg      d        Zd Zy)    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
                  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	|        y )N
   c                     | z  S N )xns    h/home/alanp/www/video.onchill/myenv/lib/python3.12/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#$$V
;AaC!a% Aq!:%:6:SU8Aq!8#88Syy~~cEk*V333Aq!M%
MfMSU8"1a -*./3).- &,	-S4
 	U8/ $r   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        	       y )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                 D    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!    vva!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<   .   s   , $$$5JGAq"&&3F3SRUU1W13vs3CDAq266'4V4SbeeVAXAC4DEAw4V4SRUU1W13vs3CDArvvq3F3SbeeVAXAC4DEAw9&9SRUUVS1ABArvvw9&9SbeeV!#fc2BCArvvrvv88SQQS-=>Aw:6:SQQS-=>Aq"&&FFvFSRUU1W13vs3CDA $D,EEBDDL266!9$EFa"&&"&&5QW)3GNCd;;!CQSs-CDr   c                      d } d}t        j                  g d      }t        | dd|f      \  }}t        ||dd       y )	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{RYYq\))r   r   r   gUUUUUU?gUUUUUU@r   r   )argsr   r   )r&   arrayr   r   )r   rC   r+   r,   r-   s        r   test_quad_vec_argsrG   `   s>    *	AHH]#E1aqd+HCCQT2r   c                     dd| dz  z   z  S r2   r   r4   s    r   
_lorenzianrI   j   s    AqD>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        y # 1 sw Y   y xY w)	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_poolrR   n   s    ABFF7BFFtQOHCCQT2	bT	$!bffWbff5txxXQRUU6	 
s    ACCc                 >    | | |z   z  t        j                  d      z  S r?   rA   rB   s     r   _func_with_argsrT   {   s    A;1%%r   
extra_argsr   )r   rM   r   r   c                    t         }t        j                  g d      }t        |dd| |      \  }}t	        ||dd       t        |      5 }t        |dd| |j                        \  }}t	        ||dd       d d d        y # 1 sw Y   y xY w)NrD   r   r   )rE   rM   r   r   )rT   r&   rF   r   r   r   rO   )rU   rM   r   r+   r,   r-   rP   s          r   test_quad_vec_pool_argsrW      sv     	AHH]#E1aj'BHCCQT2	g$Aq!*dhhGSU6 
s   -BB
c                 f    fd}dgt        |dddd|       }|d   j                  d   k(  sJ y )Nc                 (    dxx   dz  cc<   | dz  S )Nr   r   rJ   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
PCq6<<58###r   c                     d } t        | dddd      \  }}}|j                  du sJ |j                  dk(  sJ |j                  dk(  sJ |j                  dkD  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 y )
Nc                 ,    t        j                  d      S )N)r@   r   r   )r&   onesr4   s    r   r   ztest_info.<locals>.f   s    wwy!!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DNCd<<4;;!<<6666::>>>>"a'''>>DNN$8$8$;Q1#EEEE;;!5!5a!8 ::::r   c                      d } d }t        | ddd      \  }}}|j                  dk(  sJ t        |ddd      \  }}}|j                  dk(  sJ y )Nc                 "    t         j                  S r   )r&   nanr4   s    r   f_nanztest_nan_inf.<locals>.f_nan   s    vvr   c                 6    | dk  rt         j                  S d| z  S )Nr   r   )r&   r7   r4   s    r   f_infztest_nan_inf.<locals>.f_inf   s    Srvv)a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                    d}|t        d |D              z  }dg dfd}t        || ||dd       D ]G  }t        j                  t	        |      t        |            }t        j
                  ||d   k(        rGJ  y )N)r   g      ?r    g      ?r!   c              3   "   K   | ]  }|  	 y wr   r   ).0r   s     r   	<genexpr>ztest_points.<locals>.<genexpr>   s     '1QBs      r   c                     z  dk(  rj                  t                      dz  d   j                  t        |              y)Nr   r   g        )appendsetaddfloat)r   rZ   interval_setsquadrature_pointss    r   r   ztest_points.<locals>.f   sF     $$)  '
beAh'r   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@ OOF6NE!H5vva1Q4i    r   c                  z    t        j                  d      5  t        d ddd       d d d        y # 1 sw Y   y xY w)Nz`quadrature='trapz'`)matchc                     | S r   r   r4   s    r   <lambda>z(test_trapz_deprecation.<locals>.<lambda>   s    1r   r   r   trapz)r   )pytestdeprecated_callr   r   r   r   test_trapz_deprecationr      s+    			&<	=aw7 
>	=	=s   1:)r   numpyr&   numpy.testingr   scipy.integrater   multiprocessing.dummyr   markparametrizequadrature_paramsr/   r<   rG   rI   	fail_slowrR   rT   rW   r\   rf   rm   r7   r   r   r   r   r   <module>r      st     ) $ & KK++57  9 9< .E .Eb3 q	7 	7& q4y1QG,	7 - 2 	7 $ $; !RVVrvvqk#%66'266!2RVVbffW4E!G H!H!:8r   