§
    fŠtj«  ã                   ó†   — d Z ddlZddlmZ ddlmZmZmZm	Z	  edd¬¦  «        Z
 eddd¬	¦  «        Z G d
„ d¦  «        ZdS )z>
Unit tests for Krylov space trust-region subproblem solver.

é    N)Úget_trlib_quadratic_subproblem)Úassert_Úassert_almost_equalÚassert_equalÚassert_array_almost_equalg:Œ0âŽyE>ç�íµ ÷Æ°>)Ú	tol_rel_iÚ	tol_rel_bT)r	   r
   Údispc                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestKrylovQuadraticSubproblemc                 óÌ  ‡‡— t          j        g d¢g d¢g d¢g¦  «        Št          j        g d¢¦  «        Šd}t          dd„ ˆfd„d	„ ˆfd
„¬¦  «        }|                     |¦  «        \  }}t	          |t          j        g d¢¦  «        ¦  «         t          |d¦  «         t          t           j                             ‰ 	                    |¦  «        |j
        |z  z   ‰z   ¦  «        d¦  «         t          t           j                             |¦  «        |¦  «         d}|                     |¦  «        \  }}t	          |t          j        g d¢¦  «        ¦  «         t          |d¦  «         t          t           j                             ‰ 	                    |¦  «        |j
        |z  z   ‰z   ¦  «        d¦  «         t          t           j                             |¦  «        |¦  «         d S )N©ç      ð?ç        ç      @©r   g       @r   ©r   r   g      @)g      @r   r   r   r   c                 ó   — dS ©Nr   © ©Úxs    új/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_trustregion_krylov.pyú<lambda>zFTestKrylovQuadraticSubproblem.test_for_the_easy_case.<locals>.<lambda>   ó   € ¨€ ó    c                 ó   •— ‰S ©Nr   ©r   Úgs    €r   r   zFTestKrylovQuadraticSubproblem.test_for_the_easy_case.<locals>.<lambda>    ó   ø€ ¨€ r   c                 ó   — d S r   r   r   s    r   r   zFTestKrylovQuadraticSubproblem.test_for_the_easy_case.<locals>.<lambda>!   ó   € ¨$€ r   c                 ó.   •— ‰                      |¦  «        S r   ©Údot©r   ÚyÚHs     €r   r   zFTestKrylovQuadraticSubproblem.test_for_the_easy_case.<locals>.<lambda>"   ó   ø€ ¨a¯eªe°A©h¬h€ r   ©r   ÚfunÚjacÚhessÚhessp)ç      ð¿r   r   Tr   ç      à?)g�b5m1…Ý¿r   gpë�¬Ó³È¿)ÚnpÚarrayÚKrylovQPÚsolver   r   r   ÚlinalgÚnormr'   Úlam©ÚselfÚtrust_radiusÚsubprobÚpÚhits_boundaryr*   r!   s        @@r   Útest_for_the_easy_casez4TestKrylovQuadraticSubproblem.test_for_the_easy_case   så  øø€ õ ŒH�o�o�oØ%�o�oØ%�o�oð'ñ (ô (ˆõ ŒH�_�_�_Ñ%Ô%ˆð ˆõ ˜QØ*˜{Ø*˜{˜{˜{Ø . Ø!6Ð!6Ð!6Ð!6ð	8ñ 8ô 8ˆð
 #Ÿ=š=¨Ñ6Ô6Ñˆˆ=å! !¥R¤XÐ.>Ð.>Ð.>Ñ%?Ô%?Ñ@Ô@Ð@Ý�] DÑ)Ô)Ð)åÝ”	—’˜qŸušu Q™xœx¨'¬+¸©/Ñ9¸AÑ=Ñ>Ô>Øñ	ô 	ð 	õ 	�BœIŸNšN¨1Ñ-Ô-¨|Ñ<Ô<Ð<àˆØ"Ÿ=š=¨Ñ6Ô6Ñˆˆ=å! !Ý”Ð7Ð7Ð7Ñ8Ô8ñ	:ô 	:ð 	:å�] DÑ)Ô)Ð)åÝ”	—’˜qŸušu Q™xœx¨'¬+¸©/Ñ9¸AÑ=Ñ>Ô>Øñ	ô 	ð 	õ 	�BœIŸNšN¨1Ñ-Ô-¨|Ñ<Ô<Ð<Ð<Ð<r   c                 óŒ  ‡‡— t          j        g d¢g d¢g d¢g¦  «        Št          j        g d¢¦  «        Šd}t          dd„ ˆfd„d„ ˆfd	„¬
¦  «        }|                     |¦  «        \  }}t	          |t          j        g d¢¦  «        ¦  «         t          t           j                             ‰                     |¦  «        |j	        |z  z   ‰z   ¦  «        d¦  «         t          t           j                             |¦  «        |¦  «         d}|                     |¦  «        \  }}t	          |t          j        g d¢¦  «        ¦  «         t          t           j                             ‰                     |¦  «        |j	        |z  z   ‰z   ¦  «        d¦  «         t          t           j                             |¦  «        |¦  «         d S )Nr   r   r   r   r   c                 ó   — dS r   r   r   s    r   r   zFTestKrylovQuadraticSubproblem.test_for_the_hard_case.<locals>.<lambda>I   r   r   c                 ó   •— ‰S r   r   r    s    €r   r   zFTestKrylovQuadraticSubproblem.test_for_the_hard_case.<locals>.<lambda>J   r"   r   c                 ó   — d S r   r   r   s    r   r   zFTestKrylovQuadraticSubproblem.test_for_the_hard_case.<locals>.<lambda>K   r$   r   c                 ó.   •— ‰                      |¦  «        S r   r&   r(   s     €r   r   zFTestKrylovQuadraticSubproblem.test_for_the_hard_case.<locals>.<lambda>L   r+   r   r,   )r   r1   r   r   r2   )r   g      à¿r   )
r3   r4   r5   r6   r   r   r7   r8   r'   r9   r:   s        @@r   Útest_for_the_hard_casez4TestKrylovQuadraticSubproblem.test_for_the_hard_case;   s¾  øø€ õ ŒH�o�o�oØ%�o�oØ%�o�oð'ñ (ô (ˆõ ŒH�_�_�_Ñ%Ô%ˆð ˆõ ˜QØ*˜{Ø*˜{˜{˜{Ø . Ø!6Ð!6Ð!6Ð!6ð	8ñ 8ô 8ˆð
 #Ÿ=š=¨Ñ6Ô6Ñˆˆ=å! !¥R¤XÐ.>Ð.>Ð.>Ñ%?Ô%?Ñ@Ô@Ð@åÝ”	—’˜qŸušu Q™xœx¨'¬+¸©/Ñ9¸AÑ=Ñ>Ô>Øñ	ô 	ð 	õ 	�BœIŸNšN¨1Ñ-Ô-¨|Ñ<Ô<Ð<àˆØ"Ÿ=š=¨Ñ6Ô6Ñˆˆ=å! !¥R¤XÐ.>Ð.>Ð.>Ñ%?Ô%?Ñ@Ô@Ð@åÝ”	—’˜qŸušu Q™xœx¨'¬+¸©/Ñ9¸AÑ=Ñ>Ô>Øñ	ô 	ð 	õ 	�BœIŸNšN¨1Ñ-Ô-¨|Ñ<Ô<Ð<Ð<Ð<r   c                 óÈ  ‡‡— t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        Št          j        g d¢¦  «        Šd}t          dd	„ ˆfd
„d„ ˆfd„¬¦  «        }|                     |¦  «        \  }}t	          t           j                             ‰                     |¦  «        |j        |z  z   ‰z   ¦  «        d¦  «         t          |g d¢¦  «         t          |d¦  «         d S )N)gÛn‚ošþü?ç�ž¶¡½uê?ç,wnó)ôË?ç”/ËK¼Ëà¿çÿëš˜GÐ?)rH   gì¼®ÛwO@çÙ¢y¾n*Ô?çr–<8±Ù¿çõ¶Û&ÃŽ¶?)rI   rL   gÓ6›ª
@çøòÄ½CÔ¿ç8Š¤ÄKƒÑ?)rJ   rM   rO   gÀc‘‰èù?çò†«>øÚ¿)rK   rN   rP   rQ   gÂ-£Qõ?)g*‹ã<sAè?g³¢¼E�?gM x¾—©Õ?gzý‹˜ÀÊê?gôÒ=€©Þ¿çš™™™™™ñ?r   c                 ó   — dS r   r   r   s    r   r   zMTestKrylovQuadraticSubproblem.test_for_interior_convergence.<locals>.<lambda>n   r   r   c                 ó   •— ‰S r   r   r    s    €r   r   zMTestKrylovQuadraticSubproblem.test_for_interior_convergence.<locals>.<lambda>o   r"   r   c                 ó   — d S r   r   r   s    r   r   zMTestKrylovQuadraticSubproblem.test_for_interior_convergence.<locals>.<lambda>p   r$   r   c                 ó.   •— ‰                      |¦  «        S r   r&   r(   s     €r   r   zMTestKrylovQuadraticSubproblem.test_for_interior_convergence.<locals>.<lambda>q   r+   r   r,   r   )g8bÒ„òå¿gåO
©‘L¿?g p4OÇFÌ¿g� Ïqå¿g­oš-7Ô?F©
r3   r4   r5   r6   r   r7   r8   r'   r9   r   r:   s        @@r   Útest_for_interior_convergencez;TestKrylovQuadraticSubproblem.test_for_interior_convergenceb   s6  øø€ åŒHÐQÐQÐQØSÐSÐSØRÐRÐRØUÐUÐUØSÐSÐSð	Uñ Vô Vˆõ
 ŒHÐRÐRÐRÑSÔSˆØˆõ ˜QØ*˜{Ø*˜{˜{˜{Ø . Ø!6Ð!6Ð!6Ð!6ð	8ñ 8ô 8ˆð
 #Ÿ=š=¨Ñ6Ô6Ñˆˆ=õ 	Ý”	—’˜qŸušu Q™xœx¨'¬+¸©/Ñ9¸AÑ=Ñ>Ô>Øñ	ô 	ð 	õ 	" !ð &?ð &?ð &?ñ 	@ô 	@ð 	@å! -°Ñ7Ô7Ð7Ð7Ð7r   c                 ó"  ‡‡— t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        Št          j        g d¢¦  «        Šd}t          dd	„ ˆfd
„d„ ˆfd„¬¦  «        }|                     |¦  «        \  }}t	          t           j                             ‰                     |¦  «        |j        |z  z   ‰z   ¦  «        d¦  «         t	          t           j                             |¦  «        |¦  «         t          |g d¢¦  «         t          |d¦  «         d S )N)gÝVaÐUì?çø˜›±`A@ç5“ýF€ï?çÔ9Ô)n@é¿ç€îcñÑ¿)rZ   gµÚ{ú¥§¿ç.<íøÕ?ç~õýÏËê¿çÔ:]³èÅ?)r[   r^   g@33ôë¿ç �5Ð:²°¿ç¦ä¤IŒâö¿)r\   r_   ra   gÐ¹ÛõÒTú¿ç¦F¦K°Õ¿)r]   r`   rb   rc   g¬¢&—Rùú¿©r   r   r   r   r   rR   r   c                 ó   — dS r   r   r   s    r   r   zKTestKrylovQuadraticSubproblem.test_for_very_close_to_zero.<locals>.<lambda>‰   r   r   c                 ó   •— ‰S r   r   r    s    €r   r   zKTestKrylovQuadraticSubproblem.test_for_very_close_to_zero.<locals>.<lambda>Š   r"   r   c                 ó   — d S r   r   r   s    r   r   zKTestKrylovQuadraticSubproblem.test_for_very_close_to_zero.<locals>.<lambda>‹   r$   r   c                 ó.   •— ‰                      |¦  «        S r   r&   r(   s     €r   r   zKTestKrylovQuadraticSubproblem.test_for_very_close_to_zero.<locals>.<lambda>Œ   r+   r   r,   r   )g÷iG7ã°±?glµ$“•W�¿gÀü€ÍZæä¿g-ðOˆ|Î¿g¦mô‚/ë¿TrW   r:   s        @@r   Útest_for_very_close_to_zeroz9TestKrylovQuadraticSubproblem.test_for_very_close_to_zero}   sS  øø€ åŒHÐTÐTÐTØTÐTÐTØUÐUÐUØUÐUÐUØVÐVÐVð	Xñ Yô Yˆõ
 ŒHÐ'Ð'Ð'Ñ(Ô(ˆØˆõ ˜QØ*˜{Ø*˜{˜{˜{Ø . Ø!6Ð!6Ð!6Ð!6ð	8ñ 8ô 8ˆð
 #Ÿ=š=¨Ñ6Ô6Ñˆˆ=õ 	Ý”	—’˜qŸušu Q™xœx¨'¬+¸©/Ñ9¸AÑ=Ñ>Ô>Øñ	ô 	ð 	õ 	�BœIŸNšN¨1Ñ-Ô-¨|Ñ<Ô<Ð<å! !ð &3ð &3ð &3ñ 	4ô 	4ð 	4õ 	" -°Ñ6Ô6Ð6Ð6Ð6r   c                 óZ  ‡‡	— t          j        d¦  «         Št          j        g d¢¦  «        Š	d}t          dd„ ˆ	fd„d„ ˆfd„¬	¦  «        }|                     |¦  «        \  }}|                     ¦   «         \  }}t          |                     d
¦  «        t          |¦  «        ¦  «         d S )Né   rd   rR   r   c                 ó   — dS r   r   r   s    r   r   z9TestKrylovQuadraticSubproblem.test_disp.<locals>.<lambda>¡   s   € ¨a€ r   c                 ó   •— ‰S r   r   r    s    €r   r   z9TestKrylovQuadraticSubproblem.test_disp.<locals>.<lambda>¢   s   ø€ ¨a€ r   c                 ó   — d S r   r   r   s    r   r   z9TestKrylovQuadraticSubproblem.test_disp.<locals>.<lambda>£   s   € ¨t€ r   c                 ó.   •— ‰                      |¦  «        S r   r&   r(   s     €r   r   z9TestKrylovQuadraticSubproblem.test_disp.<locals>.<lambda>¤   s   ø€ °1·5²5¸±8´8€ r   r,   z  TR Solving trust region problem)	r3   Úeyer4   ÚKrylovQP_dispr6   Ú
readouterrr   Ú
startswithÚrepr)
r;   Úcapsysr<   r=   r>   r?   ÚoutÚerrr*   r!   s
           @@r   Ú	test_dispz'TestKrylovQuadraticSubproblem.test_disp›   s¹   øø€ ÝŒV�A‰YŒYˆJˆÝŒHÐ'Ð'Ð'Ñ(Ô(ˆØˆå !Ø$/ KØ$/ K K KØ%3 ^Ø&;Ð&;Ð&;Ð&;ð	=ñ =ô =ˆð
 #Ÿ=š=¨Ñ6Ô6Ñˆˆ=Ø×$Ò$Ñ&Ô&‰ˆˆSÝ�—’ÐAÑBÔBÅDÈÁIÄIÑNÔNÐNÐNÐNr   N)Ú__name__Ú
__module__Ú__qualname__r@   rF   rX   ri   rx   r   r   r   r   r      sf   € € € € € ð(=ð (=ð (=ðT%=ð %=ð %=ðN8ð 8ð 8ð67ð 7ð 7ð<Oð Oð Oð Oð Or   r   )Ú__doc__Únumpyr3   Úscipy.optimize._trlibr   Únumpy.testingr   r   r   r   r5   rq   r   r   r   r   ú<module>r€      sò   ððð ð Ð Ð Ð Ø BÐ BÐ BÐ BÐ BÐ BðDð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð *Ð)°DÀDÐIÑIÔI€Ø.Ð.¸ÈØ48ð:ñ :ô :€ðXOð XOð XOð XOð XOñ XOô XOð XOð XOð XOr   