
    (ph%                         S SK JrJrJr  S SKJr  S SKrS SK	J
r
JrJrJrJrJrJrJrJrJrJr   " S S5      r " S S5      r " S	 S
5      rS rS rg)    )assert_assert_allcloseassert_equal)raisesN)step_size_to_boundfind_active_constraintsmake_strictly_feasibleCL_scaling_vectorintersect_trust_regionbuild_quadratic_1dminimize_quadratic_1devaluate_quadraticreflective_transformationleft_multiplied_operatorright_multiplied_operatorc                   ,    \ rS rSrS rS rS rS rSrg)
TestBounds   c                 T   [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        X4X5      u  pV[        US5        [        U/ SQ5        [         R                  " / SQ5      n[        X4X5      u  pV[        US5        [        U/ S	Q5        [         R                  " / S
Q5      n[        X4X5      u  pV[        U[         R                  " S5      5        [        U/ SQ5        [         R                  " / SQ5      n[        X4X5      u  pV[        US5        [        U/ SQ5        [         R                  " S5      n[        X4X5      u  pV[        U[         R
                  5        [        U/ SQ5        g )N)            @      $@)      ?      @      Y@)        r   g      (@)皙?r   r   
   )   r   r   )g{Gz?g?r      )r   r   )r   g-C6r   r   )r   r!   r   )r         ?       r   )r   r   r!      r   r   r   )nparrayr   r   zerosinf)selflbubxsstephitss          W/var/www/html/venv/lib/python3.13/site-packages/scipy/optimize/tests/test_lsq_common.pytest_step_size_to_bounds#TestBounds.test_step_size_to_bounds   s-   XX'(XX'(HH%&HH_%'b5
T2T9%HH'('b5
T1T:&HH+,'b5
T288B<(T:&HH%&'b5
T3T:&HHQK'b5
T266"T9%    c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        X1U5      n[        U/ SQ5        [         R                  " / SQ5      n[        X1U5      n[        U/ SQ5        [        X1USS9n[        U/ SQ5        [         R                  " / S	Q5      n[        X1U5      n[        U/ S
Q5        [        X1USS9n[        U/ SQ5        [         R                  " S[         R                  * [         R                  * /5      n[         R                  " [         R                  S[         R                  /5      n[         R
                  " S5      n[        X1U5      n[        U/ SQ5        [         R                  " / SQ5      n[        X1U5      n[        U/ SQ5        [        X1USS9n[        U/ SQ5        g )N)r         $r   )r   r   r   )r"                @r%   )r   r   r   )r!   r   r   r   rtol)g&.>g:0yEgX@)r   r   r   gA:>)r!   r   r   r   r   r$   )r!   r   r   )r   g      &@r   )r&   r'   r   r   r)   ones)r*   r+   r,   r-   actives        r1   test_find_active_constraints'TestBounds.test_find_active_constraints+   s_   XX'(XX'(HH%&(3VY'HH%&(3VZ((;VZ(HH./(3VY'(@VZ(XXsRVVGbffW-.XXrvvtRVV,-GGAJ(3VZ( HH%&(3VZ((;VZ(r4   c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        X1USS9n[        US   S:  5        [	        USS  USS  5        [        X1USS9n[	        U/ S	Q5        [         R                  " / S
Q5      n[        X1U5      n[        [         R
                  " XA:  XB:*  -  5      5        [        X1USS9n[        [         R
                  " XA:  XB:*  -  5      5        [         R                  " SS/5      n[         R                  " SS/5      n[         R                  " SS/5      n[        X1USS9n[	        USS/5        g )N)      gr8   )皙?r   g      @)r@   r   go    @r   )rstepr@   r   g-C6?)g<Nё\߿r   gqh  @)r@   r!   g@r!   r   g}    Y@g:0yE>g    Y@)r&   r'   r	   r   r   all)r*   r+   r,   r-   x_news        r1   test_make_strictly_feasible&TestBounds.test_make_strictly_feasibleP   s+   XX'(XXo&HH+,&qb:a4 U12Y!"&&qb=U>?HH_%&qb1456&qb:456XXr5k"XXq-()HHaZ &qb=UQ01r4   c                    [         R                  " [         R                  * SS[         R                  * /5      n[         R                  " S[         R                  S[         R                  /5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        X4X5      u  pV[	        U/ SQ5        [	        U/ SQ5        g )Nr7   r   r   )r"   r8   r   r   )r   r   r6   r   )r   g      @r   r   )r   r   r   r   )r&   r'   r)   r
   r   )r*   r+   r,   r-   gvdvs          r1   test_scaling_vectorTestBounds.test_scaling_vectorj   s    XXwcBFF734XXsBFFD"&&12HH)*HH+,!!/Q,-R./r4    N)	__name__
__module____qualname____firstlineno__r2   r=   rE   rK   __static_attributes__rM   r4   r1   r   r      s    &<#)J240r4   r   c                   ,    \ rS rSrS rS rS rS rSrg)TestQuadraticFunctiont   c                     [         R                  " SS/SS/SS//5      U l        [         R                  " SS/5      U l        [         R                  " SS/5      U l        g )	Nr   皙?r   r   r"   rA   r#   r8   )r&   r'   JrH   diag)r*   s    r1   setup_method"TestQuadraticFunction.setup_methodu   sV    #J3K#J  3+&HHc3Z(	r4   c                 *   [         R                  " S5      n[        U R                  U R                  U5      u  p#[        US5        [        US5        [        U R                  U R                  XR                  S9u  p#[        US5        [        US5        [         R                  " SS/5      n[        U R                  U R                  U5      u  p#[        US5        [        US5        [        U R                  U R                  XR                  S9u  p#[        US5        [        US5        [         R                  " S	S	/5      n[        U R                  U R                  XR                  US
9u  p#n[        US5        [        US5        [        US5        g )Nr    r   rY   r   r   gffffff @gffffff@gffffff@r"   )rY   s0gQ@gQÿ)	r&   r(   r   rX   rH   r   rY   r'   r   )r*   r.   abr^   cs         r1   test_build_quadratic_1d-TestQuadraticFunction.test_build_quadratic_1d}   s)   HHQK!$&&$&&!4QQ!$&&$&&!))DQQHHc4[!!$&&$&&!4QQ!$&&$&&!))DQQXXsCj!$TVVTVVQYY2NaQ4 7#r4   c                    SnSn[        XSS5      u  p4[        US5        [        XAUS-  -  X#-  -   SS9  [        XSS5      u  p4[        US5        [        XAUS-  -  X#-  -   SS9  [        XSS5      u  p4[        US5        [        XAUS-  -  X#-  -   SS9  S	n[        XSSUS
9u  p4[        US5        [        XAUS-  -  X#-  -   U-   SS9  [        X[        R                  * [        R                  US
9u  p4[        US5        [        XAUS-  -  X#-  -   U-   SS9  [        XS[        R                  US
9u  p4[        US5        [        XAUS-  -  X#-  -   U-   SS9  [        X[        R                  * SUS
9u  p4[        US5        [        XAUS-  -  X#-  -   U-   SS9  SnSn[        X[        R                  * [        R                  5      u  p4[        U[        R                  * 5        [        XS[        R                  5      u  p4[        U[        R                  5        [        U[        R                  * 5        [        X[        R                  * S5      u  p4[        U[        R                  * 5        [        U[        R                  * 5        g )N   r!   r   r    gV瞯<r9   r   r   )ra   r   rW   )r   r   r   r&   r)   )r*   r_   r`   tyra   s         r1   test_minimize_quadratic_1d0TestQuadraticFunction.test_minimize_quadratic_1d   sB   $Q1a0Qq!t8ae+%8$Q2r2Qq!t8ae+%8$Q2q1Qq!t8ae+%8$Q2qA6Qq!t8ae+a/e<$QBFF7BFFa@QqAv:-1>$Q1bff:QqAv:-1>$QBFF7A;QqAv:-1>$QBFF7BFF;Q $Q1bff5QQ $QBFF7A6Q Q r4   c                    [         R                  " SS/5      n[        U R                  U R                  U5      n[        US5        [        U R                  U R                  XR                  S9n[        US5        [         R                  " SS/SS/SS//5      n[        U R                  U R                  U5      n[        U/ SQ5        [        U R                  U R                  XR                  S9n[        U/ SQ5        g )	Nr   r   ffffff@r]   ffffff@r   )rl   gQr   )rm   gzG?r   )r&   r'   r   rX   rH   r   rY   r   )r*   r.   valuevaluess       r1   test_evaluate_quadratic-TestQuadraticFunction.test_evaluate_quadratic   s    HHc4[!"46646615UD!"466466199EUD!HHsDk3Z3Z! " $DFFDFFA6 23#DFFDFFAIIF 12r4   )rX   rY   rH   N)	rN   rO   rP   rQ   rZ   rb   ri   rp   rR   rM   r4   r1   rT   rT   t   s    )$2,!\3r4   rT   c                       \ rS rSrS rSrg)TestTrustRegion   c                    Sn[         R                  " S5      n[         R                  " / SQ5      n[        X#U5      u  pE[	        US5        [	        US5        [         R                  " / SQ5      n[        X#U5      u  pE[        US5        [        US5        [         R                  " / S	Q5      n[         R                  " / S
Q5      n[        X#U5      u  pE[        US5        [        US5        [         R                  " S5      n[        [        [        X#U5        [         R                  " S5      n[         R                  " S5      n[        [        [        X#U5        g )Nr   r$   )r   r   r   r!   r   )r   r   r   g3Eyg3Ey?)r"   r@   r   )r   r   r   g;fg;f?)	r&   r(   r'   r   r   r   r;   assert_raises
ValueError)r*   Deltar-   r.   t_negt_poss         r1   test_intersectTestTrustRegion.test_intersect   s    HHQKHH_%-aE:UBUAHH&'-aE:x(w'HH^$HH[!-aE:x(w'GGAJj"8!FHHQKHHQKj"8!Fr4   rM   N)rN   rO   rP   rQ   r{   rR   rM   r4   r1   rs   rs      s    Gr4   rs   c                  6   [         R                  " SS/[        S9n [         R                  " SS/[        S9n[         R                  " SS/5      n[        X U5      u  p4[	        X25        [	        U[         R
                  " S5      5        [         R                  " SS	/[        S9n[        X [         R                  " [         R                  [         R                  /5      5      u  p4[	        USS	/5        [	        USS
/5        [        U[         R                  " [         R                  * [         R                  * /5      U5      u  p4[	        USS/5        [	        US
S/5        [        X U5      u  p4[	        USS/5        [	        USS/5        [         R                  " [         R                  * S/5      n [         R                  " S[         R                  /5      n[         R                  " SS/[        S9n[        X U5      u  p4[	        USS/5        [	        USS
/5        g )Nr!   rf   )dtypere   r$   r   r       r   r   )r&   r'   floatr   r   r;   r)   )r+   r,   rh   r-   rH   s        r1   test_reflective_transformationr      s   	2r(%	(B	1a&	&B
!QA$QB/DABGGAJ
"a&A$QBHHbffbff5E,FGDAQFRG$Q266'BFF71C(DbIDARGQG$QB/DAQFRH	BFF7B-	 B	1bff+	B
"b'A$QB/DAQGRGr4   c                  @   [         R                  " S5      R                  S5      n [         R                  " / SQ5      n[         R                  " U5      R                  U 5      n[        X5      n[         R                  " SS/5      nU R                  [         R                  " U5      5      n[        X5      n[         R                  " SS/5      nS[         R                  " SS	5      R                  S
5      -  n[         R                  " / SQ5      n	[        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  R                  U	5      UR                  U	5      5        [        UR                  U5      UR                  U5      5        [        UR                  U5      UR                  U5      5        [        UR                  R                  U	5      UR                  U	5      5        g )N   )r$   r    )r!   r    re   re   r   rf   r$   r       )r    r$   )r   rf      )r&   arangereshaper'   rY   dotr   r   r   matvecmatmatTrmatvec)
Ad_leftDAJ_leftd_rightADJ_rightr-   Xxts
             r1   test_linear_operatorsr     sf   
		!V$AXXj!F			Q	B%a0Fhh2wG	
rwww	 B'3G
"aA
RYYq!_$$V,,A	+	BBFF1Iv}}Q/0BFF1Iv}}Q/0BDDHHRL&.."45BFF1Iw~~a01BFF1Iw~~a01BDDHHRL'//""56r4   )numpy.testingr   r   r   pytestr   rv   numpyr&   scipy.optimize._lsq.commonr   r   r	   r
   r   r   r   r   r   r   r   r   rT   rs   r   r   rM   r4   r1   <module>r      sU    @ @ * 9 9 9 9e0 e0Pa3 a3HG G:>7r4   