
    (ph                     P    S SK rS SKJrJr  S SKrS SKJr  S SKJ	r	   " S S5      r
g)    N)assert_allcloseassert_equal)pava)isotonic_regressionc                      \ rS rSr\R
                  R                  SSS//SS4SS/SS//S4SS/S/S4SSS/S4SS/SS4SS/SS/S	4/5      S
 5       rS r\R
                  R                  S\	R                  \	R                  \	R                  \	R                  /5      \R
                  R                  S\	R                  \	R                  \	R                  \	R                  /5      \R
                  R                  SSS/5      S 5       5       5       r\R
                  R                  SSS/5      S 5       rS rS rS rS rSrg)TestIsotonicRegression	   )ywmsgr      Nz7array has incorrect number of dimensions: 2; expected 1   z<Input arrays y and w must have one dimension of equal lengthz#Weights w must be strictly positivec                 |    [         R                  " [        US9   [        XS9  S S S 5        g ! , (       d  f       g = f)N)match)r
   weights)pytestraises
ValueErrorr   )selfr
   r   r   s       `/var/www/html/venv/lib/python3.13/site-packages/scipy/optimize/tests/test_isotonic_regression.pytest_raise_error'TestIsotonicRegression.test_raise_error
   s&    $ ]]:S1!/ 211s   
-
;c                 N   [         R                  " / SQ[         R                  S9n[         R                  " U5      n[         R                  " UR
                  S   S-   S[         R                  S9n[        XU5        [        U/ SQ5        [        U/ SQ5        [        U/ S	Q5        g )
N      r   r   r   r   r   dtyper   r   )shape
fill_valuer   r   r   r   r   r   r   r   )   r   r   r   r   r   r   )r   r#      r   r   r   r   r   )	nparrayfloat64	ones_likefullr    intpr   r   )r   r
   r   rs       r   test_simple_pava'TestIsotonicRegression.test_simple_pava   sr     HH*"**=LLOGG!''!*q.RrwwGQ1010189    y_dtypew_dtyper   onesc                    [         R                  " / SQUS9nUb  [         R                  " XBS9n[        XAS9nUR                  R
                  [         R                  :X  d   eUR                  R
                  [         R                  :X  d   e[        UR                  / SQ5        [        UR                  SS/5        [        UR                  / SQ5        [        U[         R                  " / SQ[         R                  S95        g )Nr   r   r   r"   r#   r   )r   r#   r$   )r%   r&   r(   r   xr   r'   r   r   blocksr   )r   r   r0   r/   r
   ress         r   test_simple_isotonic_regression6TestIsotonicRegression.test_simple_isotonic_regression,   s     HH*':=Q.A!!/uu{{bjj((({{  BJJ...45aV,

I.Q!6bjjIJr.   
increasingTFc                    SnU(       a  [         R                  " SSU5      O[         R                  " SSU5      n[        X1S9n[        UR                  U5        [        UR
                  [         R                  " US-   5      5        g )N
   r   r   r9   )r%   linspacer   r   r4   r5   arange)r   r9   nr
   r6   s        r   test_linspace$TestIsotonicRegression.test_linspace>   s]    $.BKK1a BKK1a4H!!;q!

BIIa!e$45r.   c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[        X!S9n[        UR                  / SQ5        [        UR
                  / SQ5        [        UR                  / SQ5        [         R                  " / SQ5      n[         R                  " / SQ5      n[        XTS9n[        [         R                  " UR                  S	S
 5      S	5        [        UR                  SS  UR                  5        [        UR
                  UR
                  5        [        UR                  SS  S-
  UR                  SS  5        g )N)r   r            ?rD   rD   r      )rE   r   r   r;   r	   r      r;   r3   )      ?rG   rG   r	   r	   r	         )@rH   )r   rG   r   )r   rE   r#   r   )r   r   r   r   r   r   r   rD   rD   rD   r   rE   )rE   r   r   r   r   r   r   r;   r	   r   rF   r;   r   r$   r   r   )r%   r&   r   r   r4   r   r5   diff)r   r   r
   r6   w2y2res2s          r   test_weights#TestIsotonicRegression.test_weightsF   s    HH34HH01!!/FG[1

L1 XX@AXX=>"22q,a0qr
CEE*ckk2AB!+SZZ^<r.   c                    / SQn[        U5      n/ SQn[        UR                  U5        [        UR                  / SQ5        Sn[
        R                  " SSUSS9nS	U-  [
        R                  " S
U-  5      -   n[        U5      n/ SQn[        UR                  U5        [
        R                  " [
        R                  " UR                  5      S:  5      (       d   e[        [
        R                  " UR                  5      [
        R                  " U5      5        [        U* SS9n[        UR                  * UR                  5        [        UR                  UR                  5        g )N)
r   r#   r   rE   rC   r   r   r$   r	   r   )
r   8T笪@rP   rP   rP   rP   rP   8T笪@rQ   rQ   )r   r   r$   r;   d   r   r   F)numendpointrC   r;   )dg        g_ӽ-?gO*e?g%2g?g;ك?g6Y:tW?g>l&?g?g:ǰ?g{?g!:Fv?gEr/?gk;?$'
"?rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   rU   gV ?gQk?v?g0n?g<?g [ @g7Y@g[d@g2-ڱ{@g+@g>	l@goT@gZO"@gN%U	@glJ
@gt NԐ@go@gDN>	@gVi$'@glO@gc@g]@gǾ@g{ur @gfue@g@gkY@gHZ@DFjv@rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   rV   r<   )r   r   r4   r   r5   r%   r=   sinallrI   sum)r   r
   r6   x_Rr?   res_invs         r   test_against_R_monotone.TestIsotonicRegression.test_against_R_monotoneX   s   *!!$

 	s#SZZ/KK1!e4EBFF26N"!!$
& 	s# vvbggceen)**** 	suurvvay1 &qbU;
CEE*W^^SZZ0r.   c                     [         R                  " S[        S9n[         R                  " S[        S9nSUR                  l        SUR                  l        [        XS9n[         R                  " [         R                  " UR                  5      5      (       d   e[         R                  " [         R                  " UR                  5      5      (       d   e[         R                  " [         R                  " UR                  5      5      (       d   eg )NrE   r   Fr3   )r%   r>   floatr1   flags	writeabler   rX   isfiniter4   r   r5   r   r4   r   r6   s       r   test_readonly$TestIsotonicRegression.test_readonly   s    IIau%GGAU#!!!!/vvbkk#%%())))vvbkk#++.////vvbkk#**-....r.   c                    [         R                  " S[        S9S S S2   n[         R                  " S[        S9S S S2   nUR                  R
                  (       a   eUR                  R                  (       a   eUR                  R
                  (       a   eUR                  R                  (       a   e[        XS9n[         R                  " [         R                  " UR                  5      5      (       d   e[         R                  " [         R                  " UR                  5      5      (       d   e[         R                  " [         R                  " UR                  5      5      (       d   eg )Nr;   r   rE   r3   )r%   r>   r_   r1   r`   c_contiguousf_contiguousr   rX   rb   r4   r   r5   rc   s       r   test_non_contiguous_arrays1TestIsotonicRegression.test_non_contiguous_arrays   s    IIb&ss+GGBe$SqS)77''''77''''77''''77''''!!/vvbkk#%%())))vvbkk#++.////vvbkk#**-....r.    )__name__
__module____qualname____firstlineno__r   markparametrizer   r,   r%   r'   float32int64int32r7   r@   rM   r\   rd   ri   __static_attributes__rk   r.   r   r   r   	   sx   [[!fXtFHVq!fXKMVaSKMAKMVQKMVaV24	
"0#"0: [[YRZZ288(TU[[YRZZ288(TU[[S4.1K 2 V VK [[\D%=96 :6=$61p
//r.   r   )numpyr%   numpy.testingr   r   r   scipy.optimize._pava_pybindr   scipy.optimizer   r   rk   r.   r   <module>rz      s      7  , .^/ ^/r.   