403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.37
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/scipy/optimize/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/scipy/optimize/tests/__pycache__/test_optimize.cpython-311.pyc
�

d�c���
��dZddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZddl
Z
ddl
mZddlmZddlmZmZddlmZmZddlmZdd	lmZdd
lmZddlmZddlm Z m!Z!dd
l"m#Z#m$Z$d�Z%Gd�d��Z&Gd�de&��Z'd�Z(d�Z)d�Z*d�Z+d�Z,d�Z-d�Z.d�Z/d�Z0Gd�de'��Z1Gd�de'��Z2Gd �d!e'��Z3Gd"�d#e'��Z4Gd$�d%e&��Z5e
j6�7d&gd'���d(���Z8Gd)�d*��Z9Gd+�d,��Z:d-�Z;Gd.�d/��Z<d0�Z=d1�Z>d2�Z?d3�Z@Gd4�d5��ZAd6�ZBd7�ZCd8�ZDd9d:gZEd;d<gZFd=ZGd>�ZHGd?�d@��ZIdA�ZJdB�ZKdC�ZLdD�ZMGdE�dF��ZNdG�ZOGdH�dI��ZPdJ�ZQGdK�dL��ZRe
jSdM���ZTdN�ZUdO�ZVdP�ZWdQ�ZXdR�ZYeY��ZZe
j6�[dS��e
j6�7d&eZdT��e
j6�7dUeZdU��e
j6�7dVeZdW��e
j6�7dXeZdX��e
j6�7dYeZdZ��d[�������������Z\e
j6�7d&eZdT��d\���Z]d]�Z^d^�Z_d_�Z`d`�ZaGda�db��Zbdc�Zcdd�ZddS)ez�
Unit tests for optimization routines from optimize.py

Authors:
   Ed Schofield, Nov 2005
   Andrew Straw, April 2008

To run it in its simplest form::
  nosetests test_optimize.py

�N)�assert_allclose�assert_equal�assert_almost_equal�assert_no_warnings�assert_warns�assert_array_less�suppress_warnings)�raises)�optimize)�Bounds�NonlinearConstraint)�MINIMIZE_METHODS�MINIMIZE_SCALAR_METHODS)�LINPROG_METHODS)�ROOT_METHODS)�ROOT_SCALAR_METHODS)�QUADRATIC_ASSIGNMENT_METHODS)�ScalarFunction�
FD_METHODS)�
MemoizeJac�show_optionsc
�v�d�}d�}tjdg��}tj|||��}t	|d��tj|||dd���}t	|d��tj|||d�	��}t	|d��tj|||ddd�
��}t	|d��ttj|||d�	��dz
��}|dksJ�ttj|||ddd�
��dz
��}|dksJ�d
�}d�}tjddd��}tj|||dd���}t	|d��tttj|||dd���tjtttdd���}|dksJ�dS)Nc�8�ddtj|��zzS�N���np�exp��xs �D/usr/lib/python3/dist-packages/scipy/optimize/tests/test_optimize.py�expitztest_check_grad.<locals>.expit%s���A����r�
�
�N�#�#�c�d�tj|��dtj|��zdzzS�Nr�rrs r!�	der_expitz"test_check_grad.<locals>.der_expit(s*���v�q�b�z�z�Q�������^�a�/�/�/r#��?r�random��)�	direction�seed���ư>)�epsilon)r.r+r,皙�����?�H�����z>c�T�|tj|��z���S�N)r�sin�sumrs r!�x_sinxztest_check_grad.<locals>.x_sinx@s ���"�&��)�)�� � �"�"�"r#c�Z�tj|��|tj|��zzSr2�rr3�cosrs r!�
der_x_sinxz#test_check_grad.<locals>.der_x_sinxCs!���v�a�y�y�1�R�V�A�Y�Y�;�&�&r#r&皙�����?�random_projection�allg���Ơ>)r�arrayr�
check_gradr�abs�arange�
assert_raises�
ValueError�himmelblau_grad�himmelblau_hess�
himmelblau_x0)r"r'�x0�rr5r9s      r!�test_check_gradrH!s%��$�$�$�0�0�0�
��3�%���B���E�9�b�1�1�A���1������E�9�b�&.�T�	;�	;�	;�A���1������E�9�b�$�?�?�?�A���1������E�9�b�$�&.�T�	;�	;�	;�A���1����	�H���y�"�d�C�C�C�a�G�H�H�A��t�8�8�8�8��H���y�"�d�*2��
?�
?�
?�AB�
C�	D�	D�A��t�8�8�8�8�#�#�#�'�'�'�
��1�a��	�	�B���F�J��&.�T�	;�	;�	;�A���1�����*�h�1��*�b�/�d�<�<�<�<�
	��O�_�m�&+�$�	8�	8�	8�A��t�8�8�8�8�8�8r#c�0�eZdZdZd�Zd�Zd�Zd�Zd�ZdS)�
CheckOptimizez� Base test case for a simple constrained entropy maximization problem
    (the machine translation example of Berger et al in
    Computational Linguistics, vol 22, num 1, pp 39--72, 1996.)
    c�B�tjgd�gd�gd�gd�gd�g��|_tjgd���|_tjdtj��|_tjgd���|_d|_d	|_	d	|_
g|_dS)
N�rrr)rrr)rrr)rrr)��?�333333�?��?�)�g��\����g��)��3�?��r)rr=�F�K�zeros�float64�startparams�solution�maxiter�	funccalls�	gradcalls�trace��selfs r!�setup_methodzCheckOptimize.setup_method\s�����9�9�9�$�9�9�$�9�9�$�9�9�$�9�9�	&�'�'���
��.�.�.�)�)����8�A�r�z�2�2�����!@�!@�!@�A�A��
������������
�
�
r#c��|xjdz
c_|jdkrtd���tj|j|��}tjt
tj|������}|tj|j|��z
}|j	�
tj|����|S)Nripz+too many iterations in optimization routine)rZ�RuntimeErrorr�dotrS�logr4rrTr\�append�copy)r^r �log_pdot�logZ�fs     r!�funczCheckOptimize.funcjs������!�����>�D� � ��L�M�M�M��6�$�&�!�$�$���v�c�"�&��*�*�+�+�,�,���2�6�$�&�!�$�$�$���
���"�'�!�*�*�%�%�%��r#c�R�|xjdz
c_tj|j|��}tjttj|������}tj||z
��}tj|j���|��|jz
Sr)	r[rrbrSrcr4r�	transposerT�r^r rfrg�ps     r!�gradzCheckOptimize.gradts������!�����6�$�&�!�$�$���v�c�"�&��*�*�+�+�,�,���F�8�d�?�#�#���v�d�f�&�&�(�(�!�,�,�t�v�5�5r#c��tj|j|��}tjt	tj|������}tj||z
��}tj|jjtjtj|��|jtj|jj|��z
����Sr2)rrbrSrcr4r�T�diagrls     r!�hesszCheckOptimize.hess{s����6�$�&�!�$�$���v�c�"�&��*�*�+�+�,�,���F�8�d�?�#�#���v�d�f�h��f�R�W�Q�Z�Z���"�&����1�2E�2E�)E�F�F�H�H�	Hr#c�R�tj|�|��|��Sr2)rrbrr�r^r rms   r!�hesspzCheckOptimize.hessp�s���v�d�i�i��l�l�A�&�&�&r#N)	�__name__�
__module__�__qualname__�__doc__r_rirnrrru�r#r!rJrJVsl��������
������6�6�6�H�H�H�'�'�'�'�'r#rJc��eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	j
�d���d	���Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�ZdS)�CheckOptimizeParameterizedc
��|jre|j|jdd�}tj|j|jdd|j|���}|d|d|d|d	|d
f\}}}}}n=tj|j|j|jd|jd|jd���}|\}}}}}t|�|��|�|j
��d
���|jdksJ|j���|jdksJ|j���t|j
dd�gd�gd�gdd���dS)NF�rY�disp�
return_allrz�CG)�args�method�jac�optionsr �fun�nfev�njev�statusT)rY�full_outputr�retallr-��atol�	�r&�)r��rO)rg�;ӱ.�g)`$|;��?�+����=r0�r��rtol)�use_wrapperrYrr�minimizerirWrn�fmin_cgrrXrZr[r\)	r^�opts�res�params�fopt�
func_calls�
grad_calls�warnflag�retvals	         r!�test_cgz"CheckOptimizeParameterized.test_cg�s�����
	F�#�|�T�Y�"'�)�)�D��#�D�I�t�/?�b�+/�T�Y�,0�2�2�2�C��C��#�e�*�c�&�k�3�v�;��H�
�M�
;�F�D�*�j�(�(��%�d�i��1A�&*�i��T�\�26�T�Y�-2�4�4�4�F�@F�<�V�T�:�z�8���	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�
�~��"�"�"�D�N�"�"�"��~��"�"�"�D�N�"�"�"�	��
�1�Q�3��'���=�=�=�?�"��	/�	/�	/�	/�	/�	/r#c��d�}tjddd��D];}tj||gd���}|jsJ�t|jdgd�	���<dS)
Nc�H�ddtjd|dz
z��z
dzzS)Ng@r���rOr&r)rGs r!rhz8CheckOptimizeParameterized.test_cg_cornercase.<locals>.f�s)���!�b�f�T�1�s�7�^�4�4�4�q�8�8�8r#g�rP�Gr��r�rO��h㈵��>�r�)r�linspacerr��successrr )r^rhrF�sols    r!�test_cg_cornercasez-CheckOptimizeParameterized.test_cg_cornercase�s}��	9�	9�	9�
�+�e�Q��+�+�	5�	5�B��#�A��t�D�9�9�9�C��;�����C�E�C�5�t�4�4�4�4�4�	5�	5r#c
��|jru|j|jdd�}tj|j|j|jdd|���}|d|d|d|d	|d
|d|df\}}}}}}}	n?tj|j|j|jd|jd
|jd���}
|
\}}}}}}}	t|�|��|�|j
��d���|jdksJ|j���|jdksJ|j���t|j
dd�gd�gd�gdd���dS)NFr~�BFGSrz�r�r�r�r�r r�r��hess_invr�r�r�T�r�rYr�rr�r-r��
��)rg�&�/L��gB_
_E7�?)rg$�����g�
|�3�?r�r0r�)r�rYrrr�rirWrn�	fmin_bfgsrrXrZr[r\)r^r�r�r�r��gopt�Hoptr�r�r�r�s           r!�	test_bfgsz$CheckOptimizeParameterized.test_bfgs�s�����	8�#�|�T�Y�"'�)�)�D��#�D�I�t�/?�(,�	�&�r�,0�2�2�2�C�
��H�c�%�j�#�e�*�c�*�o���K��V��c�(�m�J=�F�F�D�$��j�*�h�h��'��	�4�3C�T�Y�-/���48�t�y�/4�6�6�6�F�
28�
/�V�T�4��
��X���	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�
�~��#�#�#�T�^�#�#�#��~��"�"�"�D�N�"�"�"�	��
�1�Q�3��=�=�=�=�=�=�?�"��	/�	/�	/�	/�	/�	/r#c	�V��d���fd�}dg}tjd���5|jr*d|ji}t	j�||dd|�	��d
}nt	j�|||j���}tj�|����rJ�	ddd��dS#1swxYwYdS)Nc�$�tj|zSr2)r�ers r!�<lambda>z?CheckOptimizeParameterized.test_bfgs_infinite.<locals>.<lambda>�s��"�$���(��r#c����|��Sr2rz)r ris �r!r�z?CheckOptimizeParameterized.test_bfgs_infinite.<locals>.<lambda>�s���D�D��G�G�8�r#r�ignore)�overrr�rzr�r �r)r�errstater�rrr�r��isfinite)r^�fprimerFr�r ris     @r!�test_bfgs_infinitez-CheckOptimizeParameterized.test_bfgs_infinite�s���"�"��#�#�#�#���S��
�[�h�
'�
'�
'�	,�	,���
I���	�*���%�d�B�F�6�+-�t�=�=�=�=@�B����&�t�R��d�i�H�H�H���{�4�4��7�7�+�+�+�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,s�A.B�B"�%B"c���gd�}tjtj|dddi���}tjtj|dddi���}|j|jksJ�dS)N�g�������?�ffffff�?皙�����?�ffffff�?�333333�?�bfgs�xrtol���MbP?�r�r��gtol)rr��rosen�nit)r^rFr��refs    r!�test_bfgs_xrtolz*CheckOptimizeParameterized.test_bfgs_xrtol�sz��
&�
&�
&������ "�6�G�T�?�L�L�L������ "�6�F�D�>�K�K�K���w�#�'�!�!�!�!�!�!r#c	��|jrg|j|jdd�}tj|j|jdd|���}|d|d|d|d	|d
|df\}}}}}}n8tj|j|jd|jd|jd�
��}	|	\}}}}}}t|�|��|�|j	��d���t|dd�|j	dd�d���|j
dksJ|j
���|jdksJ|j���dS)NFr~rz�Powell�r�r�r�r r��direcr�r�r�Tr�r-r�r��h㈵��>�r)r�rYrrr�rirW�fmin_powellrrXrZr[�
r^r�r�r�r�r��numiterr�r�r�s
          r!�test_powellz&CheckOptimizeParameterized.test_powell�s|����
	J�#�|�T�Y�"'�)�)�D��#�D�I�t�/?�b�+3�T�C�C�C�C���H�c�%�j�#�g�,��E�
���K��X��B0�>�F�D�%��*�h�h��)�$�)�T�5E�/1�4�<�6:���16�8�8�8�F�DJ�@�V�T�5�'�:�x���	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�	��q�r�r�
�D�M�!�"�"�$5�D�A�A�A�A��~��)�)�)�4�>�)�)�)��~��"�"�"�D�N�"�"�"�"�"r#zeThis part of test_powell fails on some platforms, but the solution returned by powell is still valid.��reasonc	��|jrg|j|jdd�}tj|j|jdd|���}|d|d|d|d	|d
|df\}}}}}}n8tj|j|jd|jd|jd�
��}	|	\}}}}}}t|j	dd�gd�gd�gd�gd�gd�gdd���dS)NFr~rzr�r�r r�r�r�r�r�Tr��"�')病~��W�?��f"�Bܿg���%�?)r�r�g:&���?)g�Sϼ�W�?g�f"�B�g{�å�r�?)r�r��{�å�r�?)g�B����?r�r�r�r0r�)
r�rYrrr�rirWr�rr\r�s
          r!�test_powell_gh14014z.CheckOptimizeParameterized.test_powell_gh14014
sD����
	J�#�|�T�Y�"'�)�)�D��#�D�I�t�/?�b�+3�T�C�C�C�C���H�c�%�j�#�g�,��E�
���K��X��B0�>�F�D�%��*�h�h��)�$�)�T�5E�/1�4�<�6:���16�8�8�8�F�DJ�@�V�T�5�'�:�x�	��
�2�b�5�)�>�>�>�>�>�>�>�>�>�>�>�>�>�>�>�	@�
#��
	/�	/�	/�	/�	/�	/r#c���d�|jD��}|jr�|j|jdd�}t	j|j|jd|d|���}|d|d|d	|d
|d|df\}}}}}}	||jksJ�t|�|��|�|j	��d
d���|jdksJ�|j
dksJ�dSdS)Nc�@�g|]}tjtjf��Srz)r�pi)�.0�_s  r!�
<listcomp>zBCheckOptimizeParameterized.test_powell_bounded.<locals>.<listcomp>3s"��<�<�<�a�B�E�6�2�5�/�<�<�<r#Fr~rzr�)r��boundsr�r�r r�r�r�r�r�r-r�r��r)rWr�rYrrr�rirZrrXr[)
r^r�r�r�r�r�r�r�r�r�s
          r!�test_powell_boundedz.CheckOptimizeParameterized.test_powell_bounded0s0��=�<�4�+;�<�<�<����	'�#�|�T�Y�"'�)�)�D��#�D�I�t�/?�b�+1�+3�T�C�C�C�C���H�c�%�j�#�g�,��E�
���K��X��B0�>�F�D�%��*�h����/�/�/�/��D�I�I�f�-�-�t�y�y���/G�/G�!%�D�
2�
2�
2�
2��>�X�-�-�-�-��>�Q�&�&�&�&�+	'�	'�*'�&r#c	�n�|jr_|j|jdd�}tj|j|jdd|���}|d|d|d|d	|d
f\}}}}}n7tj|j|jd|jd|jd���}|\}}}}}t|�|��|�|j	��d
���|j
dksJ|j
���|jdksJ|j���t|jdd�gd�gd�gdd���dS)NFr~rz�Nelder-meadr�r r�r�r�r�Tr�r-r��r�L�N)g	d��װ�?g��]f��gt��䝁�?)gә ��
�?g��#=^�g��oT���?r�r0r�)
r�rYrrr�rirW�fminrrXrZr[r\)	r^r�r�r�r�r�r�r�r�s	         r!�test_neldermeadz*CheckOptimizeParameterized.test_neldermeadKs�����
	C�#�|�T�Y�"'�)�)�D��#�D�I�t�/?�b�+8�$�H�H�H�C���H�c�%�j�#�e�*�c�&�k���M�;#�7�F�D�'�:�x�x��]�4�9�d�.>�(*�D�L�/3�$�)�*/�1�1�1�F�=C�9�V�T�7�J����	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�
�~��$�$�$�d�n�$�$�$��~��"�"�"�D�N�"�"�"�	��
�2�b�5�)�=�=�=�>�>�>�@�"��	/�	/�	/�	/�	/�	/r#c
�,�tjd��}|j|d<td��D]}||dz|fxxdz
cc<�|jr}|jdd|d�}t
j|j|jd	d
|���}|d|d
|d|d|df\}}}}}	t|dd|d��n3t
j
|j|jd	|jddd|���}
|
\}}}}}	t|�|��|�|j��d���|jdksJ|j���|j
dksJ|j
���t|jdd�gd�gd�gdd���dS)N)r�rP.rPrr/FT�rYrr��initial_simplexrzr�r�r r�r�r�r��allvecsr�r�rYr�rr�r�r-r��d�2�4)g�It����?g�?'ΛT�gx�8���?)g�Ң_׆�?g�oM��g囎|52�?r�r0r�)rrUrW�ranger�rYrr�rirr�rXrZr[r\)r^�simplex�jr�r�r�r�r�r�r�r�s           r!�test_neldermead_initial_simplexz:CheckOptimizeParameterized.test_neldermead_initial_simplexjs����(�6�"�"���'�����q���	#�	#�A��A�a�C��F�O�O�O�s�"�O�O�O�O���	C�#�|�U�"&�7�D�D�D��#�D�I�t�/?�b�+8�$�H�H�H�C�;>�s�8�;>�u�:�;>�u�:�;>�v�;�;>�x�=�	;J�7�F�D�'�:�x�

�C�	�N�1�-�w�q�z�:�:�:�:��]�4�9�d�.>�(*�D�L�/3�%��3:�<�<�<�F�
=C�9�V�T�7�J����	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�
�~��$�$�$�d�n�$�$�$��~��"�"�"�D�N�"�"�"�	��
�2�b�5�)�=�=�=�=�=�=�?�"��	/�	/�	/�	/�	/�	/r#c
��g}tjd��}|jdd�|d<td��D]}||dz|fxxdz
cc<�|�|��tjd��}|�|��|D]|}|jr<|jdd|d�}tttj
|j|jd	d
|����Etttj|j|jd	|jddd|�
�
�
�}dS)N)rPr&r&.rr/)rPrPFr�rzr�r�Tr�)
rrUrWr�rdr�rYrArBrr�rir�)r^�
bad_simplicesr�rr�s     r!�#test_neldermead_initial_simplex_badz>CheckOptimizeParameterized.test_neldermead_initial_simplex_bad�sL���
��(�6�"�"���'����+�����q���	#�	#�A��A�a�C��F�O�O�O�s�"�O�O�O�O����W�%�%�%��(�6�"�"�����W�%�%�%�$�	7�	7�G���
7�#'�<��&+��I�I���j�&�/�"�i�"�.�#%�%2�&*�
,�,�,�,�,��j�(�-�"�i��)9�#%�t�|�*.�U�5�.5�	7�7�7�7�7�	7�	7r#c�z�ddi}tj|j|jd|jd|���}|jdksJ�dS)NrY����	Newton-CGrz�r�r�r�r�r)rr�rirWrnr�)r^r��results   r!�test_ncg_negative_maxiterz4CheckOptimizeParameterized.test_ncg_negative_maxiter�sR���2����"�4�9�d�.>�*5�4�9�(*�D�:�:�:���}��!�!�!�!�!�!r#c
�0�|jr@|j|jdd�}tj|j|jd|jd|���d}n5tj|j|j|jd|jd|jd���}|}t|�|��|�|j
��d�	��|jd
ksJ|j���|jdksJ|j���t|j
dd
�gd�gd�gdd���dS)NFr~rrzrr r�r-r�r��rP���(�6-H=��g�?����g4�u�3�?�rg_����g�/N��3�?r0r�)r�rYrrr�rirWrn�fmin_ncgrrXrZr[r\�r^r�r�r�s    r!�test_ncgz#CheckOptimizeParameterized.test_ncg�sZ����
	5�#�|�T�Y�"'�)�)�D��&�t�y�$�2B�.9�t�y�,.��>�>�>�>A�C�F�F��&�t�y�$�2B�D�I�,.���38�t�y�.3�5�5�5�F�
����	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�
�~��"�"�"�D�N�"�"�"��~��#�#�#�T�^�#�#�#�	��
�1�Q�3��K�K�K�K�K�K�M�!��	.�	.�	.�	.�	.�	.r#c�H�|jrF|j|jdd�}tj|j|jd|j|jd|���d}n;tj	|j|j|j|jd|jd|jd��	�	}|}t|�|��|�|j��d�	��|jd
ksJ|j���|j
dksJ|j
���t|jdd
�gd�gd�gdd���dS)NFr~rrz)r�r�rrr�r�r )�fhessr�rYr�rr�r-r�r��rPr
rrr0r�)r�rYrrr�rirWrnrrrrrXrZr[r\rs    r!�
test_ncg_hessz(CheckOptimizeParameterized.test_ncg_hess�sg����	5�#�|�T�Y�"'�)�)�D��&�t�y�$�2B�.9�t�y�,0�I�,.��>�>�>�?B�C�F�F�
�&�t�y�$�2B�D�I�-1�Y�,.���38�t�y�.3�	5�5�5�F�����	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�
�~��"�"�"�D�N�"�"�"��~��#�#�#�T�^�#�#�#�
	��
�1�Q�3��K�K�K�K�K�K�M�!��	.�	.�	.�	.�	.�	.r#c�H�|jrF|j|jdd�}tj|j|jd|j|jd|���d}n;tj	|j|j|j|jd|jd|jd��	�	}|}t|�|��|�|j��d�	��|jd
ksJ|j���|j
dksJ|j
���t|jdd
�gd�gd�gdd���dS)NFr~rrz)r�r�rur�r�r )�fhess_pr�rYr�rr�r-r�r�rrPr
rrr0r�)r�rYrrr�rirWrnrurrrXrZr[r\rs    r!�test_ncg_hesspz)CheckOptimizeParameterized.test_ncg_hessp�sg����	5�#�|�T�Y�"'�)�)�D��&�t�y�$�2B�.9�t�y�-1�Z�,.��>�>�>�?B�C�F�F�
�&�t�y�$�2B�D�I�/3�z�,.���38�t�y�.3�	5�5�5�F�����	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�
�~��"�"�"�D�N�"�"�"��~��#�#�#�T�^�#�#�#�
	��
�1�Q�3��K�K�K�K�K�K�M�!��	.�	.�	.�	.�	.�	.r#N)rvrwrxr�r�r�r�r�r��pytest�mark�xfailr�r�r�rrr
rrrrzr#r!r|r|�s$������/�/�/�>	5�	5�	5� /� /� /�D,�,�,�"�"�"� 3� 3� 3�D�[���&��'�'�/�/�'�'�/�@'�'�'�6/�/�/�>&/�&/�&/�P7�7�7�>"�"�"�.�.�.�B .� .� .�D .� .� .� .� .r#r|c	����tj�d����fd�}dD]B}dD]=}tj|��d��|d|i���}|d|ksJ��>�CdS)	Nl	�<vg�R�I*q4�c�4����d��dzS�NrrR�r))r �rngs �r!�costztest_maxfev_test.<locals>.cost"s����z�z�!�}�}�t�#�#r#)rr�r�)r��Nelder-Meadr��maxfevr�r�)rr)�default_rngrr�)r#�imaxfevr�r	r"s    @r!�test_maxfev_testr(s����
�)�
�
� G�
H�
H�C�$�$�$�$�$��-�-��0�	-�	-�F��&�t�S�Z�Z��^�^�.4�08�'�/B�D�D�D�F��&�>�W�,�,�,�,�,�		-�	-�-r#c��d�}tj�|tjd��d��\}}td��D]0}|tj|����|d|dzksJ��1d}t
tjj|���5|tj|����ddd��n#1swxYwYtj�|tjd��d��\}}d}t
t|���5|tj	ddg����ddd��dS#1swxYwYdS)Nc��|Sr2rzrs r!�func_z8test_wrap_scalar_function_with_validation.<locals>.func_2s���r#rr
rzToo many function calls��match�@The user-provided objective function must return a scalar value.)
r�	_optimize�'_wrap_scalar_function_maxfun_validationr�asarrayr�rA�_MaxFuncCallErrorrBr=)r+�fcallsri�i�msgs     r!�)test_wrap_scalar_function_with_validationr60s�������%�/�/��r�z�!�}�}�a�H�H��F�D��1�X�X� � ����R�Z��]�]�����a�y�A�a�C������
#�C�	�x�)�;�3�	G�	G�	G�����R�Z��]�]�����������������������%�/�/��r�z�!�}�}�a�H�H��F�D�M�C�	�z��	-�	-�	-�����R�X�q�!�f�
�
������������������������s$�C�C
�
C
� E�E�Ec��d}tt|���5tjd�t	jddg��d���ddd��dS#1swxYwYdS)Nr.r,c��|Sr2rzrs r!r�z.test_obj_func_returns_scalar.<locals>.<lambda>Ms��A�r#rr�r�)rArBrr�rr=r,s r!�test_obj_func_returns_scalarr9Hs���&�E�
�z��	/�	/�	/�H�H���+�+�r�x��A��'7�'7��G�G�G�G�H�H�H�H�H�H�H�H�H�H�H�H����H�H�H�H�H�Hs�-A�A�Ac��tjgd���}tj�tj|d���}|jdksJ�dS)Nr��:�0�yE>)�xatoliS)rr=r�	_minimize�_minimize_neldermeadr�r�)rFr�s  r!�test_neldermead_iteration_numr?PsQ��	��+�+�+�	,�	,�B�
�
�
1�
1�(�.�"�8<�2�>�>�C��7�c�>�>�>�>�>�>r#c�X�d�}tj�|ddgddd���dS)Nc�0�|ddz|ddzzS�Nrr&rrzrs r!r�z-test_neldermead_xatol_fatol.<locals>.<lambda>Zs��Q�q�T�1�W�q��t�Q�w�&�r#rr&r�)rYr<�fatol)rr=r>)ris r!�test_neldermead_xatol_fatolrDWsJ��'�&�D���+�+�D�1�a�&�!�26�d�,�D�D�D�D�Dr#c���d�}gd�}tj||d���}t|jd��tj||dddi���}t|jd��dS)	Nc�0�tj|dz��S�Nr&�rr4rs r!r�z*test_neldermead_adaptive.<locals>.<lambda>a���R�V�A�q�D�\�\�r#)g��M@�'�?g�O�C���?g����~�?g�-�?g������?g#���j��?g����?g~�^g��?gܠr#���?g^c��ǽ�?g)���i	�?g����'�?g�����?g1����?g[�VΤ�?r$r�F�adaptiveTr�)rr�rr�)ri�p0r�s   r!�test_neldermead_adaptiverL`s���!�!�D�
F�
F�
F�B��
�D�"�]�
;�
;�
;�C����e�$�$�$�
�
�D�"�]�%/��$6�8�8�8�C����d�#�#�#�#�#r#c	���d�}d}gd�}ttj��5tj|||d���}ddd��n#1swxYwYt	|jt
jdgt|��z��d���t|j
d	��t|jd
��gd�gd�gd
�g}ttj��5tj|||dd|i���}ddd��n#1swxYwYt	|jt
jgd���d���t|j
d��t|jd��dS)Nc�0�tj|dz��SrGrHrs r!r�z3test_bounded_powell_outsidebounds.<locals>.<lambda>rrIr#)�rrrOrO)���rOg�������r��r�r�rQr-r�Tr�rrr)rrr)rrrr�)r�r�r�)g�rrFr�)rr�OptimizeWarningr�rr rr=�lenrr�r�)rir�rFr�r�s     r!�!test_bounded_powell_outsideboundsrUns���"�!�D�
&�F�	���B�
�h�.�	/�	/�J�J����b���I�I�I��J�J�J�J�J�J�J�J�J�J�J����J�J�J�J��C�E�2�8�R�D�3�r�7�7�N�3�3�$�?�?�?�?����d�#�#�#����Q�����Y�Y�	�	�	�9�9�9�-�E�	�h�.�	/�	/�:�:����b�'-�h�)0�%�(8�:�:�:��:�:�:�:�:�:�:�:�:�:�:����:�:�:�:��C�E�2�8�K�K�K�0�0�t�<�<�<�<����e�$�$�$����Q�����s#�A�A�A�D�D�
Dc�@�d�}d}gd�}ddd�}tj||d|���}t|jdd	�
��t|jdd	�
��tj||||d���}tjgd���}t|j|d	�
��t|j||��d	�
��d
t
jdfdt
jfddf}tj||||d���}tjgd���}t|j|d	�
��t|j||��d	�
��d�}dgdz}gd�}tj||d���}tj|||d���}t|jdd	�
��t|jdd	�
��t
jt
jfgdz}tj|||d���}t|j|jd	�
��t|j|jd	�
��t|j|jd	�
��gd�}dgdz}ttj
��5tj|||d���}ddd��n#1swxYwYt|jdd	�
��dS)Nc�0�tj|dz��SrGrHrs r!r�z/test_bounded_powell_vs_powell.<locals>.<lambda>�rIr#))���r)���皙������)rgffffff"@)rPgffffff@�g������/����)g�������g�������r�rr\绽���|�=��ftol�xtolr�r�rQr-r�)r�r�r�)rrZrrr\)NrrZr)rPNr[c��tj|d��tj|d��ztj|d|dz��ztj|d��z}|tjtj|d|dz��tj|d��z��z}|dzS�Nrrr&r7�r �ts  r!riz+test_bounded_powell_vs_powell.<locals>.func�s����F�A�a�D�5�M�M�B�F�1�Q�4�L�L�(�2�6�1�Q�4�%�!�A�$�,�+?�+?�?�"�&��1��,�,�N��	�R�V�B�F�1�Q�4�!�A�$�;�'�'�"�&��1��,�,�6�
7�
7�7���!�t�r#)r\r
rP)r�r�r�r�rQg��8��:}?r)gb���4�F@g���:�g�W���?@)rr�rr r�rr=�infr�rrS)rir�rFr��
res_powell�res_bounded_powellrms       r!�test_bounded_powell_vs_powellrh�ss��"�!�D�
D�F�	!�	!�	!�B��e�,�,�G��"�4��H�g�N�N�N�J��J�L�"�4�0�0�0�0��J�N�B�T�2�2�2�2�!�*�4��W�28�2:�<�<�<��	��%�%�%�&�&�A��&�(�!�$�7�7�7�7��&�*�D�D��G�G�$�?�?�?�?��2�6�'�3��!�R�V��j�+�
M�F�!�*�4��W�28�2:�<�<�<��	��%�%�%�&�&�A��&�(�!�$�7�7�7�7��&�*�D�D��G�G�$�?�?�?�?�
���
�Y��]�F�	�	�	�B��"�4��H�=�=�=�J�!�*�4��28�2:�<�<�<���J�N�$8�t�D�D�D�D��&�*�A�D�9�9�9�9�
��w����
 �1�
$�F�!�*�4��28�2:�<�<�<���J�N�$6�$:��F�F�F�F��J�O�%7�%<�4�H�H�H�H��J�L�"4�"6�T�B�B�B�B�
2�	1�	1�B��Y��]�F�	�h�.�	/�	/�@�@�%�.�t�R�6<�6>�@�@�@��@�@�@�@�@�@�@�@�@�@�@����@�@�@�@��&�*�A�D�9�9�9�9�9�9s�I<�<J�Jc���dtjdfgdzddd�d�}gd�}d�}tj||fi|��}t	|jd	d
���d�}tj||fi|��}t	|jd
��d�}tj||fi|��}t	|jdd���d�}tjdfgdz|d<tj||fi|��}t	|jdd���dS)Nr�g��.ArPr;r^)r�r�r�rLc�,�tj|��Sr2rHrs r!r�z8test_onesided_bounded_powell_stability.<locals>.<lambda>�s��2�6�!�9�9�*�r#g`�F��-C��6?r�c��tjtj|����dztj|dk��rdndzS)Nr/rrr�rr?r4r<rs r!rhz1test_onesided_bounded_powell_stability.<locals>.f�s<����r�v�a�y�y�!�!�c�*�*�2�6�!�a�%�=�=�.H�a�a�b�I�Ir#gw����c��tjtj|����dztj|dk��rdndzS)Nr�rrrrmrs r!rhz1test_onesided_bounded_powell_stability.<locals>.f�s<����r�v�a�y�y�!�!�R�'�'���q�1�u�
�
�+E�1�1�2�F�Fr#gB+�
I�a�r0r�c��tjtj|dd�����dztjtj|dd�����dzz
}|tj|dk��rdndz}|S)Nr&r
r/rrrrmrcs  r!rhz1test_onesided_bounded_powell_stability.<locals>.f�sq��
�V�B�F�1�R�a�R�5�M�M�
"�
"�a�
'�'�"�&����!�"�"����*?�*?�C�*H�H��	�2�6�!�a�%�=�=�(�a�a�b�)���r#g@�@r�g4&�k\�)rrerr�rr�)�kwargsrFrhr�s    r!�&test_onesided_bounded_powell_stabilityrq�s_��!��6�'�3��(�1�,�"&��5�5�7�7�F�
���B�	��A�
�
�A�r�
,�
,�V�
,�
,�C��C�G�T��-�-�-�-�J�J�J��
�A�r�
,�
,�V�
,�
,�C��C�G�_�-�-�-�G�G�G��
�A�r�
,�
,�V�
,�
,�C��C�G�\��5�5�5�5����
�&��#��'�!�+�F�8��
�
�A�r�
,�
,�V�
,�
,�C��C�G�9��E�E�E�E�E�Er#c��eZdZdZdZdS)�TestOptimizeWrapperDispTN�rvrwrxr�rrzr#r!rsrss�������K��D�D�Dr#rsc��eZdZdZdZdS)�TestOptimizeWrapperNoDispTFNrtrzr#r!rvrvs�������K��D�D�Dr#rvc��eZdZdZdZdS)�TestOptimizeNoWrapperDispFTNrtrzr#r!rxrx
s�������K��D�D�Dr#rxc��eZdZdZdZdS)�TestOptimizeNoWrapperNoDispFNrtrzr#r!rzrzs�������K��D�D�Dr#rzc���eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zej�d���d���Zd�Zd�Zej�d���d���Zd�Zd�Zej�dgd�ez��d���Zej�dgd���d���Zd�Zej�dgd���d���Zej�dgd���d ���Z d!�Z!d"�Z"d#�Z#d$�Z$ej�dgd%���d&���Z%ej�dgd'���d(���Z&d)S)*�TestOptimizeSimplec��d�}d�}tjg}tjdd���5tj|||d���}tj||����sJ�	ddd��dS#1swxYwYdS)Nc��|Sr2rzrs r!r�z2TestOptimizeSimple.test_bfgs_nan.<locals>.<lambda>s���r#c�*�tj|��Sr2�r�	ones_likers r!r�z2TestOptimizeSimple.test_bfgs_nan.<locals>.<lambda>���2�<��?�?�r#r�)r��invalidFr�)r�nanr�rr��isnan)r^rir�rFr s     r!�
test_bfgs_nanz TestOptimizeSimple.test_bfgs_nans����{��*�*���f�X��
�[�h��
9�
9�
9�	%�	%��"�4��V�%�@�@�@�A��8�D�D��G�G�$�$�$�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�	%�	%s�8A0�0A4�7A4c���d�}tjd���5tj|d��}ddd��n#1swxYwYtj|d��sJ�|ddusJ�d�}d	�}tjd���5tj|d|�
��}ddd��n#1swxYwYtj|d��sJ�|ddusJ�dS)Nc��tjSr2�rr�rs r!r�z9TestOptimizeSimple.test_bfgs_nan_return.<locals>.<lambda>#s����r#r��r�rr�r�Fc�*�|dkrdntjS�Nrr�rs r!r�z9TestOptimizeSimple.test_bfgs_nan_return.<locals>.<lambda>+s��a�1�f�f���"�&�r#c�*�tj|��Sr2r�rs r!r�z9TestOptimizeSimple.test_bfgs_nan_return.<locals>.<lambda>,r�r#)r�)rr�rr�r�)r^rir	r�s    r!�test_bfgs_nan_returnz'TestOptimizeSimple.test_bfgs_nan_returns��� ���
�[��
*�
*�
*�	0�	0��&�t�Q�/�/�F�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0��x��u�
�&�&�&�&�&��i� �E�)�)�)�)�1�0��*�*��
�[��
*�
*�
*�	<�	<��&�t�Q�F�;�;�;�F�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<��x��u�
�&�&�&�&�&��i� �E�)�)�)�)�)�)s�;�?�?�	B-�-B1�4B1c��tjtjd����tj�t|j����z}tj|j	|j
|d|jd���}t|�	|��|�	|j��d���dS)NrMrzF)r.r�rYrr-r�)
r�sqrt�spacingr)�randrTrXrr�rirWrYr)r^r.r�s   r!�test_bfgs_numerical_jacobianz/TestOptimizeSimple.test_bfgs_numerical_jacobian3s����'�"�*�R�.�.�)�)�B�I�N�N�3�t�}�;M�;M�,N�,N�N���#�D�I�t�/?�,3�"�,0�L�u�F�F�F��	��	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�	#�	#r#c��gd�}gd�}tj||��D]i\}}tj|j|j||���}t
|�|j��|�|j��d����jdS)N)r�r��TNC��2-point�3-pointN)r�r�r-r�)	�	itertools�productrr�rirWrr rX)r^�methods�jacsr�r�r	s      r!�test_finite_differences_jacz.TestOptimizeSimple.test_finite_differences_jac?s���'�'�'��+�+�+��$�,�W�d�;�;�	'�	'�K�F�C��&�t�y�$�2B�.4�#�?�?�?�F��D�I�I�f�h�/�/����4�=�1I�1I�!%�
'�
'�
'�
'�
'�	'�	'r#c	���gd�}ttjfz}tj||��D]N\}}|tjur
|��}tj|j|j||j|���}|j	sJ��Ogd�}|D][}tjt��5tj|j|j||jd���ddd��n#1swxYwY�\dS)N)�trust-constrr�	trust-ncg�trust-krylov�r�r�rr)r�r��dogleg�trust-exact)
rrr�r�r�r�rirWrnr�rr
rB)r^r��hessesr�rrr	s      r!�test_finite_differences_hessz/TestOptimizeSimple.test_finite_differences_hessHsN��M�L�L���x�}�.�.��%�-�g�v�>�>�	"�	"�L�F�D��x�}�$�$��t�v�v���&�t�y�$�2B�.4�$�)�,0�2�2�2�F��>�!�!�!�!�
I�H�H���	-�	-�F���z�*�*�
-�
-��!�$�)�T�-=�)/�T�Y�'+�-�-�-�-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-�
-����
-�
-�
-�
-��	-�	-s�)C�C	�C	c�b�d�}tj|dgd���}t|ddd���dS)Nc�"�|dkrdS|d|zzS)Nrg�B�����rMrzrs r!rhz/TestOptimizeSimple.test_bfgs_gh_2169.<locals>.fcs���1�u�u�&���2�a�4�x�r#�$@Fr�rMrk�r�r�)rr�r)r^rh�xss   r!�test_bfgs_gh_2169z$TestOptimizeSimple.test_bfgs_gh_2169bsI��	 �	 �	 �
�
��C�5�u�
5�
5�
5����C�d��6�6�6�6�6�6r#c�`���fd�}t���tj|dddd���dS)Nc�d��|d}|�vsJ���|��d|dzzd|zfS)Nrr�r&�)�add)r �xp�seens  �r!rhz:TestOptimizeSimple.test_bfgs_double_evaluations.<locals>.fms>����1��B��T�>�>�>�>��H�H�R�L�L�L��a��d�7�B�q�D�=� r#���r�Tr0)r�r��tol)�setrr�)r^rhr�s  @r!�test_bfgs_double_evaluationsz/TestOptimizeSimple.test_bfgs_double_evaluationsksI���	!�	!�	!�	!�	!��u�u����!�T�&�d��E�E�E�E�E�Er#c��tj|j|j|jd|j���}|\}}}t
|�|��|�|j��d���|jdksJ|j���|j	dksJ|j	���t
|j
dd�gd�gd	�gd
d���dS)
Nrz)r�rYr-r�r�r
rP)g����>�<gwT볹��g�UuAX�?)rQg���H���g!mʲ3�?r�r0r�)r�
fmin_l_bfgs_brirWrnrYrrXrZr[r\�r^r�r�r��ds     r!�
test_l_bfgs_bz TestOptimizeSimple.test_l_bfgs_bvs����'��	�4�3C�(,�	��04��>�>�>��#����q���	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�
�~��"�"�"�D�N�"�"�"��~��"�"�"�D�N�"�"�"�	��
�1�Q�3��D�D�D�6�6�6�8�"��	/�	/�	/�	/�	/�	/r#c���tj|j|jd|j���}|\}}}t|�|��|�|j��d���dS)NT)�approx_gradrYr-r�)rr�rirWrYrrXr�s     r!�test_l_bfgs_b_numjacz'TestOptimizeSimple.test_l_bfgs_b_numjac�sz���'��	�4�3C�48�04��>�>�>��#����q���	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�	#�	#r#c�����fd�}tj|�j�j���}|\}}}t	��|�����j��d���dS)Nc�X����|����|��fSr2)rirn)r r^s �r!r�z4TestOptimizeSimple.test_l_bfgs_b_funjac.<locals>.fun�s"����9�9�Q�<�<����1���-�-r#�rYr-r�)rr�rWrYrrirX)r^r�r�r�r�r�s`     r!�test_l_bfgs_b_funjacz'TestOptimizeSimple.test_l_bfgs_b_funjac�s����	.�	.�	.�	.�	.��'��T�-=�04��>�>�>��#����q���	�	�&�)�)�4�9�9�T�]�+C�+C�!�	#�	#�	#�	#�	#�	#r#c�~�Gd�d��}|��}tjtjddgd|ddi���}t|jd��t|j|j��t|j|j��t|jd��|j	d	usJ�t|j
d
��dS)Nc��eZdZd�Zd�ZdS)�:TestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.Callbackc�0�d|_d|_d|_dSr�)r�r�r r]s r!�__init__zCTestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.Callback.__init__�s������������r#c�f�||_tj|��|_|xjdz
c_dSr)r rr�r�r��r^r s  r!�__call__zCTestOptimizeSimple.test_l_bfgs_b_maxiter.<locals>.Callback.__call__�s-�����#�>�!�,�,������A�
����r#N�rvrwrxr�r�rzr#r!�Callbackr��s2������
�
�
�

�
�
�
�
r#r�rQ�l-bfgs-brYr
)r��callbackr�rFz+STOP: TOTAL NO. of ITERATIONS REACHED LIMIT)rr�r�rr�rr r�r�r��message)r^r��cr�s    r!�test_l_bfgs_b_maxiterz(TestOptimizeSimple.test_l_bfgs_b_maxiter�s���		�		�		�		�		�		�		�		�
�H�J�J�������R���)*�Y��N�D�D�D��	�S�W�a� � � ��C�E�1�3�'�'�'��C�G�Q�U�+�+�+��S�Z��#�#�#��{�e�#�#�#�#��S�[�B�	D�	D�	D�	D�	Dr#c�$�d|jd�}tj|j|jd|j|���}t
|�|j��|�|j��d���|j	|j
ksJ�dx|_|_	tj|j|jd|���}|j|jksJ�t
|�|j��|�|j��d���dx|_|_	tj|j|jd	d|�
��}|j|jksJ�t
|�|j��|�|j��d���dS)NF)rrY�L-BFGS-B�r�r�r�r-r�rr�r��r�r�r�)
rYrr�rirWrnrr rXr[r�rZr�)r^r�rG�ras    r!�test_minimize_l_bfgs_bz)TestOptimizeSimple.test_minimize_l_bfgs_b�s����$�,�7�7����d�i��)9�%/�T�Y�&*�
,�
,�
,��	��	�	�!�#����	�	�$�-�(@�(@�!�	#�	#�	#�	#��~���'�'�'�'�*+�+�����
�
�t�y�$�*:�&0�$�@�@�@���~���(�(�(�(���	�	�"�$������4�=�)A�)A�!�	#�	#�	#�	#�+,�+�����
�
�t�y�$�*:�	�&0�$�@�@�@���~���(�(�(�(���	�	�"�$������4�=�)A�)A�!�	#�	#�	#�	#�	#�	#r#c��d}dD]�}d|j|d�}tj|j|jd|j|���}|�|j��}|�|}n||ksJ�t||�|j��|�����dS)N)r/rkr0r]F)rrYr_r�r�r�)	rYrr�rirWrnr rrX)r^�v0r�r�r��vs      r!�test_minimize_l_bfgs_b_ftolz.TestOptimizeSimple.test_minimize_l_bfgs_b_ftol�s���
��,�	C�	C�C�!�d�l�C�H�H�D��#�D�I�t�/?�+5�4�9�,0�2�2�2�C��	�	�#�%� � �A��z�����2�v�v�v�v��A�t�y�y���7�7�c�B�B�B�B�B�	C�	Cr#z,contradictory: expected to fail but succeedsr�c	��tjtjtjddg��dtjddd����}|jrJ�dS)N�333333�rMr�Fr)r�maxlsr�)rr�r�rr=�	rosen_derr�)r^r�s  r!�test_minimize_l_bfgs_maxlsz-TestOptimizeSimple.test_minimize_l_bfgs_maxls�s[��������$���0E�0E�'1�x�7I�16��(C�(C�E�E�E���;�����r#c����tj�tj}g�tjdd��}��fd�}d\}}}tj||||���t
d�t�|d���D����\}}||z}	t�d|���}
tj�|||	���\}}}
t||
��dS)Nr�rRc�H���|��}��|��|Sr2)rd)r �valuerh�valuess  ��r!�objfunzMTestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruption.<locals>.objfun�s'����A�a�D�D�E��M�M�%� � � ��Lr#)�r�i,)r��maxfunc3�$K�|]\}}||fV��dSr2rz)r�r4�ys   r!�	<genexpr>zPTestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruption.<locals>.<genexpr>s*����A�A�d�a��A�q�6�A�A�A�A�A�Ar#)
rr�r�r�fullr��max�	enumerate�minr)r^�grFr��low�medium�highr��kr��target�xminr�r�rhr�s              @@r!�*test_minimize_l_bfgs_b_maxfun_interruptionz=TestOptimizeSimple.test_minimize_l_bfgs_b_maxfun_interruption�s������N�������
�W�Q��
�
��	�	�	�	�	�	�)���V�T���v�r�!�D�A�A�A�A��A�A�i��v�w�w��&@�&@�A�A�A�A�A���1��!����V�D�S�D�\�"�"�� �.�q�"�Q�v�N�N�N�
��d�A��$��'�'�'�'�'r#c��		dd�}gd�}tjtj||td������}t	|jd	d
d
���dS)
Nrzr/r�c��|}||��}	d}
d}d}d}
|r�|
s�||kr�d}|dz
}ttj|����D]g}|||z
|||zfD]5}tj|��}|||<||g|�R�}|
dz
}
||	kr|}	|}d}�6|�||��|�
|
|krd}
n�h|r|
s||k��t	j|	|||
|dk���S)NrrTF�r�r r�r�r�)r�r�sizerer�OptimizeResult)r�rFr�r%�stepsizerYr�r��bestx�besty�funcalls�niter�improved�stop�dim�s�testx�testys                  r!�custminz/TestOptimizeSimple.test_custom.<locals>.custminsW���E��C��G�G�E��H��E��H��D��
�4�
�E�G�O�O� ����
�� ������-�-���C�#�C�j�8�3�U�3�Z�(�5J�K�,�,�� "������%&��c�
� #��E� 1�D� 1� 1� 1�� �A�
�� �5�=�=�$)�E�$)�E�'+�H���+� �������)�h�&�.@�.@�#�����#�
�4�
�E�G�O�O�&�*�u��5�08�5�1�9�O�O�O�
Or#)g�������?��������?r�g�������?r�皙�����?�r�r�rMrkr��rzNr/r�N)rr�r��dictrr )r^rrFr�s    r!�test_customzTestOptimizeSimple.test_customsy��<?�*.�	O�	O�	O�	O�>(�
'�
'�������7�(,�d�(;�(;�(;�=�=�=�����s��D�9�9�9�9�9�9r#z$output not reliable on all platformsc�`�tjddgtjdd�}tjdi|�ddi��|���\}}d|vrd|vsJ�tjdi|�dd	i��|���\}}d|vrd|vsJ�tjdi|�dd
i��|���\}}d|vrd|vsJ�tjdi|�d
dd���|���\}}d|vrd|vsJ�tjdi|�dd
d���|���\}}d|vrd|vsJ�dS)Nr�rP)�rPr
r)rirFr�r��iprintrr�z
At iteraterrF)rrTrz)rr�r�r��
readouterr)r^�capfdrp�outr�s     r!�test_gh13321zTestOptimizeSimple.test_gh133214s���#�.��A��$�.�:J�L�L��	��3�3��3�3��3�3�3�3��!�!�#�#���Q���$�$��S�)@�)@�)@�)@���2�2��2�2��2�2�2�2��!�!�#�#���Q��S� � �\��%<�%<�%<�%<���2�2��2�2��2�2�2�2��!�!�#�#���Q��S� � �\�S�%8�%8�%8�%8�	��>�>��>���>�>�>�>�>��!�!�#�#���Q���$�$��S�)@�)@�)@�)@���>�>��>���>�>�>�>�>��!�!�#�#���Q��S� � �\�S�%8�%8�%8�%8�%8�%8r#c�p���ddg�d���fd�}ddg}tjtj||�����dS)N)r\r&)rrP�constraintsc�Z��|d�usJ�|d�usJ�tj��S)Nr�r�rr�)r�rFr�r�rs   ��r!rz0TestOptimizeSimple.test_gh10771.<locals>.custmin\s>����8�$��.�.�.�.��=�)�[�8�8�8�8��*�,�,�,r#r)r�r�r)rr�r�)r^rrFr�rs   @@r!�test_gh10771zTestOptimizeSimple.test_gh10771Vsu�����6�"��#��	-�	-�	-�	-�	-�	-�
��V����(�.�"�W�!'�[�	B�	B�	B�	B�	B�	Br#c	�:�d�}d�}dD]�}|dvrd}n|}tj|ddg|d|���}tj|ddg|d|���}||j��||j��ks.J|�d	||j���d
||j���������dS)Nc�4�|\}}|dz|dzz|dzzdzS)Nr&r�rrz��zr r�s   r!riz<TestOptimizeSimple.test_minimize_tol_parameter.<locals>.funcgs+���D�A�q��a�4��1��9�q�!�t�#�a�'�'r#c�n�|\}}tjd|z|dzzd|dzzzd|dzz|zg��S)Nr&r�rP�rr=rs   r!�dfuncz=TestOptimizeSimple.test_minimize_tol_parameter.<locals>.dfuncksE���D�A�q��8�Q�q�S��A��X��!�Q�$��.��!�Q�$��q��9�:�:�:r#�	�nelder-mead�powell�cgr��	newton-cgr��tnc�cobyla�slsqp�r"r#r'rr])r�r�r�rMz: z vs. )rr�r )r^rir r�r��sol1�sol2s       r!�test_minimize_tol_parameterz.TestOptimizeSimple.test_minimize_tol_parameteres��	(�	(�	(�	;�	;�	;�*�	g�	g�F��<�<�<�������$�T�A�q�6�s��,2�4�4�4�D��$�T�A�q�6�s��,2�4�4�4�D��4���<�<�$�$�t�v�,�,�.�.�.�6�6�6�4�4�PT�PV�<�<�<�<�Y]�Y]�^b�^d�Ye�Ye�Ye�0f�.�.�.�.�	g�	gr#r�)r�r�r�r�rr��fmin_tnc�
fmin_slsqpc���	��dvrd�}n$tj}tj}tj}t	jd��}i}��d��r=tt���}�dkrd|d<nN�dkrd	|d
<nB�dvrd|d
<n8d|d
<n2�fd�}�dkrtd	���|d<ntd���|d<�dvr||d<n�dvr||d<n�dvr
||d<||d<g�	�	fd�}|||fd|i|��t�	��dksJ�td��	D����sJ�td�tj
�	d��D����rJ�dS)N)r-r�c�R�tj|��tj|��fSr2)rr�r�rs r!r�zHTestOptimizeSimple.test_minimize_callback_copies_array.<locals>.<lambda>�s ��h�n�Q�/�/��1C�A�1F�1F�G�r#r�r�r.r
�iterr-r�r�)r�r�i�
rYc�0���|d<tj|i|��S)Nr��rr�)�a�kwr�s  �r!�routinezGTestOptimizeSimple.test_minimize_callback_copies_array.<locals>.routine�s"���%��8���(�!�2�r�2�2�2r#r&�r�r�r�)rr�)r%r��r�r�r�r�r�rrc�Z����|tj|��f��dSr2)rdrre)r r�rp�resultss   �r!r�zHTestOptimizeSimple.test_minimize_callback_copies_array.<locals>.callback�s'����N�N�A�r�w�q�z�z�?�+�+�+�+�+r#r�r&c3�LK�|]\}}tj||k��V�� dSr2)rr<�r�r r�s   r!r�zITestOptimizeSimple.test_minimize_callback_copies_array.<locals>.<genexpr>�s2����6�6�d�a��2�6�!�q�&�>�>�6�6�6�6�6�6r#c3�^K�|](\}}tj|d|d��V��)dS)rN)r�may_share_memoryr<s   r!r�zITestOptimizeSimple.test_minimize_callback_copies_array.<locals>.<genexpr>�s;����f�f�4�1�a�r�*�1�Q�4��1��6�6�f�f�f�f�f�fr#)rr�r��
rosen_hessrrU�
startswith�getattrrrTr<�anyr��combinations)
r^r�rir�rrrFrpr6r�r:s
 `       @r!�#test_minimize_callback_copies_arrayz6TestOptimizeSimple.test_minimize_callback_copies_array}s�����2�2�2�G�G�D�D��>�D��$�C��&�D�
�X�b�\�\�������V�$�$�	4��h��/�/�G���%�%�!"��v����:�%�%�#&��x� � ��2�2�2�$(��y�!�!�$%��y�!�!�
3�
3�
3�
3�
3�����$(��$4�$4�$4��y�!�!�$(��O�O�O��y�!��]�"�"�"�F�8���
�~�
%�
%��F�5�M�M�
�(�(�(��F�5�M�!�F�6�N���	,�	,�	,�	,�	,�	���b�6�6�8�6�v�6�6�6��7�|�|�a������6�6�g�6�6�6�6�6�6�6�6��f�f�9�CY�Za�cd�Ce�Ce�f�f�f�f�f�f�f�f�f�fr#r!c��d�}d�}tjdg��}||��}|}|dkrtd���ntd���}|dvrd}tj|||||�	��}t||j��|j��|d
krtj	d��||j��|ksJ�dS)Nc��|dz
dzSr%rzrs r!riz1TestOptimizeSimple.test_no_increase.<locals>.func�s����E�A�:�r#c��d|dz
zdzdz
S)Nr&rrrzrs r!�bad_gradz5TestOptimizeSimple.test_no_increase.<locals>.bad_grad�s���a�!�e�9��#�a�'�'r#�@r&r�r7r�r)r�r(zSLSQP returns slightly worse)
rr=rrr�rr r�rr)	r^r�rirHrF�f0r�r�r�s	         r!�test_no_increasez#TestOptimizeSimple.test_no_increase�s���	�	�	�	(�	(�	(�
�X�s�e�_�_��
�T�"�X�X����%+�u�_�_�$�b�/�/�/�/�$�r�:J�:J�:J���8�8�8��C����b�c�&�(/�1�1�1���T�T�#�%�[�[�#�'�*�*�*��W����L�7�8�8�8��t�C�E�{�{�b� � � � � � r#c���d�}d�}tjgd���}tj||dd|d����}t	|jtjgd���d	zd
���dS)Nc�T�t|tjgd���z
dz��S)N)rMrI�@g@r&)r4rr=rs r!rhz7TestOptimizeSimple.test_slsqp_respect_bounds.<locals>.f�s+����B�H�%5�%5�%5�6�6�6��:�;�;�;r#c��tjgd�gd�g��}tjtj||��tjddg��z|g��S)N)rrrr)���rPr\rr
r�)rr=�concatenaterb�r r4s  r!�consz:TestOptimizeSimple.test_slsqp_respect_bounds.<locals>.cons�sV����*�*�*�,<�,<�,<�=�>�>�A��>�2�6�!�Q�<�<�"�(�A�r�7�2C�2C�#C�Q�"G�H�H�Hr#)rOrMr(rIr(�ineq��typer��r�r)rQr&r
r�rPg�-���q=r�)rr=rr�rr )r^rhrSrFr�s     r!�test_slsqp_respect_boundsz,TestOptimizeSimple.test_slsqp_respect_bounds�s���	<�	<�	<�	I�	I�	I��X�(�(�(�
)�
)�����2�g�5;�D�,I�,I�K�K�K�����r�x�
�
�
�6�6�q�8�u�E�E�E�E�E�Er#)r$r�r�r�rr��SLSQPr�r�r�r�r�c	���d}tjd��}ttj|dtjtjdd��}|t|���d�}|dvr|j|d<n|dvr|j|d<|j	|d	<tj
|j|fi|��}|j|ksJ�|j
|j
ksJ�t|d
��r|j|jksJ�|dkr
|jdksJ�dSdS)
Nr�r�rzr�r�)rr�r8rrr�rYr�)rrUrrr�r�r?rrnrrr�r�r�r��hasattrr��ngevr�)r^r��MAXITERrF�sfrpr�s       r!�test_respect_maxiterz'TestOptimizeSimple.test_respect_maxiter�s*����
�X�b�\�\��
�H�N�B��H�4F�$�/��t�=�=��#�t�G�/D�/D�/D�E�E���^�#�#��G�F�5�M�M�
�(�(�(��G�F�5�M��W�F�6�N������5�5�f�5�5���w�'�!�!�!�!��x�2�7�"�"�"�"��3����	'��8�r�w�&�&�&�&��W����:��?�?�?�?���"�?r#)r$r�r�r�c	��tjd��}ttj|dtjtjdd��}ddd�}tjtd���5|�
d��r%tt|��}||j|fi|��ntj
|j|||�	��ddd��dS#1swxYwYdS)
Nr�rzrT)rYrzMaximum number of iterationsr,r�r�)rrUrrr�r�r?r�warns�RuntimeWarningr@rAr�r�)r^r�rFr^r�r6s      r!�test_runtime_warningz'TestOptimizeSimple.test_runtime_warnings<���X�b�\�\��
�H�N�B��H�4F�$�/��t�=�=����.�.��
�\�.� ?�A�A�A�	N�	N�� � ��(�(�
N�!�(�F�3�3�������.�.�g�.�.�.�.��!�"�&�"�V�W�M�M�M�M�
	N�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N����	N�	N�	N�	N�	N�	Ns�(AC
�
C�Cc��d}tj}tj}tj}d�}d|d�f}t	jd��}tj|||||dt|������}|j|ksJ�dS)	Nr�c�n�tjd|dzd|dzz
d|dzz
g��S)Nr:r皙�����?r���Q��?r&rrs r!r�zWTestOptimizeSimple.test_respect_maxiter_trust_constr_ineq_constraints.<locals>.<lambda> s5����#��!��*�s�Q�q�T�z�"9�D�1�Q�4�K�"G�!H�I�I�r#rTrUr�r�r�)rr�rrr�r�)	rr�r�r?rrUr�rr�)	r^r]rhr�rrr�rSrFr�s	         r!�2test_respect_maxiter_trust_constr_ineq_constraintszETestOptimizeSimple.test_respect_maxiter_trust_constr_ineq_constraintss������N��� ���"��I�I���������X�b�\�\�����2�4�S�t�'5�(,�W�(=�(=�(=�?�?�?���w�'�!�!�!�!�!�!r#c�L�d�}d�}tjdg��}tj||��}tj||d|d�g���}tj||dg���}tj||d|d�gdg�	��}tj||d|d�gd
g�	��}|||||fD]}	|	jsJ��t|jdd�
��t|jdd�
��t|jdd�
��t|jdd�
��t|jdd�
��dS)Nc��|dzSrGrzrs r!rhz6TestOptimizeSimple.test_minimize_automethod.<locals>.f+����a�4�Kr#c��|dz
SrGrzrs r!rSz9TestOptimizeSimple.test_minimize_automethod.<locals>.cons.s���q�5�Lr#r�rTrU)r)r
r��r�)rr��rr�rr0r�r&r
)rr=rr�r�rr )
r^rhrSrF�sol_0�sol_1�sol_2�sol_3�sol_4r�s
          r!�test_minimize_automethodz+TestOptimizeSimple.test_minimize_automethod*s���	�	�	�	�	�	��X�s�e�_�_���!�!�R�(�(���!�!�R�v�>B�7D�7D�6E�F�F�F���!�!�R��	�:�:�:���!�!�R�8>�t�/L�/L�.M�*1��4�4�4���!�!�R�8>�t�/L�/L�.M�*1��4�4�4���5�%���6�	�	�C��;����������.�.�.�.������.�.�.�.������.�.�.�.������.�.�.�.������.�.�.�.�.�.r#c���d�}dd�}tjgd���}tj�t	|����}tj||||d���dS)Nc�6�tj||z
dz��SrGrH�r r�s  r!�Yz=TestOptimizeSimple.test_minimize_coerce_args_param.<locals>.YFs���6�1�Q�3��(�#�#�#r#c��d||z
zSrGrzrws  r!�dY_dxzATestOptimizeSimple.test_minimize_coerce_args_param.<locals>.dY_dxIs���a��c�7�Nr#)rPrr�rr
r�r&r�r
rPr
r�)r�r�r�r2)rr=r)�randnrTrr�)r^rxrzr��xinits     r!�test_minimize_coerce_args_paramz2TestOptimizeSimple.test_minimize_coerce_args_paramDsx��	$�	$�	$�	�	�	�	�
�H�6�6�6�7�7���	����A���'�'����!�U��Q��G�G�G�G�G�Gr#c�B�	�
��gd�}gd�}�	�
�fd�}�
fd�}tj||��D]�\�
}|dvrt�
dz���}nt��}�
dkr|d	vr�6d
g�dg�	tj|�|||���}d�|�
�	|��}|js
J|���t|jd
g|���|j	dks
J|����
dkr@|dvrt�	dd|����Ή	ddkr�	ddks
J|������dS)N)g��Jz�5rg�d~�QJ)r�r�r�rc����d�3|d�dkr!t|d�dz
���d<t|�����dkrtd����|ddz
dzzS)Nrg��@zOptimization stepped far away!rr&)r?r��AssertionError)r �first_step_size�scalerFs ���r!rhz7TestOptimizeSimple.test_initial_step_scaling.<locals>.fWs{����q�!�)�a��d�b��e�m�m�%(��1���1���%6�%6���"��1�v�v�z�z�|�|�c�!�!�$�%E�F�F�F��!�A�$��(�Q��&�&r#c�F��tj�|ddz
zg��S�Nrrr)r r�s �r!r�z7TestOptimizeSimple.test_initial_step_scaling.<locals>.g^s#����8�U�A�a�D�1�H�-�.�/�/�/r#)r�r�r;)r�r])r�r��r�z{0} {1}: {2}: {3}rM��err_msgrPrg)\��(�?rO)
r�r�rrr��formatr�rr r�)r^�scalesr�rhr�r�r�r�r�r�r�rFs         @@@r!�test_initial_step_scalingz,TestOptimizeSimple.test_initial_step_scalingPs������"�!�!��9�9�9��	'�	'�	'�	'�	'�	'�	'�	0�	0�	0�	0�	0�'�.�v�w�?�?�!	�!	�M�E�6���'�'��E�$�J�/�/�/����&�&���u�}�}��+D�!D�!D����B�#�f�O��#�A�r�q��,3�5�5�5�C�*�0�0���1@�14�6�6�G��;�'�'��'�'�'��C�E�C�5�'�:�:�:�:��7�a�<�<�<��<�<�<��u�}�}��^�+�+�#�O�A�$6��g�N�N�N�N�N�+�1�-��3�3���8J�Q�8N�8N�8N�PW�8N�8N�8N�8N��C!	�!	r#)r"r#r$r�r%r�r&r'r(r�r�r�r�r�c���tj�d��dg�d�}�fd�}d�}d�}tjdg��}|dv}|d	v}||g}	|r|gn|dg}
|r|gn|dg}|d
krt	d���nt	d�
��}tjd���5t
��5}
|
�td��|
�td��|
�td��tj|	|
|��D]8\}}}dg�tj
||||||���}t|jd���9	ddd��n#1swxYwYddd��dS#1swxYwYdS)Nr*rc��tjSr2r�rs r!riz0TestOptimizeSimple.test_nan_values.<locals>.func�s	���6�Mr#c����dxxdz
cc<�ddkrtjStj���Srb)rr�r)r��r �counts �r!�func2z1TestOptimizeSimple.test_nan_values.<locals>.func2�s>����!�H�H�H��M�H�H�H��Q�x�!�|�|��v�
��y�~�~�'�'�'r#c�,�tjdg��S�NrMrrs r!rnz0TestOptimizeSimple.test_nan_values.<locals>.grad�s���8�S�E�?�?�"r#c�.�tjdgg��Sr�rrs r!rrz0TestOptimizeSimple.test_nan_values.<locals>.hess�s���8�c�U�G�$�$�$r#rM�r%r�r�r�r��r�r�r�r�r&r�r7r�r�r��delta_grad == 0.*�.*does not use Hessian.*�.*does not use gradient.*)r�rrr�r�F)rr)r,r=rr�r	�filter�UserWarningrbr�r�rr�rr�)r^r�rir�rnrrrF�
needs_grad�
needs_hess�funcs�grads�hesssr��suprhr��hr�r�s                  @r!�test_nan_valuesz"TestOptimizeSimple.test_nan_values�si���	�	���t�������	�	�	�	(�	(�	(�	(�	(�	#�	#�	#�	%�	%�	%��X�s�e�_�_��� 7�7�
�� *�*�
��u�
��$�6����4��,��$�6����4��,��%+�u�_�_�$�b�/�/�/�/�$�r�:J�:J�:J��
�[��
*�
*�
*�		1�		1�,=�,?�,?�		1�3��J�J�{�$7�8�8�8��J�J�~�'A�B�B�B��J�J�~�'B�C�C�C�$�,�U�E�5�A�A�
1�
1���1�a�����'��2�1�1�V�07�9�9�9���S�[�%�0�0�0�0�	
1�		1�		1�		1�		1�		1�		1�		1�		1�		1�		1�		1����		1�		1�		1�		1�		1�		1�		1�		1�		1�		1�		1�		1�		1�		1�		1�		1����		1�		1�		1�		1�		1�		1s7� E5�/B!E�E5�E!	�!E5�$E!	�%E5�5E9�<E9)r"r$r�r�r&r'r(r�r�r�r�r�c	�F�dx}}|dvr|j}|dvr|j}tjd���5t	��5}|�td��tj|j	|j
|||���ddd��n#1swxYwYddd��n#1swxYwYtdt|j
����D]R}tj|j
|dz
|j
|��r"td�|������SdS)	Nr�r�r�r�r�r�rz Duplicate evaluations made by {})rnrrrr�r	r�r�rr�rirWr�rTr\�array_equalrar�)r^r�r�rrr�r4s      r!�test_duplicate_evaluationsz-TestOptimizeSimple.test_duplicate_evaluations�s������d��-�-�-��)�C�� � � ��9�D�
�[��
*�
*�
*�	A�	A�,=�,?�,?�	A�3��J�J�{�$7�8�8�8���d�i��)9�%+��4�
A�
A�
A�
A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A��q�#�d�j�/�/�*�*�	G�	G�A��~�d�j��Q��/���A��?�?�
G�"�6�=�=�f�E�E�G�G�G�
G�	G�	Gs4�B!�?B
�>B!�
B	�B!�B	�B!�!B%�(B%N)'rvrwrxr�r�r�r�r�r�r�r�r�r�r�r�r�rr�skipr�r�r
rrrr,�parametrizerrDrKrXr_rcrhrtr}r�r�r�rzr#r!r|r|s�������%�%�%�*�*�*�(
#�
#�
#�'�'�'�-�-�-�47�7�7�	F�	F�	F�/�/�/�.	#�	#�	#�#�#�#�D�D�D�4#�#�#�8C�C�C�"�[���K��L�L���M�L��(�(�(�4$:�$:�$:�L�[���D��E�E�9�9�F�E�9�B
B�
B�
B�g�g�g�0�[���X�,�,�,�.>�?�@�@�8g�8g�	@�@�8g�t�[���X�(B�(B�(B�C�C�!�!�C�C�!�4F�F�F��[���X�(G�(G�(G�H�H�#�#�	H�H�#�<�[���X�(?�(?�(?�@�@�N�N�@�@�N�"�"�"�&/�/�/�4
H�
H�
H�2�2�2�h�[���X�(8�(8�(8�9�9�
+1�+1�9�9�
+1�Z�[���X�(8�(8�(8�9�9�
G�G�9�9�
G�G�Gr#r|r�)r�r&r�r$c��d�}tj|ddg|���}|jsJ�t|jdgd���dS)Nc�0�tj|dz��SrGrHrs r!rhz$test_minimize_with_scalar.<locals>.f�s���v�a�1�f�~�~�r#�)r�r�rQrQr�r�)rr�r�rr )r�rhr�s   r!�test_minimize_with_scalarr��s[������
�A�r�;�-��
G�
G�
G�C��;�����C�E�C�5�t�,�,�,�,�,�,r#c��eZdZd�Zdd�Zdd�Zdd�Zd�Zd�Zd�Z	e
j�d	d
dgdd
gd
d
gg��d���Z
d
�ZdS)�TestLBFGSBBoundsc�"�d|_d|_dS)N))rN�NN)rr)r�rXr]s r!r_zTestLBFGSBBounds.setup_method�s��/�����
�
�
r#rIc�<�d|z|d|z|d|zzzS)NrMrrrzrts   r!r�zTestLBFGSBBounds.fun�s&���Q�w�!�A�$��'�A�a�D�!�G�+�,�,r#c��||dz
zSrrzrts   r!r�zTestLBFGSBBounds.jac�s���1�q�5�z�r#c�Z�|�||��|�||��fSr2�r�r�rts   r!�fjzTestLBFGSBBounds.fj�s%���x�x��1�~�~�t�x�x��1�~�~�-�-r#c���tj|jddg|j|j���\}}}|ddksJ|d���t||jd���dS)Nrr)r�r�r��taskr-r�)rr�r�r�r�rrX�r^r rhr�s    r!�test_l_bfgs_b_boundsz%TestLBFGSBBounds.test_l_bfgs_b_bounds�ss���(���A�r�7�04��04��=�=�=���1�a���}��!�!�!�1�V�9�!�!�!���4�=�t�4�4�4�4�4�4r#c��tj|jddgd|j���\}}}|ddksJ|d���t	||jd���dS)	Nrr�rI)r�r�r�r�r-r�)rr�r�r�rrXr�s    r!r�z%TestLBFGSBBounds.test_l_bfgs_b_funjac�sn���(���1�b�'��04��=�=�=���1�a���}��!�!�!�1�V�9�!�!�!���4�=�t�4�4�4�4�4�4r#c���tj|jddgd|j|j���}|dsJ|d���t|j|jd���dS)	Nrrr��r�r�r�r�r�r-r�)rr�r�r�r�rr rX)r^r�s  r!�test_minimize_l_bfgs_b_boundsz.TestLBFGSBBounds.test_minimize_l_bfgs_b_bounds�sl������1�b�'�*�$(�H�T�[�B�B�B���9�~�-�-�s�9�~�-�-�-����t�}�4�8�8�8�8�8�8r#r�)r�rrnc��tjtd���5tj|jddgd|j|���ddd��dS#1swxYwYdS)Nz
.*bounds.*r,rrr�r�)rr
rBrr�r�r�)r^r�s  r!�'test_minimize_l_bfgs_b_incorrect_boundsz8TestLBFGSBBounds.test_minimize_l_bfgs_b_incorrect_boundss����]�:�\�
:�
:�
:�	;�	;���d�h��B��
�"&�(�6�
;�
;�
;�
;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s�&A�A�Ac��gd�}ddg}tj||��D]b\}}tj|jddg|d||jddi���}|d	sJ|d
���t
|j|jd����cdS)
Nr�r�rzrrr��finite_diff_rel_step)r�r�r�r�r�r�r�r-r�)	r�r�rr�r�r�rr rX)r^r��argssr�r�r�s      r!� test_minimize_l_bfgs_b_bounds_FDz1TestLBFGSBBounds.test_minimize_l_bfgs_b_bounds_FDs���
,�+�+������"�*�4��7�7�	=�	=�I�C���#�D�H�q�"�g�D�+5�(+�D�K�-C�T�,J�L�L�L�C��y�>�1�1�3�y�>�1�1�1��C�E�4�=�t�<�<�<�<�<�
	=�	=r#Nr�)rvrwrxr_r�r�r�r�r�r�rrr�r�r�rzr#r!r�r��s����������-�-�-�-�����.�.�.�.�5�5�5�5�5�5�9�9�9��[���X�
�7�	�
�7�	�
�7�	�(���
;�;���
;�

=�
=�
=�
=�
=r#r�c��eZdZd�Zdd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Ze
j�dgd
���d���Ze
j�dgd
���d���Ze
j�dgd
���d���Zd�Zd�Ze
j�dddg��d���ZdS)�TestOptimizeScalarc��d|_dS)Nr()rXr]s r!r_zTestOptimizeScalar.setup_methods
����
�
�
r#r(c��||z
dzdz
S)zObjective functionr&r�rz)r^r r4s   r!r�zTestOptimizeScalar.fun s���A���z�C��r#c���tj|j��}t||jd���tj|jd���}t||jd���tj|jd���}t|d|jd���tj|jd���}t||jd���d	}tjt|�
��5tj|jd���ddd��n#1swxYwYd}tjt|�
��5tj|jd
���ddd��dS#1swxYwYdS)Nr-r��rPr\��brackT�r�r�i�r��/\(f\(xb\) < f\(xa\)\) and \(f\(xb\) < f\(xc\)\)r,�rrr�\(xa < xb\) and \(xb < xc\)�rrr)r�brentr�rrXrr
rB)r^r r�s   r!�
test_brentzTestOptimizeScalar.test_brent$s����N�4�8�$�$����4�=�t�4�4�4�4��N�4�8�8�4�4�4����4�=�t�4�4�4�4��N�4�8��6�6�6����!��d�m�$�7�7�7�7��N�4�8�=�9�9�9����4�=�t�4�4�4�4�D��
�]�:�W�
5�
5�
5�	7�	7��N�4�8�:�6�6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�1��
�]�:�W�
5�
5�
5�	7�	7��N�4�8�:�6�6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7s$�*D�D�D�:E#�#E'�*E'c��tj|j��}t||jd���tj|jd���}t||jd���tj|jd���}t|d|jd���tj|jd���}t||jd���tj|jd�	��}t||j��gd
�}|D]]}tj|jdd���}tj|j|d���}|d|d}}t||z
|���^d
}t
jt|���5tj|jd���ddd��n#1swxYwYd}t
jt|���5tj|jd���ddd��dS#1swxYwYdS)Nr-r�r�r�Tr�rr��r�)rrr
)rYr�r&r�r,r�r�r�)	r�goldenr�rrXrrr
rB)r^r �maxiter_test_casesrYrF�nfev0r�r�s        r!�test_goldenzTestOptimizeScalar.test_golden9sk���O�D�H�%�%����4�=�t�4�4�4�4��O�D�H�H�5�5�5����4�=�t�4�4�4�4��O�D�H�$�7�7�7����!��d�m�$�7�7�7�7��O�D�H�M�:�:�:����4�=�t�4�4�4�4��O�D�H�!�,�,�,����4�=�)�)�)�&�Y�Y��)�	0�	0�G�����1�$�G�G�G�B�����'�t�L�L�L�A��Q�%��1��4�E�����w�/�/�/�/�D��
�]�:�W�
5�
5�
5�	8�	8��O�D�H�J�7�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�1��
�]�:�W�
5�
5�
5�	8�	8��O�D�H�J�7�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8s$�>F&�&F*�-F*�G7�7G;�>G;c���tj|jdd��}t|dd���tj|jdd��}t||jd���tj|jtjdg��tjdg����}t||jd���tttj|jdd��dS)Nrrrkr�r
r-)	r�	fminboundr�rrXrr=rArBr�s  r!�test_fminboundz!TestOptimizeScalar.test_fminboundXs�����t�x��A�.�.����1�4�(�(�(�(���t�x��A�.�.����4�=�t�4�4�4�4���t�x���1�#�����!��
�
�F�F����4�=�t�4�4�4�4��j�(�"4�d�h��1�E�E�E�E�Er#c�N�tjtd���5tj|jt
jd��d��ddd��n#1swxYwYtj|jdt
jd����}t||j
d���dS)Nz.*must be finite scalars.*r,�rr&rr
r-r�)rr
rBrr�r�rrUr=rrXr�s  r!�test_fminbound_scalarz(TestOptimizeScalar.test_fminbound_scalarcs���
�]�:�-I�
J�
J�
J�	>�	>���t�x���&�)9�)9�1�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�
��t�x��B�H�Q�K�K�8�8����4�=�t�4�4�4�4�4�4s�.A�A�Ac�8�d�}tj|dd��dS)Nc��|dzSrGrzrs r!r�z,TestOptimizeScalar.test_gh11207.<locals>.funkrkr#r)rr�)r^r�s  r!�test_gh11207zTestOptimizeScalar.test_gh11207js,��	�	�	���3��1�%�%�%�%�%r#c���tj|j��j}t	||jd���tj|jd���}|jsJ�tj|jdtd������}|jrJ�tj|jdd	d�
��j}t	||jd���tj|jdd	���j}t	||jd���tj|jdd	d�
��j}t	||jd���tj|jdd	d
�
��j}t	||jd���tj|jd
d	���j}t	||jd���tj|jdd	d
�
��j}t	||jd���tj|jdd	d���j}t	|dd���tj|jdd	d���j}t	||jd���tj|jtj	dg��tj	dg��ftj	dg��fd���j}t	||jd���tttj|jddd	���tttj|jtjd��dfdd	���tj|jdtj	d��fd���j}t	||jd���dS)Nr-r��Brentr�rPr�r�r��r()�bracketr�r�)r�r�r�r�)rr�Bounded)r�r�r�rrk)rr
�boundedr
r()r
r�r�r�r�r&rQ)
r�minimize_scalarr�r rrXr�rrr=rArBrUr�s  r!�test_minimize_scalarz'TestOptimizeScalar.test_minimize_scalaros����$�T�X�.�.�0����4�=�t�4�4�4�4��$�T�X�g�>�>�>���y�����$�T�X�g�-1�!�_�_�_�
>�
>�
>���9�����$�T�X�x�*1�'�
C�
C�
C�CD�	
���4�=�t�4�4�4�4��$�T�X�g�*0�
2�
2�
2�23�	
���4�=�t�4�4�4�4��$�T�X�}�*1�'�
C�
C�
C�CD�	
���4�=�t�4�4�4�4��$�T�X�x�*1�(�
D�
D�
D�DE�	
���4�=�t�4�4�4�4��$�T�X�h�*0�
2�
2�
2�23�	
���4�=�t�4�4�4�4��$�T�X�}�*1�(�
D�
D�
D�DE�	
���4�=�t�4�4�4�4��$�T�X�f�6�,5�
7�
7�
7�78�	
���1�4�(�(�(�(��$�T�X�f�7�,5�
7�
7�
7�78�	
���4�=�t�4�4�4�4��$�T�X�r�x���}�}�79�x���}�}�7F�+-�8�S�E�?�?�*=�,5�
7�
7�
7�89�	
�	��4�=�t�4�4�4�4��j�(�":�D�H�#�I�G�	E�	E�	E�	E�	�j�(�":�D�H� �h�q�k�k�1�-�i�g�	O�	O�	O�	O�
�$�T�X�q�"�(�1�+�+�6F�,5�
7�
7�
7�78�	
���4�=�t�4�4�4�4�4�4r#c��		dd�}tj|jd|td������}t	|j|jd	�
��dS)Nrzr/r�c�>�|d|dzdz}||��}	d}
d}d}d}
|rX|
sV||krPd}|dz
}||z
||zfD]}||g|�R�}|
dz
}
||	kr|}	|}d}�|�||��|�	|
|krd}
n
|r|
s||k�Ptj|	|||
|dk���S)NrrrITFr�r)r�r�r�r%r�rYr�r�r�r�r�rrrrrs                r!rz?TestOptimizeScalar.test_minimize_scalar_custom.<locals>.custmin�s)���Q�Z�'�!�*�,��3�E��C��J�J�E��H��E��H��D��
�4�
�E�G�O�O� ����
��#�h�.���0@�A�(�(�E��C��-��-�-�-�E���M�H��u�}�}� %�� %��#'����'��H�U�O�O�O��%�(�f�*<�*<��D���
�4�
�E�G�O�O� �*�u��5�08�5�1�9�O�O�O�
Or#)rr�r	r
)r�r�r�r-r�r)rr�r�rrr rX)r^rr�s   r!�test_minimize_scalar_customz.TestOptimizeScalar.test_minimize_scalar_custom�st��AD�*.�	O�	O�	O�	O�8�&�t�x��.5�/3�T�/B�/B�/B�D�D�D��	���t�}�4�8�8�8�8�8�8r#c�<�tj|jd���dS)Nr(�r��rr�r�r]s r!�&test_minimize_scalar_coerce_args_paramz9TestOptimizeScalar.test_minimize_scalar_coerce_args_param�s ��� ����4�4�4�4�4�4r#r�)r�r�r�c�J�dD]}tj|jd|i���� dS)N)rrr&rPr)r�r�)r^r�rs   r!�	test_dispzTestOptimizeScalar.test_disp�s@��!�	G�	G�D��$�T�X���~�F�F�F�F�F�	G�	Gr#c�,�|dkrdddgini}tj|jfd|i|��}t|d��sJ�t|d��sJ�t|d��sJ�t|d	��sJ�t|d
��sJ�t|d��sJ�dS)Nr�r�rYr�r�r r�r�r�r�r�)rr�r�r[)r^r�rpr	s    r!�test_result_attributesz)TestOptimizeScalar.test_result_attributes�s���*0�I�*=�*=�(�S�"�I�&�&�2���)�$�(�L�L�6�L�V�L�L���v�s�#�#�#�#�#��v�y�)�)�)�)�)��v�y�)�)�)�)�)��v�u�%�%�%�%�%��v�v�&�&�&�&�&��v�u�%�%�%�%�%�%�%r#c
�>��tj�d��dg��fd�}d}d}tjd���5t	��5}|�td��|�td	��|�td
��dg�|dkrd|ini}tj	|fd
|i|�|td���d���}t|jd��ddd��n#1swxYwYddd��dS#1swxYwYdS)Nr*rc����dxxdz
cc<�ddkrtjS|dzdtj|��zzS)Nrrr�r&r/)rr�r3r�s �r!riz0TestOptimizeScalar.test_nan_values.<locals>.func�sG����!�H�H�H��M�H�H�H��Q�x�!�|�|��v�
��!�t�c�B�F�1�I�I�o�-�-r#r�rOr�r�r�r�r�r�r�r�r�r�r�F)
rr)r,r�r	r�r�rbrr�rrr�)	r^r�rir�r�r�rpr�r�s	        @r!r�z"TestOptimizeScalar.test_nan_values�s����	�	���t�������	.�	.�	.�	.�	.�����
�[��
*�
*�
*�	-�	-�,=�,?�,?�	-�3��J�J�{�$7�8�8�8��J�J�~�'A�B�B�B��J�J�~�'B�C�C�C��C�E�+1�Y�+>�+>�h��'�'�B�F��*�4�E�E��E�-3�E�<B�37��3C�3C�3C�E�E�E�E�C�
���e�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s7�D�BC:�.D�:C>	�>D�C>	�D�D�Dc��d�}tj|��}t|jdd���tj|dddi���}t|jd	��dS)
Nc��|dzSrGrzrs r!rhzCTestOptimizeScalar.test_minimize_scalar_defaults_gh10911.<locals>.frkr#rr;r�)rr�r<r])r�r�r)rr�rr )r^rhr�s   r!�%test_minimize_scalar_defaults_gh10911z8TestOptimizeScalar.test_minimize_scalar_defaults_gh10911sx��	�	�	��&�q�)�)�����q�t�,�,�,�,��&�q��07��/?�A�A�A�����q�!�!�!�!�!r#c��d}tjt|���5tjt
jdt
jf���ddd��n#1swxYwYtjt|���5tjt
jt
jdf���ddd��dS#1swxYwYdS)Nz+Optimization bounds must be finite scalars.r,rrm)	rr
rBrr�rr3rer�)r^r5s  r!�'test_minimize_non_finite_bounds_gh10911z:TestOptimizeScalar.test_minimize_non_finite_bounds_gh10911sM��<��
�]�:�S�
1�
1�
1�	A�	A��$�R�V�Q���K�@�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�
�]�:�S�
1�
1�
1�	A�	A��$�R�V�R�V�Q�K�@�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	A�	As#�-A�A�A�=-B7�7B;�>B;r�r�c��d}tjt|���5tjt
j|d���ddd��dS#1swxYwYdS)Nz'Use of `bounds` is incompatible with...r,r��r�r�)rr
rBrr�rr3)r^r�r5s   r!�2test_minimize_unbounded_method_with_bounds_gh10911zETestOptimizeScalar.test_minimize_unbounded_method_with_bounds_gh10911s���8��
�]�:�S�
1�
1�
1�	K�	K��$�R�V�F�6�J�J�J�J�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�	K�	Ks�"A
�
A�ANr�)rvrwrxr_r�r�r�r�r�r�r�r�r�rrr�r�r�r�r�r�rrzr#r!r�r�s���������� � � � �7�7�7�*8�8�8�>	F�	F�	F�5�5�5�&�&�&�
:5�:5�:5�x!9�!9�!9�F5�5�5��[���X�'E�'E�'E�F�F�G�G�G�F�G�
�[���X�'E�'E�'E�F�F�&�&�G�F�&��[���X�'E�'E�'E�F�F�-�-�G�F�-�:"�"�"�A�A�A��[���X���':�;�;�K�K�<�;�K�K�Kr#r�c�^�tttjtjd���dS)Ng{�G�z��r�)rArBrr�rr8rzr#r!�test_brent_negative_tolerancer s#���*�h�n�b�f�$�?�?�?�?�?�?r#c�&�eZdZd�Zd�Zd�Zd�ZdS)�TestNewtonCgc�$�tjddg��}tjtj|tjtjdd���}|jsJ|j���t|j
tjddg��d���dS�	Nr�rMr�r�r�rrr�r�rrkr�)rr=rr�r�r�r?r�r�rr �r^rFr�s   r!�test_rosenbrockzTestNewtonCg.test_rosenbrock%s���
�X�t�S�k�
"�
"�������$,�$6�%-�%8�$(�'2�	4�4�4��
�{�'�'�C�K�'�'�'����r�x��A��/�/�d�;�;�;�;�;�;r#c�&�tjt��}tjt
|ttdd���}|jsJ|j	���t|jtd���t|j
td���dS)Nrr-)r�rrr�r�rkr�r�)rr=rErr��
himmelblaurCrDr�r�rr �himmelblau_xoptr��himmelblau_minr	s   r!�test_himmelblauzTestNewtonCg.test_himmelblau/s���
�X�m�
$�
$����
� "�$3�%4�'2�$(�*�*�*���{�'�'�C�K�'�'�'�����T�:�:�:�:�����d�;�;�;�;�;�;r#c��tjddg��}tjtj|tjddd���}|jsJ|j���t|j	tjddg��d�	��dS)
Nr�rMr�r�rrrrkr�)
rr=rr�r�r�r�r�rr r	s   r!�test_finite_differencez#TestNewtonCg.test_finite_difference;s���
�X�t�S�k�
"�
"�������$,�$6�%.�$(�'2�	4�4�4��
�{�'�'�C�K�'�'�'����r�x��A��/�/�d�;�;�;�;�;�;r#c�2�tjddg��}tjtj|tjtj��dd���}|jsJ|j���t|j
tjddg��d���dSr)rr=rr�r�r�r�r�r�rr r	s   r!�test_hessian_update_strategyz)TestNewtonCg.test_hessian_update_strategyEs���
�X�t�S�k�
"�
"�������$,�$6�%-�]�_�_�$(�'2�	4�4�4��
�{�'�'�C�K�'�'�'����r�x��A��/�/�d�;�;�;�;�;�;r#N)rvrwrxr
rrrrzr#r!rr$sP������<�<�<�
<�
<�
<�<�<�<�<�<�<�<�<r#rc�B�tjj}tjgd���}tjgd���}tjgd���}tjgd���}|tjgd���ddf|tjgd���d	d
f|tjgd���dd
f|tjgd���ddf|tjgd���d	d
f|tjgd���ddf|tjgd���ddf|tjgd���ddf|tjgd���dd	f|tjgd���ddf|tjgd���ddf|tjgd���dd	f|tjgd���ddff
}|D]<\}}}}	|||||��\}
}t|
|d���t||	d����=tjtjd	tjdg��}tjtjd
d
tjg��}|tjgd���tjtjf|tjgd���d	d
f|tjgd���tjd
f|tjgd���dtjf|tjgd���d	d
f|tjgd���dtjf|tjgd���tjtjf|tjgd���dd	f|tjgd���tjdf|tjgd���dtjf|tjgd���dd	f|tjgd���dtjff}|D]<\}}}}	|||||��\}
}t|
|d���t||	d����=dS)N)�333333�rr�rP)r�r�ffffff@rP�rQrrr)rQr&rPr�rMrrrrr��rQrrrrr�rQrrrr�r�rQrrrrPrP)rMrrr)rMrrr&r()rIrrr&gffffff�?g333333@)rMrrrr-r�g333333�)rr/�_line_for_searchrr=rre)�line_for_search�lower_bound�upper_boundrF�x1�	all_testsr �alpha�lmin�lmax�mi�mas            r!�test_line_for_searchr'Ps%��
�(�9�O��(�/�/�/�0�0�K��(�+�+�+�,�,�K�
��-�-�-�	 �	 �B�	��.�.�.�	!�	!�B�
�R�X�m�m�m�
$�
$�d�C�0�	�R�X�m�m�m�
$�
$�b�!�,�	�R�X�m�m�m�
$�
$�d�C�0�	�R�X�m�m�m�
$�
$�b�!�,�	�R�X�m�m�m�
$�
$�b�!�,�	�R�X�n�n�n�
%�
%�t�S�1�	�R�X�n�n�n�
%�
%�t�T�2�	�R�X�m�m�m�
$�
$�d�C�0�	�R�X�m�m�m�
$�
$�b�"�-�	�R�X�m�m�m�
$�
$�c�3�/�	�R�X�m�m�m�
$�
$�b�!�,�	�R�X�m�m�m�
$�
$�b�"�-�	�R�X�n�n�n�
%�
%�t�T�2��I� !*�-�-���5�$�� ���E�;��D�D���B���D�t�,�,�,�,���D�t�,�,�,�,�,��(�R�V�G�R�"�&��"�5�6�6�K��(�B�F�A�s�B�F�3�4�4�K�
�R�X�m�m�m�
$�
$�r�v�g�r�v�6�	�R�X�m�m�m�
$�
$�b�!�,�	�R�X�m�m�m�
$�
$�r�v�g�s�3�	�R�X�m�m�m�
$�
$�b�"�&�1�	�R�X�m�m�m�
$�
$�b�!�,�	�R�X�n�n�n�
%�
%�t�R�V�4�	�R�X�m�m�m�
$�
$�r�v�g�r�v�6�	�R�X�m�m�m�
$�
$�b�"�-�	�R�X�m�m�m�
$�
$�r�v�g�s�3�	�R�X�m�m�m�
$�
$�b�"�&�1�	�R�X�m�m�m�
$�
$�b�"�-�	�R�X�n�n�n�
%�
%�t�R�V�4�
�I�!*�-�-���5�$�� ���E�;��D�D���B���D�t�,�,�,�,���D�t�,�,�,�,�,�-�-r#c
���tjj}d�}tjgd���}||��}tjtjgdz��}tjtjgdz��}tjgd���dftjgd���dftjgd���d	ftjgd
���dftjgd���d
ftjgd���dftjgd���dff}|D]�\}}|||||d���\}	}
}t
|	|||z��d���t
|
||zd���t
|||zd���||||d|||���\}	}
}t
|	|||z��d���t
|
||zd���t
|||zd�����dS)Nc�^�tj|tjgd���z
dz��S�N)r�rIr(皙����ٿr&�rr4r=rs r!r�z(test_linesearch_powell.<locals>.<lambda>�s+��R�V�Q���*=�*=�*=�!>�!>�>��B�C�C�r#rr�rrrr&rr(rr+�r�rrr��?�rQrrr皙�����?�rIrrr��������r�)�fvalr�r-r��r�rrr3)rr/�_linesearch_powellrr=rer��linesearch_powellrirKr3rrr!�xi�lrhrmr+s            r!�test_linesearch_powellr:�s/�� �*�=��D�C�D�	��-�-�-�	 �	 �B��4��8�8�D��(�R�V�G�9�q�=�)�)�K��(�B�F�8�a�<�(�(�K�
��-�-�-�	 �	 �"�%�	��-�-�-�	 �	 �!�$�	��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �#�&�	��.�.�.�	!�	!�4�(�	��-�-�-�	 �	 �#�&�	��.�.�.�	!�	!�4�(��I��
6�
6���A�+�+�D�"�b�15�4�A�A�A���1�i���4�4��B��<�<�d�3�3�3�3���1�r�6��-�-�-�-��	�1�r�6��5�5�5�5�+�+�D�"�b�d�8C�8C�15�7�7�7���1�i�	��4�4��B��<�<�d�3�3�3�3���1�r�6��-�-�-�-��	�1�r�6��5�5�5�5�5�
6�
6r#c
��tjj}d�}tjgd���}||��}tjdgdz��}tjdgdz��}tjgd���dftjgd���d	ftjgd
���dftjgd���d
ftjgd���dftjgd���dftjgd���dff}|D]c\}}||||d|||���\}	}
}t|	|||z��d���t|
||zd���t|||zd����dtjdgdzdgz��}tjdgdzdgz��}tjgd���dftjgd���dftjgd
���dftjgd���d
ftjgd���dftjgd���dftjgd���dff}|D]c\}}||||d|||���\}	}
}t|	|||z��d���t|
||zd���t|||zd����dtjgd���}||��}tjgd���dftjgd���dftjgd
���dftjgd���d ff}|D]i\}}||||d|||���\}	}
}t|	||||zz��d���t|
|||zzd���t|||zd����jtjgd���}||��}tjdtjtjdg��}tjtjdtjdg��}tjgd���dftjgd���dftjgd
���dftjgd���d
ftjgd���dftjgd���dftjgd���dff}|D]c\}}||||d|||���\}	}
}t|	|||z��d���t|
||zd���t|||zd����dtjgd���}||��}tjgd���dftjgd���dftjgd
���dftjgd���d ff}|D]i\}}||||d|||���\}	}
}t|	||||zz��d���t|
|||zzd���t|||zd����jdS)!Nc�^�tj|tjgd���z
dz��Sr*r,rs r!r�z0test_linesearch_powell_bounded.<locals>.<lambda>�s+��R�V�Q�r�x�(;�(;�(;�<�<�<�q�@�A�A�r#rg�r�rIrrrr&rr(rr+r-r.r/r0r1r2r�r4r-r�g333333ӿrPg�������?rrNg333333ÿ)r�rrr&r�g333333�)rr/r5rr=rrer6s            r!�test_linesearch_powell_boundedr=�s�� �*�=��B�A�D�	��-�-�-�	 �	 �B��4��8�8�D��(�C�5��7�#�#�K��(�B�4��6�"�"�K�
��-�-�-�	 �	 �"�%�	��-�-�-�	 �	 �!�$�	��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �#�&�	��.�.�.�	!�	!�4�(�	��-�-�-�	 �	 �#�&�	��.�.�.�	!�	!�4�(��I��6�6���A�+�+�D�"�b�d�8C�8C�15�7�7�7���1�i�	��4�4��B��<�<�d�3�3�3�3���1�r�6��-�-�-�-��	�1�r�6��5�5�5�5�5��(�C�5��7�b�T�>�*�*�K��(�C�5��7�b�T�>�*�*�K�
��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �#�&�	��.�.�.�	!�	!�2�&�	��-�-�-�	 �	 �#�&�	��.�.�.�	!�	!�4�(��I��6�6���A�+�+�D�"�b�d�8C�8C�15�7�7�7���1�i�	��4�4��B��<�<�d�3�3�3�3���1�r�6��-�-�-�-��	�1�r�6��5�5�5�5�5�
��.�.�.�	!�	!�B��4��8�8�D�
��-�-�-�	 �	 �"�%�	��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �$�'�	�I��6�6���A�+�+�D�"�b�d�8C�8C�15�7�7�7���1�i�	��4�4��Q��V��,�,�4�8�8�8�8���2��B��;�T�2�2�2�2��	�1�r�6��5�5�5�5�5�
��-�-�-�	 �	 �B��4��8�8�D��(�C�"�&��2�6�'�2�6�7�7�K��(�B�F�C����4�5�5�K�
��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �#�&�	��.�.�.�	!�	!�2�&�	��-�-�-�	 �	 �#�&�	��.�.�.�	!�	!�4�(��I��6�6���A�+�+�D�"�b�d�8C�8C�15�7�7�7���1�i�	��4�4��B��<�<�d�3�3�3�3���1�r�6��-�-�-�-��	�1�r�6��5�5�5�5�5�
��.�.�.�	!�	!�B��4��8�8�D�
��-�-�-�	 �	 �"�%�	��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �#�&�	��-�-�-�	 �	 �$�'�	�I��6�6���A�+�+�D�"�b�d�8C�8C�15�7�7�7���1�i�	��4�4��Q��V��,�,�4�8�8�8�8���2��B��;�T�2�2�2�2��	�1�r�6��5�5�5�5�5�6�6r#c����tjddgddg����fd�}tj|ddgd����tjdgdgdg�	���d
�}tj|dgd��
��dS)Nrg333333�?r�c���|\}}|�jk���r|�jk���sJ�|dz|dzzSrG)�lbr<�ub)r r4�br�s   �r!r�ztest_powell_limits.<locals>.fun4sS������1��V�Y��#�#�%�%�@�1��	�>�*>�*>�*@�*@�@�@�@��A�v��Q���r#r��rFr�r�rT)r@rA�
keep_feasiblec�F�|dkr|dksJ�tj|��Sr�rrs r!riz test_powell_limits.<locals>.func>s%���A�v�v�!�q�&�&�&�&��v�a�y�y�r#rOr#)r�rFr�r�)rrr�)r�rir�s  @r!�test_powell_limitsrF0s����
�_�a��V�c�2�Y�
/�
/�F������

��c�s�B�i���H�H�H�H��_���!��d�W�
E�
E�
E�F����
��$�C�5��&�I�I�I�I�I�Ir#c��eZdZd�ZdS)�	TestRosenc��tjgd���}tjgd���}tj||��}tjtj|��|��}t
||��dS)N)rPr�r
)r&r&r&)rr=r�rosen_hess_prodrbr?r)r^r rm�hp�dothps     r!�	test_hesszTestRosen.test_hessGsl���H�Y�Y�Y�����H�Y�Y�Y����
�
%�a��
+�
+����x�*�1�-�-�q�1�1���R������r#N)rvrwrxrMrzr#r!rHrHEs#������ � � � � r#rHc�N�|\}}||z|zdz
}|||zzdz
}||z||zzS)zx
    R^2 -> R^1 test function for optimization. The function has four local
    minima where himmelblau(xopt) == 0.
    �r�rz)rmr r�r4rBs     r!rrPsA��

�D�A�q�	�!��a��"��A�	�A�a�C��!��A��Q�3��1��9�r#c��|\}}tjd|dzzd|z|zzd|zz
d|dzzzdz
d|dzzd|z|zzd|dzzzd|zz
dz
g��S)Nr�rP�*r&��rr�rmr r�s   r!rCrC[s����D�A�q�
�8�Q�q�!�t�V�a��c�!�e�^�b��d�*�Q�q�!�t�V�3�b�8��q�!�t�V�a��c�!�e�^�a��1��f�,�r�!�t�3�b�8�:�;�;�;r#c��|\}}tjd|dzzd|zzdz
d|zd|zzgd|zd|zzd|zd|dzzzdz
gg��S)N�r&r�rQrSrrTs   r!rDrDasu���D�A�q�
�8�b��A��g��!��m�b�(�!�A�#��!��)�4���c�A�a�C�i��1��r�!�Q�$�w���!3�4�6�7�7�7r#gH�z�Gѿg�������rPr&rQc��d�}d�}d�}d|d�d|d�d|d�f}d�}tj|gd�d|�	��}t|jgd
�d���dS)
Nc�t�tjdd|dzz
d|dzz
d|dzz
g��S)N�r:rrfrrgr&rrs r!riz0test_minimize_multiple_constraints.<locals>.funcns;���x��c�A�a�D�j��3��1��:�5��q��t��C�D�E�E�Er#c�8�tj|dg��Srrrs r!�func1z1test_minimize_multiple_constraints.<locals>.func1q����x��1�����r#c�8�tj|dg��SrGrrs r!r�z1test_minimize_multiple_constraints.<locals>.func2tr\r#rTrUc�<�d|d|dz|dzzS)Nrrrr&rzrs r!r�z4test_minimize_multiple_constraints.<locals>.<lambda>{s ��"��!��q��t��a��d�*�+�r#rRrYrW)�}rrr]r�)rr�rr )rir[r�rSrhr�s      r!�"test_minimize_multiple_constraintsr`ls���F�F�F� � � � � � ��D�)�)��E�*�*��E�*�*�,�D�	,�+�A�
�
�A�y�y�y��d�
K�
K�
K�C��C�E�;�;�;�U�3�3�3�3�3�3r#c��eZdZd�Zd�ZdS)�TestOptimizeResultAttributesc��ddg|_tj|_tj|_tj|_tj|_	ddg|_
dS)Nr
)rQr�)rFrr�rir�r�r?rrrJrur�r]s r!r_z)TestOptimizeResultAttributes.setup_method�sD���a�&����N��	��%����'��	��-��
� �)�,����r#c
��gd�}ddgi}tD]�}t��5}|�td��t	j|j|j||j|j	|j
���}ddd��n#1swxYwY|D]6}||vr|||vr�t||��sJ�|t|��vsJ��7t|jt��sJ���dS)N)r�r�r r�r�r�r�r'r�z7Method .+ does not use (gradient|Hessian.*) information)r�r�rrru)rr	r�rbrr�rirFr�rrrur[�dir�
isinstancer��str)r^�
attributesr�r�r�r��	attributes       r!�test_attributes_presentz4TestOptimizeResultAttributes.test_attributes_present�s\��!�!�!�
��5�'�"��&�	0�	0�F�"�$�$�
:���
�
�>�+�-�-�-��'��	�4�7�6�,0�H�4�9�.2�j�:�:�:��	
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:�(�
-�
-�	��T�>�>�i�4��<�&?�&?���s�I�.�.�.�.�.� �C��H�H�,�,�,�,�,��c�k�3�/�/�/�/�/�/�!	0�	0s�AA<�<B	�B	N)rvrwrxr_rjrzr#r!rbrb�s2������-�-�-�0�0�0�0�0r#rbc
�~�|\}}|\
}}}}}}	}
}}}
}}}||dzz||z|zz||dzzz||zz||zz|	zSrGrz�rr�r r�r4rBr�r�r�rhr�r�r4rr�r9r�s                 r!�f1rm�sj���D�A�q�06�-�A�q�!�Q��1�a��A�q�!�Q��
��1��H�q�1�u�q�y� �1�q�!�t�8�+�a��c�1�A�a�C�7�!�;�<r#c
��|\}}|\
}}}}}}	}
}}}
}}}|
tj||z
dz||z
dzz|z��zSrGrrls                 r!�f2ro��_���D�A�q�06�-�A�q�!�Q��1�a��A�q�!�Q��
�B�r�v��1��q��A�a�C�!�8�+�,�u�4�5�5�5�6r#c
��|\}}|\
}}}}}}	}
}}}
}}}|
tj||z
dz||z
dzz|z��zSrGrrls                 r!�f3rr�rpr#c�T�t|g|�R�t|g|�R�zt|g|�R�zSr2)rmrorr)rr�s  r!�
brute_funcrt�s6��
�a�>�&�>�>�>�B�q�N�6�N�N�N�*�R��^�F�^�^�^�;�;r#c�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�	TestBrutec��d|_tddd��tddd��f|_tjddg��|_dS)N)
r&rPr�r�r�r��,rr&rSrr\rOrPr���?g_}����g��i��?)r��slice�rrangesrr=rXr]s r!r_zTestBrute.setup_method�sG��D����b�!�T�*�*�E�"�a��,>�,>�?�����+�z�!:�;�;��
�
�
r#c��t|g|�R�Sr2)rt)r^rr�s   r!rtzTestBrute.brute_func�s���!�%�f�%�%�%�%r#c��tjt|j|jdtj���}t
|d|jd���t
|dt|jg|j�R�d���tjt|j|jdtj���}t
|d|jd���t
|dt|jg|j�R�d���tj|j|j|jdtj���}t
|d|jd���dS)NT�r�r��finishrr�r�r)	r�brutertr{r�r�rrXr�)r^�resbrutes  r!�
test_brutezTestBrute.test_brute�sK���>�*�d�l���.2�8�=�J�J�J������T�]��>�>�>�>�����Z��
�%L���%L�%L�%L�!�	#�	#�	#�	#��>�*�d�l���.2�)1�):�<�<�<��	����T�]��>�>�>�>�����Z��
�%L���%L�%L�%L�!�	#�	#�	#�	#�
�>�$�/�4�<�'+�{��)1�):�<�<�<��	����T�]��>�>�>�>�>�>r#c�>�d�}tj|dgdd���dS)Nc�f�t|j��dksJ�|jddksJ�|dzS)Nrrr&)rT�shapers r!rhzTestBrute.test_1D.<locals>.f�s7���q�w�<�<�1�$�$�$�$��7�1�:��?�?�?�?���6�Mr#rOrP)�Nsr)rr�)r^rhs  r!�test_1DzTestBrute.test_1D�s4��	�	�	�
	��q�7�)��$�7�7�7�7�7�7r#c��tjt|j|jdd���}tjt|j|jddd���}t|d|d��t|d|d��dS)NTr~r&)r�r�r�workersrr)rr�rtr{r�r)r^r��	resbrute1s   r!�test_workerszTestBrute.test_workers�s����>�*�d�l���.2�4�A�A�A���N�:�t�|�$�+�/3�D�!�M�M�M�	�	�	�"�
�x��|�4�4�4��	�!��h�q�k�2�2�2�2�2r#c���tj�d����fd�}tjt
d���5t
j||j|j	d���ddd��dS#1swxYwYdS)Nr*c�4����d��dzSr r!)rr�r"s  �r!riz,TestBrute.test_runtime_warning.<locals>.func�s����:�:�a�=�=�4�'�'r#z)Either final optimization did not succeedr,T)r�r)
rr)r&rrarbrr�r{r�)r^rir"s  @r!rczTestBrute.test_runtime_warning�s�����i�#�#�D�)�)��	(�	(�	(�	(�	(��\�.� L�N�N�N�	L�	L��N�4���D�K�d�K�K�K�K�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L�	L�	Ls�#A1�1A5�8A5c�z�d�}tj|tddd��fd���}t|d��dS)Nc��||dzSr�rz)r r�s  r!rhz+TestBrute.test_coerce_args_param.<locals>.f�s����Q��<�r#rPr�ryr&r�r)rr�rzr)r^rhr�s   r!�test_coerce_args_paramz TestBrute.test_coerce_args_param�sN��	 �	 �	 ��>�!�e�B��3�&7�&7�%9��B�B�B����!�$�$�$�$�$r#N)
rvrwrxr_rtr�r�r�rcr�rzr#r!rvrv�s�������<�<�<�
&�&�&�?�?�?�.8�8�8�	3�	3�	3�L�L�L�%�%�%�%�%r#rvc����	�
�ddl}ddl�
�
fd���
fd��	d���fd�}��	fd�}|j���5}g}|�|�|����|�|�|����|D]}|���}�	ddd��dS#1swxYwYdS)Nrc�D����d��|ddzS)Nr/rr&��sleep�r �times �r!�
objective1z*test_cobyla_threadsafe.<locals>.objective1
	s����
�
�3������t�Q�w�r#c�J����d��|ddz
dzS)Nr/rrr&r�r�s �r!�
objective2z*test_cobyla_threadsafe.<locals>.objective2	s$����
�
�3�����!��Q���{�r#�COBYLAc�4��tj�dg����S�NrQr�r3)�
min_methodr�s��r!�
minimizer1z*test_cobyla_threadsafe.<locals>.minimizer1	�'���� ��'*�e�-7�9�9�9�	9r#c�4��tj�dg����Sr�r3)r�r�s��r!�
minimizer2z*test_cobyla_threadsafe.<locals>.minimizer2	r�r#)�concurrent.futuresr��futures�ThreadPoolExecutorrd�submitr	)�
concurrentr�r��pool�tasksrdr�r�r�r�r�s       @@@@r!�test_cobyla_threadsafer�	sn�����������K�K�K������������J�9�9�9�9�9�9�
9�9�9�9�9�9�

�	�	.�	.�	0�	0��D���
���T�[�[��,�,�-�-�-�
���T�[�[��,�,�-�-�-��	�	�A��(�(�*�*�C�C�	�	��������������������s�A,B8�8B<�?B<c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�TestIterationLimitsc��d|_dSr�)r�r]s r!r_z TestIterationLimits.setup_method*	s
����
�
�
r#c��|xjdz
c_tj|ddz|ddzz��tj|d|d��}}tj|dz|z��|dzzS)Nrrr&r�rO)r�rr��arctan2r3)r^r�rGrds    r!�	slow_funczTestIterationLimits.slow_func-	sn���
�
���
�
��w�q��t�Q�w�q��t�Q�w��'�'���A�a�D�!�A�$�)?�)?�1���v�a��d�Q�h����#��%�%r#c�2�|�dd��dS)Nr$����check_limitsr]s r!�test_neldermead_limitz)TestIterationLimits.test_neldermead_limit2	s�����-��-�-�-�-�-r#c�2�|�dd��dS)Nr#rRr�r]s r!�test_powell_limitz%TestIterationLimits.test_powell_limit5	s�����(�D�)�)�)�)�)r#c
��ddgddgddgfD�]�}dD]`}d|_tj|j||d|i���}|j|dksJ�|d	r|d|ksJ��R|d|ksJ��adD]F}tj|j||d
|i���}|d	r|d|ksJ��8|d|ksJ��Gddgd
d
gd
tjgfD]|\}}d|_tj|j||||d����}|j|dksJ�|d	r|d|kr|d|ksJ��b|d|ks|d|ksJ��}tjdgdtjgfD]�\}}d|_tj|j||||d����}|j|dksJ�|d	r&|�|d|dzksJ��[|d|dzksJ��m|d|dzks|d|dzksJ������dS)Nr/rr&)r�i��rr%r�r�r�rYr�r�r�)rYr%)r�rr�r�rre)r^r��
default_iters�start_v�mfevr��mits       r!r�z TestIterationLimits.check_limits8	s���c�
�Q��F�Q��F�3�+	[�+	[�G�'�	
/�	
/�� !��
��'����/5�19�4�0@�B�B�B���}��F��3�3�3�3��y�>�/��v�;��-�-�-�-�-��v�;�$�.�.�.�.�.�&�
-�
-���'����/5�1:�C�0@�B�B�B���y�>�-��u�:��,�,�,�,�,��u�:��,�,�,�,�,�!�2�h��t��t�R�V�n�E�

D�

D�	��c� !��
��'����/5�<?�;?�1A�1A�B�B�B���}��F��3�3�3�3��y�>�D��v�;��-�-�#�e�*��2C�2C�2C�2C�2C��v�;�$�.�.�#�e�*��2C�2C�2C�2C��!�v�t�n�t�R�V�n�=�

[�

[�	��c� !��
��'����/5�<?�;?�1A�1A�B�B�B���}��F��3�3�3�3��y�>�[��|�"�6�{�]�1�_�<�<�<�<�<�"�5�z�]�1�_�<�<�<�<�<��v�;�-��/�9�9�S��Z�=�YZ�?�=Z�=Z�=Z�=Z��

[�=+	[�+	[r#N)rvrwrxr_r�r�r�r�rzr#r!r�r�&	sd���������&�&�&�
.�.�.�*�*�*�,[�,[�,[�,[�,[r#r�c�0�d�}d�}d�}gd�}|D]>}tj|tjdg��|���}|jjdksJ��?gd�}|D]@}tj|tjdg��|||�	��}|jjdksJ��AdS)
Nc��||zSr2rzrs r!r�z2test_result_x_shape_when_len_x_is_one.<locals>.funh	s���1�u�r#c��d|zS�NrIrzrs r!r�z2test_result_x_shape_when_len_x_is_one.<locals>.jack	s���A�v�
r#c�.�tjdgg��Sr�rrs r!rrz3test_result_x_shape_when_len_x_is_one.<locals>.hessn	s���x�"�����r#)r$r�r�r�r�r�r�rYr/r��r)r�r�r�r�r�rr�)rr�rr=r r�)r�r�rrr�r�r�s      r!�%test_result_x_shape_when_len_x_is_oner�g	s��������� � � �"�"�"�G��#�#�����R�X�s�e�_�_�V�D�D�D���u�{�d�"�"�"�"�"�,�,�,�G��#�#�����R�X�s�e�_�_�V��%)�+�+�+���u�{�d�"�"�"�"�"�#�#r#c��eZdZd�Zd�ZdS)�FunctionWithGradientc��d|_dSr�)�number_of_callsr]s r!r�zFunctionWithGradient.__init__�	s�� ����r#c�Z�|xjdz
c_tj|dz��d|zfSr%)r�rr4r�s  r!r�zFunctionWithGradient.__call__�	s1������!����v�a��d�|�|�Q��U�"�"r#Nr�rzr#r!r�r��	s2������!�!�!�#�#�#�#�#r#r�c��t��Sr2)r�rzr#r!�function_with_gradientr��	s���!�!�!r#c�x�t|��}tjddg��}t||��d��|jdksJ�t|�|��d|z��|jdks
Jd���t|d|z��dd�	��|jdks
Jd���dS)
NrMrI�@rr&zHfunction is not recomputed if gradient is requested after function valueg4@�(different input triggers new computationr�)rrr=rr��
derivative�r��memoized_functionrFs   r!�)test_memoize_jac_function_before_gradientr��	s���"�#9�:�:��	��3��*�	�	�B��%�%�b�)�)�3�/�/�/�!�1�Q�6�6�6�6��%�0�0��4�4�a�"�f�=�=�=�!�1�Q�6�6�6�	8�7�6�6����!�b�&�!�!�4�:�<�<�<�<�"�1�Q�6�6�6�2�7�6�6�6�6r#c��t|��}tjddg��}t|�|��d|z��|jdksJ�t||��d��|jdks
Jd���t|�d|z��d|zd�	��|jdks
Jd���dS)
NrMrIr&rr�zHfunction is not recomputed if function value is requested after gradientr�r�r�)rrr=rr�r�r�s   r!�)test_memoize_jac_gradient_before_functionr��	s���"�#9�:�:��	��3��*�	�	�B��%�0�0��4�4�a�"�f�=�=�=�!�1�Q�6�6�6�6��%�%�b�)�)�3�/�/�/�!�1�Q�6�6�6�	8�7�6�6���$�$�Q��V�,�,�a�"�f�:�<�<�<�<�"�1�Q�6�6�6�2�7�6�6�6�6r#c	�\�t|��}|j}tj��}t	jddg��}t
||d||dd��}|jdksJ�|�|dz��|jdksJ�|�|dz��|jd	ksJ�dS)
z� Tests that using MemoizedJac in combination with ScalarFunction
        and BFGS does not lead to repeated function evaluations.
        Tests changes made in response to GH11868.
    rMrOrzNrr/r&r:rP)	rr�rr�rr=rr�r�)r�r�r�rrrF�scalar_functions      r!�test_memoize_jac_with_bfgsr��	s���
#�#9�:�:��
�
&�C��=�?�?�D�	��3��*�	�	�B�$��2�r�3��d�D�:�:�O�!�1�Q�6�6�6�6�����S��!�!�!�!�1�Q�6�6�6�6�����S��!�!�!�!�1�Q�6�6�6�6�6�6r#c��t��5tjd�tjtjd���ddd��dS#1swxYwYdS)Nc�2�tj|dzg��SrGrrs r!r�ztest_gh12696.<locals>.<lambda>�	s��b�h��1��v�&�&�r#Fr�)rrr�rr�rzr#r!�test_gh12696r��	s���	�	�	�C�C���&�&������E�	C�	C�	C�	C�C�C�C�C�C�C�C�C�C�C�C�C����C�C�C�C�C�Cs�/A�A�Ac��������tj�d��tj�d��}tjgd����tjgd���}�|k�d��fd�	��fd���fd���fd	�}�fd
�}�fd�}�fd�}�fd
�}t|tjd��}t|tjd|��}t|tjd��}	t|tjd|��}
d}�dd���d���fd�dd�f}d�tf}
dggf||f|
|
f|g|gf|	g|
gf||	g||
gf||
g||
gf||
g||
gff	}d|f}|||
||�||�d�	}|S)Nrr�)rr&rr�)rPr&r&r�Tc�f��|r
|jdksJ�|rt|�����dSdS)Nr�)r�r)r �
check_size�check_values�i_ebr@s   ��r!�check_xz(setup_test_equal_bounds.<locals>.check_x�	sJ����	��6�Q�;�;�;�;��	/��A�d�G�R��X�.�.�.�.�.�	/�	/r#c�B���|��tj|��Sr2)rr��r r�s �r!riz%setup_test_equal_bounds.<locals>.func�	s ������
�
�
��~�a� � � r#c�B���|��tj|��Sr2)rr�r�s �r!rnz%setup_test_equal_bounds.<locals>.grad�	s!������
�
�
��!�!�$�$�$r#c����|��dSr2rz)r r�r�s  �r!r�z)setup_test_equal_bounds.<locals>.callback�	s������
�
�
�
�
r#c�8���|d���|dd�dz
S)NF�r�rrrzr�s �r!�constraint1z,setup_test_equal_bounds.<locals>.constraint1�	s*�������&�&�&�&���1��v��z�r#c�T���|d���tj|��}d|d<|S)NFr�rr�r�
zeros_like�r �dcr�s  �r!�	jacobian1z*setup_test_equal_bounds.<locals>.jacobian1�	�5�������&�&�&�&�
�]�1�
�
����1���	r#c�8���|d���|dd�dz
S)NFr�r&rPrOrzr�s �r!�constraint2z,setup_test_equal_bounds.<locals>.constraint2�	s*�������&�&�&�&���1��v��|�r#c�T���|d���tj|��}d|d<|S)NFr�rr&r�r�s  �r!�	jacobian2z*setup_test_equal_bounds.<locals>.jacobian2�	r�r#)r�rYr�Fr�c�0���|���|��fSr2rz)r rirns ��r!r�z)setup_test_equal_bounds.<locals>.<lambda>
s�����Q�����a���1�r#c�<�tt||����Sr2)�list�zip�r@rAs  r!r�z)setup_test_equal_bounds.<locals>.<lambda>
s��$�s�2�r�{�{�"3�"3�r#r�)	r��kwds�bound_typesr�	callbacksr@rArFr�)TT)rr)r,r�r=r
rer)rFrAr�r�r�r�r��c1a�c1b�c2a�c2br�r�r�rr��datar�rirnr�r@s                 @@@@@r!�setup_test_equal_boundsr��	sx��������I�N�N�1����	�����	�	�B�	��"�"�"�	#�	#�B�	��/�/�/�	"�	"�B��"�H�D�/�/�/�/�/�/�/�!�!�!�!�!�%�%�%�%�%���������������������������k�B�F�7�A�
6�
6�C�
�k�B�F�7�A�y�
A�
A�C�
�k�B�F�7�A�
6�
6�C�
�k�B�F�7�A�y�
A�
A�C�+�G���'�'���&�&�1�1�1�1�1��
�
��D�4�3���K� �"�b����:��S�z��E�C�5�>�S�E�C�5�>��#�J��c�
�+��#�J��c�
�+��#�J��c�
�+�-�K��x� �I���[�&�Y��B�b�$�8�8�D��Kr#z0Failures due to floating point issues, not logicr�r��
bound_typer�rr�r�c	�b�tj��dkr&|dkr |ddur|�tjd��tdtd}}td	td
}}|\}	}
|	r|dkstjd��|	|
k}|||��}|�||||	|d
���t
jdi|��}
t
jtj||tj	||
���}|
j
sJ�t|
j|jd���t|
j
|j
d���|s
|ddurtj|j|<|
jjddksJ�t|
j||j|d���|ds�|	s�t%|t&��spd�}t
j||ddg||ddd����}t|
j|j��t|
j
ddg|j
d���dSdSdSdS)z�
    Tests that minimizers still work if (bounds.lb == bounds.ub).any()
    gh12502 - Divide by zero in Jacobian numerical differentiation when
    equality bounds constraints are used
    �aarch64r�r�FNzTolerance violation on aarchr@rArFr�rYz)Only SLSQP supports nonlinear constraints)rFr�r�rr�)r�r�r�rr-r�g����Mb@?rr�c��tjtjdtjdg��}||ddg<tj|��S)Nr&rr)rr=r�rr�)r �new_xs  r!r�ztest_equal_bounds.<locals>.fun\
s;���H�b�f�a����4�5�5�E��E�1�a�&�M��>�%�(�(�(r#r&rg����>rz)�platform�machinerr��eb_data�updaterr�r�r�r�rr�r rr�r�r�rfr)r�r�rrr�r@rArFr��test_constraints�reference_constraints�	fd_neededr�r��expectedr��fd_ress                 r!�test_equal_boundsr*
s���	����i�'�'�F�e�O�O��U��u�$�$��)=���2�3�3�3�
�T�]�G�D�M��B��t�}�g�f�o��B�.9�+��+��A��'� 1� 1���?�@�@�@�"�%:�:�I�
�Z��B�
�
�F��K�K�r�V�v� 0�h�H�H�I�I�I�
�
�
#�
#�d�
#�
#�C�� ����F�%-�%7��-B�D�D�D�H�
�;�����C�G�X�\��5�5�5�5��C�E�8�:�D�1�1�1�1��$�D��K�5�(�(��V���T���7�=���q� � � � ��C�G�D�M�8�<��#5�D�A�A�A�A���K�<�+�<�z�&�&�/I�/I�<�	)�	)�	)�
�"�3�#%�q�!�f�:�*0�*0���1��+�7�7�7��	�����,�,�,�	���q�!�f�
�v�x�d�;�;�;�;�;�;�%<�<�<�<�<�<r#c���dd�}ddg}d}tj||||���}|jsJ�t|j|ddg����|jdksJ�|jd	ksJ�d
}tj|||||���}|jsJ�t|j|ddgd����|���d
k�rd�}t|tj
d��}tj|||||g���}|jdusJ�t|j|ddg����|jdksJ�d}|j�|��sJ�t|tj
d��}tj|||||g���}|jdusJ�t|j|ddg����|jdksJ�d}|j�|��sJ�dSdS)Nrc�F�tj�|��|zSr2)r�linalg�norm)r �p1s  r!rhz test_all_bounds_equal.<locals>.fr
s���y�~�~�a� � �2�%�%r#)rr)r&r&)rMrNrQrMrIz/All independent variables were fixed by bounds.)r&r�r&rYc�*�tj|��Sr2rHrs r!�conz"test_all_bounds_equal.<locals>.con�
s���6�!�9�9�r#rQ)r�r�rFz3All independent variables were fixed by bounds, butr�Tz8All independent variables were fixed by bounds at valuesr�)rr�r�rr�r�r��upperr
rrer@)	r�rhr�rFr�r�r�nlcr�s	         r!�test_all_bounds_equalrn
sI��&�&�&�&��f�
�F�	�B�
�
�A�r�&��
@�
@�
@�C��;�����C�G�Q�Q��S�z�]�]�+�+�+��8�q�=�=�=�=��;�K�K�K�K�K��D�
�
�A�r�&��d�
K�
K�
K�C��;�����C�G�Q�Q��S�z�1�-�-�.�.�.�
�|�|�~�~�� � �	�	�	�!�#���w��4�4����
�r�&��c�U�
�
�
���{�e�#�#�#�#������C��:���/�/�/��x�1�}�}�}�}�G���{�%�%�g�.�.�.�.�.�!�#���w��2�2����
�r�&��c�U�
�
�
���{�d�"�"�"�"������C��:���/�/�/��x�1�}�}�}�}�L���{�%�%�g�.�.�.�.�.�+!� �*	/�.r#c��d�}d�}d|d�g}dgdz}d|d<tj|gd	�d
||���|dd
|ksJ�dS)Nc�T�|ddz|ddzz|d|dzzS)NrrPrr&rzrs r!rhztest_eb_constraints.<locals>.f�
s.����t�Q�w��1��q�� �1�Q�4��!��9�,�,r#c�N�|d|dz|dz|dzdz
S)Nrrr&rP�(rzrs r!�cfunz!test_eb_constraints.<locals>.cfun�
s+����t�a��d�{�Q�q�T�!�A�a�D�(�2�-�-r#rTrU)rr�r�)r
r
r)rr&rPr�rY)rFr�r�rrr�r3)rhrrr�s    r!�test_eb_constraintsr�
s���-�-�-�.�.�.�#�4�0�0�1�K��Y��]�F��F�1�I���	��<�<���������q�>�%� �D�(�(�(�(�(�(r#c�*�tttttt
d�}|���D]\}}|D]}t||����dddd�}|���D]!\}}ttt||���"dS)N)r�r��root�root_scalar�linprog�quadratic_assignment�ekkir$)r��maximize�maximize_scalar)
rrrrrr�itemsrrArB)�solver_methods�solverr�r��unknown_solver_methods     r!�test_show_optionsr+�
s���$�2��*�"� <�
��N�*�/�/�1�1�)�)�����	)�	)�F����(�(�(�(�	)�
��!����
0�5�5�7�7�@�@�����j�,���?�?�?�?�@�@r#c��tjddgddg���}tjtjt	jddg��d|���dS)Nr�r�r�r�r�rC)rrr�r�rr=rms r!�test_bounds_with_listr-�
s[��
�_��R��c�3�Z�
8�
8�
8�F�����2�8�Q��F�+�+�H�V������r#c	�2�d�}d�}d�}gd�}gd�}tjd��dz}tD]f}d}d}||vr|}||vr|}tj|||||���}	t|	jtjtj|����d	�
���gdS)Nc��tjtj|����}||z}||z}tj|��Sr2)rr@r�r4rRs  r!�fquadz/test_x_overwritten_user_function.<locals>.fquad�
s9���I�b�g�a�j�j�!�!��	�Q���	�Q����v�a�y�y�r#c�l�tjtj|����}|dz}|d|zz}|SrG)rr@r�rRs  r!�	fquad_jacz3test_x_overwritten_user_function.<locals>.fquad_jac�
s4���I�b�g�a�j�j�!�!��	�Q���	�Q��U�
���r#c�T�tjtj|����dzSr�)r�eyer�rs r!r�z2test_x_overwritten_user_function.<locals>.<lambda>�
s��2�6�"�'�!�*�*�-�-��3�r#)r%r�r�r�r�r�)r�r�r�r�r�r
r(r�g-C��6*?r�)	r�onesrrr�rr r@r�)
r0r2�
fquad_hess�meth_jac�	meth_hessrF�methr�rrr�s
          r!� test_x_overwritten_user_functionr:�
s���������4�3�J����H����I�
�����c�	�B� �B�B�������8����C��9����D����r�$�C�d�K�K�K�����r�y������5�5�D�A�A�A�A�A�B�Br#c��eZdZd�ZdS)�TestGlobalOptimizationc��d�}tj|d���tj|dg��tj|dg��tj|dg��tj|dg��g}|D]�}t
|tj��sJ�t|d��sJ�t|d��sJ�t|d��sJ�t|d��sJ�t|d	��sJ�t|d
��sJ���dS)Nc��|dzSrGrzrs r!rizDTestGlobalOptimization.test_optimize_result_attributes.<locals>.func�
s����6�Mr#r)rF)rPr�r r�r�r�r�r�)	r�basinhopping�differential_evolution�shgo�dual_annealing�directrfr�r[)r^rir:r	s    r!�test_optimize_result_attributesz6TestGlobalOptimization.test_optimize_result_attributes�
s.��	�	�	��(��!�4�4�4��2�4�'��C�C��=���y�1�1��*�4�'��;�;��?�4�'��3�3�	���	*�	*�F��f�h�&=�>�>�>�>�>��6�3�'�'�'�'�'��6�9�-�-�-�-�-��6�9�-�-�-�-�-��6�5�)�)�)�)�)��6�6�*�*�*�*�*��6�5�)�)�)�)�)�)�	*�	*r#N)rvrwrxrDrzr#r!r<r<�
s#������*�*�*�*�*r#r<c��tjtt��}t	|tt��d���tjtt
��}t	|t
t��d���dS)Nr�r�)r�
approx_fprimerErrrCrD)r�r�s  r!�test_approx_fprimerGsh��	��}�j�9�9�A��A��}�5�5�D�A�A�A�A���}�o�>�>�A��A��}�5�5�D�A�A�A�A�A�Ar#c�p�d�}tddgddg���}tj|dd|���}ttjddg��tjddg�����}tj|dd|���}t|j|j��t|j|j��dS)Nc�6�|ddz|ddz
dzzSrBrzrs r!rhztest_gh12594.<locals>.fs!����t�Q�w�!�A�$��(�Q��&�&r#rYr�r�)rrr�rC)rrr�rr=rr�r )rhr�r�r�s    r!�test_gh12594rJs���
'�'�'���S�z�r�2�h�
/�
/�
/�F�
�
�A�&��&�
I�
I�
I�C�
�r�x��c�
�+�+���"�b��0B�0B�
C�
C�
C�F�
�
�A�&��&�
I�
I�
I�C��C�G�S�W�%�%�%��C�E�3�5�!�!�!�!�!r#)eryr�r�numpyr�
numpy.testingrrrrrrr	rr
rA�scipyr�scipy.optimize._minimizerr
rr�scipy.optimize._linprogr�scipy.optimize._rootr�scipy.optimize._root_scalarr�scipy.optimize._qapr�(scipy.optimize._differentiable_functionsrr�scipy.optimize._optimizerrrHrJr|r(r6r9r?rDrLrUrhrqrsrvrxrzr|rr�r�r�r�rrr'r:r=rFrHrrCrDrEr
rr`rbrmrorrrtrvr�r�r�r��fixturer�r�r�r�r�r�r�xfail_on_32bitrrrr+r-r:r<rGrJrzr#r!�<module>rWs(��
�
�������������A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A��
�
�
�*�*�*�*�*�*�������@�@�@�@�@�@�@�@�N�N�N�N�N�N�N�N�3�3�3�3�3�3�-�-�-�-�-�-�;�;�;�;�;�;�<�<�<�<�<�<�O�O�O�O�O�O�O�O�=�=�=�=�=�=�=�=�2�2�2�j-'�-'�-'�-'�-'�-'�-'�-'�`V.�V.�V.�V.�V.��V.�V.�V.�r-�-�-�"���0H�H�H����D�D�D�$�$�$� � � �<H:�H:�H:�V&F�&F�&F�R�����8����
����� :����
����� :����
�����"<����
z
G�z
G�z
G�z
G�z
G��z
G�z
G�z
G�z�����0�0�0���-�-�	��-�:=�:=�:=�:=�:=�:=�:=�:=�zAK�AK�AK�AK�AK�AK�AK�AK�H@�@�@�)<�)<�)<�)<�)<�)<�)<�)<�X<-�<-�<-�~"6�"6�"6�Jy6�y6�y6�xJ�J�J�* � � � � � � � ����;�;�;�7�7�7���
�
��a�&����4�4�4�*0�0�0�0�0�0�0�0�D=�=�=�7�7�7�7�7�7�<�<�<�G%�G%�G%�G%�G%�G%�G%�G%�T � � �F>[�>[�>[�>[�>[�>[�>[�>[�B#�#�#�2#�#�#�#�#�#�#�#���"�"���"�3�3�3�&3�3�3�&7�7�7�*C�C�C�Q�Q�Q�h"�
!�
#�
#������N�O�O������7�9�#5�6�6���������1�1������w�}�'=�>�>�������
�(>�?�?������W�[�%9�:�:�;<�;<�;�:�@�?�?�>�2�1�7�6�P�O�;<�|�����7�9�#5�6�6�(/�(/�7�6�(/�V)�)�)�.@�@�@�0���$B�$B�$B�N*�*�*�*�*�*�*�*�0B�B�B�"�"�"�"�"r#

Youez - 2016 - github.com/yon3zu
LinuXploit