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_least_squares.cpython-311.pyc
�

d�c|��,�ddlmZddlZddlmZddlmZmZm	Z	m
Z
ddlmZ
ddlmZmZddlmZddlmZmZdd	lmZdd
lmZmZd.d�Zd/d
�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d/d�Z%d�Z&Gd�d��Z'Gd�d��Z(d�Z)e*ej+����e)gzZ,Gd�d��Z-Gd�d ��Z.Gd!�d"��Z/Gd#�d$��Z0Gd%�d&e-e.e/e0��Z1Gd'�d(e-e.e/e0��Z2Gd)�d*e-��Z3d+�Z4d,�Z5d-�Z6dS)0�)�productN)�norm)�assert_�assert_allclose�assert_equal�suppress_warnings)�raises)�issparse�
lil_matrix)�aslinearoperator)�
least_squares�Bounds)�IMPLEMENTED_LOSSES)�EPS�make_strictly_feasiblec��||z
dzdzS)N�g@���x�as  �I/usr/lib/python3/dist-packages/scipy/optimize/tests/test_least_squares.py�fun_trivialrs��
��E�A�:�����c��d||z
zS�Nrrrs  r�jac_trivialrs����A��;�rc�F�tj|d|dg��S�Nr���np�array�rs r�fun_2d_trivialr&s��
�8�Q�q�T�1�Q�4�L�!�!�!rc�*�tjd��Sr)r#�identityr%s r�jac_2d_trivialr)s��
�;�q�>�>�rc�j�tjd|d|ddzz
zd|dz
g��S)N�
r!rrr"r%s r�fun_rosenbrockr, s4��
�8�R�1�Q�4�!�A�$��'�>�*�Q��1��X�7�8�8�8rc�H�tjd|dzdgddgg��S)N���rr+���r"r%s r�jac_rosenbrockr0$s2��
�8�	�q��t��R��	�Q�����rc�N�tjd|dzdgddgddgg��S)Nr.rr+r/rr"r%s r�jac_rosenbrock_bad_dimr2+s9��
�8�	�q��t��R��	�Q��	�c�
����rc�,�t|��dS�Nr)r,r%s r�fun_rosenbrock_croppedr53����!���Q��rc�,�t|��dSr4)r0r%s r�jac_rosenbrock_croppedr87r6rc�<�tj||dz|dzg��S)Nr�r"r%s r�fun_wrong_dimensionsr;<s ��
�8�Q��1��a��d�O�$�$�$rc�H�tjt||�����S)N)r)r#�
atleast_3drrs  r�jac_wrong_dimensionsr>@s��
�=��Q�!�,�,�,�-�-�-rc��ttj|jd����}tj|dz|dzf��}|�||f��}||dd�dd�f<|dd�dd�f|dd�dd�fz|dd�dd�fz|dd�dd�fzd|zz
|dzz}|���S)Nrrr!r/����r:)�intr#�sqrt�shape�zeros�reshape�ravel)r�n�u�ys    r�fun_bvprKDs����B�G�A�G�A�J��� � �A�
��!�a�%��Q��� � �A�	�	�	�1�a�&���A��A�a��d�A�b�D�j�M�	�#�2�#�q��t�)��q����Q�r�T��{�"�Q�q��t�S�b�S�y�\�1�A�a��d�A�B�B�h�K�?�!�a�%�G�!�Q�$�N�A��7�7�9�9�rc�"�eZdZdd�Zd�Zd�ZdS)�BroydenTridiagonal�d�sparsec���tj�d��|�_tj|���_tjdd|���_tjdd|���_�xjdtj�	|��zz
c_�xjdtj�	|��zz
c_�xjdtj�	|��zz
c_t�j�j�j���_|dkr�t||ft����_
tj|��}d	�j
||f<tjd	|��}d	�j
||d	z
f<tj|d	z
��}d	�j
||d	zf<�j�_dS|d
kr�fd��_dS|dkrd�_
�fd
��_dSt#d��dS)Nrr@���g�������r皙�����?rO)�dtyper!�operatorc�H��t��|����S�N)r�_jac�r�selfs �r�<lambda>z-BroydenTridiagonal.__init__.<locals>.<lambda>hs���!1�$�)�)�A�,�,�!?�!?�r�densec�R����|�����SrV)rW�toarrayrXs �rrZz-BroydenTridiagonal.__init__.<locals>.<lambda>ks������1���!5�!5�!7�!7�rF)r#�random�seedrH�ones�x0�linspace�lb�ub�randnrrrB�sparsity�arangerW�jacr)rYrH�mode�is`   r�__init__zBroydenTridiagonal.__init__Ns����
�	���q��������7�1�:�:�+����+�b�$��*�*����+�d�C��+�+������3������+�+�+�+������3������+�+�+�+������3������+�+�+�+���(���$�'�4�7�C�C����8���&��1�v�S�9�9�9�D�M��	�!���A�"#�D�M�!�Q�$���	�!�Q���A�&'�D�M�!�Q��U�(�#��	�!�a�%� � �A�&'�D�M�!�Q��U�(�#��y�D�H�H�H�
�Z�
�
�?�?�?�?�D�H�H�H�
�W�_�_� �D�M�7�7�7�7�D�H�H�H��E�N�N�N�N�Nrc��d|z
|zdz}|dd�xx|dd�zcc<|dd�xxd|dd�zzcc<|S)Nr:r!r/rr)rYr�fs   r�funzBroydenTridiagonal.funos_��
��U�a�K�!�O��	�!�"�"�����3�B�3������	�#�2�#����!�a����e�)������rc��t|j|jf��}tj|j��}dd|zz
|||f<tjd|j��}d|||dz
f<tj|jdz
��}d|||dzf<|S)Nr:rr!r/r@)rrHr#rg)rYr�Jrjs    rrWzBroydenTridiagonal._jacus��������'�(�(���I�d�f�����a�!�e�)��!�Q�$���I�a��� � ����!�Q��U�(���I�d�f�q�j�!�!����!�Q��U�(���rN)rNrO)�__name__�
__module__�__qualname__rkrnrWrrrrMrMMsG����������B�������rrMc�*�eZdZdZ		d	d�Zd�Zd�ZdS)
�ExponentialFittingProblemz]Provide data and function for exponential fitting in the form
    y = a + exp(b * x) + noise.r!�r/r!�Nc��tj�|��||_d|_tjd��|_tj|d|d|��|_|tj	||jz��z|_
|xj
|tj�|j��zz
c_
tj�d|j|��}|j
|xxd|ztj�
|��zz
cc<tj||g��|_dS)Nrrr!�2)r#r^r_�mrHrE�p0rbr�exprJre�randint�randr$�p_opt)	rYr�b�noise�
n_outliers�x_range�n_points�random_seed�outlierss	         rrkz"ExponentialFittingProblem.__init__�s���
�	���{�#�#�#��������(�1�+�+�����W�Q�Z����X�>�>����R�V�A���J�'�'�'������%�"�)�/�/�$�&�1�1�1�1����9�$�$�Q���
�;�;����x����B��J�����
�)C�)C�C�C�����X�q�!�f�%�%��
�
�
rc�h�|dtj|d|jz��z|jz
Sr )r#r|rrJ�rY�ps  rrnzExponentialFittingProblem.fun�s,����t�b�f�Q�q�T�D�F�]�+�+�+�d�f�4�4rc��tj|j|jf��}d|dd�df<|jtj|d|jz��z|dd�df<|S)Nr!r)r#�emptyrzrHrr|)rYr�rps   rrhzExponentialFittingProblem.jac�s\���H�d�f�d�f�%�&�&����!�!�!�Q�$���&�2�6�!�A�$���-�0�0�0��!�!�!�Q�$���r)r!rvrwN)rqrrrs�__doc__rkrnrhrrrruru�sY������#�#�;B�*.�&�&�&�&�"5�5�5�����rruc��tjd|jf��}d|z}d|dzdz
z|d<|dz|d<d|dzz|d<|S)Nr:r!gUUUUUU�?rgUUUUUU�g��������r)r#r��size)�z�rho�ts   r�
cubic_soft_l1r��sZ��
�(�A�q�v�;�
�
�C�	�A��A�
�!�c�(�Q�,�
�C��F�
�4�[�C��F�
�A��I�
�C��F��Jrc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�	BaseMixinc��ttd|j���}t|jdd���t|jt|j����dS)N�@��methodr�-C��6?��atol)r
rr�rrrn�rY�ress  r�
test_basiczBaseMixin.test_basic�sQ���K��D�K�@�@�@�����q�t�,�,�,�,�����S�U�!3�!3�4�4�4�4�4rc	�.�d}dddtfD�]}t��5}|�td��t	t
d||f|j���}t	t
d|d|i|j�	��}ddd��n#1swxYwYt|j|d
���t|j|d
���tttt
dd|j���tttt
dd
di|j�	����dS)N�@�2-point�3-point�cs�Bjac='(3-point|cs)' works equivalently to '2-point' for method='lm'r�)�argsr�r)�kwargsr�r�)�rtol)r:rA�kaboomr:)rr�filter�UserWarningr
rr�rr�
assert_raises�	TypeError)rYrrh�supr��res1s      r�test_args_kwargszBaseMixin.test_args_kwargs�s{�����y�$��<�	D�	D�C�"�$�$�
8���
�
�;�_�a�a�a�#�K��c���+/�;�8�8�8��$�[�#�s�C��8�+/�;�8�8�8��
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8����
8�
8�
8�
8�
�C�E�1�4�0�0�0�0��D�F�A�D�1�1�1�1��)�]�K��&�t�{�
<�
<�
<�
<��)�]�K��"*�A��t�{�
D�
D�
D�
D�
D�	D�	Ds�AB�B
	�
B
	c�^�dddtfD]w}t��5}|�td��t	t
d||j���}ddd��n#1swxYwYt|jdd�	���xtttt
dd
|j���dS)Nr�r�r�r�r�r�rr�r��oops�rhr�)rrr�r�r
rr�rrr��
ValueError)rYrhr�r�s    r�test_jac_optionszBaseMixin.test_jac_options�s
���y�$��<�	1�	1�C�"�$�$�
O���
�
�;�_�a�a�a�#�K��c�$�+�N�N�N��
O�
O�
O�
O�
O�
O�
O�
O�
O�
O�
O����
O�
O�
O�
O�
�C�E�1�4�0�0�0�0�0��j�-��c�v�!�[�	*�	*�	*�	*�	*�	*s�9A!�!A%	�(A%	c�x�dD]6}ttd||j���}t|jdd����7dS)N)N�r�)�max_nfevr�rr�r�)r
rr�rr)rYr�r�s   r�test_nfev_optionszBaseMixin.test_nfev_options�sT��"�	1�	1�H���S�8�'+�{�4�4�4�C��C�E�1�4�0�0�0�0�0�	1�	1rc���dtjdg��dfD].}ttd|���}t	|jd���/t
tttdd|j���t
tttdd	|j���t
tttdd|j���t
tttdd
|j���dS)N��?��?rhr�)�x_scaler�auto)r�r���y�?@)	r#r$r
rrrr�r�r�)rYr�r�s   r�test_x_scale_optionszBaseMixin.test_x_scale_options�s����R�X�s�e�_�_�e�4�	&�	&�G���S�'�B�B�B�C��C�E�1�%�%�%�%��j�-���6�$�+�	?�	?�	?�	?��j�-���4���	=�	=�	=�	=��j�-���4���	=�	=�	=�	=��j�-���8�D�K�	A�	A�	A�	A�	A�	Arc��ttdd|j���}ttdd|j���}ttdd|j���}t|jdd���t|jdd���t|jdd���t|j|j��t|j|j��dS)Nr�rR)�	diff_stepr�g��������rr�r�)r
rr�rrr�nfev)rYr��res2�res3s    r�test_diff_stepzBaseMixin.test_diff_step�s����[�#��$(�K�1�1�1���[�#��$(�K�1�1�1���[�#�'+�D�K�A�A�A�������-�-�-�-������-�-�-�-������-�-�-�-��T�V�T�V�$�$�$��T�Y��	�*�*�*�*�*rc	��ttttd|jddi���ttttd|jddi���dS)Nr��no_such_optionrN)r��optionsr�)r�r�r
rr��rYs r�test_incorrect_options_usagez&BaseMixin.test_incorrect_options_usage�sm���i���S�!�[�3C�S�2I�	K�	K�	K�	K��i���S�!�[�:�s�2C�	E�	E�	E�	E�	E�	Erc��ttd|j���}t|jdd���t|jd��t|jd��t|jdd���t|jdd���t|j	dd���t|jd��|jd	kr/t|j
d
k��t|jdu��n0t|j
dk��t|jdk��t|jdk��t|j��dS)Nr�r�rr�r�g)@��{�G�z�?�lm�r+)r
rr�rr�costrnrh�grad�
optimalityr�active_maskrr��njev�status�successr�s  r�test_full_resultzBaseMixin.test_full_result�s7���K��T�[�A�A�A�����q�t�,�,�,�,����$�'�'�'�����#�#�#������.�.�.�.����!�$�/�/�/�/������5�5�5�5��S�_�a�(�(�(��;�$����C�H�r�M�"�"�"��C�H��$�%�%�%�%��C�H�r�M�"�"�"��C�H�r�M�"�"�"���
�Q������������rc���|jdkrdSttd|jd���}t|jtjdg����t|jd��t|jtjdg����t|j	tjdgg����t|j
tjd	g����t|jd	��t|jtjd
g����t|j
d��t|jd��t|jd
��t|jd
��dS)Nr�r�r!)r�r�rg@D@�	rA�$r)r�r
rrrr#r$r�rnrhr�r�r�r�r�r�r�r�s  r�test_full_result_single_fevz%BaseMixin.test_full_result_single_fevs5���;�$����F��K��T�[�%&�(�(�(���S�U�B�H�a�S�M�M�*�*�*��S�X�t�$�$�$��S�W�b�h��s�m�m�,�,�,��S�W�b�h���u�o�o�.�.�.��S�X�r�x���~�~�.�.�.��S�^�R�(�(�(��S�_�b�h��s�m�m�4�4�4��S�X�q�!�!�!��S�X�q�!�!�!��S�Z��#�#�#��S�[�!�$�$�$�$�$rc
�t�ddg}ddg}tdddtgdtjddg��dgd	d
g��D]{\}}}t	��5}|�td��tt|||||j	���}ddd��n#1swxYwYt|j|���|dS)
Nr@r!r�r�r�r�皙�����?rh�exact�lsmrr��r��	tr_solverr�)rr0r#r$rr�r�r
r,r�rr)rYra�x_optrhr�r�r�r�s        r�test_rosenbrockzBaseMixin.test_rosenbrock#s5���!�W���A���'.��I�t�^�<��b�h��S�z�*�*�E�2��&�!�(#�(#�		*�		*�#�C��)�#�$�$�
M���
�
�;�_�a�a�a�#�N�B��W�.7���M�M�M��
M�
M�
M�
M�
M�
M�
M�
M�
M�
M�
M����
M�
M�
M�
M�

�C�E�5�)�)�)�)�		*�		*s�;B�B	�B	c	�N�ddg}|jdkr%tttt|d���dStdddtgdtjdd	g��d
gddg��D]<\}}}tt|||||j�
��}t|j
dd����=dS)Nr@r!r�r�r�r�r�r�r�rhr�r�r�rg�+����=r�)r�r�r�r
r5rr8r#r$rr�)rYrarhr�r�r�s      r�test_rosenbrock_croppedz!BaseMixin.test_rosenbrock_cropped1s����!�W���;�$����*�m�5K��T�
+�
+�
+�
+�
+�
+�,3��	�4�1G�H��"�(�C��:�.�.��6��f�%�,'�,'�
9�
9�'��W�i�$�*�B��W�'���=�=�=�� ���!�%�8�8�8�8�8�
9�
9rc�V�ttttd|j���dS�Nr�r�)r�r�r
r;r�r�s r�test_fun_wrong_dimensionsz#BaseMixin.test_fun_wrong_dimensions@s1���j�-�1E��$�+�	/�	/�	/�	/�	/�	/rc�b�ttttdt|j���dSr�)r�r�r
rr>r�r�s r�test_jac_wrong_dimensionsz#BaseMixin.test_jac_wrong_dimensionsDs9���j�-���/���	E�	E�	E�	E�	E�	Erc�j�ddg}tttt|t|j���dS)Nr!rr�)r�r�r
r,r2r��rYras  r�(test_fun_and_jac_inconsistent_dimensionsz2BaseMixin.test_fun_and_jac_inconsistent_dimensionsHsA����V���j�-���,�T�[�	B�	B�	B�	B�	B�	Brc��tjd���dd��}ttt
t||j���dS)NrArr�)r#r`rFr�r�r
rr�r�s  r�test_x0_multidimensionalz"BaseMixin.test_x0_multidimensionalMsM��
�W�Q�Z�Z�
�
��1�
%�
%���j�-��b�!�[�	*�	*�	*�	*�	*�	*rc�Z�d}tttt||j���dS)N�@r��r�r�r
rr�r�s  r�test_x0_complex_scalarz BaseMixin.test_x0_complex_scalarRs5��
���j�-��b�!�[�	*�	*�	*�	*�	*�	*rc�^�ddg}tttt||j���dS)Nr�r�r�r�r�s  r�test_x0_complex_arrayzBaseMixin.test_x0_complex_arrayWs:���<�
 ���j�-��b�!�[�	*�	*�	*�	*�	*�	*rc���d}tj|dz��}|jdkrd}nd}tt|d|j|���}t|j|k��t|jdk��dS)	Nr+rr�i�rNr�)�ftolr�r�r�)r#r`r�r
rKrr�r�)rYrHrar�r�s     r�test_bvpzBaseMixin.test_bvp\s���

��
�W�Q��T�]�]���;�$����H�H��H��G�R�d�4�;�%-�/�/�/��	���8�#�$�$�$����3������rc
�\�ttttd|jddd���dS)Nr�)r�r��xtol�gtolr�r�s r�/test_error_raised_when_all_tolerances_below_epsz9BaseMixin.test_error_raised_when_all_tolerances_below_epsms<���j�-��c�!�[�t�$�T�	K�	K�	K�	K�	K�	Krc
��|jdkrdSddg}ddg}dD]@\}}}tt|t||||j���}t	|j|���AdS)Nr�r@r!))�:�0�yE>NN)Nr�N)NNr�)rhr�r�r�r�)r�r
r,r0rr)rYrar�r�r�r�r�s       r�0test_convergence_with_only_one_tolerance_enabledz:BaseMixin.test_convergence_with_only_one_tolerance_enabledrs����;�$����F��!�W���A���!6�	*�	*��D�$�� ����%)��4�'+�{�4�4�4�C�
�C�E�5�)�)�)�)�
	*�	*rN)rqrrrsr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�r��sR������5�5�5�D�D�D�(	*�	*�	*�1�1�1�A�A�A�
+�
+�
+�E�E�E����(%�%�%�(*�*�*�
9�
9�
9�/�/�/�E�E�E�B�B�B�
*�*�*�
*�*�*�
*�*�*�
 � � �"K�K�K�
*�*�*�*�*rr�c�>�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�BoundsMixinc�X�ttttdd|j���dS)Nr�)g$@r��boundsr�r�r�s r�test_inconsistentzBoundsMixin.test_inconsistent�s2���j�-��c�(���	>�	>�	>�	>�	>�	>rc�X�ttttdd|j���dS)Nr�)r�rArr�r�s r�test_infeasiblezBoundsMixin.test_infeasible�s2���j�-��c�$�T�[�	:�	:�	:�	:�	:�	:rc�X�ttttdd|j���dS)Nr�)r�rr:rr�r�s r�test_wrong_numberzBoundsMixin.test_wrong_number�s2���j�-��b�'���	=�	=�	=�	=�	=�	=rc	��ttttddddgf|j���tttt
ddgdgddgf|j���dS)Nr�r�r�rrg@)r�r�r
rr�r,r�s r�test_inconsistent_shapez#BoundsMixin.test_inconsistent_shape�s|���j�-��c�!�C��:�.�t�{�	D�	D�	D�	D�	�j�-��#�s��"�e�c�3�Z�0���	F�	F�	F�	F�	F�	Frc���dddtfD]�}ttd|d|j���}t	|jdd�	��t
|jd
g��td|jcxkodknc��ttd|d
|j���}t	|jdd�	��t
|jdg��td|jcxkodknc����dS)Nr�r�r�r�)r�r��rhrr�rr�r�rr/r:)r�r�r�)	rr
rr�rrrr�r)rYrhr�s   r�test_in_boundszBoundsMixin.test_in_bounds�s���y�$��<�
	'�
	'�C���S�c�'2�4�;�H�H�H�C��C�E�3�T�2�2�2�2����1�#�.�.�.��B�#�%�$�$�$�$�1�$�$�$�$�%�%�%���S�c�'1�$�+�G�G�G�C��C�E�3�T�2�2�2�2����2�$�/�/�/��C�3�5�%�%�%�%�A�%�%�%�%�&�&�&�&�
	'�
	'rc�2�d�}d�}dddtfD�]}||fD]�}ddg}tt||���}t|jddg��tt|||d	d
d
g��|j���}t|jd	d	g��tt|||dd
gd��|j���}t|jdd
g��tt|||dd	gddg��|j���}t|jdd	gd�������dS)Nc�
�||fSrVr�rcrds  r�get_bounds_directz8BoundsMixin.test_bounds_shape.<locals>.get_bounds_direct�s���r�6�Mrc�"�t||��SrV)rrs  r�get_bounds_instancesz;BoundsMixin.test_bounds_shape.<locals>.get_bounds_instances�s���"�b�>�>�!rr�r�r�r�)rhrr�r�r
g333333�?r�r�r/��h㈵��>r�)r)r
r&rrr�)rYrrrh�bounds_funcrar�s       r�test_bounds_shapezBoundsMixin.test_bounds_shape�s|��	�	�	�	"�	"�	"��y�$��?�	>�	>�C� 1�3G�H�
>�
>���3�Z��#�N�B�C�@�@�@������S�z�2�2�2�#�N�B�C�+6�;�s�S�#�J�+G�+G�+/�;�8�8�8�� ����S�z�2�2�2�#�N�B�C�+6�;��S�z�3�+G�+G�+/�;�8�8�8�� ����S�z�2�2�2�#�"�B�C�&�;��C�y�3��*�=�=��;�(�(�(�� ����S�z��=�=�=�=�=�!
>�	>�	>rc���ttdt�����}t|jdd���ttdtd������}t|jdd���ttdtd	d�
�����}t|jdd���ttdtd	������}t|jd	d���tt
ddgtd	d	gd�
�����}t|jddgd
���tt
ddgtddg������}t|jddgd
���dS)Nr�)rrr�r�r�r�)rcr�r��)rdrrR)r
rrrrr&r�s  r�test_bounds_instancesz!BoundsMixin.test_bounds_instances�sl���K��V�X�X�>�>�>�����s��.�.�.�.��K��V�s�^�^�^�D�D�D�����s��.�.�.�.��K��V�t��5L�5L�5L�M�M�M�����s��.�.�.�.��K��f��o�o�o�F�F�F�����t�$�/�/�/�/��N�S�#�J�#)�d�D�\�c�#B�#B�#B�D�D�D������S�z��5�5�5�5��N�S�#�J�#)�c�3�Z�#8�#8�#8�:�:�:������S�z��5�5�5�5�5�5rc��tjddg��}tjddg��}tjddg��}tjddg��}tjddg��}|tjdgtjff|tjdgtjff|tjdgtjff|tjdgdtjgff|ddgddgff|d	dgd
dgffg}|D]d\}}tdd
dtgddd
gdgddg��D]=\}	}
}tt||	||
||j���}t|j	dd����>�edS)Ng�r�r�rg333333�rQg�?r�gI�r�rNr�r�r�rhr�r�r�rr�)
r#r$�infrr0r
r,r�rr�)
rY�x0_1�x0_2�x0_3�x0_4�x0_5�problemsrarrhr�r�r�s
             r�test_rosenbrock_boundsz"BoundsMixin.test_rosenbrock_bounds�s����x��s��$�$���x��c�
�#�#���x��s��$�$���x��c�
�#�#���x��s��$�$��
�b�f�W�d�O�R�V�,�-�
�b�f�W�c�N�B�F�+�,�
�b�f�W�c�N�B�F�+�,�
�b�f�W�c�N�S�"�&�M�2�3�
�S�#�J��c�
�+�,�
�U�C�L�3��*�-�.�

��#�	@�	@�J�B��+2��	�4��@��3��*�e�,��f�%�,'�,'�
@�
@�'��W�i�$�N�B��V�,3�y�+/�;�8�8�8�� ����$�?�?�?�?�?�
@�	@�	@rN)rqrrrsrrr	rrrrr#rrrrr�s�������>�>�>�:�:�:�=�=�=�F�F�F�'�'�'�>�>�>�46�6�6�*@�@�@�@�@rrc�J�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�SparseMixinc	���t��}ttt|j|j|jd|j���ttt|j|jd|j|j���dS)Nr��r�r�)r��jac_sparsityr�)	rMr�r�r
rnrarhr�rfr�s  r�test_exact_tr_solverz SparseMixin.test_exact_tr_solver�st��� � ���j�-�����a�e� '���	=�	=�	=�	=��j�-����� '�a�j�!�[�	*�	*�	*�	*�	*�	*rc��td���}td���}t|j|j|j|j���}t|j|j|j|j���}t
|j|j��t|j	|j	d���t|j
dd���t|j
dd���dS)NrO�rir[r��#B����;r�r)rMr
rnrarhr�rr�rrr��rYrOr[�
res_sparse�	res_denses     r�test_equivalencezSparseMixin.test_equivalence�s���#��2�2�2��"��0�0�0��"��J��	�v�z��;� � � �
�"��I�u�x�V�Z��;� � � �	�	�Z�_�i�n�5�5�5��
��i�k��>�>�>�>��
����7�7�7�7��	����6�6�6�6�6�6rc��t��}t|j|j|j|jddi���}t
|jdd���dS)N�btol绽���|�=�r��
tr_optionsrr,r�)rMr
rnrarhr�rr��rYr�r�s   r�test_tr_optionszSparseMixin.test_tr_optionssU��� � ���A�E�1�4���t�{�(.���8�8�8�����!�%�0�0�0�0�0�0rc
���t��}ttt|j|j|jd|j���ttt|j|j|jdddi���dS)N�bestr'r��tolr3)r�r5)	rMr�r�r
rnrarhr�r�r�s  r�test_wrong_parametersz!SparseMixin.test_wrong_parameterss{��� � ���j�-�����a�e� &�t�{�	<�	<�	<�	<��i����q�t�Q�U� &�E�5�>�	C�	C�	C�	C�	C�	Crc���td���}td���}t|j|j|j|j���}t|j|j|j|j���}t
|jdd���t
|jdd���tt|j����tt|jtj����dS)NrOr+r[r�rr,r�)
rMr
rnrarhr�rr�rr
�
isinstancer#�ndarrayr-s     r�test_solver_selectionz!SparseMixin.test_solver_selection
s���#��2�2�2��"��0�0�0��"�6�:�v�y�f�j�*.�+�7�7�7�
�!�%�)�U�X�5�9�)-��6�6�6�	��
����7�7�7�7��	����6�6�6�6�����(�(�)�)�)��
�9�=�"�*�5�5�6�6�6�6�6rc��t��}dD]�}t|j|j||j���}t|j|j||j|j���}t
|j|j��t|j	|j	d���t|j
dd���t|j
dd�����dS)N)r�r�r�r�)r�r(r,r�r)rMr
rnrar�rfrr�rrr�)rYr�rhr/r.s     r�test_numerical_jaczSparseMixin.test_numerical_jacs���� � ��/�	<�	<�C�%�a�e�Q�T�3�t�{�K�K�K�I�&���q�t�S����Z�)�)�)�J�
�����9�9�9��I�K���E�B�B�B�B��I�N�A�E�:�:�:�:��J�O�Q�U�;�;�;�;�;�	<�	<rc	�.�t��}t|jdddgd|jg��D]�\}}t	|j|j||jtj	f|j
|���}t	|j|j|tj	|jf|j
|���}t	|j|j||j|jf|j
|���}t|j
dd���t|j
dd���t|j
dd�����dS)Nr�r�r�)rr�r(rr3r�)rMrrhrfr
rnrarcr#rr�rdrr�)rYr�rhr(�res_1�res_2�res_3s       r�test_with_boundszSparseMixin.test_with_bounds%s1��� � ��!(���	�9�d�3�d�A�J�5G�"I�"I�
	=�
	=��C��!���q�t�S�!�$�����{��>�>�>�E�"���q�t�S�2�6�'�1�4���{��?�?�?�E�"���q�t�S�!�$�����{��?�?�?�E�
�E�,�a�e�<�<�<�<��E�,�a�e�<�<�<�<��E�,�a�e�<�<�<�<�<�
	=�
	=rc��t��}|jdd�}ttt|j|j||j���dS)Nr/�r(r�)rMrfr�r�r
rnrar�)rYr�rfs   r�test_wrong_jac_sparsityz#SparseMixin.test_wrong_jac_sparsity6sV��� � ���:�c�r�c�?���j�-�����#+�D�K�	A�	A�	A�	A�	A�	Arc	�
�td���}t|j|j|j|j���}t
|jdd���ttt|j|j|j|jd���dS)	NrTr+r�rr,r�r�)r�r��
rMr
rnrarhr�rr�r�r�r6s   r�test_linear_operatorz SparseMixin.test_linear_operator<s���J�/�/�/���A�E�1�4���t�{�C�C�C�����#�E�2�2�2�2��j�-�����a�e�!�[�G�	=�	=�	=�	=�	=�	=rc	�(�t��}t|j|j|j|jd���}t
|jdd���td���}ttt|j|j|j|jd���dS)Nrh)r�r�rr,r�rTr+rKr6s   r�test_x_scale_jac_scalez"SparseMixin.test_x_scale_jac_scaleCs���� � ���A�E�1�4���t�{�$)�+�+�+�����#�E�2�2�2�2��J�/�/�/���j�-�����a�e�!�[�%�	9�	9�	9�	9�	9�	9rN)
rqrrrsr)r0r7r;r?rArFrIrLrNrrrr%r%�s�������*�*�*�7�7�7�1�1�1�C�C�C�
7�
7�
7�
<�
<�
<�=�=�=�"A�A�A�=�=�=�9�9�9�9�9rr%c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�LossFunctionMixinc���tD]6}ttd||j���}t	|jdd����7t
tttdd|j���dS)Nr���lossr�rgV瞯�<r��hinge)�LOSSESr
rr�rrr�r��rYrSr�s   r�test_optionszLossFunctionMixin.test_optionsOsz���	2�	2�D���S�t�'+�{�4�4�4�C��C�E�1�5�1�1�1�1�1��j�-��c�"�4�;�	8�	8�	8�	8�	8�	8rc��tD]F}ttd||j���}t	|jt|j�����GdS)Nr�rR)rUr
rr�rrnrrVs   r�test_funzLossFunctionMixin.test_funXs[���	6�	6�D���S�t�'+�{�4�4�4�C����+�c�e�"4�"4�5�5�5�5�	6�	6rc���tjdg��}tt|tdd|j���}t
|jd|z|dzdzz��tt|tdd|j���}t
|jd|z��tt|tdd|j���}t|jd|z|dzdzzd|dzdzdzzd	zz��tt|td
d|j���}t|jd|z|dzdzzd|dzdzdzzz��tt|tdd|j���}t|jd|z|dzdzzd|dzdzdzzz��tt|ttd|j���}t|jd|z|dzdzzd|dzdzdzzd
zz��dS)Nr��linearr!�rSr�r�rr��huber�soft_l1r��cauchy�arctanrAgUUUUUU�?)
r#r$r
rrr�rr�rr�)rYrr�s   r�	test_gradzLossFunctionMixin.test_grad`s.��
�H�c�U�O�O���K��K�h�%&�t�{�<�<�<���S�X�q�1�u��1��q��1�2�2�2��K��K�g�%&�t�{�<�<�<���S�X�q�1�u�%�%�%��K��K�i�%&�t�{�<�<�<������A���A����*�a�1�a�4�!�8�a�-�.?�#�-E�E�	G�	G�	G��K��K�h�%&�t�{�<�<�<�����!�a�%�1�a�4�!�8�"4��Q��T�A�X��M�8I�"J�K�K�K��K��K�h�%&�t�{�<�<�<�����!�a�%�1�a�4�!�8�"4��Q��T�A�X��M�8I�"J�K�K�K��K��K�m�%&�t�{�<�<�<������A���A����*�a�1�a�4�!�8�a�-�.?�3�-G�G�	I�	I�	I�	I�	Irc	���d}|dzdz}tt|tdd|j���}t	|jd|z��tt|tdd|j���}t	|jd|ztdzz��tt|tdd	d�
��}t	|jd|z��tt|tdd|j���}t|jd|zd|dzzdzz��tt|td
d|j���}t|jd|ztdzz��tt|td
d	d|j���}|d	z}t|jd|zd|dzz
dzzd|dzzz��tt|tdd|j���}t|jd|ztdzz��tt|tddd|j���}|dz}t|jd|zdd|dzzz
dzzd|dzzz��tt|ttd���}t|jd|ztdzz��tt|ttdd�
��}|dz}t|jd|zd|dzdzz
dzzd|dzzdzz��dS)Nr�rr�r[r!r\r]r�r+)rS�f_scaler�r^g�r_)rSrcr�r�r`g4@r�r:rA)rSr��g�������)	r
rrr�rrhrrr�)rYrrmr��fss     r�test_jaczLossFunctionMixin.test_jacs8��
��
�q�D�1�H���K��K�h�%&�t�{�<�<�<���S�W�a�!�e�$�$�$��K��K�g�%&�t�{�<�<�<���S�W�a�!�e�c�3�h�.�/�/�/��K��K�g�$&��4�4�4���S�W�a�!�e�$�$�$��K��K�i�%&�t�{�<�<�<������Q��!�a��d�(�U�):�!:�;�;�;��K��K�h�%&�t�{�<�<�<������Q���c��!1�2�2�2��K��K�h�$&��4�;�H�H�H��
��V������Q��!�b�!�e�)�c�)9�!9�Q��Q��Y�!G�H�H�H��K��K�h�%&�t�{�<�<�<������Q���c��!1�2�2�2��K��K�h�$(�1�T�[�J�J�J��
��V������Q��!�a�"�a�%�i�-�#�)=�!=��R��U��!K�L�L�L��K��K�m�%&�(�(�(������Q���c��!1�2�2�2��K��K�!.��A�G�G�G��
��U������A���R��U�Q�Y��� 4�4��B��E�	�T�7J�J�	L�	L�	L�	L�	Lrc���dD]�}tdd|d���}ddd|jfD]�}t|j|j||j�	��}t
|jdd
���tD]�}|dkr�	t|j|j||||j�
��}t
|jdd
���tt|j|jz
��t|j|jz
��k�����ό�dS)N)rRr�r!rRr)r�r�r�r�r�r�r�r[)rhrSrcr�)
rurhr
rnr{r�rr�rUrrrr)rYr�r�rh�res_lsqrS�
res_robusts       r�test_robustnessz!LossFunctionMixin.test_robustness�s2���	7�	7�E�)�!�S�%�Q�G�G�G�A�!�9�d�A�E�:�
7�
7��'���q�t��/3�{�<�<�<���� 2�A�D�A�A�A�A�"�7�7�D��x�'�'� �!.���q�t��4��#�{�",�",�",�J�$�J�$9�1�4�H�H�H�H��D�����!7�8�8� ���Q�W�!4�5�5�6�7�7�7�7�7�	
7�	7�	7rN)rqrrrsrWrYrarfrjrrrrPrPNsi������8�8�8�6�6�6�I�I�I�>BL�BL�BL�H7�7�7�7�7rrPc��eZdZdZdS)�
TestDogbox�dogboxN)rqrrrsr�rrrrlrl�s������
�F�F�Frrlc��eZdZdZd�ZdS)�TestTRF�trfc	��t��}dD]>}t|j|j|jdd|i���}t|jdd����?dS)N)TFrp�
regularizer4rr,r�)rMr
rnrarhrr�)rYr�rrr�s    r�test_lsmr_regularizationz TestTRF.test_lsmr_regularization�sm��� � ��'�	5�	5�J����q�t�Q�U�5�,8�*�+E�G�G�G�C��C�H�a�e�4�4�4�4�4�	5�	5rN)rqrrrsr�rsrrrroro�s(������
�F�5�5�5�5�5rroc�6�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�TestLMr�c�N�ttttddd���dS)Nr�)rr�r�r�r�r�r
rr�s r�test_bounds_not_supportedz TestLM.test_bounds_not_supported�s0���j�-���+�d�	<�	<�	<�	<�	<�	<rc�T�ddg}tttt|d���dS)Nr@r!r�r�)r�r�r
r5r�s  r�test_m_less_n_not_supportedz"TestLM.test_m_less_n_not_supported�s8���!�W���j�-�1G��!�	#�	#�	#�	#�	#�	#rc�~�t��}ttt|j|j|jd���dS)Nr�r��rMr�r�r
rnrarhr�s  r�test_sparse_not_supportedz TestLM.test_sparse_not_supported�sA��� � ���j�-�����a�e�!�	#�	#�	#�	#�	#�	#rc�P�ttttddgd���dS)Nr�r!r�rHrwr�s r�test_jac_sparsity_not_supportedz&TestLM.test_jac_sparsity_not_supported�s2���j�-��c�$%�3�t�	5�	5�	5�	5�	5�	5rc��td���}ttt|j|j|jd���dS)NrTr+r�r�r|r�s  r�!test_LinearOperator_not_supportedz(TestLM.test_LinearOperator_not_supported�sF���J�/�/�/���j�-�����a�e�!�	#�	#�	#�	#�	#�	#rc��ttddd���}t|jdd���t	t
ttddd�	��dS)
Nr�r[r�rRrr�r�r])r�rS)r
rrrr�r�r�s  r�	test_losszTestLM.test_loss�s]���K��8�D�I�I�I�����s��.�.�.�.��j�-��c�!��	1�	1�	1�	1�	1�	1rN)
rqrrrsr�rxrzr}rr�r�rrrruru�ss������
�F�<�<�<�#�#�#�
#�#�#�
5�5�5�#�#�#�
1�1�1�1�1rruc�^�ttd��}t|jdd���dS)Nr�rr3r�)r
rrr)r�s rr�r�s.��
��S�
)�
)�C��C�E�1�5�)�)�)�)�)�)rc�d�dD],\}}}ttttd|||d����-dS)N))N�vIh�%<=r�)r�Nr�)r�r�Nr�r�)r�r�r�r�rw)r�r�r�s   r�test_small_tolerances_for_lmr�
sS��3�9�9���d�D�	�j�-��c���d�4�	9�	9�	9�	9�	9�9�9rc���tj�d��tjddd���d��}tj�d���d��}d���fd�}t|ddg||f���}|jd	ksJ�t|jtj	d
dg��d�
��dS)Nr!rrN�float32c�*�|d|d|zzSr r)r�rs  r�funcztest_fp32_gh12991.<locals>.funcs����t�a��d�Q�h��rc�"���||��|z
SrVr)r�rrJr�s   �r�errztest_fp32_gh12991.<locals>.err s����t�A�q�z�z�A�~�rr�)r�rg ��W �?g�	���?g-C��6
?r�)
r#r^r_rb�astyper
r�rrr$)rrJr�r�r�s    @r�test_fp32_gh12991r�s�����I�N�N�1����
��A�q�#���%�%�i�0�0�A�
�	������$�$�Y�/�/�A�����������d�D�\��A��
7�
7�
7�C��8�a�<�<�<�<��C�E�2�8�Y�
�$;�<�<�4�H�H�H�H�H�Hr)r)r)7�	itertoolsr�numpyr#�numpy.linalgr�
numpy.testingrrrr�pytestr	r��scipy.sparser
r�scipy.sparse.linalgr�scipy.optimizer
r�!scipy.optimize._lsq.least_squaresr�scipy.optimize._lsq.commonrrrrr&r)r,r0r2r5r8r;r>rKrMrur��list�keysrUr�rr%rPrlrorur�r�r�rrr�<module>r�s�������������������<�<�<�<�<�<�<�<�<�<�<�<�*�*�*�*�*�*�-�-�-�-�-�-�-�-�0�0�0�0�0�0�0�0�0�0�0�0�0�0�@�@�@�@�@�@�B�B�B�B�B�B�B�B���������"�"�"����9�9�9������� � � � � � �
%�%�%�.�.�.�.����0�0�0�0�0�0�0�0�f��������>���
��%� �%�'�'�	(�	(�M�?�	:��P*�P*�P*�P*�P*�P*�P*�P*�ff@�f@�f@�f@�f@�f@�f@�f@�Rb9�b9�b9�b9�b9�b9�b9�b9�JE7�E7�E7�E7�E7�E7�E7�E7�P������K��6G����5�5�5�5�5�i��k�3D�5�5�5�1�1�1�1�1�Y�1�1�1�D*�*�*�9�9�9�I�I�I�I�Ir

Youez - 2016 - github.com/yon3zu
LinuXploit