§
    fŠtjœ1  ã                   ó\   — 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dS )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*d*S ),Ú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œ| _         d S )NFéÈ   )ÚdispÚmaxfun)Úopts)Úselfs    ú[/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_tnc.pyÚsetup_methodzTestTnc.setup_method   s   € à"¨cÐ2Ð2ˆŒ	ˆ	ˆ	ó    ç      Y@c                 ó–   — |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   sC   € Ø•3˜˜!œ�s 1 Q¤4¨™|œ|Ñ+¨aÑ0Ô0Ñ0µ3°s¸Q¸q¼T±zÀ1Ñ3EÔ3EÑEÐEr   c                 ó˜   — 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   s[   € Ø�!ˆfˆØ�Q‘˜!˜Aœ$¥ Q q¤T¨1¡¤Ñ-Ñ.ˆˆA‰Ø˜˜1œ  Q¤¨#¡Ñ.°Ñ4Ñ5ˆˆA‰Øˆ
r   c                 óZ   — |                       ||¦  «        |                      ||¦  «        fS ©N)r   r   r   s      r   Úfg1zTestTnc.fg1$   s%   € Ø�wŠw�q˜!‰}Œ}˜dŸgšg a¨™mœmÐ+Ð+r   c                 óX   — |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                 ó^   — 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                 óV   — |                       |¦  «        |                      |¦  «        fS r!   )r&   r*   r%   s     r   Úfg3zTestTnc.fg30   ó!   € Ø�wŠw�q‰zŒz˜4Ÿ7š7 1™:œ:Ð%Ð%r   c                 óL   — 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                 óP   — ddg}t          |d         dz   d¦  «        |d<   d|d<   |S )Nr   r   r   r   r   r)   s      r   Úg4z
TestTnc.g46   s4   € Ø�!ˆfˆÝ�Q�q”T˜C‘Z Ñ#Ô#ˆˆA‰ØˆˆA‰Øˆ
r   c                 óV   — |                       |¦  «        |                      |¦  «        fS r!   )r0   r2   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?   sc   € ÝŒv�a˜”d˜Q˜qœT‘kÑ"Ô"¥S¨¨1¬°°!´©°aÑ%8Ô%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   ç       @r6   r7   )r8   Úcos)r   r   r   Úv1Úv2s        r   Úg5z
TestTnc.g5C   sc   € Ø�!ˆfˆÝŒV�A�a”D˜1˜Qœ4‘KÑ Ô ˆØ�!�A”$˜˜1œ‘+Ñˆà�b‘˜3‘ˆˆA‰Ø�b‘˜3‘ˆˆA‰Øˆ
r   c                 óV   — |                       |¦  «        |                      |¦  «        fS r!   )r:   r@   r%   s     r   Úfg5zTestTnc.fg5L   r-   r   c           	      óÖ  — 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 )Nr   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Ñ3Ý�C˜!˜Aœ$‘J Ñ"Ô"ñ#Ø%)­C°°!´µs¸1¸Q¼4À±|´|Ñ0CÀQÑ,GÔ,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   sD  € ØˆlˆlˆØ˜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                 óV   — |                       |¦  «        |                      |¦  «        fS r!   )rE   rG   r%   s     r   Úfg38zTestTnc.fg38b   ó!   € Ø�xŠx˜‰{Œ{˜DŸHšH Q™KœKÐ'Ð'r   c                 óf   — 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                 óV   — |                       |¦  «        |                      |¦  «        fS r!   )rN   rQ   r%   s     r   Úfg45zTestTnc.fg45q   rJ   r   c           	      ó6  — ddgt           j         d gdd gf}}ddg}g }t          j        | j        |d| j        || j        |j        ¬¦  «        }t          |j	        |                      |¦  «        d¬¦  «         t          t          |¦  «        |j        ¦  «         d S )Néþÿÿÿr   ç      ø¿ÚTNC)ÚmethodÚjacÚboundsÚoptionsÚcallbackç:Œ0âŽyE>©Úatol)r8   Ú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˜g t˜_¨t°T¨lÐ;ˆDˆØ�1ˆvˆØˆåÔ ¤¨°E¸t¼wØ'+°T´YØ).¬ð7ñ 7ô 7ˆõ 	˜œ §¢¨¡¤°TÐ:Ñ:Ô:Ð:Ý•S˜‘Z”Z ¤Ñ)Ô)Ð)Ð)Ð)r   c                 ó   — t          j        ddg¦  «        t           j         d gdd gf}}ddg}t          j        | j        |d|| j        ¬¦  «        j        }t          |                      |¦  «        |                      |¦  «        d¬¦  «         d S )NrU   r   rV   rW   )rX   rZ   r[   ç-Cëâ6?r^   )	r8   Úarrayr`   r   ra   r   r   r   r   ©r   rf   rg   rh   r   s        r   Útest_minimize_tnc1bzTestTnc.test_minimize_tnc1b�   sŽ   € Ý”8˜R ˜GÑ$Ô$­¬¨° ¸¸t¸Ð&EˆDˆØ�1ˆvˆÝÔ˜dœg r°%Ø%)°4´9ð>ñ >ô >Ü>?ð 	
å˜Ÿš ™
œ
 D§G¢G¨D¡M¤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          |                      |¦  «        |                      |¦  «        d¬¦  «         d S )	NrU   r   rV   rW   T©rX   rY   rZ   r[   r]   r^   )	r8   r`   r   ra   r"   r   r   r   r   ro   s        r   Útest_minimize_tnc1czTestTnc.test_minimize_tnc1cˆ   s‰   € Ø˜�7�rœv˜g t˜_¨d°D¨\Ð:ˆDˆØ�1ˆvˆÝÔ˜dœh¨°5Ø"&¨tØ&*¤ið1ñ 1ô 1ä12ð 	
õ 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤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          |                      |¦  «        |                      |¦  «        d¬¦  «         d S )	NrU   r   r6   çA‡ÐR‰ó¿rW   rr   r]   r^   )	r8   r`   r   ra   r   r   r   r   r   ro   s        r   Útest_minimize_tnc2zTestTnc.test_minimize_tnc2�   sŒ   € Ø˜�7�rœv˜g t˜_¨s°D¨kÐ:ˆDˆØ# SÐ)ˆÝÔ˜dœg r°%Ø"&¤'°$Ø&*¤ið1ñ 1ô 1ä12ð 	
õ 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤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          |                      |¦  «        |                      |¦  «        d¬¦  «         d S )	Né
   r   ç        r   rW   rr   r]   r^   )	r8   r`   r   ra   r&   r*   r   r   r   ro   s        r   Útest_minimize_tnc3zTestTnc.test_minimize_tnc3˜   s‹   € Ø˜�7�rœv˜g t˜_¨s°D¨kÐ:ˆDˆØ�1ˆvˆÝÔ˜dœg r°%Ø"&¤'°$Ø&*¤ið1ñ 1ô 1ä12ð 	
õ 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤M¸Ð=Ñ=Ô=Ð=Ð=Ð=r   c                 óê   — ddgddg}}ddg}t          j        | j        |d| j        || j        ¬¦  «        j        }t          |                      |¦  «        |                      |¦  «        d	¬
¦  «         d S )Nç      ò?ç      À?©r   N©r   Nr   r   rW   rr   r]   r^   )r   ra   r0   r2   r   r   r   ro   s        r   Útest_minimize_tnc4zTestTnc.test_minimize_tnc4    s   € Ø˜%�. 9¨iÐ"8ˆ4ˆØ�1ˆvˆÝÔ˜dœg r°%Ø"&¤'°$Ø&*¤ið1ñ 1ô 1ä12ð 	
õ 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤M¸Ð=Ñ=Ô=Ð=Ð=Ð=r   c                 óê   — ddgddg}}ddg}t          j        | j        |d| j        || j        ¬¦  «        j        }t          |                      |¦  «        |                      |¦  «        d¬	¦  «         d S )
Nr   ©rV   rL   ©éýÿÿÿr/   çÊæZp¤‚á¿çes-8RÁø¿rW   rr   r]   r^   )r   ra   r:   r@   r   r   r   ro   s        r   Útest_minimize_tnc5zTestTnc.test_minimize_tnc5¨   s�   € Ø�q�6˜I gÐ.ˆDˆØ$Ð&9Ð:ˆÝÔ˜dœg r°%Ø"&¤'°$Ø&*¤ið1ñ 1ô 1ä12ð 	
õ 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤M¸Ð=Ñ=Ô=Ð=Ð=Ð=r   c                 ó  — t          j        g d¢¦  «        dgdz  }}dgdz  }t          j        | j        |d| j        || j        ¬¦  «        j        }t          |                      |¦  «        |                      |¦  «        d¬¦  «         d S )	N©r„   éÿÿÿÿr„   rŠ   ©iöÿÿÿrx   rL   r   rW   rr   r]   r^   )	r8   rn   r   ra   rE   rG   r   r   r   ro   s        r   Útest_minimize_tnc38zTestTnc.test_minimize_tnc38°   s�   € Ý”8Ð,Ð,Ð,Ñ-Ô-°	¨{¸1©}ˆDˆØˆs�1‰uˆÝÔ˜dœh¨°5Ø"&¤(°4Ø&*¤ið1ñ 1ô 1ä12ð 	
õ 	˜Ÿš ™œ T§X¢X¨d¡^¤^¸$Ð?Ñ?Ô?Ð?Ð?Ð?r   c                 óî   — dgdz  g d¢}}g d¢}t          j        | j        |d| j        || j        ¬¦  «        j        }t          |                      |¦  «        |                      |¦  «        d¬¦  «         d S )	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¸   sƒ   € Ø�3˜‘7ÐDÐDÐDˆDˆØˆˆˆÝÔ˜dœh¨°5Ø"&¤(°4Ø&*¤ið1ñ 1ô 1ä12ð 	
õ 	˜Ÿš ™œ T§X¢X¨d¡^¤^¸$Ð?Ñ?Ô?Ð?Ð?Ð?r   c                 óF  — | j         ddgt          j         d gdd gf}}}ddg}t          j        |||dt          j        j        d¬¦  «        \  }}}t          |                      |¦  «        |                      |¦  «        ddt          j        j	        |         z   ¬	¦  «         d S )
NrU   r   rV   ©r   r   )rZ   ÚargsÚmessagesr   r]   úTNC failed with status: ©r_   Úerr_msg©
r"   r8   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¨W°d¨O¸dÀD¸\Ð+JˆvˆAˆØ�1ˆvˆåÔ% b¨!°FÀÝ/7¬}Ô/EØ-0ð2ñ 2ô 2‰	ˆˆ2ˆrõ 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤M¸Ø :Ý (¤Ô 7¸Ô ;ñ!<ð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r   c                 óB  — ddgt           j         d gdd gf}}ddg}t          j        | j        |d|t          j        j        d¬¦  «        \  }}}t          |                      |¦  «        |                      |¦  «        ddt          j        j        |         z   ¬	¦  «         d S )
NrU   r   rV   Tr   )Úapprox_gradrZ   r”   r   rm   r•   r–   )	r8   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¨q¸dØ-3Ý/7¬}Ô/EØ-0ð2ñ 2ô 2‰	ˆˆ2ˆrõ
 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤M¸Ø :Ý (¤Ô 7¸Ô ;ñ!<ð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r   c                 óL  — ddgt           j         d gdd gf}}ddg}t          j        | j        || j        |t          j        j        d¬¦  «        \  }}}t          |                      |¦  «        |                      |¦  «        ddt          j        j	        |         z   ¬¦  «         d S )	NrU   r   rV   r   )ÚfprimerZ   r”   r   r]   r•   r–   )
r8   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¨q¸¼Ø-3Ý/7¬}Ô/EØ-0ð2ñ 2ô 2‰	ˆˆ2ˆrõ
 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤M¸Ø :Ý (¤Ô 7¸Ô ;ñ!<ð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r   c                 óD  — | j         ddgt          j         d gdd gf}}}ddg}t          j        |||t          j        j        d¬¦  «        \  }}}t          |                      |¦  «        |                      |¦  «        ddt          j        j	        |         z   ¬	¦  «         d S )
NrU   r   r6   ru   r   ©rZ   r”   r   r]   r•   r–   r˜   r�   s          r   Ú	test_tnc2zTestTnc.test_tnc2ç   s°   € Øœ 2 q '­b¬f¨W°d¨O¸cÀ4¸[Ð+IˆvˆAˆØ# SÐ)ˆåÔ% b¨!°FÝ/7¬}Ô/EØ-0ð2ñ 2ô 2‰	ˆˆ2ˆrõ 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤M¸Ø :Ý (¤Ô 7¸Ô ;ñ!<ð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r   c                 óD  — | j         ddgt          j         d gdd gf}}}ddg}t          j        |||t          j        j        d¬¦  «        \  }}}t          |                      |¦  «        |                      |¦  «        ddt          j        j	        |         z   ¬	¦  «         d S )
Nrx   r   ry   r   r   rª   r]   r•   r–   )
r,   r8   r`   r   r™   rš   r›   r   r&   rœ   r�   s          r   Ú	test_tnc3zTestTnc.test_tnc3ó   s¯   € Øœ 2 q '­b¬f¨W°d¨O¸cÀ4¸[Ð+IˆvˆAˆØ�1ˆvˆåÔ% b¨!°FÝ/7¬}Ô/EØ-0ð2ñ 2ô 2‰	ˆˆ2ˆrõ 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤M¸Ø :Ý (¤Ô 7¸Ô ;ñ!<ð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r   c                 ó&  — | j         ddgddg}}}ddg}t          j        |||t          j        j        d¬¦  «        \  }}}t          |                      |¦  «        |                      |¦  «        d	d
t          j        j        |         z   ¬¦  «         d S )Nr|   r}   r~   r   r   r   r   rª   r]   r•   r–   )r4   r   r™   rš   r›   r   r0   rœ   r�   s          r   Ú	test_tnc4zTestTnc.test_tnc4ÿ   s£   € Øœ 5¨% .°9¸iÐ2HˆvˆAˆØ�1ˆvˆåÔ% b¨!°FÝ/7¬}Ô/EØ-0ð2ñ 2ô 2‰	ˆˆ2ˆrõ 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤M¸Ø :Ý (¤Ô 7¸Ô ;ñ!<ð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r   c                 ó&  — | j         ddgddg}}}ddg}t          j        |||t          j        j        d¬¦  «        \  }}}t          |                      |¦  «        |                      |¦  «        dd	t          j        j        |         z   ¬
¦  «         d S )Nr   r‚   rƒ   r…   r†   r   rª   r]   r•   r–   )rB   r   r™   rš   r›   r   r:   rœ   r�   s          r   Ú	test_tnc5zTestTnc.test_tnc5  s¥   € Øœ 1 a &¨9°WÐ*=ˆvˆAˆØ$Ð&9Ð:ˆåÔ% b¨!°FÝ/7¬}Ô/EØ-0ð2ñ 2ô 2‰	ˆˆ2ˆrõ 	˜Ÿš ™
œ
 D§G¢G¨D¡M¤M¸Ø :Ý (¤Ô 7¸Ô ;ñ!<ð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r   c                 óR  — | j         t          j        g d¢¦  «        dgdz  }}}dgdz  }t          j        |||t          j        j        d¬¦  «        \  }}}t          |                      |¦  «        |                      |¦  «        ddt          j        j	        |         z   ¬	¦  «         d S )
Nr‰   r‹   rL   r   r   rª   r]   r•   r–   )
rI   r8   rn   r   r™   rš   r›   r   rE   rœ   r�   s          r   Ú
test_tnc38zTestTnc.test_tnc38  s³   € Øœ	¥2¤8Ð,<Ð,<Ð,<Ñ#=Ô#=À	¸{È1¹}ˆvˆAˆØˆs�1‰uˆåÔ% b¨!°FÝ/7¬}Ô/EØ-0ð2ñ 2ô 2‰	ˆˆ2ˆrõ 	˜Ÿš ™œ T§X¢X¨d¡^¤^¸$Ø :Ý (¤Ô 7¸Ô ;ñ!<ð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r   c                 ó*  — | j         dgdz  g d¢}}}g d¢}t          j        |||t          j        j        d¬¦  «        \  }}}t          |                      |¦  «        |                      |¦  «        ddt          j        j        |         z   ¬	¦  «         d S )
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Ø-0ð2ñ 2ô 2‰	ˆˆ2ˆrõ 	˜Ÿš ™œ T§X¢X¨d¡^¤^¸$Ø :Ý (¤Ô 7¸Ô ;ñ!<ð	=ñ 	=ô 	=ð 	=ð 	=ð 	=r   c                 óD  — d„ }d„ }d„ }t          j        t          ¦  «        5  t          j        |ddgd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  t          j        |ddgd|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	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  sO  € ð	)ð 	)ð 	)ð	%ð 	%ð 	%ð	)ð 	)ð 	)õ Œ]�<Ñ(Ô(ð 	<ð 	<ÝÔ˜f q¨! f°UÐ;Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<õ Œ]�:Ñ&Ô&ð 	ð 	ÝÔØ˜!˜Q˜¨¸ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s#   £A	Á	AÁAÁ-BÂBÂBc                 óB  — 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        ¦  «         d S )
Nc                 ó   — d S r!   r(   rº   s    r   r\   zDTestTnc.test_callback_shouldnt_affect_minimization.<locals>.callbackJ  s   € ØˆDr   )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ˆØ�˜Q‘ˆØˆ]ˆ]ˆÝÔØ�˜F¨5¸8ÀTÐ:Jð
ñ 
ô 
ˆõ Ô Ø�˜F¨5¸8ÀTÐ:JØð
ñ 
ô 
ˆõ 	˜œ ¤Ñ&Ô&Ð&Ý˜œ #¤'Ñ*Ô*Ð*Ý�T”Y ¤Ñ)Ô)Ð)Ð)Ð)r   Nr’   )+Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r"   r&   r*   r,   r0   r2   r4   r:   r@   rB   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ð 3ð 3ð
Fð Fð Fð Fðð ð ð ð,ð ,ð ,ð ,ð3ð 3ð 3ðð ð ð&ð &ð &ð/ð /ð /ðð ð ð&ð &ð &ð.ð .ð .ðð ð ð&ð &ð &ð=ð =ð =ð
ð 
ð 
ð(ð (ð (ð>ð >ð >ðð ð ð(ð (ð (ð
	*ð 	*ð 	*ð>ð >ð >ð>ð >ð >ð>ð >ð >ð>ð >ð >ð>ð >ð >ð>ð >ð >ð@ð @ð @ð@ð @ð @ð
=ð 
=ð 
=ð=ð =ð =ð=ð =ð =ð
=ð 
=ð 
=ð
=ð 
=ð 
=ð
=ð 
=ð 
=ð
=ð 
=ð 
=ð
=ð 
=ð 
=ð=ð =ð =ðð ð ð(*ð *ð *ð *ð *r   r	   )rË   rÀ   Únumpy.testingr   r   Únumpyr8   Úmathr   Úscipyr   r	   r(   r   r   ú<module>rÐ      sž   ððð ð €€€Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7à Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð ðL*ð L*ð L*ð L*ð L*ñ L*ô L*ð L*ð L*ð L*r   