§
    fŠtj  ã                   ó~   — d Z ddlZddlZddlmZmZmZ ddlm	Z	m
Z
mZmZmZ  G d„ d¦  «        Z G d„ d¦  «        ZdS )	z5
Unit tests for trust-region optimization routines.

é    N)Úassert_Úassert_equalÚassert_allclose)ÚminimizeÚrosenÚ	rosen_derÚ
rosen_hessÚrosen_hess_prodc                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚAccumulatorz This is for testing callbacks.c                 ó"   — d| _         d | _        d S )Nr   )ÚcountÚaccum©Úselfs    úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_trustregion.pyÚ__init__zAccumulator.__init__   s   € ØˆŒ
ØˆŒ
ˆ
ˆ
ó    c                 óŠ   — | xj         dz  c_         | j        €t          j        |¦  «        | _        d S | xj        |z  c_        d S )Né   )r   r   ÚnpÚarray)r   Úxs     r   Ú__call__zAccumulator.__call__   s?   € Øˆ
Œ
�a‰ˆ
Œ
ØŒ:ÐÝœ !™œˆDŒJˆJˆJàˆJŒJ˜!‰OˆJŒJˆJˆJr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   © r   r   r   r      s8   € € € € € Ø)Ð)ðð ð ðð ð ð ð r   r   c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚTestTrustRegionSolversc                 ó<   — ddg| _         ddg| _        ddg| _        d S )Ng      ð?g       @g333333ó¿)Úx_optÚ
easy_guessÚ
hard_guessr   s    r   Úsetup_methodz#TestTrustRegionSolvers.setup_method   s'   € Ø˜3�ZˆŒ
Ø ˜*ˆŒØ ˜+ˆŒˆˆr   c           
      ó  — | j         }t          t          |t          t          ddddi¬¦  «        }t          ||d         d         ¦  «         t          |d         |d         d	         ¦  «         t          |d         | j        ¦  «         d S )
Nç:Œ0âŽyE>ÚdoglegÚ
return_allT©ÚjacÚhessÚtolÚmethodÚoptionsÚallvecsr   r   éÿÿÿÿ)r%   r   r   r   r	   r   r#   ©r   Úx0Úrs      r   Útest_dogleg_accuracyz+TestTrustRegionSolvers.test_dogleg_accuracy!   s…   € àŒ_ˆÝ•U˜B¥IµJÀDØ$¨|¸TÐ.BðEñ Eô Eˆå˜˜A˜iœL¨œOÑ,Ô,Ð,Ý˜˜#œ  )¤¨RÔ 0Ñ1Ô1Ð1Ý˜˜#œ ¤
Ñ+Ô+Ð+Ð+Ð+r   c                 óš  — t          ¦   «         }d}t          t          | j        t          t
          |dd|dœ¬¦  «        }t          |j        |¦  «         t          t          |d         ¦  «        |dz   ¦  «         t          |d         |d         d	         ¦  «         t          t          |d         dd …         ¦  «        |j        ¦  «         d S )
Né   r)   T)r*   Úmaxiter)r,   r-   Úcallbackr/   r0   r1   r   r   r2   )r   r   r   r%   r   r	   r   r   Úlenr   Úsumr   )r   Úaccumulatorr9   r5   s       r   Útest_dogleg_callbackz+TestTrustRegionSolvers.test_dogleg_callback*   sÁ   € å!‘m”mˆØˆÝ•U˜DœOµÅØ)°(Ø,0¸WÐEÐEðHñ Hô Hˆõ 	�[Ô&¨Ñ0Ô0Ð0Ý•S˜˜9œÑ&Ô&¨°©	Ñ2Ô2Ð2Ý˜˜#œ  )¤¨RÔ 0Ñ1Ô1Ð1Ý�˜A˜iœL¨¨¨Ô,Ñ-Ô-¨{Ô/@ÑAÔAÐAÐAÐAr   c                 óÆ   — t          j        t          d¬¦  «        5  t          t          | j        t          t          ddddœ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzMaximum number of iterations)Úmatchr)   Tr   )Údispr9   )r,   r-   r/   r0   )ÚpytestÚwarnsÚRuntimeWarningr   r   r%   r   r	   r   s    r   Útest_dogleg_user_warningz/TestTrustRegionSolvers.test_dogleg_user_warning6   s´   € ÝŒ\�.Ø ?ðAñ Aô Að 	=ð 	=å•U˜DœOµÝ$¨XØ&*°qÐ9Ð9ð=ñ =ô =ð =ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   œ-AÁAÁAc                 óÆ  — t           }t          }t          }| j        | j        fD �];}t          ||||ddddi¬¦  «        }t          ||||ddddi¬¦  «        }t          ||||ddddi¬¦  «        }t          ||||ddddi¬¦  «        }t          ||||dd	ddi¬¦  «        }	t          | j        |d
         ¦  «         t          | j        |d
         ¦  «         t          | j        |d
         ¦  «         t          | j        |d
         ¦  «         t          | j        |	d
         ¦  «         t          t          |d         ¦  «        t          |d         ¦  «        k     ¦  «         �Œ=d S )Nr(   r)   r*   Tr+   ú	trust-ncgútrust-krylovz	newton-cgútrust-exactr   r1   )
r   r   r	   r$   r%   r   r   r#   r   r;   )
r   ÚfÚgÚhr4   Úr_doglegÚr_trust_ncgÚr_trust_krylovÚr_ncgÚr_iteratives
             r   Útest_solver_concordancez.TestTrustRegionSolvers.test_solver_concordance=   sº  € õ
 ˆÝˆÝˆØ”? D¤OÐ4ð 	Fñ 	FˆBÝ  2¨1°1¸$Ø'/¸,ÈÐ9MðOñ Oô OˆHå" 1 b¨a°a¸TØ*5Ø,8¸$Ð+?ðAñ Aô AˆKõ & a¨°¸ÀØ*8Ø,8¸$Ð+?ðAñ Aô AˆNõ ˜Q ¨°°tØ$/¸,ÈÐ9MðOñ Oô OˆEå" 1 b¨a°a¸TØ*7Ø,8¸$Ð+?ðAñ Aô AˆKõ ˜DœJ¨°¬Ñ6Ô6Ð6Ý˜DœJ¨°CÔ(8Ñ9Ô9Ð9Ý˜DœJ¨°sÔ(;Ñ<Ô<Ð<Ý˜DœJ¨¨c¬
Ñ3Ô3Ð3Ý˜DœJ¨°CÔ(8Ñ9Ô9Ð9Ý•C˜ Ô+Ñ,Ô,­s°5¸Ô3CÑ/DÔ/DÒDÑEÔEÐEÑEð'	Fð 	Fr   c           	      ó²   — | j         | j        | j        fD ]A}t          t          |t
          t          dd¬¦  «        }t          | j        |d         ¦  «         ŒBd S )Nr(   rG   )r,   Úhesspr.   r/   r   )r$   r%   r#   r   r   r   r
   r   r3   s      r   Útest_trust_ncg_hesspz+TestTrustRegionSolvers.test_trust_ncg_hesspZ   sb   € Ø”? D¤O°T´ZÐ@ð 	0ð 	0ˆBÝ� ­	½Ø!¨+ð7ñ 7ô 7ˆAå˜DœJ¨¨#¬Ñ/Ô/Ð/Ð/ð	0ð 	0r   c                 óŽ   — t          t          | j        t          t          dd¬¦  «        }t          | j        |d         ¦  «         d S )Nr(   rG   ©r4   r,   r-   r.   r/   r   ©r   r   r#   r   r	   r   ©r   r5   s     r   Útest_trust_ncg_start_in_optimumz6TestTrustRegionSolvers.test_trust_ncg_start_in_optimum`   sA   € Ý•U˜tœz­y½zØ kð3ñ 3ô 3ˆå˜œ
 A c¤FÑ+Ô+Ð+Ð+Ð+r   c                 óŽ   — t          t          | j        t          t          dd¬¦  «        }t          | j        |d         ¦  «         d S )Nr(   rH   rW   r   rX   rY   s     r   Ú"test_trust_krylov_start_in_optimumz9TestTrustRegionSolvers.test_trust_krylov_start_in_optimume   sA   € Ý•U˜tœz­y½zØ nð6ñ 6ô 6ˆå˜œ
 A c¤FÑ+Ô+Ð+Ð+Ð+r   c                 óŽ   — t          t          | j        t          t          dd¬¦  «        }t          | j        |d         ¦  «         d S )Nr(   rI   rW   r   rX   rY   s     r   Ú!test_trust_exact_start_in_optimumz8TestTrustRegionSolvers.test_trust_exact_start_in_optimumj   sA   € Ý•U˜tœz­y½zØ mð5ñ 5ô 5ˆå˜œ
 A c¤FÑ+Ô+Ð+Ð+Ð+r   N)r   r   r   r&   r6   r>   rE   rR   rU   rZ   r\   r^   r   r   r   r!   r!      s¡   € € € € € ð&ð &ð &ð
,ð ,ð ,ð
Bð 
Bð 
Bð=ð =ð =ðFð Fð Fð:0ð 0ð 0ð,ð ,ð ,ð
,ð ,ð ,ð
,ð ,ð ,ð ,ð ,r   r!   )r   rB   Únumpyr   Únumpy.testingr   r   r   Úscipy.optimizer   r   r   r	   r
   r   r!   r   r   r   ú<module>rb      sî   ððð ð €€€Ø Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ð-ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ð -ðð ð ð ð ñ ô ð ðS,ð S,ð S,ð S,ð S,ñ S,ô S,ð S,ð S,ð S,r   