Ë
    qwjñs  ã                   óš  — d dl Z d dlZd dlmZmZmZ d dlmZ d dl	m
Z d dlmc mZ d dlmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZ d dlm Z  d dl!m"Z"m#Z#m$Z$ d d	l%m&Z&m'Z' e jP                  jR                  Z) e"e«       G d
„ d«      «       Z* e"e«       G d„ d«      «       Z+ e"e«       G d„ d«      «       Z, e"e«       G d„ d«      «       Z- e"e«       G d„ d«      «       Z. e"e«       G d„ d«      «       Z/ e"e«       G d„ d«      «       Z0dddddœd„Z1 e"e«       G d„ d«      «       Z2 e"ejf                  «       G d„ d«      «       Z4y)é    N)Úassert_equalÚassert_almost_equalÚassert_allclose)Úgiven)	ÚrombÚnewton_cotesÚcumulative_trapezoidÚ	trapezoidÚquadÚsimpsonÚ
fixed_quadÚqmc_quadÚcumulative_simpson)Ú%_cumulative_simpson_unequal_intervals)ÚstatsÚspecialÚ	integrate)Úskip_xp_invalid_arg)Úmake_xp_test_caseÚxp_default_dtypeÚis_numpy)Úxp_assert_closeÚxp_assert_equalc                   ó   — e Zd Zd„ Zd„ Zy)ÚTestFixedQuadc                 ó`   ‡— dŠdd‰z  z  }t        ˆfd„dd‰¬«      \  }}t        ||d¬«       y )	Né   é   é   c                 ó   •— | d‰z  dz
  z  S )Nr   r   © )ÚxÚns    €új/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/scipy/integrate/tests/test_quadrature.pyÚ<lambda>z+TestFixedQuad.test_scalar.<locals>.<lambda>   s   ø€  a¨!¨A©#°©'¢ló    r   ©r#   çê-�™—q=©Úrtol)r   r   )ÚselfÚexpectedÚgotÚ_r#   s       @r$   Útest_scalarzTestFixedQuad.test_scalar   s6   ø€ ØˆØ�a˜‘c‘7ˆÜÓ2°A°q¸AÔ>‰ˆˆQä˜˜X¨EÖ2r&   c                 ó’   ‡— d}t        j                  dd|z  «      Šd‰dz   z  }t        ˆfd„dd|¬«      \  }}t        ||d¬«       y )	Nr   r   r   c                 ó   •— | ‰d d …d f   z  S ©Nr!   )r"   Úps    €r$   r%   z+TestFixedQuad.test_vector.<locals>.<lambda>#   s   ø€  a¨ª1¨d¨7©¢mr&   r   r'   r(   r)   )ÚnpÚaranger   r   )r+   r#   r,   r-   r.   r3   s        @r$   Útest_vectorzTestFixedQuad.test_vector   sJ   ø€ ØˆÜ�I‰I�a˜˜1™ÓˆØ�a˜!‘e‘9ˆÜÓ3°Q¸¸QÔ?‰ˆˆQÜ˜˜X¨EÖ2r&   N)Ú__name__Ú
__module__Ú__qualname__r/   r6   r!   r&   r$   r   r      s   „ ò3ó3r&   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestRombc                 ó‚   — t        t        |j                  d«      «      |j                  d|j                  ¬«      «       y )Ng      1@g      `@©Údtype)r   r   r5   ÚasarrayÚfloat64©r+   Úxps     r$   Ú	test_rombzTestRomb.test_romb)   s*   € Üœ˜RŸY™Y t›_Ó-¨r¯z©z¸%ÀrÇzÁz¨zÓ/RÕSr&   c                 óT  — t        j                  d«      }t        j                  d|z  «      }t        |j	                  |«      «      }t        d„ t        j                  |«      t        j                  |«      «      \  }}t        ||j	                  ||j                  ¬«      dd¬«       y )Né   çš™™™™™É?c                 óX   — t        j                  t        j                  d| z  «      «      S )NrF   )r4   ÚcosÚarray©r"   s    r$   r%   z,TestRomb.test_romb_gh_3731.<locals>.<lambda>1   s   € ¤R§V¡V¬B¯H©H°S¸±U«OÔ%<r&   r=   g:Œ0âŽyE>r   ©r*   Úatol)
r4   r5   rH   r   r?   r   ÚminÚmaxr   r@   )r+   rB   r"   ÚyÚvalr,   r.   s          r$   Útest_romb_gh_3731zTestRomb.test_romb_gh_3731,   sw   € ä�I‰I�fÓˆÜ�F‰F�3�q‘5‹MˆÜ�2—:‘:˜a“=Ó!ˆÜÑ<¼b¿f¹fÀQ»iÌÏÉÐPQËÓS‰ˆ�!Ü˜˜RŸZ™Z¨¸¿
¹
˜ZÓCÈ$ÐUVÖWr&   N)r7   r8   r9   rC   rQ   r!   r&   r$   r;   r;   '   s   „ òTóXr&   r;   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestNewtonCotesc                 óV  — d}t        |d«      \  }}t        ||t        j                  ddg«      z  «       t	        ||dz   dz  «       d}t        |d«      \  }}t	        ||t        j                  g d¢«      z  dz  «       t	        ||dz   d	z  «       d}t        |d«      \  }}t	        ||t        j                  g d
¢«      z  dz  «       t	        ||dz   dz  «       d}t        |d«      \  }}t	        ||t        j                  g d¢«      z  dz  «       t	        ||dz   dz  «       y)z5Test the first few degrees, for evenly spaced points.r   ç      à?é   ç      (@r   )ç      ð?ç      @rX   ç      @é   g     €¦@)rX   ç      @r\   rX   ç       @g     P¹@r   )ç      @ç      @@rW   r_   r^   g     €V@é   g     ˆ=AN)r   r   r4   rI   r   )r+   r#   ÚwtsÚerrcoffs       r$   Útest_newton_cotesz!TestNewtonCotes.test_newton_cotes7   s  € àˆÜ# A qÓ)‰ˆˆWÜ�S˜!œBŸH™H c¨3 ZÓ0Ñ0Ô1Ü˜G a¨¡d U¨4¡ZÔ0àˆÜ# A qÓ)‰ˆˆWÜ˜C ¤2§8¡8ªOÓ#<Ñ!<¸SÑ!@ÔAÜ˜G a¨¡d U¨6¡\Ô2àˆÜ# A qÓ)‰ˆˆWÜ˜C ¤2§8¡8Ò,@Ó#AÑ!AÀ#Ñ!EÔFÜ˜G a¨¡d U¨6¡\Ô2àˆÜ# A qÓ)‰ˆˆWÜ˜C ¤2§8¡8Ò,HÓ#IÑ!IÈ$Ñ!NÔOÜ˜G a¨¡d U¨9¡_Õ5r&   c                 ó<  — t        j                  g d¢«      }|dz  }t        |«      \  }}d}t        j                  ||«      }t	        ||«       t        j                  g d¢«      }|dz  }t        |«      \  }}d}t        j                  ||«      }t	        ||«       y)z9Test newton_cotes with points that are not evenly spaced.)ç        g      ø?ç       @r   gUUUUUU@)re   gffffffö?gÍÌÌÌÌÌ @r\   ç      "@N)r4   rI   r   Údotr   )r+   r"   rO   ra   rb   Úexact_integralÚnumeric_integrals          r$   Útest_newton_cotes2z"TestNewtonCotes.test_newton_cotes2M   s�   € ô �H‰H’_Ó%ˆØˆq‰DˆÜ# A“‰ˆˆWØˆÜŸ6™6 # q›>ÐÜÐ,¨nÔ=ä�H‰HÒ)Ó*ˆØˆq‰DˆÜ# A“‰ˆˆWØˆÜŸ6™6 # q›>ÐÜÐ,¨nÕ=r&   N)r7   r8   r9   rc   rk   r!   r&   r$   rS   rS   5   s   „ ò6ó,>r&   rS   c                   óZ   — e Zd Zd„ Zej
                  j                  dddg«      d„ «       Zy)ÚTestSimpsonc           
      óÜ	  — t        j                  d«      }t        t        |«      d«       t        t        |d¬«      d«       t        t        |t        j                  ddd«      ¬«      d	«       t        j                  d
dd«      }d„ }t        t         ||«      |¬«      d«       t        j                  d
dd«      }t        t         ||«      d¬«      d«       t        j                  d«      j                  dd«      }t        j                  d«      j                  ddd«      } ||«      }t        d«      D ]§  }t        |||¬«      }t        j                  |dg¬«      }|D ]z  }t        |j                  «      }	|	j                  |t        d «      «       |t        |	«         d   dz  dz  |t        |	«         d   dz  dz  z
  }
t        ||j                     |
«       Œ| Œ© t        j                  d«      j                  dd«      } ||«      }t        ||d¬«      }d|d d …d
f   |d d …df   z   z  |d d …d
f   |d d …df   z
  z  }
t        ||
«       t        j                  d«      j                  dd«      }t        j                  d«      j                  ddd«      } ||«      }t        d«      D ]§  }t        |||¬«      }t        j                  |dg¬«      }|D ]z  }t        |j                  «      }	|	j                  |t        d «      «       |t        |	«         d   dz  dz  |t        |	«         d   dz  dz  z
  }
t        ||j                     |
«       Œ| Œ© t        j                  dg«      }t        j                  |d«      }t        t        ||d¬«      d«       t        t        ||d¬«      d«       t        j                  g d¢«      }t        j                  |d«      }t        t        ||d¬«      d«       t        t        ||d¬«      d«       t        j                  g d¢g d¢g d¢g«      }t        j                  |d«      }g d¢}d gdz  }t        t        ||d¬«      |«       t        t        ||d¬«      |«       t        j                  g d¢g d¢g d!¢g«      }t        j                  |d«      }g d"¢}g d#¢}t        t        ||d¬«      |«       t        t        ||d¬«      |«       y )$NrE   é€   rU   ©Údxé@   r   r   rJ   é    r   c                 ó   — | dz  S )Nr   r!   rJ   s    r$   Úfz#TestSimpson.test_simpson.<locals>.fi   s   € Ø�a‘4ˆKr&   ç      5@r`   rf   ér   é   ç      P@rV   ©r"   ÚaxisÚmulti_index)Úflagséÿÿÿÿé   r   é   r[   é}   re   )rV   rV   rV   rV   )r   r   r   r   )re   re   re   re   ç«ªªªªJe@)r   r   rx   rs   )re   g      a@g      ‘@g      Á@)r‚   r‚   gªªªª*UÅ@)r4   r5   r   r   Úlinspacer   ÚreshapeÚrangeÚnditerÚlistr|   ÚinsertÚsliceÚtuplerI   Úpower)r+   rO   r"   ru   ÚaÚiÚrÚitr.   ÚidxÚintegralÚ	zero_axisÚdefault_axiss                r$   Útest_simpsonzTestSimpson.test_simpsona   s  € Ü�I‰I�b‹MˆÜ”W˜Q“Z Ô%Ü”W˜Q 3Ô'¨Ô,Ü”W˜Q¤"§+¡+¨a°°BÓ"7Ô8¸"Ô=ô �K‰K˜˜1˜aÓ ˆò	ô 	œ¡ !£¨Ô*¨DÔ1ô �K‰K˜˜1˜aÓ ˆÜœ¡ !£¨Ô-¨sÔ3ô �I‰I�b‹M×!Ñ! ! QÓ'ˆÜ�I‰I�c‹N×"Ñ" 1 a¨Ó+ˆÙˆa‹DˆÜ�q–ˆAÜ˜˜Q QÔ'ˆAÜ—‘˜1 ] OÔ4ˆBÛ�Ü˜2Ÿ>™>Ó*�Ø—
‘
˜1œe D›kÔ*ØœU 3›Z™=¨Ñ,¨aÑ/°!Ñ3°a¼¸c»
±mÀAÑ6FÈÑ6IÈAÑ6MÑM�Ü  "§.¡.Ñ 1°8Õ<ñ	 ð ô �I‰I�b‹M×!Ñ! ! QÓ'ˆÙˆa‹DˆÜ�A˜ Ô$ˆà˜!šA˜q˜D™' A¢a¨ d¡GÑ+Ñ,°²!°Q°$±¸!ºA¸q¸D¹'Ñ0AÑBˆÜ˜˜8Ô$ô �I‰I�b‹M×!Ñ! ! QÓ'ˆÜ�I‰I�c‹N×"Ñ" 1 a¨Ó+ˆÙˆa‹DˆÜ�q–ˆAÜ˜˜Q QÔ'ˆAÜ—‘˜1 ] OÔ4ˆBÛ�Ü˜2Ÿ>™>Ó*�Ø—
‘
˜1œe D›kÔ*ØœU 3›Z™=¨Ñ,¨aÑ/°!Ñ3°a¼¸c»
±mÀAÑ6FÈÑ6IÈAÑ6MÑM�Ü  "§.¡.Ñ 1°8Õ<ñ	 ð ô �H‰H�a�S‹MˆÜ�H‰H�Q˜‹NˆÜœ  Q¨QÔ/°Ô5Üœ  Q¨RÔ0°#Ô6ä�H‰H’\Ó"ˆÜ�H‰H�Q˜‹NˆÜœ  Q¨QÔ/°Ô5Üœ  Q¨RÔ0°#Ô6ä�H‰H’l¢L²,Ð?Ó@ˆÜ�H‰H�Q˜‹NˆÚ(ˆ	Ø!�{ Q‘ˆÜœ  Q¨QÔ/°Ô;äœ  Q¨RÔ0°,Ô?ä�H‰H’l¢L².ÐAÓBˆÜ�H‰H�Q˜‹NˆÚ0ˆ	Ú>ˆÜœ  Q¨QÔ/°Ô;Üœ  Q¨RÔ0°,Õ?r&   ÚdroplastFTc                 óæ   — t        j                  g d¢g d¢g«      }|r|d d …d d…f   }t        |d¬«      }t        t        j                  |t         j                  ¬«      d¬«      }t	        ||«       y )N)r   r   r   r   r   r   éüÿÿÿr[   )r   r   r   r—   é
   é   éþÿÿÿr˜   r~   ©r{   r=   )r4   rI   r   r@   r   )r+   r•   rO   Úresultr,   s        r$   Útest_simpson_2d_integer_no_xz(TestSimpson.test_simpson_2d_integer_no_x¯   sb   € ô �H‰HÒ/Ú3ð5ó 6ˆáØ’!�S�b�S�&‘	ˆAÜ˜ Ô$ˆÜœ2Ÿ8™8 A¬R¯Z©ZÔ8¸rÔBˆÜ�V˜XÕ&r&   N)r7   r8   r9   r”   ÚpytestÚmarkÚparametrizer�   r!   r&   r$   rm   rm   _   s3   „ òK@ð\ ‡[�[×Ñ˜Z¨%°¨Ó7ñ	'ó 8ñ	'r&   rm   c                   ór   — e Zd Zd„ Zd„ Zd„ Zd„ Zej                  j                  dddg«      d„ «       Z
d	„ Zy
)ÚTestCumulative_trapezoidc                 óÄ   — |j                  ddd¬«      }|}t        ||d¬«      }|j                  g d¢«      }t        ||«       t        ||d ¬«      }t        ||dd  «       y )	Nrš   r   r[   ©Únumr   ©Úinitial)re   ç      ø¿ç       Àr¨   re   r   ©rƒ   r	   r?   r   )r+   rB   r"   rO   Úy_intÚ
y_expecteds         r$   Útest_1dz TestCumulative_trapezoid.test_1d¾   s`   € Ø�K‰K˜˜A 1ˆKÓ%ˆØˆÜ$ Q¨°1Ô5ˆØ—Z‘ZÒ 9Ó:ˆ
Ü˜˜zÔ*ä$ Q¨°4Ô8ˆÜ˜˜z¨!¨"˜~Õ.r&   c                 ó”  — |j                  |j                  dt        |«      ¬«      d«      }|}t        ||d¬«      }|j	                  g d¢g d¢gg d¢g d	¢gg d
¢g d¢gg«      }t        ||«       g d¢}t        g d¢|«      D ]E  \  }}t        ||d|¬«      }|j                  dk(  sJ ‚t        ||d |¬«      }|j                  |k(  rŒEJ ‚ y )Né   r=   ©rV   r   r   r   r¦   )re   rU   rf   ç      @)re   r±   ç      $@ç     €0@)re   ç      !@ç      2@g     €<@)re   ç      )@g      :@ç     @D@)re   r³   g      A@g     @J@)re   ç     €4@g      E@g      P@))r   r   r   )rV   r   r   )rV   r   rV   ©r   r   r   )r§   r{   )r„   r5   r   r	   r?   r   ÚzipÚshape)	r+   rB   r"   rO   r«   r¬   Úshapesr{   r»   s	            r$   Útest_y_nd_x_ndz'TestCumulative_trapezoid.test_y_nd_x_ndÈ   sØ   € Ø�J‰J�r—y‘y Ô2BÀ2Ó2F�yÓGÈÓSˆØˆÜ$ Q¨°1Ô5ˆØ—Z‘ZÒ"4Ú"6ð"8â"6Ú"7ð"9â"7Ú"7ð"9ð	!:ó ;ˆ
ô 	˜˜zÔ*ò 3ˆÜšy¨&Ö1‰KˆD�%Ü(¨¨A°q¸tÔDˆEØ—;‘; )Ò+Ð+Ð+Ü(¨¨A°tÀ$ÔGˆEØ—;‘; %Ó'Ð'Ð'ñ	 2r&   c           	      óÞ  — |j                  |j                  dt        |«      ¬«      d«      }|j                  dt        |«      ¬«      dz  }|j                  g d¢g d¢gg d¢g d	¢gg«      |j                  g d
¢gg d¢gg d¢gg«      |j                  g d¢g d¢gg d¢g d¢gg d¢g d¢gg«      f}t	        g d¢|«      D ]0  \  }}t        ||d |j                  |    |d ¬«      }t        ||«       Œ2 y )Nr¯   r=   r°   r   r   )rY   ç      @rZ   r^   )r]   rg   r²   ç      &@)g      D@g      F@g      H@g      J@)g      L@g      N@ry   g      Q@)rf   r\   rY   r¿   )r²   rÀ   rW   ç      *@)rµ   g      3@ç      4@rv   )rU   r¿   g     €1@)r±   rv   g     ÀJ@)r´   g     €B@g     `V@)r¶   g     €J@g     `_@)r³   g     @Q@g     0d@)r¸   g     @U@g     °h@r¹   )r"   r{   r§   )r„   r5   r   r?   rº   r	   r»   r   )r+   rB   rO   r"   Úys_expectedr{   r¬   r«   s           r$   Útest_y_nd_x_1dz'TestCumulative_trapezoid.test_y_nd_x_1dÝ   s  € Ø�J‰J�r—y‘y Ô2BÀ2Ó2F�yÓGÈÓSˆØ�I‰I�aÔ/°Ó3ˆIÓ4°aÑ7ˆð �J‰JÒ)Ú+ð-â-Ú-ð/ð0ó 1ð �J‰JÒ)Ð*Ú-Ð.Ú-Ð.ð0ó 1ð �J‰JšÚ)ð+â)Ú+ð-â+Ú+ð-ð	.ó /ð0ˆô !$¢I¨{Ö ;ÑˆD�*Ü(¨¨a°°·±¸±Ð.?ÀdØ15ô7ˆEä˜E :Õ.ñ !<r&   c                 óŠ  — |j                  ddd¬«      }t        |«      }|j                  g d¢«      }t        ||«       t        |d¬«      }|j                  g d¢«      }t        ||«       t        |d	¬
«      }|j                  g d¢«      }t        ||«       t        |d	d¬«      }|j                  g d¢«      }t        ||«       y )Nrš   r   r[   r¤   )r¨   r©   r¨   re   r   r¦   )r   r¨   r©   r¨   re   rV   rp   )ç      Àç      ÀrÆ   re   )rq   r§   )r   rÆ   rÇ   rÆ   re   rª   )r+   rB   rO   r«   r¬   s        r$   Útest_x_nonez$TestCumulative_trapezoid.test_x_noneõ   sª   € Ø�K‰K˜˜A 1ˆKÓ%ˆä$ QÓ'ˆØ—Z‘ZÒ 5Ó6ˆ
Ü˜˜zÔ*ä$ Q°Ô2ˆØ—Z‘ZÒ 8Ó9ˆ
Ü˜˜zÔ*ä$ Q¨1Ô-ˆØ—Z‘ZÒ 5Ó6ˆ
Ü˜˜zÔ*ä$ Q¨1°aÔ8ˆØ—Z‘ZÒ 8Ó9ˆ
Ü˜˜zÕ*r&   r§   r   rU   c                 ó¦   — |j                  ddd¬«      }t        j                  t        d¬«      5  t	        ||¬«       ddd«       y# 1 sw Y   yxY w)z4If initial is not None or 0, a ValueError is raised.r   r˜   r¤   z	`initial`©Úmatchr¦   N)rƒ   rž   ÚraisesÚ
ValueErrorr	   )r+   r§   rB   rO   s       r$   Útest_initial_errorz+TestCumulative_trapezoid.test_initial_error  s<   € ð
 �K‰K˜˜2 2ˆKÓ&ˆÜ�]‰]œ:¨[Ö9Ü  ¨GÕ4÷ :×9Ñ9ús   °AÁAc                 óš   — t        j                  t        d¬«      5  t        |j	                  g «      ¬«       d d d «       y # 1 sw Y   y xY w)NúAt least one point is requiredrÊ   ©rO   )rž   rÌ   rÍ   r	   r?   rA   s     r$   Útest_zero_len_yz(TestCumulative_trapezoid.test_zero_len_y  s.   € Ü�]‰]œ:Ð-MÖNÜ  2§:¡:¨b£>Õ2÷ O×NÑNús   œAÁA
N)r7   r8   r9   r­   r½   rÄ   rÈ   rž   rŸ   r    rÎ   rÒ   r!   r&   r$   r¢   r¢   ¼   sG   „ ò/ò(ò*/ò0+ð& ‡[�[×ÑØ�A�s�8óñ5óð5ó3r&   r¢   c                   ó4   — e Zd Zd„ Zd„ Zd„ Zed„ «       Zd„ Zy)ÚTestTrapezoidc           	      ó   — |j                  ddd«      }t        |j                  d|dz  z  «      |j                  d|j	                  |j
                  «      z  «      z  d¬«      }t        ||j	                  d«      «       y )Néöÿÿÿr˜   gš™™™™™¹?ç      à¿r   rp   rX   )r5   r
   ÚexpÚsqrtr?   Úpir   )r+   rB   r"   rŽ   s       r$   Útest_simplezTestTrapezoid.test_simple  sd   € Ø�I‰I�c˜2˜rÓ"ˆÜ�b—f‘f˜S 1¨¡6™\Ó*¨R¯W©W°Q¸¿¹ÀBÇEÁEÓ9JÑ5JÓ-KÑKÐPSÔTˆä˜˜2Ÿ:™: c›?Õ+r&   c                 ó  — |j                  ddd«      }|j                  ddd«      }|j                  ddd«      }|j                  |«      |d   |d   z
  z  }|dxx   dz  cc<   |dxx   dz  cc<   |j                  |«      |d   |d   z
  z  }|dxx   dz  cc<   |dxx   dz  cc<   |j                  |«      |d   |d   z
  z  }|dxx   dz  cc<   |dxx   dz  cc<   |d d …d d f   |d d d …d f   z   |d d d d …f   z   }|j                  ||d d …d d f   z  d¬«      }	|j                  ||d d d …d f   z  d¬«      }
|j                  ||d d d d …f   z  d¬«      }t        ||d d …d d f   d¬	«      }t	        ||	«       t        ||d d d …d f   d¬	«      }t	        ||
«       t        ||d d d d …f   d¬	«      }t	        ||«       t        ||d¬	«      }t	        ||	«       t        ||d¬	«      }t	        ||
«       t        ||d¬	«      }t	        ||«       y )
Nr   r   rV   r   r   é   r~   r›   rz   )rƒ   Ú	ones_likeÚsumr
   r   )r+   rB   r"   rO   ÚzÚwxÚwyÚwzÚqÚqxÚqyÚqzrŽ   s                r$   Ú	test_ndimzTestTrapezoid.test_ndim  s'  € Ø�K‰K˜˜1˜aÓ ˆØ�K‰K˜˜1˜aÓ ˆØ�K‰K˜˜1˜bÓ!ˆà�\‰\˜!‹_  !¡ q¨¡t¡Ñ,ˆØ
ˆ1‹�‰
‹Ø
ˆ2‹�!‰‹Ø�\‰\˜!‹_  !¡ q¨¡t¡Ñ,ˆØ
ˆ1‹�‰
‹Ø
ˆ2‹�!‰‹Ø�\‰\˜!‹_  !¡ q¨¡t¡Ñ,ˆØ
ˆ1‹�‰
‹Ø
ˆ2‹�!‰‹àŠa��tˆmÑ˜q ¢a¨ ™Ñ.°°4¸ºa°<±Ñ@ˆà�V‰V�A˜š1˜d D˜=Ñ)Ñ)°ˆVÓ2ˆØ�V‰V�A˜˜4¢ D˜=Ñ)Ñ)°ˆVÓ2ˆØ�V‰V�A˜˜4 ¢q˜=Ñ)Ñ)°ˆVÓ2ˆô �a˜1šQ  d˜]Ñ+°!Ô4ˆÜ˜˜2ÔÜ�a˜1˜T¢! T˜\™?°Ô3ˆÜ˜˜2ÔÜ�a˜1˜T 4ª˜\™?°Ô3ˆÜ˜˜2Ôô �a˜1 1Ô%ˆÜ˜˜2ÔÜ�a˜1 1Ô%ˆÜ˜˜2ÔÜ�a˜1 1Ô%ˆÜ˜˜2Õr&   c           
      óè  — |j                  |j                  ddd«      d«      }|j                  |j                  ddd«      d«      }|j                  ddd«      }t        t        ||d¬«      |«       t        t        ||j	                  g d	¢«      d¬«      |«       t        t        ||j	                  g d	¢«      d d …d f   d¬«      |«       t        j                  t        «      5  t        ||j	                  g d	¢«      d d d …f   d¬«       d d d «       |j	                  g d
¢«      }t        t        ||d¬«      |«       t        t        ||j                  ddd«      d¬«      |«       y # 1 sw Y   Œ^xY w)Nr   é   é   )rV   r˜   éÈ   i|  r˜   rz   )r   r²   rÂ   )r·   g     P`@g     �k@r   é	   )r„   rƒ   r   r
   r?   rž   rÌ   Ú	Exception)r+   rB   r"   rO   Úout0Úout1s         r$   Útest_gh21908zTestTrapezoid.test_gh21908C  s(  € à�J‰J�r—{‘{ 1 b¨"Ó-¨wÓ7ˆØ�J‰J�r—{‘{ 1 b¨"Ó-¨wÓ7ˆà�{‰{˜3  RÓ(ˆÜœ	 ! q¨qÔ1°4Ô8Üœ	 ! r§z¡z²-Ó'@ÀqÔIÈ4ÔPäÜ�a˜2Ÿ:™:¢mÓ4²Q¸°WÑ=ÀAÔFØô	
ô �]‰]œ9Õ%ä�a˜2Ÿ:™:¢mÓ4°Tº1°WÑ=ÀAÕF÷ &ð �z‰zÒ/Ó0ˆÜœ	 ! q¨qÔ1°4Ô8ÜÜ�a˜2Ÿ;™; q¨!¨RÓ0°qÔ9Øõ	
÷ &Ð%ús   Ã$'E(Å(E1c                 ó�  — t        j                  d«      }||z  }|dk(  }t         j                  j                  ||¬«      }d}t	        t        ||«      |«       t         j                  j                  ||¬«      }t	        t        ||«      |«       t         j                  j                  ||¬«      }t	        t        ||«      |«       y )Nr[   r   )ÚmaskrÁ   )r4   r5   ÚmarI   r   r
   )r+   rB   r"   rO   ró   ÚymrŽ   Úxms           r$   Útest_maskedzTestTrapezoid.test_masked[  s�   € ô �I‰I�a‹LˆØ�‰EˆØ�A‰vˆÜ�U‰U�[‰[˜ ˆ[Ó&ˆØˆÜœ	 " aÓ(¨!Ô,ä�U‰U�[‰[˜ ˆ[Ó&ˆÜœ	 " bÓ)¨1Ô-ä�U‰U�[‰[˜ ˆ[Ó&ˆÜœ	 ! RÓ(¨!Õ,r&   c                 ó6  — t        t        d«      «      }|D �cg c]  }||z  ‘Œ	 }}t        j                  |t        j                  ¬«      }t        j                  |t        j                  ¬«      }t        ||«      }t        ||«      }t        ||«       y c c}w )Nr[   r=   )r‡   r…   r4   r?   r@   r
   r   )r+   r"   ÚtrO   ÚxarrÚyarrÚresÚresarrs           r$   Útest_array_likezTestTrapezoid.test_array_likel  su   € Ü”�q“‹NˆÙÓ™A�qˆQ�‹U˜AˆÐÜ�z‰z˜!¤2§:¡:Ô.ˆÜ�z‰z˜!¤2§:¡:Ô.ˆÜ˜˜1‹oˆÜ˜4 Ó&ˆÜ˜˜VÕ$ùò s   ™BN)	r7   r8   r9   rÛ   rè   rñ   r   r÷   rþ   r!   r&   r$   rÔ   rÔ     s+   „ ò,ò#òJ
ð0 ñ-ó ð-ó %r&   rÔ   c                   óN  — e Zd Zd„ Zdd„Zej                  j                  dddg«      ej                  j                  ddd	g«      d
„ «       «       Zej                  j                  dddgddgddgddgg«      d„ «       Z	ej                  j                  dddg«      d„ «       Z
d„ Zy)ÚTestQMCQuadc           	      óD  ‡— ‰j                  ddg«      }‰j                  ddg«      }d}t        j                  t        |¬«      5  t	        d||«       d d d «       d}t        j                  t
        |¬«      5  t	        d„ ||«       d d d «       ˆfd„}d	}t        ‰«      r2t        j                  t        |¬«      5  t	        |||«       d d d «       n1t        j                  t
        |¬«      5  t	        |||«       d d d «       d
}t        j                  t        |¬«      5  t	        d„ ||d¬«       d d d «       d}t        j                  t        |¬«      5  t	        d„ ||d¬«       d d d «       d}t        j                  t        |¬«      5  t	        d„ ||d¬«       d d d «       d}t        j                  t
        |¬«      5  t	        d„ ||t        j                  j                  d«      ¬«       d d d «       d}t        j                  t        |¬«      5  t	        d„ ||d¬«       d d d «       y # 1 sw Y   �ŒßxY w# 1 sw Y   �Œ¸xY w# 1 sw Y   �ŒPxY w# 1 sw Y   �Œ]xY w# 1 sw Y   �Œ4xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒáxY w# 1 sw Y   ŒšxY w# 1 sw Y   y xY w)Nre   rX   z`func` must be callable.rÊ   za duckz/`func` must evaluate the integrand at points...c                   ó   — y©Nr   r!   r!   r&   r$   r%   z3TestQMCQuad.test_input_validation.<locals>.<lambda>‚  s   € ˜Qr&   c                 óH   •— | j                   dk(  sJ ‚‰j                  | «      S r  )Úndimrß   ©r"   rB   s    €r$   Úfuncz/TestQMCQuad.test_input_validation.<locals>.func„  s!   ø€ Ø—6‘6˜Q’;Ð�;Ø—6‘6˜!“9Ðr&   z8Exception encountered when attempting vectorized call...z`n_points` must be an integer.c                  ó   — yr  r!   rJ   s    r$   r%   z3TestQMCQuad.test_input_validation.<locals>.<lambda>‘  ó   € ˜qr&   g     �@)Ún_pointsz!`n_estimates` must be an integer.c                  ó   — yr  r!   rJ   s    r$   r%   z3TestQMCQuad.test_input_validation.<locals>.<lambda>•  r	  r&   r´   )Ún_estimatesz8`qrng` must be an instance of scipy.stats.qmc.QMCEngine.c                  ó   — yr  r!   rJ   s    r$   r%   z3TestQMCQuad.test_input_validation.<locals>.<lambda>™  r	  r&   )Úqrngz8`qrng` must be initialized with dimensionality equal to c                  ó   — yr  r!   rJ   s    r$   r%   z3TestQMCQuad.test_input_validation.<locals>.<lambda>�  r	  r&   r   z,`log` must be boolean \(`True` or `False`\).c                  ó   — yr  r!   rJ   s    r$   r%   z3TestQMCQuad.test_input_validation.<locals>.<lambda>¡  r	  r&   r˜   ©Úlog)r?   rž   rÌ   Ú	TypeErrorr   rÍ   r   ÚwarnsÚUserWarningr   ÚqmcÚSobol)r+   rB   rŒ   ÚbÚmessager  s    `    r$   Útest_input_validationz!TestQMCQuad.test_input_validationx  sö  ø€ Ø�J‰J˜˜B�xÓ ˆØ�J‰J˜˜B�xÓ ˆà,ˆÜ�]‰]œ9¨GÖ4Ü�X˜q !Ô$÷ 5ð DˆÜ�]‰]œ:¨WÖ5Ü‘Y  1Ô%÷ 6ô	ð MˆÜ�BŒ<Ü—‘œk°Ö9Ü˜˜q !Ô$÷ :Ð9ô —‘œz°Ö9Ü˜˜q !Ô$÷ :ð 3ˆÜ�]‰]œ9¨GÖ4Ü‘[ ! Q°Õ8÷ 5ð 6ˆÜ�]‰]œ9¨GÖ4Ü‘[ ! Q°CÕ8÷ 5ð MˆÜ�]‰]œ9¨GÖ4Ü‘[ ! Q¨XÕ6÷ 5ð MˆÜ�]‰]œ:¨WÖ5Ü‘[ ! Q¬U¯Y©Y¯_©_¸QÓ-?Õ@÷ 6ð BˆÜ�]‰]œ9¨GÖ4Ü‘[ ! Q¨BÕ/÷ 5Ð4÷G 5Ñ4ú÷ 6Ñ5ú÷ :Ñ9ú÷ :Ñ9ú÷ 5Ñ4ú÷ 5Ñ4ú÷ 5Ð4ú÷ 6Ð5ú÷ 5Ð4úsl   ÁH0Á8H=Â<I
Ã.IÄ!I$ÅI1ÆI>Ç.J
ÈJÈ0H:È=IÉ
IÉI!É$I.É1I;É>JÊ
JÊJé   r   Nc           	      óÖ  ‡‡— t        ‰«      }|€t        j                  d«      }d}t        j                  |«      }t        j                  |«      }ˆfd„Št        j
                  j                  d«      }	t        j                  j                  ||	¬«      }
t        j                  |«      }t        j                  |«      |z  }t        ‰‰j                  ||¬«      ‰j                  ||¬«      |||
¬«      }t        j                  j                  ||||¬«      }t        j                  |dz
  d	«      |j                   z  }t#        |j$                  ‰j                  ||¬«      |¬
«       t        j&                  |«      |j$                  z  dkD  sJ ‚t        j
                  j                  d«      }	t        j                  j                  ||	¬«      }
t        ˆˆfd„‰j                  ||¬«      ‰j                  ||¬«      ||d|
¬«      }|j$                  j(                  ‰j*                  k(  rdnd}t#        ‰j-                  ‰j/                  |j$                  «      «      |j$                  |¬«       ‰j1                  |j$                  dz   «      t        j&                  |«      dk  r‰j2                  ndk(  sJ ‚t#        ‰j/                  |j                   «      |j                   ||dz  ¬«       y )Nr   c                 ót   •— ‰j                  d‰j                  | | z  d¬«      z  «      d‰j                  z  z  S )Nr×   r   r›   r   )rØ   rß   rÚ   r  s    €r$   r  z$TestQMCQuad.basic_test.<locals>.func«  s5   ø€ à—6‘6˜$ §¡¨¨!©°! Ó!4Ñ4Ó5¸¸R¿U¹U¹ÑCÐCr&   l   é^^@E9®? )Úseedr=   )r
  r  r  )Úlower_limitr   g×£p=
×ï?©rL   r   c                  ó,   •— ‰j                   ‰| Ž «      S r2   r  )Úargsr  rB   s    €€r$   r%   z(TestQMCQuad.basic_test.<locals>.<lambda>¼  s   ø€ ¨¯©©t°T¨{Ô(;r&   T)r
  r  r  r  ç›+¡†›„=g�íµ ÷ÆÀ>r)   y                éd   rK   )r   r4   ÚonesÚzerosÚeyeÚrandomÚdefault_rngr   r  r  r   r?   Úmultivariate_normalÚcdfr   ÚstdtritÚstandard_errorr   r‘   Úprodr>   r@   ÚrealrØ   ÚimagrÚ   )r+   r
  r  ÚsignsrB   r>   r  ÚmeanÚcovÚrngr  rŒ   r  rü   ÚrefrL   Úlogresr*   r  s       `             @r$   Ú
basic_testzTestQMCQuad.basic_test£  sB  ù€ Ü  Ó$ˆØˆ=Ü—G‘G˜A“JˆEØˆÜ�x‰x˜‹~ˆÜ�f‰f�T‹lˆô	Dô �i‰i×#Ñ#Ð$7Ó8ˆÜ�y‰y�‰˜t¨#ˆÓ.ˆÜ�H‰H�T‹NˆÜ�G‰G�D‹M˜EÑ!ˆÜ�t˜RŸZ™Z¨°˜ZÓ7¸¿¹ÀAÈU¸Ó9SØ (°kÈôNˆä×'Ñ'×+Ñ+¨A¨t°SÀaÐ+ÓHˆÜ�‰˜{¨1™}¨eÓ4°s×7IÑ7IÑIˆÜ˜Ÿ™ b§j¡j°¸E jÓ&BÈÕNÜ�w‰w�u‹~˜cŸl™lÑ*¨QÒ.Ð.Ð.ä�i‰i×#Ñ#Ð$7Ó8ˆÜ�y‰y�‰˜t¨#ˆÓ.ˆÜÔ;ØŸ*™* Q¨e˜*Ó4°b·j±jÀÈ%°jÓ6PØ#+¸Ø"¨ô/ˆð Ÿ™×*Ñ*¨b¯j©jÒ8‰u¸dˆÜ˜Ÿ™ §¡ v§¡Ó 7Ó8¸#¿,¹,ÈTÕRØ�w‰w�v—‘¨Ñ+Ó,¼"¿'¹'À%».È1Ò:L°·²ÐRSÒTÐTÐTÜ˜Ÿ™˜v×4Ñ4Ó5Ø×*Ñ*°¸DÀ¹Hö	Fr&   r
  i   r  rx   c                 ó,   — | j                  |||¬«       y )N)rB   ©r7  )r+   r
  r  rB   s       r$   Ú
test_basiczTestQMCQuad.test_basicÆ  s   € ð 	�‰˜ +°"ˆÕ5r&   r1  rX   g      ð¿c                 ó*   — | j                  ||¬«       y )N)r1  rB   r9  )r+   r1  rB   s      r$   Ú	test_signzTestQMCQuad.test_signË  s   € à�‰˜e¨ˆÕ+r&   r  FTc           	      ó.  — d}t        j                  t        |¬«      5  t        d„ |j	                  ddg«      |j	                  ddg«      |¬«      }d d d «       j
                  |r|j                   ndk(  sJ ‚|j                  dk(  sJ ‚y # 1 sw Y   Œ;xY w)Nz-A lower limit was equal to an upper limit, sorÊ   c                  ó   — yr  r!   rJ   s    r$   r%   z'TestQMCQuad.test_zero.<locals>.<lambda>Ó  s   €  Qr&   r   r   r  )rž   r  r  r   r?   r‘   Úinfr-  )r+   r  rB   r  rü   s        r$   Ú	test_zerozTestQMCQuad.test_zeroÏ  s~   € àAˆÜ�\‰\œ+¨WÖ5Ü™;¨¯
©
°A°q°6Ó(:¸B¿J¹JÈÈ1ÀvÓ<NÐTWÔXˆC÷ 6à�|‰|©3 §¡¡°AÒ6Ð6Ð6Ø×!Ñ! QÒ&Ð&Ñ&÷ 6Ð5ús   ž3BÂBc                 óØ   — d„ }t        |dd«      }t        j                  j                  dd¬«      t        j                  j                  dd¬«      z
  }t	        |j
                  |d«       y )Nc                 óD   — t         j                  j                  | d¬«      S )Nr   ©Úscale)r   ÚnormÚpdfrJ   s    r$   r  z-TestQMCQuad.test_flexible_input.<locals>.funcÚ  s   € Ü—:‘:—>‘> !¨1�>Ó-Ð-r&   r   r   r   rC  g{®Gáz„?)r   r   rE  r+  r   r‘   )r+   r  rü   r5  s       r$   Útest_flexible_inputzTestQMCQuad.test_flexible_input×  sS   € ò	.ô �t˜Q Ó"ˆÜ�j‰j�n‰n˜Q aˆnÓ(¬5¯:©:¯>©>¸!À1¨>Ó+EÑEˆÜ˜Ÿ™ c¨4Õ0r&   )r  r   NN)r7   r8   r9   r  r7  rž   rŸ   r    r:  r<  r@  rG  r!   r&   r$   r   r   v  sÂ   „ ò)0óV!FðF ‡[�[×Ñ˜Z¨$°¨Ó7Ø‡[�[×Ñ˜]¨Q°¨GÓ4ñ6ó 5ó 8ð6ð ‡[�[×Ñ˜W¨¨B x°#°s°¸cÀ2¸YÈÈSÈ	Ð&RÓSñ,ó Tð,ð ‡[�[×Ñ˜U U¨D MÓ2ñ'ó 3ð'ó1r&   r   r~   ©r"   rq   r§   r{   c                ót  ‡	— | j                   |   dk  r%|€t        | |||d ¬«      S |t        | |||d¬«      z   S t        j                  | |d«      } t        j                  |«      dkD  rt        j                  ||d«      n|}t        j                  |«      dkD  rt        j                  ||d«      n|}t        j                  |«      dkD  rt        j                  ||d«      n|}| j                   d   Š	|�|t        j
                  ‰	«      z  n|}|d u }|rdn|}t        j                  || j                   «      }t        j                  || j                   d d dz   «      }t        j                  | ||fd¬«      }ˆ	fd„}t        j                  |d|«      }|r	|d	dd …f   n|}t        j                  |d|«      }|S )
NrV   )r"   rq   r{   r§   r   r~   r   )r   r›   c                 ó>   •— t        | d ‰ | ‰d‰z   | d‰z  d  ¬«      S )Nr   )r"   r§   )r   )rà   r#   s    €r$   ru   z*cumulative_simpson_nd_reference.<locals>.fý  s,   ø€ Ü! ! B Q %¨1¨Q¨q°©s¨8¸Q¸qÀ¹s¸t¸WÔEÐEr&   .)	r»   r	   r4   Úmoveaxisr  r5   Úbroadcast_toÚconcatenateÚapply_along_axis)
rO   r"   rq   r§   r{   Úinitial_was_nonerà   ru   rü   r#   s
            @r$   Úcumulative_simpson_nd_referencerP  â  sŒ  ø€ à‡w�wˆt�}�qÒØˆ?Ü'¨¨Q°2¸DÈ$ÔOÐOàÔ1°!°q¸RÀdÐTUÔVÑVÐVô 	�‰�A�t˜RÓ €AÜ$&§G¡G¨A£J°¢NŒ�‰�A�t˜RÔ ¸€AÜ&(§g¡g¨b£k°A¢oŒ�‰�R˜˜rÔ	"¸2€BÜ02·±¸Ó0@À1Ò0DŒb�k‰k˜' 4¨Ô,È'€Gð 	
�‰�‰€AØ˜^ˆŒR�Y‰Y�q‹\Ò°€Aà $�ÐÙ#‰a¨€Gô 	�‰˜˜1Ÿ7™7Ó#€AÜ�o‰o˜g q§w¡w¨s° |°dÑ':Ó;€GÜ
�‰˜˜1˜g�¨RÔ0€AôFä
×
Ñ
˜a  QÓ
'€Cñ +ˆ#ˆc�1‘2ˆgŠ,°€CÜ
�+‰+�c˜2˜tÓ
$€CØ€Jr&   c                   ó  — e Zd Z ej                  d«      Zedz  Zej                  j                  dd«      ej                  j                  dd«      d„ «       «       Z
 ed¬«      ej                  j                  d	 ej                  d
d«      «      ej                  j                  dd«      ej                  j                  dd«      ej                  j                  dd«      ej                  j                  dd«      d„ «       «       «       «       «       «       Zej                  j                  dd eg d¢¬«      fd eeg d¢geeg¬«      fd eeeegeeegd¬«      fd eg g ¬«      fd ed¬«      fd  e ej                  d!«      ¬«      fd" e ej                  d!«      ¬#«      fd$ ed% ej                  d!«      ¬&«      fg«      d'„ «       Zd(„ Zd)„ Zej                  j#                  d*«      ej                  j$                   e ej*                  ej,                   ej.                  ddd*¬+«       ej2                  d,d*d-¬.«      j5                  d/„ «      ¬0«      ¬1«      d2„ «       «       «       Zej                  j#                  d*«      ej                  j$                   e ej*                  ej,                   ej.                  ddd*¬+«       ej2                  d,d*d-¬.«      j5                  d3„ «      ¬0«      ¬1«      d4„ «       «       «       Zy%)5ÚTestCumulativeSimpsonr   r   Úuse_dx)FTÚuse_initialc                 ó¤  — t         j                  j                  d«      }d}|rdnd}|j                  |j                  «       «      }|dk(  r4|j                  t        j                  |j                  |«      «      «      }n@|j                  ||j                  ¬«      |z  |j                  |j                  «       «      z   }|j                  |dz   |j                  ¬«      d d …|j                  f   }	|j                  |j                  |dz   «      «      d d …|j                  f   }
|j                  |
||	z  z  d¬«      }|j                  |
||	dz   z  z  |	dz   z  d¬«      }|r|n
||d   z
  dd  }|r|d   nd }|rd	|ind
|i}t        |fi |¤d|i¤Ž}|st        ||d¬«       y |rdnd}t        ||d¬«       t        ||d d…   ||d d…   d¬«       y )Nì   F»*ŒBG r˜   rV   r   r=   r   r   r›   rq   r"   r§   gVçž¯â<r)   g{®Gázd?)r4   r(  r)  r?   Úsortr5   r@   Únewaxisrß   r   r   )r+   rS  rT  rB   r4  r#   Úorderrq   r"   r�   ÚcrO   ÚYr5  r§   Úkwargrü   Úi0s                     r$   r­   zTestCumulativeSimpson.test_1d  s³  € ô
 �i‰i×#Ñ#Ð$8Ó9ˆØˆñ ‘ ˆØ�Z‰Z˜Ÿ
™
›Ó%ˆØ�AŠ:Ø—
‘
œ2Ÿ7™7 3§:¡:¨a£=Ó1Ó2‰Aà—	‘	˜! 2§:¡:�	Ó.¨rÑ1°B·J±J¸s¿z¹z»|Ó4LÑLˆAØ�I‰I�e˜a‘i r§z¡zˆIÓ2²1°b·j±j°=ÑAˆØ�J‰J�s—z‘z %¨!¡)Ó,Ó-ªa°·±¨mÑ<ˆØ�F‰F�1�Q˜‘T‘6 ˆFÓ"ˆØ�F‰F�1�Q˜˜Q™‘Z‘<  Q¡Ñ'¨aˆFÓ0ˆÙ‰a Q q¨¡t¡V¨Q¨R Lˆñ &�!�A’$¨4ˆÙ$��r‘
¨3°¨(ˆÜ  Ñ= eÑ=°WÒ=ˆñ Ü˜C ¨5Ö1á!‘ qˆBä˜C ¨6Õ2ä˜C   A ™J¨¨B¨E°¨E©
¸Ö?r&   T)Úcpu_onlyr{   éýÿÿÿrV   Úx_ndim)r   rV   Úx_len)r   r   r`   Úi_ndim)Nr   rV   rq   )NTc                 ó¢  — t         j                  j                  d«      }dd|g}|d   ||   c||<   |d<   |j                  «       }	d|	|<   |dk(  r|	nd}
|j	                  |j                  |¬«      «      }d	\  }}|r9|dkD  r|j                  |	¬«      n|j                  «       }|j	                  |«      }ne|dkD  r't        j
                  |j                  |¬«      |¬
«      n't        j
                  |j                  ||   ¬«      «      }|j	                  |«      }|€d n |j	                  |j                  |
¬«      «      }t        |||||¬«      }t        t        j                  |«      t        j                  |«      |€d nt        j                  |«      |€d nt        j                  |«      |¬«      }t        ||j	                  |«      d¬«       y )NrV  r[   é   r~   r   rV   r!   ©Úsize)NNr›   rH  çVçž¯Ò<r)   )	r4   r(  r)  Úcopyr?   rW  r   rP  r   )r+   r{   r`  ra  rb  rq   rB   r4  r»   Úshape_len_1Úi_shaperO   r"   r§   rü   r5  s                   r$   Útest_ndzTestCumulativeSimpson.test_nd1  s‘  € ô �i‰i×#Ñ#Ð$8Ó9ˆð �A�u�ˆØ!& r¡¨E°$©KÐˆˆd‰�U˜2‘YØ—j‘j“lˆØˆ�DÑØ!'¨1¢‘+°"ˆð �J‰J�s—z‘z u�zÓ-Ó.ˆØ‰ˆˆ2ÙØ17¸!²�—‘ �Ô-ÀÇÁÃˆBØ—‘˜B“‰Bà?EÈºz”—‘˜Ÿ™¨˜Ó/°dÕ;Ü—g‘g˜cŸj™j¨e°D©k˜jÓ:Ó;ð à—
‘
˜1“ˆAØ ˜.‘$¨b¯j©j¸¿¹È¸Ó9QÓ.Rˆô !  a¨B¸ÀdÔKˆô .Ü�J‰J�q‹MœRŸZ™Z¨›]°r°z©tÄrÇzÁzÐRTÃ~Ø#˜O‘D´·±¸GÓ1DÈ4ô
ˆô 	˜˜RŸZ™Z¨›_°5Ö9r&   )r  Úkwarg_updatezx must be strictly increasing)r   r   rV   r   rJ   )r   r   r   r   )r"   rO   r   )r"   rO   r{   rÐ   z-`axis=4` is not valid for `y` with `y.ndim=1`r›   z+shape of `x` must be the same as `y` or 1-Dr[   z'`initial` must either be a scalar or...r¦   z"`dx` must either be a scalar or...N)r"   rq   c           
      óÌ  — t        |j                  | j                  «      |j                  | j                  «      d d d¬«      }|j	                  «       D ��ci c]<  \  }}|t        |t        «      r$|j                  t        j                  |«      «      n|“Œ> }}}t        j                  t        |¬«      5  t        di t        |fi |¤Ž¤Ž d d d «       y c c}}w # 1 sw Y   y xY w)Nr~   )rO   r"   rq   r§   r{   rÊ   r!   )Údictr?   Úy0Úx0ÚitemsÚ
isinstancer‡   r4   rž   rÌ   rÍ   r   )r+   r  rl  rB   Úkwargs0ÚkÚvs          r$   Útest_simpson_exceptionsz-TestCumulativeSimpson.test_simpson_exceptionsX  s»   € ô ˜Ÿ™ D§G¡GÓ,°·
±
¸4¿7¹7Ó0CÈØ#¨"ô.ˆð %1×$6Ñ$6Ô$8ô:Ù$8™D˜A˜qð ¼
À1ÄdÔ8K˜2Ÿ:™:¤b§j¡j°£mÔ4ÐQRÑRØ$8ð 	ñ :ä�]‰]œ:¨WÖ5ÜÑ?¤ gÑ!>°Ñ!>Ò?÷ 6Ð5ùó:ç5Ð5ús   ÁACÂ5CÃC#c                 óì   — t         j                  j                  d«      }|j                  |j                  d¬«      «      }t	        |d¬«      }t        ||j                  d|j                  ¬«      «       y )NrV  r˜   re  re   rp   rí   r=   )r4   r(  r)  r?   r   r   r&  r@   )r+   rB   r4  rO   rü   s        r$   Útest_special_casesz(TestCumulativeSimpson.test_special_casesj  sW   € ä�i‰i×#Ñ#Ð$8Ó9ˆØ�J‰J�s—z‘z r�zÓ*Ó+ˆÜ   rÔ*ˆÜ˜˜RŸX™X a¨r¯z©z˜XÓ:Õ;r&   c                 ór  — t        j                  |d¬«      }t        ||«      }t        |dddd…f   |dddd…f   «      dddd…f   }g |j                  dd ¢d‘­}t        j                  t        j
                  |«      |ddd…f   |ddd…f   z
  t        j
                  |«      gd¬«      }d|dddd…f<   |S )aj  `cumulative_simpson` and `simpson` can be tested against other to verify
        they give consistent results. `simpson` will iteratively be called with
        successively higher upper limits of integration. This function calculates
        the theoretical correction required to `simpson` at even intervals to match
        with `cumulative_simpson`.
        r~   r›   .Nr   re   r   )r4   Údiffr   r»   rM  r&  )r+   rO   r"   ÚdÚsub_integrals_h1Úsub_integrals_h2Úzeros_shapeÚtheoretical_differences           r$   Ú1_get_theoretical_diff_between_simps_and_cum_simpszGTestCumulativeSimpson._get_theoretical_diff_between_simps_and_cum_simpsu  så   € ô �G‰G�A˜BÔˆÜ@ÀÀAÓFÐÜ@Øˆc‘4�R�4ˆi‰L˜!˜C¡ 2 ˜I™,ó
à
‰t�ˆtˆ)ñÐð
 )˜Ÿ™  ˜Ð( aÑ(ˆÜ!#§¡ä—‘˜Ó%Ø! # q¡r 'Ñ*Ð-=¸cÀ3ÀBÀ3¸hÑ-GÑGÜ—‘˜Ó%ðð
 ô"
Ðð -0Ð˜s A D q D˜yÑ)ð &Ð%r&   r˜   )Úmax_dimsÚmin_sideÚmax_siderÖ   F)Ú	allow_nanc                 ó   — t        | «      dkD  S ©NgH¯¼šò×z>©ÚabsrJ   s    r$   r%   zTestCumulativeSimpson.<lambda>™  ó   € Ì#ÈaË&ÐSWÊ-r&   )ÚelementsrÑ   c           
      ó"  — d„ }t        |j                  |«      d¬«      } ||«      }| j                  |t        j                  |j
                  d   «      ¬«      }t        |ddd…f   |j                  |ddd…f   |ddd…f   z   «      d	¬
«       y)áe  Theoretically, the output of `cumulative_simpson` will be identical
        to `simpson` at all even indices and in the last index. The first index
        will not match as `simpson` uses the trapezoidal rule when there are only two
        data points. Odd indices after the first index are shown to match with
        a mathematically-derived correction.c                 ó®   — t        j                  t        d| j                  d   dz   «      D �cg c]  }t	        | dd |…f   d¬«      ‘Œ c}d¬«      S c c}w )Nr   r~   r   .rX   rp   r›   ©r4   Ústackr…   r»   r   )rO   r�   s     r$   Úsimpson_referencezhTestCumulativeSimpson.test_cumulative_simpson_against_simpson_with_default_dx.<locals>.simpson_reference¤  sS   € Ü—8‘8Ü6;¸A¸q¿w¹wÀr¹{È1¹}Ô6MÓNÑ6M°”˜˜3   ˜7™¨Ö,Ð6MÑNÐUWôð ùÚNs   ®ArX   rp   r~   rJ   .r   Ng¼‰Ø—²Òœ<r   )r   r?   r€  r4   r5   r»   r   )r+   rO   rB   r�  rü   r5  r  s          r$   Ú7test_cumulative_simpson_against_simpson_with_default_dxzMTestCumulativeSimpson.test_cumulative_simpson_against_simpson_with_default_dx“  s–   € ò"	ô
 ! §¡¨A£°3Ô7ˆÙ Ó"ˆØ!%×!WÑ!WØ”—‘˜1Ÿ7™7 2™;Ó'ð "Xó "
Ðô 	Ø��Q‘R�‰L˜"Ÿ*™* S¨¨a©b¨¡\Ð4JÈ3ÐPQÑPRÈ7Ñ4SÑ%SÓTØö	
r&   c                 ó   — t        | «      dkD  S r†  r‡  rJ   s    r$   r%   zTestCumulativeSimpson.<lambda>¹  r‰  r&   c           
      óè  — d|j                   d   dz
  z  }t        j                  dd|j                   d   ¬«      }|dd d|z  t        j                  j	                  ddt        |«      dz
  «      z  z   |dd d„ }t        |j                  |«      |j                  |«      ¬	«      } |||«      }| j                  ||«      }t        |d
dd…f   |j                  |d
dd…f   |d
dd…f   z   «      «       y)rŒ  r˜   r~   r   r   r¤   NrF   c                 ó¼   — t        j                  t        d| j                  d   dz   «      D �cg c]  }t	        | dd |…f   |dd |…f   ¬«      ‘Œ c}d¬«      S c c}w )Nr   r~   r   .rJ   r›   rŽ  )rO   r"   r�   s      r$   r�  zXTestCumulativeSimpson.test_cumulative_simpson_against_simpson.<locals>.simpson_referenceÈ  s`   € Ü—8‘8Ü<AÀ!ÀQÇWÁWÈRÁ[ÐQRÁ]Ô<SÓTÑ<S°q”˜˜3   ˜7™ q¨¨b¨q¨b¨¡zÖ2Ð<SÑTØôð ùÚTs   ®"ArJ   .)
r»   r4   rƒ   r(  ÚuniformÚlenr   r?   r€  r   )	r+   rO   rB   Úintervalr"   r�  rü   r5  r  s	            r$   Ú'test_cumulative_simpson_against_simpsonz=TestCumulativeSimpson.test_cumulative_simpson_against_simpson³  sò   € ð" �q—w‘w˜r‘{ Q‘Ñ'ˆÜ�K‰K˜˜2 1§7¡7¨2¡;Ô/ˆØ�!�"�˜˜H™¤R§Y¡Y×%6Ñ%6°r¸1¼cÀ!»fÀq¹jÓ%IÑIÑIˆˆ!ˆ"ˆò	ô ! §¡¨A£°"·*±*¸Q³-Ô@ˆÙ  1Ó%ˆØ!%×!WÑ!WØˆqó"
Ðô 	Ø��Q‘R�‰L˜"Ÿ*™* S¨¨a©b¨¡\Ð4JÈ3ÐPQÑPRÈ7Ñ4SÑ%SÓTõ	
r&   )r7   r8   r9   r4   r5   rp  ro  rž   rŸ   r    r­   Úskip_xp_backendsrk  rn  rv  rx  r€  Ú	fail_slowÚslowr   Úhyp_numÚarraysr@   Úarray_shapesÚstÚfloatsÚfilterr‘  r˜  r!   r&   r$   rR  rR    së  „ à	ˆ�‰�1‹€BØ	ˆQ‰€Bà‡[�[×Ñ˜X }Ó5Ø‡[�[×Ñ˜]¨MÓ:ñ!@ó ;ó 6ð!@ñF ˜tÔ$Ø‡[�[×Ñ˜V Y R§Y¡Y¨r°1Ó%5Ó6Ø‡[�[×Ñ˜X vÓ.Ø‡[�[×Ñ˜W iÓ0Ø‡[�[×Ñ˜X }Ó5Ø‡[�[×Ñ˜T <Ó0ñ:ó 1ó 6ó 1ó /ó 7ó %ð:ðB ‡[�[×ÑÐ8Ø	(©$²Ô*>Ð?Ø	(©$°"²lÐ1CÈÈBÀxÔ*PÐQØ	(©$°"°b¸"°À"ÀbÈ"ÀÐTUÔ*VÐWØ	)©4°"¸Ô+;Ð<Ø	8¹$ÀA¼,ÐGØ	6¹¸y¸r¿y¹yÈ»|Ô8LÐMØ	2±DÀÀÇÁÈ1ÃÔ4NÐOØ	-©t°d¸y¸r¿y¹yÈ»|Ô/LÐMð	;ó 	ñ@ó	ð@ò<ò&ð< ‡[�[×Ñ˜2ÓØ‡[�[×ÑÙ
Ø
ˆ'�.‰.Ø�J‰JØ ˆG× Ñ ¨!°aÀ"ÔEØ�R—Y‘Y˜s B°%Ô8×?Ñ?Ñ@WÓXô
ôñ
óó ó ð
ð. ‡[�[×Ñ˜2ÓØ‡[�[×ÑÙ
Ø
ˆ'�.‰.Ø�J‰JØ ˆG× Ñ ¨!°aÀ"ÔEØ�R—Y‘Y˜s B°%Ô8×?Ñ?Ñ@WÓXô
ôñ
óó ó ñ
r&   rR  c                   óš   — e Zd Zd„ Zd„ Zej                  j                  d e e	ddd«      «       e e	ddd	«      «      z   «      d
„ «       Z
y)ÚTestLebedevc                 ó’   — d}t        j                  t        |¬«      5  t        j                  d«       d d d «       y # 1 sw Y   y xY w)NzOrder n=-1 not available...rÊ   r~   )rž   rÌ   ÚNotImplementedErrorr   Úlebedev_rule)r+   r  s     r$   r  z!TestLebedev.test_input_validationÚ  s0   € à/ˆÜ�]‰]Ô.°gÖ>Ü×"Ñ" 2Ô&÷ ?×>Ñ>ús	   ž=½Ac                 óÐ   — d„ }t        j                  d«      \  }}| ||«      z  }d}t        ||d¬«       t        t        j                  |«      dt        j
                  z  «       y )Nc                 ó2   — t        j                  | d   «      S )Nr   )r4   rØ   rJ   s    r$   ru   z&TestLebedev.test_quadrature.<locals>.fã  s   € Ü—6‘6˜!˜A™$“<Ðr&   é   gá9‰-@r#  r)   r   )r   r¦  r   r4   rß   rÚ   )r+   ru   r"   Úwrü   r5  s         r$   Útest_quadraturezTestLebedev.test_quadratureà  sU   € ò	 ô ×%Ñ% bÓ)‰ˆˆ1Ø‘!�A“$‰hˆØˆÜ˜˜S uÕ-ÜœŸ™˜q›	 1¤r§u¡u¡9Õ-r&   rY  rV   rs   r   é#   é„   rd  c                 ó^  — t        j                  |«      \  }}t        j                  dd¬«      5  t	        j
                  |j                  d¬«      }t        |j                  dd¬«       d d d «       t        t        j                  |«      dt        j                  z  «       y # 1 sw Y   Œ:xY w)NÚignore)ÚdivideÚinvalidr   r›   rg  r   r   )r   r¦  r4   Úerrstater   Údirectional_statsÚTr   Úmean_resultant_lengthrß   rÚ   )r+   rY  r"   rª  rü   s        r$   Útest_propertieszTestLebedev.test_propertiesì  sv   € ä×%Ñ% eÓ,‰ˆˆ1ä�[‰[ °(Ö;Ü×)Ñ)¨!¯#©#°AÔ6ˆCÜ˜C×5Ñ5°q¸uÕE÷ <ô 	œŸ™˜q›	 1¤R§U¡U¡7Õ+÷	 <Ð;ús   °:B#Â#B,N)r7   r8   r9   r  r«  rž   rŸ   r    r‡   r…   r¶  r!   r&   r$   r£  r£  Ø  sS   „ ò'ò
.ð ‡[�[×Ñ˜W¡d©5°°B¸«?Ó&;¹dÁ5ÈÈSÐRSÓCTÓ>UÑ&UÓVñ,ó Wñ,r&   r£  )5rž   Únumpyr4   Únumpy.testingr   r   r   Ú
hypothesisr   Úhypothesis.strategiesÚ
strategiesrŸ  Úhypothesis.extra.numpyÚextrarœ  Úscipy.integrater   r   r	   r
   r   r   r   r   r   Úscipy.integrate._quadraturer   Úscipyr   r   r   Úscipy.conftestr   Úscipy._lib._array_apir   r   r   Úscipy._lib._array_api_no_0dr   r   rŸ   r™  r   r;   rS   rm   r¢   rÔ   r   rP  rR  r¦  r£  r!   r&   r$   Ú<module>rÄ     s‘  ðã Û ß LÑ LÝ Ý "ß (Ð (÷;÷ ;õ ;õ Nç +Ñ +Ý .ß OÑ Oß Hà—;‘;×/Ñ/Ð á�:Ó÷3ð 3ó ð3ñ  �4Ó÷
Xð 
Xó ð
Xñ �<Ó ÷&>ð &>ó !ð&>ñR �7Ó÷Y'ð Y'ó ðY'ñx Ð'Ó(÷V3ð V3ó )ðV3ñr �9Ó÷\%ð \%ó ð\%ñ~ �8Ó÷h1ð h1ó ðh1ðV -1°TÀ4Èbô "ñJ Ð%Ó&÷M
ð M
ó 'ðM
ñ` �9×)Ñ)Ó*÷,ð ,ó +ñ,r&   