§
    ¢éUg`3  ã                   óT   — d Z ddlmZmZ ddlZddlZddlmZm	Z	  G d„ d¦  «        Z
dS )z.
Unit test for DIRECT optimization algorithm.
é    )Úassert_allcloseÚassert_array_lessN)ÚdirectÚBoundsc            	       ób  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j
                             ddd	g¦  «        d
„ ¦   «         Ze	j
                             ddd	g¦  «        d„ ¦   «         Ze	j
                             ddd	g¦  «        d„ ¦   «         Ze	j
                             ddd	g¦  «        d„ ¦   «         Ze	j
                             dddg¦  «        e	j
                             ddd	g¦  «        d„ ¦   «         ¦   «         Ze	j
                             dddg¦  «        e	j
                             ddd	g¦  «        d„ ¦   «         ¦   «         Ze	j
                             dg d¢¦  «        e	j
                             ddd	g¦  «        d„ ¦   «         ¦   «         Zd„ Ze	j
                             ddd	g¦  «        d„ ¦   «         Ze	j
                             ddd	g¦  «        d„ ¦   «         Ze	j
                             ddd	g¦  «        d„ ¦   «         Ze	j
                             ddd	g¦  «        d„ ¦   «         Ze	j
                             ddd	g¦  «        e	j
                             dg d¢¦  «        d „ ¦   «         ¦   «         Ze	j
        j        e	j
                             ddd	g¦  «        d!„ ¦   «         ¦   «         Ze	j
                             ddd	g¦  «        d"„ ¦   «         Ze	j
                             dd#d$g¦  «        d%„ ¦   «         Ze	j
                             dd#d$g¦  «        d&„ ¦   «         Ze	j
                             dd#d$g¦  «        d'„ ¦   «         Ze	j
                             d(g d)¢¦  «        d*„ ¦   «         Ze	j
                             d+g d)¢¦  «        d,„ ¦   «         Z d-„ Z!d.„ Z"e	j
                             d/g d0¢¦  «        d1„ ¦   «         Z#e	j
                             d/ e$d2d#gd3d4g¦  «         e$e%j&         d#gd3e%j&        g¦  «        g¦  «        d5„ ¦   «         Z'd6„ Z(e	j
                             dd7d8d8gd9g¦  «        d:„ ¦   «         Z)d;S )<Ú
TestDIRECTc                 óª   — d| _         ddgz  | _        t          j        d¦  «        | _        d| _        t          ddgddg¦  «        | _        d| _        d S )	Nr   é   )éþÿÿÿé   ©r
   ç        g      Àg      @éè  )	Ú	fun_callsÚbounds_sphereÚnpÚzerosÚoptimum_sphere_posÚoptimum_spherer   Úbounds_stylinski_tangÚmaxiter)Úselfs    ú_/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/optimize/tests/test_direct.pyÚsetup_methodzTestDIRECT.setup_method   sT   € ØˆŒØ ˜y™[ˆÔÝ"$¤(¨5¡/¤/ˆÔØ!ˆÔÝ%+¨S°#¨J¸¸R¸Ñ%AÔ%AˆÔ"ØˆŒˆˆó    c                 ón   — | xj         dz  c_         t          j        |¦  «                             ¦   «         S )Né   )r   r   ÚsquareÚsum©r   Úxs     r   ÚspherezTestDIRECT.sphere   s,   € ØˆŒ˜!ÑˆŒÝŒy˜‰|Œ|×ÒÑ!Ô!Ð!r   c                 ó|   — t          j        |¦  «        dk    rt          ¦   «         ‚dt          j        |¦  «        z  S ©Nr   r   )r   r   ÚZeroDivisionErrorr    s     r   ÚinvzTestDIRECT.inv   s1   € ÝŒ6�!‰9Œ9˜Š>ˆ>Ý#Ñ%Ô%Ð%Ø•”˜‘”‰{Ðr   c                 ó   — t           j        S ©N)r   Únanr    s     r   Únan_funzTestDIRECT.nan_fun   ó	   € ÝŒvˆr   c                 ó   — t           j        S r(   )r   Úinfr    s     r   Úinf_funzTestDIRECT.inf_fun"   r+   r   c                 ód   — |\  }}d|dz  d|dz  z  z
  d|z  z   |dz  z   d|dz  z  z
  d|z  z   z  S )Ng      à?r
   é   é   é   © )r   Úposr!   Úys       r   Ústyblinski_tangzTestDIRECT.styblinski_tang%   sO   € Ø‰ˆˆ1Ø�a˜‘d˜R ! Q¡$™YÑ&¨¨Q©Ñ.°°A±Ñ5¸¸QÀ¹T¹	ÑAÀAÈÁEÑIÑJÐJr   Úlocally_biasedTFc                 óò  — t          | j        | j        |¬¦  «        }t          |j        | j        dd¬¦  «         t          |j        | j        dd¬¦  «         t          j	        | j        ¦  «        }t          |d d …df         |j        ¦  «         t          |j        |d d …df         ¦  «         |j        dt          | j        ¦  «        dz   z  k    sJ ‚|j        | j        k    sJ ‚|j        | j        k    sJ ‚d S )	N©r7   çü©ñÒMbP?©ÚrtolÚatolçñhãˆµøä>©r=   r<   r   r   r   )r   r"   r   r   r!   r   Úfunr   r   Úasarrayr   ÚnfevÚlenr   Únitr   )r   r7   ÚresÚ_boundss       r   Útest_directzTestDIRECT.test_direct)   s  € å�T”[ $Ô"4Ø$2ð4ñ 4ô 4ˆõ 	˜œ˜tÔ6Ø!¨ð	.ñ 	.ô 	.ð 	.å˜œ Ô!4¸4ÀdÐKÑKÔKÐKõ ”*˜TÔ/Ñ0Ô0ˆÝ˜' ! ! ! Q $œ-¨¬Ñ/Ô/Ð/Ý˜#œ% ¨¨¨¨A¨¤Ñ/Ô/Ð/ð Œx˜4¥3 tÔ'9Ñ#:Ô#:¸QÑ#>Ñ?Ò?Ð?Ð?Ð?àŒx˜4œ>Ò)Ð)Ð)Ð)ð Œw˜$œ,Ò&Ð&Ð&Ð&Ð&Ð&r   c                 ó2  — t          | j        | j        |¬¦  «        }d„ }t          | j        | j        ||¬¦  «        }t          |j        |j        ¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚|j	        |j	        k    sJ ‚t          |j        |j        ¦  «         |j
        |j
        k    sJ ‚t          |j        | j        dd¬¦  «         t          |j	        | j        dd¬¦  «         d S )Nr9   c                 óV   — d| z  } t          j        | ¦  «        }t          d¦  «         |S )Nr1   z+DIRECT minimization algorithm callback test)r   r   Úprint)r!   Údummys     r   Úcallbackz1TestDIRECT.test_direct_callback.<locals>.callbackG   s,   € Ø�!‘ˆAÝ”I˜a‘L”LˆEÝÐ?Ñ@Ô@Ð@ØˆLr   )r7   rL   r:   r;   r>   r?   )r   r"   r   r   r!   rD   rB   ÚstatusÚsuccessr@   Úmessager   r   )r   r7   rE   rL   Úres_callbacks        r   Útest_direct_callbackzTestDIRECT.test_direct_callbackA   s]  € õ �T”[ $Ô"4Ø$2ð4ñ 4ô 4ˆð	ð 	ð 	õ ˜dœk¨4Ô+=Ø-;Ø'/ð1ñ 1ô 1ˆõ 	˜œ˜|œ~Ñ.Ô.Ð.àŒw˜,Ô*Ò*Ð*Ð*Ð*ØŒx˜<Ô,Ò,Ð,Ð,Ð,ØŒz˜\Ô0Ò0Ð0Ð0Ð0ØŒ{˜lÔ2Ò2Ð2Ð2Ð2ØŒw˜,Ô*Ò*Ð*Ð*Ð*Ý˜œ˜|œ~Ñ.Ô.Ð.ØŒ{˜lÔ2Ò2Ð2Ð2Ð2õ 	˜œ¨Ô(?Ø!¨ð	.ñ 	.ô 	.ð 	.å˜Ô(¨$Ô*=Ø!¨ð	.ñ 	.ô 	.ð 	.ð 	.ð 	.r   c                 ó¤   — ddgz  }t          j        t          ¦  «        5  t          | j        ||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nr
   )iöÿÿÿé
   )Úboundsr7   )ÚpytestÚraisesr%   r   r&   ©r   r7   rU   s      r   Útest_exceptionzTestDIRECT.test_exceptiona   s¢   € à�I�;‘ˆÝŒ]Õ,Ñ-Ô-ð 	2ð 	2Ý�4”8 FØ"0ð2ñ 2ô 2ð 2ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2s    AÁA	ÁA	c                 ó@   — ddgz  }t          | j        ||¬¦  «         d S rS   )r   r*   rX   s      r   Útest_nanzTestDIRECT.test_nanh   s7   € à�I�;‘ˆÝˆtŒ| FØ,ð	.ñ 	.ô 	.ð 	.ð 	.ð 	.r   Úlen_tolr:   ç-Cëâ6?c                 óâ   — ddgz  }t          | j        ||d|¬¦  «        }|j        dk    sJ ‚|j        sJ ‚t	          |j        t          j        d¦  «        ¦  «         d|› �}|j        |k    sJ ‚d S )Nr
   ©g      $Àç      $@g ÂëþKH´9)rU   r\   Úvol_tolr7   r2   r   zjThe side length measure of the hyperrectangle containing the lowest function value found is below len_tol=©	r   r"   rM   rN   r   r!   r   r   rO   )r   r\   r7   rU   rE   rO   s         r   Útest_len_tolzTestDIRECT.test_len_toln   s™   € ð �K�=‘ˆÝ�T”[¨¸Ø"°>ðCñ Cô CˆàŒz˜QŠˆˆˆØŒ{ÐÐÐÝ˜œ�rœx¨™œÑ/Ô/Ð/ð(à%ð(ð (ˆð Œ{˜gÒ%Ð%Ð%Ð%Ð%Ð%r   ra   ç�íµ ÷Æ°>g:Œ0âŽyE>c                 óâ   — ddgz  }t          | j        ||d|¬¦  «        }|j        dk    sJ ‚|j        sJ ‚t	          |j        t          j        d¦  «        ¦  «         d|› �}|j        |k    sJ ‚d S )Nr
   r_   r   )rU   ra   r\   r7   r   z]The volume of the hyperrectangle containing the lowest function value found is below vol_tol=rb   )r   ra   r7   rU   rE   rO   s         r   Útest_vol_tolzTestDIRECT.test_vol_tol|   sš   € ð �K�=‘ˆÝ�T”[¨¸Ø°ð@ñ @ô @ˆàŒz˜QŠˆˆˆØŒ{ÐÐÐÝ˜œ�rœx¨™œÑ/Ô/Ð/ðFØ<CðFð FˆàŒ{˜gÒ%Ð%Ð%Ð%Ð%Ð%r   Ú
f_min_rtol)r:   r>   gH¯¼šò×z>c                 óÀ   — d}ddgz  }t          | j        ||||¬¦  «        }|j        dk    sJ ‚|j        sJ ‚|j        |d|z   z  k     sJ ‚d|› d�}|j        |k    sJ ‚d S )Nç      ð?r
   )ç       Àr`   )rU   Úf_minrg   r7   r   z9The best function value found is within a relative error=z$ of the (known) global optimum f_min)r   r"   rM   rN   r@   rO   )r   rg   r7   rk   rU   rE   rO   s          r   Ú
test_f_minzTestDIRECT.test_f_min‰   s§   € ð
 ˆØ�J�<‘ˆÝ�T”[¨°uØ *Ø$2ð4ñ 4ô 4ˆð Œz˜QŠˆˆˆØŒ{ÐÐÐØŒw˜ " z¡/Ñ2Ò2Ð2Ð2Ð2ðMØ&ðMð Mð MˆàŒ{˜gÒ%Ð%Ð%Ð%Ð%Ð%r   c                 óœ   — t          j        |d         |z
  ¦  «        t          j        |d         |z
  ¦  «                             ¦   «         z   S r$   )r   r   r   )r   r!   ÚaÚbs       r   Úcircle_with_argszTestDIRECT.circle_with_argsš   s=   € ÝŒy˜˜1œ ™Ñ"Ô"¥R¤Y¨q°¬t°a©xÑ%8Ô%8×%<Ò%<Ñ%>Ô%>Ñ>Ð>r   c                 óš   — ddgz  }t          | j        |dd|¬¦  «        }t          |j        t	          j        ddg¦  «        d¬¦  «         d S )	Nr1   )rj   ç       @)r   r   iâ  )ÚargsÚmaxfunr7   ri   r>   ©r<   )r   rp   r   r!   r   Úarray)r   r7   rU   rE   s       r   Útest_f_circle_with_argsz"TestDIRECT.test_f_circle_with_args�   sZ   € à�K�=‘ˆå�TÔ*¨F¸ÈØ$2ð4ñ 4ô 4ˆå˜œ�rœx¨¨R¨Ñ1Ô1¸Ð=Ñ=Ô=Ð=Ð=Ð=r   c                 ó²   — d}t          | j        | j        ||¬¦  «        }|j        du sJ ‚|j        dk    sJ ‚|j        |k    sJ ‚d|› �}|j        |k    sJ ‚d S )Néd   )rt   r7   Fr   z:Number of function evaluations done is larger than maxfun=)r   r6   r   rN   rM   rB   rO   )r   r7   rt   ÚresultrO   s        r   Útest_failure_maxfunzTestDIRECT.test_failure_maxfun¥   s•   € ð
 ˆÝ˜Ô,¨dÔ.HØ%°nðFñ Fô FˆàŒ~ Ð&Ð&Ð&Ð&ØŒ} Ò!Ð!Ð!Ð!ØŒ{˜fÒ$Ð$Ð$Ð$ð2Ø)/ð2ð 2ˆàŒ~ Ò(Ð(Ð(Ð(Ð(Ð(r   c                 ó²   — d}t          | j        | j        ||¬¦  «        }|j        du sJ ‚|j        dk    sJ ‚|j        |k    sJ ‚d|› �}|j        |k    sJ ‚d S )NrT   )r   r7   Fr1   z,Number of iterations is larger than maxiter=)r   r6   r   rN   rM   rD   rO   )r   r7   r   rz   rO   s        r   Útest_failure_maxiterzTestDIRECT.test_failure_maxiter´   sŽ   € ð
 ˆÝ˜Ô,¨dÔ.HØ '¸ðHñ Hô HˆàŒ~ Ð&Ð&Ð&Ð&ØŒ} Ò!Ð!Ð!Ð!ØŒz˜WÒ$Ð$Ð$Ð$ØJÀÐJÐJˆØŒ~ Ò(Ð(Ð(Ð(Ð(Ð(r   c                 óê  — g d¢}g d¢}t          j        g d¢¦  «        }t          t          ||¦  «        ¦  «        }t	          ||¦  «        }t          | j        ||¬¦  «        }t          | j        ||¬¦  «        }|j        |j        k    sJ ‚|j        |j        k    sJ ‚|j	        |j	        k    sJ ‚|j
        |j
        k    sJ ‚t          |j        |j        ¦  «         t          |j        |d¬¦  «         d S )N)g      Àri   ç      À)ç      ð¿g      @ç      @)r€   ri   r   r9   g{®Gáz„?ru   )r   rv   ÚlistÚzipr   r   r"   rB   rO   rN   rD   r   r!   )	r   r7   ÚlbÚubÚx_optÚ
bounds_oldÚ
bounds_newÚres_old_boundsÚres_new_boundss	            r   Útest_bounds_variantszTestDIRECT.test_bounds_variantsÂ   s  € ð ˆ^ˆ^ˆØˆ]ˆ]ˆÝ”˜˜˜Ñ'Ô'ˆÝ�#˜b "™+œ+Ñ&Ô&ˆ
Ý˜B ‘^”^ˆ
å ¤¨ZØ/=ð?ñ ?ô ?ˆå ¤¨ZØ/=ð?ñ ?ô ?ˆð Ô" nÔ&9Ò9Ð9Ð9Ð9ØÔ%¨Ô)?Ò?Ð?Ð?Ð?ØÔ%¨Ô)?Ò?Ð?Ð?Ð?ØÔ! ^Ô%7Ò7Ð7Ð7Ð7Ý˜Ô(¨.Ô*:Ñ;Ô;Ð;Ý˜Ô(¨%°dÐ;Ñ;Ô;Ð;Ð;Ð;r   Úeps)r>   r]   r:   c                 ón   — t          | j        | j        |d|¬¦  «        }|j        dk    sJ ‚|j        sJ ‚d S )Nrd   )rŒ   ra   r7   r
   )r   r6   r   rM   rN   )r   rŒ   r7   rz   s       r   Útest_epsilonzTestDIRECT.test_epsilonØ   sS   € õ ˜Ô,¨dÔ.HØ¨Ø'5ð7ñ 7ô 7ˆð Œ} Ò!Ð!Ð!Ð!ØŒ~ÐÐÐÐÐr   c                 óL   — dgdz  }t          | j        |dd|¬¦  «        }|€J ‚d S )N)r   g      4@ry   i€–˜ i@B )rt   r   r7   )r   r"   ©r   r7   rU   rz   s       r   Útest_no_segmentation_faultz%TestDIRECT.test_no_segmentation_faultá   sF   € ð
 � Ñ#ˆÝ˜œ V°HØ '¸ðHñ Hô HˆàÐ!Ð!Ð!Ð!Ð!r   c                 óH   — dgdz  }t          | j        ||¬¦  «        }|€J ‚d S )N)r   r�   r1   r9   )r   r.   r�   s       r   Útest_inf_funzTestDIRECT.test_inf_funë   s>   € ð �˜q‘ˆÝ˜œ fØ'5ð7ñ 7ô 7ˆàÐ!Ð!Ð!Ð!Ð!r   éÿÿÿÿr1   c                 óª   — d}t          j        t          |¬¦  «        5  t          | j        | j        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz len_tol must be between 0 and 1.©Úmatch)r\   ©rV   rW   Ú
ValueErrorr   r6   r   )r   r\   Ú	error_msgs      r   Útest_len_tol_validationz"TestDIRECT.test_len_tol_validationó   ó¤   € à6ˆ	ÝŒ]�:¨YÐ7Ñ7Ô7ð 	$ð 	$Ý�4Ô'¨Ô)CØ"ð$ñ $ô $ð $ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ó   žAÁAÁAc                 óª   — d}t          j        t          |¬¦  «        5  t          | j        | j        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz vol_tol must be between 0 and 1.r–   )ra   r˜   )r   ra   rš   s      r   Útest_vol_tol_validationz"TestDIRECT.test_vol_tol_validationú   rœ   r�   c                 ó¬   — d}t          j        t          |¬¦  «        5  t          | j        | j        |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz#f_min_rtol must be between 0 and 1.r–   r   )rg   rk   r˜   )r   rg   rš   s      r   Útest_fmin_rtol_validationz$TestDIRECT.test_fmin_rtol_validation  s¦   € à9ˆ	ÝŒ]�:¨YÐ7Ñ7Ô7ð 	4ð 	4Ý�4Ô'¨Ô)CØ(°ð4ñ 4ô 4ð 4ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4s   žA	Á	AÁArt   )g      ø?Ústring)r   r1   c                 óª   — d}t          j        t          |¬¦  «        5  t          | j        | j        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzmaxfun must be of type int.r–   ©rt   r˜   )r   rt   rš   s      r   Útest_maxfun_wrong_typez!TestDIRECT.test_maxfun_wrong_type  s¤   € à1ˆ	ÝŒ]�:¨YÐ7Ñ7Ô7ð 	"ð 	"Ý�4Ô'¨Ô)CØ ð"ñ "ô "ð "ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"r�   r   c                 óª   — d}t          j        t          |¬¦  «        5  t          | j        | j        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzmaxiter must be of type int.r–   ©r   r˜   )r   r   rš   s      r   Útest_maxiter_wrong_typez"TestDIRECT.test_maxiter_wrong_type  s¤   € à2ˆ	ÝŒ]�:¨YÐ7Ñ7Ô7ð 	$ð 	$Ý�4Ô'¨Ô)CØ"ð$ñ $ô $ð $ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$r�   c                 óª   — d}t          j        t          |¬¦  «        5  t          | j        | j        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzmaxiter must be > 0.r–   r”   r§   r˜   ©r   rš   s     r   Útest_negative_maxiterz TestDIRECT.test_negative_maxiter  s¤   € Ø*ˆ	ÝŒ]�:¨YÐ7Ñ7Ô7ð 	ð 	Ý�4Ô'¨Ô)CØðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	r�   c                 óª   — d}t          j        t          |¬¦  «        5  t          | j        | j        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzmaxfun must be > 0.r–   r”   r¤   r˜   rª   s     r   Útest_negative_maxfunzTestDIRECT.test_negative_maxfun  s¤   € Ø)ˆ	ÝŒ]�:¨YÐ7Ñ7Ô7ð 	ð 	Ý�4Ô'¨Ô)CØðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	r�   rU   )rU   rr   r   c                 óœ   — d}t          j        t          |¬¦  «        5  t          | j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz5bounds must be a sequence or instance of Bounds classr–   ©rV   rW   r™   r   r6   ©r   rU   rš   s      r   Útest_invalid_bounds_typez#TestDIRECT.test_invalid_bounds_type"  s•   € ð0ˆ	åŒ]�:¨YÐ7Ñ7Ô7ð 	1ð 	1Ý�4Ô'¨Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ó   žAÁAÁAr€   r   r   c                 óœ   — d}t          j        t          |¬¦  «        5  t          | j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz#Bounds are not consistent min < maxr–   r¯   r°   s      r   Útest_incorrect_boundsz TestDIRECT.test_incorrect_bounds)  s•   € ð :ˆ	ÝŒ]�:¨YÐ7Ñ7Ô7ð 	1ð 	1Ý�4Ô'¨Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1r²   c                 óî   — d}t          t          j         dgdt          j        g¦  «        }t          j        t
          |¬¦  «        5  t          | j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzBounds must not be inf.r”   r   r–   )r   r   r-   rV   rW   r™   r   r6   )r   rš   rU   s      r   Útest_inf_boundszTestDIRECT.test_inf_bounds3  s°   € Ø-ˆ	Ý�"œ&˜ "˜¨­B¬F |Ñ4Ô4ˆÝŒ]�:¨YÐ7Ñ7Ô7ð 	1ð 	1Ý�4Ô'¨Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s   ÁA*Á*A.Á1A.Úbiasr   rr   c                 óª   — d}t          j        t          |¬¦  «        5  t          | j        | j        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz%locally_biased must be True or False.r–   r9   r˜   )r   r7   rš   s      r   Útest_locally_biased_validationz)TestDIRECT.test_locally_biased_validation9  s¤   € à;ˆ	ÝŒ]�:¨YÐ7Ñ7Ô7ð 	2ð 	2Ý�4Ô'¨Ô)CØ"0ð2ñ 2ô 2ð 2ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	2ð 	2r�   N)*Ú__name__Ú
__module__Ú__qualname__r   r"   r&   r*   r.   r6   rV   ÚmarkÚparametrizerG   rQ   rY   r[   rc   rf   rl   rp   rw   r{   r}   r‹   rŽ   Úxslowr‘   r“   r›   rŸ   r¡   r¥   r¨   r«   r­   r±   r   r   r)   r´   r¶   r¹   r3   r   r   r   r      sî  € € € € € ðð ð ð"ð "ð "ðð ð ð
ð ð ðð ð ðKð Kð Kð „[×ÒÐ-°°e¨}Ñ=Ô=ð'ð 'ñ >Ô=ð'ð. „[×ÒÐ-°°e¨}Ñ=Ô=ð.ð .ñ >Ô=ð.ð> „[×ÒÐ-°°e¨}Ñ=Ô=ð2ð 2ñ >Ô=ð2ð „[×ÒÐ-°°e¨}Ñ=Ô=ð.ð .ñ >Ô=ð.ð
 „[×Ò˜Y¨¨t¨Ñ5Ô5Ø„[×ÒÐ-°°e¨}Ñ=Ô=ð
&ð 
&ñ >Ô=ñ 6Ô5ð
&ð „[×Ò˜Y¨¨t¨Ñ5Ô5Ø„[×ÒÐ-°°e¨}Ñ=Ô=ð	&ð 	&ñ >Ô=ñ 6Ô5ð	&ð „[×Ò˜\Ð+=Ð+=Ð+=Ñ>Ô>Ø„[×ÒÐ-°°e¨}Ñ=Ô=ð&ð &ñ >Ô=ñ ?Ô>ð&ð?ð ?ð ?ð „[×ÒÐ-°°e¨}Ñ=Ô=ð>ð >ñ >Ô=ð>ð „[×ÒÐ-°°e¨}Ñ=Ô=ð)ð )ñ >Ô=ð)ð „[×ÒÐ-°°e¨}Ñ=Ô=ð)ð )ñ >Ô=ð)ð „[×ÒÐ-°°e¨}Ñ=Ô=ð<ð <ñ >Ô=ð<ð* „[×ÒÐ-°°e¨}Ñ=Ô=Ø„[×Ò˜UÐ$6Ð$6Ð$6Ñ7Ô7ðð ñ 8Ô7ñ >Ô=ðð „[ÔØ„[×ÒÐ-°°e¨}Ñ=Ô=ð"ð "ñ >Ô=ñ Ôð"ð „[×ÒÐ-°°e¨}Ñ=Ô=ð"ð "ñ >Ô=ð"ð „[×Ò˜Y¨¨Q¨Ñ0Ô0ð$ð $ñ 1Ô0ð$ð „[×Ò˜Y¨¨Q¨Ñ0Ô0ð$ð $ñ 1Ô0ð$ð „[×Ò˜\¨B°¨7Ñ3Ô3ð4ð 4ñ 4Ô3ð4ð „[×Ò˜XÐ'>Ð'>Ð'>Ñ?Ô?ð"ð "ñ @Ô?ð"ð „[×Ò˜YÐ(?Ð(?Ð(?Ñ@Ô@ð$ð $ñ AÔ@ð$ðð ð ðð ð ð „[×Ò˜XÐ'8Ð'8Ð'8Ñ9Ô9ð1ð 1ñ :Ô9ð1ð „[×Ò˜XØ$˜f c¨2 Y°°Q°Ñ8Ô8Ø$˜f r¤v g¨r ]°R¸¼°LÑAÔAð ñô ð
1ð 1ñô ð
1ð
1ð 1ð 1ð „[×ÒÐ-°¸¸A¸ÀÐ/CÑDÔDð2ð 2ñ EÔDð2ð 2ð 2r   r   )Ú__doc__Únumpy.testingr   r   rV   Únumpyr   Úscipy.optimizer   r   r   r3   r   r   ú<module>rÄ      s    ððð ð.ð .ð .ð .ð .ð .ð .ð .à €€€Ø Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )ðs2ð s2ð s2ð s2ð s2ñ s2ô s2ð s2ð s2ð s2r   