Ë
    âQ(hœ1  ã                   óT   — d Z ddlZddlmZmZ ddlZddlmZ ddl	m
Z
  G d„ d«      Zy)z5
Unit tests for TNC optimization routine from tnc.py
é    N)Úassert_allcloseÚassert_equal©Úpow)Úoptimizec                   ó   — e Zd ZdZd„ Zd*d„Zd*d„Zd*d„Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*y))+ÚTestTnczÝTNC non-linear optimization.

    These tests are taken from Prof. K. Schittkowski's test examples
    for constrained non-linear programming.

    http://www.uni-bayreuth.de/departments/math/~kschittkowski/home.htm

    c                 ó   — dddœ| _         y )NFéÈ   )ÚdispÚmaxfun)Úopts)Úselfs    ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_tnc.pyÚsetup_methodzTestTnc.setup_method   s   € à"¨cÑ2ˆ�	ó    c                 ól   — |t        |d   t        |d   d«      z
  d«      z  t        d|d   z
  d«      z   S )Né   r   é   ç      ð?r   ©r   ÚxÚas      r   Úf1z
TestTnc.f1   s;   € Ø”3˜˜!™œs 1 Q¡4¨›|Ñ+¨aÓ0Ñ0´3°s¸Q¸q¹T±zÀ1Ó3EÑEÐEr   c                 óx   — ddg}d|z  |d   t        |d   d«      z
  z  |d<   d|d   |d   dz
  z  dz   z  |d<   |S )Nr   r   r   ç       Àr   r   )r   r   r   Údifs       r   Úg1z
TestTnc.g1   sY   € Ø�!ˆfˆØ�Q‘˜!˜A™$¤ Q q¡T¨1£Ñ-Ñ.ˆˆA‰Ø˜˜1™  Q¡¨#¡Ñ.°Ñ4Ñ5ˆˆA‰Øˆ
r   c                 óJ   — | j                  ||«      | j                  ||«      fS ©N)r   r   r   s      r   Úfg1zTestTnc.fg1$   s!   € Ø�w‰w�q˜!‹}˜dŸg™g a¨›mÐ+Ð+r   c                 ó>   — |d   t        |d   |d   z
  d«      dz  z   S )Nr   r   r   çñhãˆµøä>r   ©r   r   s     r   Úf3z
TestTnc.f3'   s)   € Ø�‰t”c˜!˜A™$  1¡™+ qÓ)¨FÑ2Ñ2Ð2r   c                 óL   — ddg}d|d   |d   z
  z  dz  |d<   d|d   z
  |d<   |S )Nr   r   r   r#   r   © ©r   r   r   s      r   Úg3z
TestTnc.g3*   s@   € Ø�!ˆfˆØ˜˜1™  !¡™Ñ%¨Ñ.ˆˆA‰Ø�s˜1‘v‘ˆˆA‰Øˆ
r   c                 óF   — | j                  |«      | j                  |«      fS r    )r%   r)   r$   s     r   Úfg3zTestTnc.fg30   ó   € Ø�w‰w�q‹z˜4Ÿ7™7 1›:Ð%Ð%r   c                 ó8   — t        |d   dz   d«      dz  |d   z   S )Nr   r   é   g      @r   r   r$   s     r   Úf4z
TestTnc.f43   s%   € Ü�1�Q‘4˜#‘:˜qÓ! CÑ'¨!¨A©$Ñ.Ð.r   c                 óB   — ddg}t        |d   dz   d«      |d<   d|d<   |S )Nr   r   r   r   r   r(   s      r   Úg4z
TestTnc.g46   s1   € Ø�!ˆfˆÜ�Q�q‘T˜C‘Z Ó#ˆˆA‰ØˆˆA‰Øˆ
r   c                 óF   — | j                  |«      | j                  |«      fS r    )r/   r1   r$   s     r   Úfg4zTestTnc.fg4<   r,   r   c                 ó”   — t        j                  |d   |d   z   «      t        |d   |d   z
  d«      z   d|d   z  z
  d|d   z  z   dz   S )Nr   r   r   ç      ø?ç      @r   )ÚnpÚsinr   r$   s     r   Úf5z
TestTnc.f5?   s_   € Ü�v‰v�a˜‘d˜Q˜q™T‘kÓ"¤S¨¨1©°°!±©°aÓ%8Ñ8Ø�a˜‘d‘
ñØ  1 Q¡4™Zñ(Ø*-ñ.ð 	.r   c                 ó’   — ddg}t        j                  |d   |d   z   «      }d|d   |d   z
  z  }||z   dz
  |d<   ||z
  dz   |d<   |S )Nr   r   ç       @r5   r6   )r7   Úcos)r   r   r   Úv1Úv2s        r   Úg5z
TestTnc.g5C   sb   € Ø�!ˆfˆÜ�V‰V�A�a‘D˜1˜Q™4‘KÓ ˆØ�!�A‘$˜˜1™‘+Ñˆà�b‘˜3‘ˆˆA‰Ø�b‘˜3‘ˆˆA‰Øˆ
r   c                 óF   — | j                  |«      | j                  |«      fS r    )r9   r?   r$   s     r   Úfg5zTestTnc.fg5L   r,   r   c           	      óZ  — dt        |d   t        |d   d«      z
  d«      z  t        d|d   z
  d«      z   dt        |d   t        |d   d«      z
  d«      z  z   t        d|d   z
  d«      z   dt        |d   dz
  d«      t        |d   dz
  d«      z   z  z   d	|d   dz
  z  |d   dz
  z  z   d
z  S )Nç      Y@r   r   r   r   g     €V@r.   g333333$@çÍÌÌÌÌÌ3@r#   r   r$   s     r   Úf38zTestTnc.f38O   så   € Øœ˜A˜a™D¤3 q¨¡t¨Q£<Ñ/°Ó3Ñ3Ü�C˜!˜A™$‘J Ó"ñ#Ø%)¬C°°!±´s¸1¸Q¹4À³|Ñ0CÀQÓ,GÑ%GñHä�C˜!˜A™$‘J Ó"ñ#à%)¬S°°1±¸±¸QÓ-?Ü-0°°1±¸±¸QÓ-?ñ.@ñ &AñAð ˜˜!™˜s™
Ñ# q¨¡t¨c¡zÑ2ñ	3ð 7=ñ	=ð 	=r   c                 ó¦  — g d¢}d|d   z  |d   t        |d   d«      z
  z  dd|d   z
  z  z
  dz  |d<   d	|d   t        |d   d«      z
  z  d
|d   dz
  z  z   d|d   dz
  z  z   dz  |d<   d|d   z  |d   t        |d   d«      z
  z  dd|d   z
  z  z
  dz  |d<   d|d   t        |d   d«      z
  z  d
|d   dz
  z  z   d|d   dz
  z  z   dz  |d<   |S )N)r   r   r   r   g      yÀr   r   r   r;   r   r#   g      i@g3333334@rD   r.   g     €vÀg     €f@r   r(   s      r   Úg38zTestTnc.g38V   s8  € ÚˆØ˜1˜Q™4‘- 1 Q¡4¬#¨a°©d°A«,Ñ#6Ñ7Ø˜˜q ™t™Ñ$ñ%Ø(.ñ/ˆˆA‰à˜1˜Q™4¤# a¨¡d¨A£,Ñ.Ñ/°$¸!¸A¹$À¹*Ñ2EÑEØ˜!˜A™$ ™*Ñ%ñ&Ø)/ñ0ˆˆA‰à˜A˜a™D‘. A a¡D¬3¨q°©t°Q«<Ñ$7Ñ8Ø˜˜q ™t™Ñ$ñ%Ø(.ñ/ˆˆA‰à˜1˜Q™4¤# a¨¡d¨A£,Ñ.Ñ/°$¸!¸A¹$À¹*Ñ2EÑEØ˜!˜A™$ ™*Ñ%ñ&Ø)/ñ0ˆˆA‰àˆ
r   c                 óF   — | j                  |«      | j                  |«      fS r    )rE   rG   r$   s     r   Úfg38zTestTnc.fg38b   ó   € Ø�x‰x˜‹{˜DŸH™H Q›KÐ'Ð'r   c                 óH   — d|d   |d   z  |d   z  |d   z  |d   z  dz  z
  S )Nr;   r   r   r   r.   é   ç      ^@r'   r$   s     r   Úf45zTestTnc.f45e   s9   € Ø�Q�q‘T˜A˜a™D‘[ 1 Q¡4Ñ'¨!¨A©$Ñ.°°1±Ñ5¸Ñ=Ñ=Ð=r   c                 ó>  — dgdz  }|d    |d   z  |d   z  |d   z  dz  |d<   |d    |d   z  |d   z  |d   z  dz  |d<   |d    |d   z  |d   z  |d   z  dz  |d<   |d    |d   z  |d   z  |d   z  dz  |d<   |d    |d   z  |d   z  |d   z  dz  |d<   |S )Nr   é   r   r   r.   rL   rM   r'   r(   s      r   Úg45zTestTnc.g45h   sø   € Øˆc�A‰gˆØ�Q‘4�˜!˜A™$‘  1¡Ñ%¨¨!©Ñ,¨uÑ4ˆˆA‰Ø�Q‘4�˜!˜A™$‘  1¡Ñ%¨¨!©Ñ,¨uÑ4ˆˆA‰Ø�Q‘4�˜!˜A™$‘  1¡Ñ%¨¨!©Ñ,¨uÑ4ˆˆA‰Ø�Q‘4�˜!˜A™$‘  1¡Ñ%¨¨!©Ñ,¨uÑ4ˆˆA‰Ø�Q‘4�˜!˜A™$‘  1¡Ñ%¨¨!©Ñ,¨uÑ4ˆˆA‰Øˆ
r   c                 óF   — | j                  |«      | j                  |«      fS r    )rN   rQ   r$   s     r   Úfg45zTestTnc.fg45q   rJ   r   c           	      óZ  — ddgt         j                   d gdd gf}}ddg}g }t        j                  | j                  |d| j
                  || j                  |j                  ¬«      }t        |j                  | j	                  |«      d¬«       t        t        |«      |j                  «       y )Néþÿÿÿr   ç      ø¿ÚTNC)ÚmethodÚjacÚboundsÚoptionsÚcallbackç:Œ0âŽyE>©Úatol)r7   Úinfr   Úminimizer   r   r   Úappendr   Úfunr   ÚlenÚnit)r   Úx0ÚbndsÚxoptÚiterxÚress         r   Útest_minimize_tnc1zTestTnc.test_minimize_tnc1v   sŒ   € Ø˜�7œrŸv™v˜g t˜_¨t°T¨lÐ;ˆDˆØ�1ˆvˆØˆä×Ñ §¡¨°E¸t¿w¹wØ'+°T·Y±YØ).¯©ô7ˆô 	˜Ÿ™ §¡¨£°TÕ:Ü”S˜“Z §¡Õ)r   c                 ó0  — t        j                  ddg«      t         j                   d gdd gf}}ddg}t        j                  | j
                  |d|| j                  ¬«      j                  }t        | j                  |«      | j                  |«      d¬«       y )NrU   r   rV   rW   )rX   rZ   r[   ç-Cëâ6?r^   )	r7   Úarrayr`   r   ra   r   r   r   r   ©r   rf   rg   rh   r   s        r   Útest_minimize_tnc1bzTestTnc.test_minimize_tnc1b�   s{   € Ü—8‘8˜R ˜GÓ$¬¯©¨° ¸¸t¸Ð&EˆDˆØ�1ˆvˆÜ×Ñ˜dŸg™g r°%Ø%)°4·9±9ô>ß>?¹að 	
ä˜Ÿ™ ›
 D§G¡G¨D£M¸Ö=r   c                 ó  — ddgt         j                   d gdd gf}}ddg}t        j                  | j                  |dd|| j
                  ¬«      j                  }t        | j                  |«      | j                  |«      d¬«       y )	NrU   r   rV   rW   T©rX   rY   rZ   r[   r]   r^   )	r7   r`   r   ra   r!   r   r   r   r   ro   s        r   Útest_minimize_tnc1czTestTnc.test_minimize_tnc1cˆ   sw   € Ø˜�7œrŸv™v˜g t˜_¨d°D¨\Ð:ˆDˆØ�1ˆvˆÜ×Ñ˜dŸh™h¨°5Ø"&¨tØ&*§i¡iô1ç12±ð 	
ô 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ö=r   c                 ó   — ddgt         j                   d gdd gf}}ddg}t        j                  | j                  |d| j
                  || j                  ¬«      j                  }t        | j	                  |«      | j	                  |«      d¬«       y )	NrU   r   r5   çA‡ÐR‰ó¿rW   rr   r]   r^   )	r7   r`   r   ra   r   r   r   r   r   ro   s        r   Útest_minimize_tnc2zTestTnc.test_minimize_tnc2�   s|   € Ø˜�7œrŸv™v˜g t˜_¨s°D¨kÐ:ˆDˆØ# SÐ)ˆÜ×Ñ˜dŸg™g r°%Ø"&§'¡'°$Ø&*§i¡iô1ç12±ð 	
ô 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ö=r   c                 ó   — ddgt         j                   d gdd gf}}ddg}t        j                  | j                  |d| j
                  || j                  ¬«      j                  }t        | j	                  |«      | j	                  |«      d¬«       y )	Né
   r   ç        r   rW   rr   r]   r^   )	r7   r`   r   ra   r%   r)   r   r   r   ro   s        r   Útest_minimize_tnc3zTestTnc.test_minimize_tnc3˜   s{   € Ø˜�7œrŸv™v˜g t˜_¨s°D¨kÐ:ˆDˆØ�1ˆvˆÜ×Ñ˜dŸg™g r°%Ø"&§'¡'°$Ø&*§i¡iô1ç12±ð 	
ô 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ö=r   c                 óú   — ddgddg}}ddg}t        j                  | j                  |d| j                  || j                  ¬«      j
                  }t        | j                  |«      | j                  |«      d	¬
«       y )Nç      ò?ç      À?©r   N©r   Nr   r   rW   rr   r]   r^   )r   ra   r/   r1   r   r   r   ro   s        r   Útest_minimize_tnc4zTestTnc.test_minimize_tnc4    sm   € Ø˜%�. 9¨iÐ"8ˆ4ˆØ�1ˆvˆÜ×Ñ˜dŸg™g r°%Ø"&§'¡'°$Ø&*§i¡iô1ç12±ð 	
ô 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ö=r   c                 óú   — ddgddg}}ddg}t        j                  | j                  |d| j                  || j                  ¬«      j
                  }t        | j                  |«      | j                  |«      d¬	«       y )
Nr   ©rV   rL   ©éýÿÿÿr.   çÊæZp¤‚á¿çes-8RÁø¿rW   rr   r]   r^   )r   ra   r9   r?   r   r   r   ro   s        r   Útest_minimize_tnc5zTestTnc.test_minimize_tnc5¨   so   € Ø�q�6˜I gÐ.ˆDˆØ$Ð&9Ð:ˆÜ×Ñ˜dŸg™g r°%Ø"&§'¡'°$Ø&*§i¡iô1ç12±ð 	
ô 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ö=r   c                 ó(  — t        j                  g d¢«      dgdz  }}dgdz  }t        j                  | j                  |d| j
                  || j                  ¬«      j                  }t        | j	                  |«      | j	                  |«      d¬«       y )	N©r„   éÿÿÿÿr„   rŠ   ©iöÿÿÿrx   rL   r   rW   rr   r]   r^   )	r7   rn   r   ra   rE   rG   r   r   r   ro   s        r   Útest_minimize_tnc38zTestTnc.test_minimize_tnc38°   sv   € Ü—8‘8Ò,Ó-°	¨{¸1©}ˆDˆØˆs�1‰uˆÜ×Ñ˜dŸh™h¨°5Ø"&§(¡(°4Ø&*§i¡iô1ç12±ð 	
ô 	˜Ÿ™ › T§X¡X¨d£^¸$Ö?r   c                 óþ   — dgdz  g d¢}}g d¢}t        j                  | j                  |d| j                  || j                  ¬«      j
                  }t        | j                  |«      | j                  |«      d¬«       y )	Nr   rP   ©)r   r   )r   r   )r   r.   )r   rL   )r   rP   ©r   r   r.   rL   rP   rW   rr   r]   r^   )r   ra   rN   rQ   r   r   r   ro   s        r   Útest_minimize_tnc45zTestTnc.test_minimize_tnc45¸   sg   € Ø�3˜‘7ÒDˆDˆÚˆÜ×Ñ˜dŸh™h¨°5Ø"&§(¡(°4Ø&*§i¡iô1ç12±ð 	
ô 	˜Ÿ™ › T§X¡X¨d£^¸$Ö?r   c                 ó^  — | j                   ddgt        j                   d gdd gf}}}ddg}t        j                  |||dt        j
                  j                  d¬«      \  }}}t        | j                  |«      | j                  |«      ddt        j
                  j                  |   z   ¬	«       y )
NrU   r   rV   ©rC   r   )rZ   ÚargsÚmessagesr   r]   úTNC failed with status: ©r_   Úerr_msg©
r!   r7   r`   r   Úfmin_tncÚ_tncÚMSG_NONEr   r   Ú	RCSTRINGS©r   Úfgr   rZ   rh   ÚnfÚrcs          r   Ú	test_tnc1zTestTnc.test_tnc1Á   s›   € ØŸ™ 2 q '¬b¯f©f¨W°d¨O¸dÀD¸\Ð+JˆvˆAˆØ�1ˆvˆä×%Ñ% b¨!°FÀÜ/7¯}©}×/EÑ/EØ-0ô2‰	ˆˆ2ˆrô 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ø :Ü (§¡× 7Ñ 7¸Ñ ;ñ!<ö	=r   c                 óZ  — ddgt         j                   d gdd gf}}ddg}t        j                  | j                  |d|t        j
                  j                  d¬«      \  }}}t        | j	                  |«      | j	                  |«      ddt        j
                  j                  |   z   ¬	«       y )
NrU   r   rV   Tr   )Úapprox_gradrZ   r”   r   rm   r•   r–   )	r7   r`   r   r™   r   rš   r›   r   rœ   ©r   r   rZ   rh   rŸ   r    s         r   Ú
test_tnc1bzTestTnc.test_tnc1bÍ   s˜   € Ø˜�G¤§¡˜w¨˜o°°d¨|Ð<ˆ6ˆØ�1ˆvˆä×%Ñ% d§g¡g¨q¸dØ-3Ü/7¯}©}×/EÑ/EØ-0ô2‰	ˆˆ2ˆrô
 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ø :Ü (§¡× 7Ñ 7¸Ñ ;ñ!<ö	=r   c                 ón  — ddgt         j                   d gdd gf}}ddg}t        j                  | j                  || j
                  |t        j                  j                  d¬«      \  }}}t        | j	                  |«      | j	                  |«      ddt        j                  j                  |   z   ¬«       y )	NrU   r   rV   r   )ÚfprimerZ   r”   r   r]   r•   r–   )
r7   r`   r   r™   r   r   rš   r›   r   rœ   r¤   s         r   Ú
test_tnc1czTestTnc.test_tnc1cÚ   sœ   € Ø˜�G¤§¡˜w¨˜o°°d¨|Ð<ˆ6ˆØ�1ˆvˆä×%Ñ% d§g¡g¨q¸¿¹Ø-3Ü/7¯}©}×/EÑ/EØ-0ô2‰	ˆˆ2ˆrô
 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ø :Ü (§¡× 7Ñ 7¸Ñ ;ñ!<ö	=r   c                 ó\  — | j                   ddgt        j                   d gdd gf}}}ddg}t        j                  |||t        j
                  j                  d¬«      \  }}}t        | j                  |«      | j                  |«      ddt        j
                  j                  |   z   ¬	«       y )
NrU   r   r5   ru   r   ©rZ   r”   r   r]   r•   r–   r˜   r�   s          r   Ú	test_tnc2zTestTnc.test_tnc2ç   sš   € ØŸ™ 2 q '¬b¯f©f¨W°d¨O¸cÀ4¸[Ð+IˆvˆAˆØ# SÐ)ˆä×%Ñ% b¨!°FÜ/7¯}©}×/EÑ/EØ-0ô2‰	ˆˆ2ˆrô 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ø :Ü (§¡× 7Ñ 7¸Ñ ;ñ!<ö	=r   c                 ó\  — | j                   ddgt        j                   d gdd gf}}}ddg}t        j                  |||t        j
                  j                  d¬«      \  }}}t        | j                  |«      | j                  |«      ddt        j
                  j                  |   z   ¬	«       y )
Nrx   r   ry   r   r   rª   r]   r•   r–   )
r+   r7   r`   r   r™   rš   r›   r   r%   rœ   r�   s          r   Ú	test_tnc3zTestTnc.test_tnc3ó   s™   € ØŸ™ 2 q '¬b¯f©f¨W°d¨O¸cÀ4¸[Ð+IˆvˆAˆØ�1ˆvˆä×%Ñ% b¨!°FÜ/7¯}©}×/EÑ/EØ-0ô2‰	ˆˆ2ˆrô 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ø :Ü (§¡× 7Ñ 7¸Ñ ;ñ!<ö	=r   c                 ó6  — | j                   ddgddg}}}ddg}t        j                  |||t        j                  j                  d¬«      \  }}}t        | j                  |«      | j                  |«      d	d
t        j                  j                  |   z   ¬«       y )Nr|   r}   r~   r   r   r   r   rª   r]   r•   r–   )r3   r   r™   rš   r›   r   r/   rœ   r�   s          r   Ú	test_tnc4zTestTnc.test_tnc4ÿ   s‹   € ØŸ™ 5¨% .°9¸iÐ2HˆvˆAˆØ�1ˆvˆä×%Ñ% b¨!°FÜ/7¯}©}×/EÑ/EØ-0ô2‰	ˆˆ2ˆrô 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ø :Ü (§¡× 7Ñ 7¸Ñ ;ñ!<ö	=r   c                 ó6  — | j                   ddgddg}}}ddg}t        j                  |||t        j                  j                  d¬«      \  }}}t        | j                  |«      | j                  |«      dd	t        j                  j                  |   z   ¬
«       y )Nr   r‚   rƒ   r…   r†   r   rª   r]   r•   r–   )rA   r   r™   rš   r›   r   r9   rœ   r�   s          r   Ú	test_tnc5zTestTnc.test_tnc5  s�   € ØŸ™ 1 a &¨9°WÐ*=ˆvˆAˆØ$Ð&9Ð:ˆä×%Ñ% b¨!°FÜ/7¯}©}×/EÑ/EØ-0ô2‰	ˆˆ2ˆrô 	˜Ÿ™ ›
 D§G¡G¨D£M¸Ø :Ü (§¡× 7Ñ 7¸Ñ ;ñ!<ö	=r   c                 ód  — | j                   t        j                  g d¢«      dgdz  }}}dgdz  }t        j                  |||t        j
                  j                  d¬«      \  }}}t        | j                  |«      | j                  |«      ddt        j
                  j                  |   z   ¬	«       y )
Nr‰   r‹   rL   r   r   rª   r]   r•   r–   )
rI   r7   rn   r   r™   rš   r›   r   rE   rœ   r�   s          r   Ú
test_tnc38zTestTnc.test_tnc38  s”   € ØŸ	™	¤2§8¡8Ò,<Ó#=À	¸{È1¹}ˆvˆAˆØˆs�1‰uˆä×%Ñ% b¨!°FÜ/7¯}©}×/EÑ/EØ-0ô2‰	ˆˆ2ˆrô 	˜Ÿ™ › T§X¡X¨d£^¸$Ø :Ü (§¡× 7Ñ 7¸Ñ ;ñ!<ö	=r   c                 ó:  — | j                   dgdz  g d¢}}}g d¢}t        j                  |||t        j                  j                  d¬«      \  }}}t        | j                  |«      | j                  |«      ddt        j                  j                  |   z   ¬	«       y )
Nr   rP   rŽ   r�   r   rª   r]   r•   r–   )rS   r   r™   rš   r›   r   rN   rœ   r�   s          r   Ú
test_tnc45zTestTnc.test_tnc45#  s‡   € ØŸ	™	 A 3¨¡7ò -=ˆvˆAˆâˆä×%Ñ% b¨!°FÜ/7¯}©}×/EÑ/EØ-0ô2‰	ˆˆ2ˆrô 	˜Ÿ™ › T§X¡X¨d£^¸$Ø :Ü (§¡× 7Ñ 7¸Ñ ;ñ!<ö	=r   c                 ó8  — d„ }d„ }d„ }t        j                  t        «      5  t        j                  |ddgd¬«       d d d «       t        j                  t
        «      5  t        j                  |ddgd|¬«       d d d «       y # 1 sw Y   ŒGxY w# 1 sw Y   y xY w)	Nc                 ó   — t        d«      ‚)NÚmyfunc)ÚRuntimeError©r   s    r   r¸   z/TestTnc.test_raising_exceptions.<locals>.myfunc3  s   € Ü˜xÓ(Ð(r   c                 ó,   — t        j                  | «      S r    )r   Úrosenrº   s    r   Úmyfunc1z0TestTnc.test_raising_exceptions.<locals>.myfunc16  s   € Ü—>‘> !Ó$Ð$r   c                 ó   — t        d«      ‚)Nr\   )Ú
ValueErrorrº   s    r   r\   z1TestTnc.test_raising_exceptions.<locals>.callback9  s   € Ü˜ZÓ(Ð(r   r   r   rW   )rX   )rX   r\   )ÚpytestÚraisesr¹   r   ra   r¿   )r   r¸   r½   r\   s       r   Útest_raising_exceptionszTestTnc.test_raising_exceptions0  s�   € ò	)ò	%ò	)ô �]‰]œ<Ó(ñ 	<Ü×Ñ˜f q¨! f°UÕ;÷	<ô �]‰]œ:Ó&ñ 	Ü×ÑØ˜!˜Q˜¨¸õ÷	ð 	÷	<ð 	<ú÷	ð 	ús   £BÁBÂBÂBc                 óp  — d„ }t         j                  }dgdz  }g d¢}t        j                  |||dddi¬«      }t        j                  |||dddi|¬	«      }t        |j                  |j                  «       t        |j
                  |j
                  «       t        |j                  |j                  «       y )
Nc                  ó   — y r    r'   rº   s    r   r\   zDTestTnc.test_callback_shouldnt_affect_minimization.<locals>.callbackJ  s   € Ør   )r   rx   rL   )r   r   r.   g      @rW   r   iè  )rZ   rX   r[   )rZ   rX   r[   r\   )r   r¼   ra   r   r   rc   r   Únfev)r   r\   rc   rZ   rf   rj   Úres2s          r   Ú*test_callback_shouldnt_affect_minimizationz2TestTnc.test_callback_shouldnt_affect_minimizationD  sŸ   € ò	ô �n‰nˆØ�˜Q‘ˆÚˆÜ×ÑØ�˜F¨5¸8ÀTÐ:Jô
ˆô × Ñ Ø�˜F¨5¸8ÀTÐ:JØô
ˆô 	˜Ÿ™ §¡Ô&Ü˜Ÿ™ #§'¡'Ô*Ü�T—Y‘Y §¡Õ)r   Nr’   )+Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r!   r%   r)   r+   r/   r1   r3   r9   r?   rA   rE   rG   rI   rN   rQ   rS   rk   rp   rs   rv   rz   r€   r‡   rŒ   r�   r¡   r¥   r¨   r«   r­   r¯   r±   r³   rµ   rÂ   rÇ   r'   r   r   r	   r	      sÍ   „ ñò3ó
Fóó,ò3òò&ò/òò&ò.òò&ò=ò
ò(ò>òò(ò
	*ò>ò>ò>ò>ò>ò>ò@ò@ò
=ò=ò=ò
=ò
=ò
=ò
=ò
=ò=òó(*r   r	   )rË   rÀ   Únumpy.testingr   r   Únumpyr7   Úmathr   Úscipyr   r	   r'   r   r   ú<module>rÐ      s'   ðñó ß 7ã Ý å ÷L*ò L*r   