
    ^Mh                     X    d dl Zd dlmZmZ d dlZd dlmZ d dlm	Z	  G d d          Z
dS )    N)assert_allcloseassert_equal)pava)isotonic_regressionc                   F   e Zd Zej                            dddggddfddgddggdfddgdgdfdddgdfddgddfddgddgdfg          d	             Zd
 Zej                            dej	        ej
        ej        ej        g          ej                            dej	        ej
        ej        ej        g          ej                            dddg          d                                     Zej                            dddg          d             Zd Zd Zd Zd ZdS )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                     t          j        t          |          5  t          ||           d d d            d S # 1 swxY w Y   d S )N)match)r	   weights)pytestraises
ValueErrorr   )selfr	   r
   r   s       m/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_isotonic_regression.pytest_raise_errorz'TestIsotonicRegression.test_raise_error
   s    $ ]:S111 	0 	0!Q////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   ;??c                 ^   t          j        g dt           j                  }t          j        |          }t          j        |j        d         dz   dt           j                  }t          |||           t          |g d           t          |g d           t          |g d	           d S )
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_pavaz'TestIsotonicRegression.test_simple_pava   s     H***"*===LOOG!'!*q.RrwGGGQ100011100011188899999    y_dtypew_dtyper
   onesc                    t          j        g d|          }|t          j        ||          }t          ||          }|j        j        t           j        k    sJ |j        j        t           j        k    sJ t          |j        g d           t          |j        ddg           t          |j	        g d           t          |t          j        g dt           j                             d S )Nr   r   r   r    r!   r   )r   r!   r"   )r#   r$   r&   r   xr   r%   r   r   blocksr   )r   r
   r-   r,   r	   ress         r   test_simple_isotonic_regressionz6TestIsotonicRegression.test_simple_isotonic_regression,   s     H***':::=Qg...A!!Q///u{bj(((({ BJ....444555aV,,,
III...Q!6!6!6bjIIIJJJJJr+   
increasingTFc                    d}|rt          j        dd|          nt          j        dd|          }t          ||          }t          |j        |           t          |j        t          j        |dz                        d S )N
   r   r   r5   )r#   linspacer   r   r1   r2   arange)r   r5   nr	   r3   s        r   test_linspacez$TestIsotonicRegression.test_linspace>   s|    $.HBK1a   BK1a4H4H!!
;;;q!!!
BIa!e$4$455555r+   c                    t          j        g d          }t          j        g d          }t          ||          }t          |j        g d           t          |j        g d           t          |j        g d           t          j        g d          }t          j        g d          }t          ||          }t          t          j        |j        d	d
                   d	           t          |j        dd          |j                   t          |j        |j                   t          |j        dd          dz
  |j        dd                     d S )N)r   r            ?r?   r?   r      )r@   r   r   r7   	   r      r7   r0   )      ?rC   rC   rA   rA   rA         )@rD   )r   rC   r   )r   r@   r!   r   )r   r   r   r   r   r   r   r?   r?   r?   r   r@   )r@   r   r   r   r   r   r   r7   rA   r   rB   r7   r   r"   r   r   )r#   r$   r   r   r1   r   r2   diff)r   r
   r	   r3   w2y2res2s          r   test_weightsz#TestIsotonicRegression.test_weightsF   sH   H33344H00011!!Q///FFFGGG[[[111
LLL111 X@@@AAX===>>"2r222qs,,a000qrr
CE***ck222ABB!+SZ^<<<<<r+   c                    g d}t          |          }g d}t          |j        |           t          |j        g d           d}t          j        dd|d          }d	|z  t          j        d
|z            z   }t          |          }g d}t          |j        |           t          j        t          j	        |j                  dk              sJ t          t          j
        |j                  t          j
        |                     t          | d          }t          |j         |j                   t          |j        |j                   d S )N)
r   r!   r   r@   r>   r   r   r"   rA   r   )
r   8T笪@rK   rK   rK   rK   rK   8T笪@rL   rL   )r   r   r"   r7   d   r   r   F)numendpointr>   r7   )dg        g_ӽ-?gO*e?g%2g?g;ك?g6Y:tW?g>l&?g?g:ǰ?g{?g!:Fv?gEr/?gk;?$'
"?rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   rP   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@rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   rQ   r8   )r   r   r1   r   r2   r#   r9   sinallrE   sum)r   r	   r3   x_Rr;   res_invs         r   test_against_R_monotonez.TestIsotonicRegression.test_against_R_monotoneX   sO   ***!!$$

 
 
 	s###SZ///K1!e444EBF26NN"!!$$
 
 
& 	s### vbgcenn)***** 	survayy111 &qbU;;;
CE***W^SZ00000r+   c                    t          j        dt                    }t          j        dt                    }d|j        _        d|j        _        t          ||          }t          j        t          j        |j	                            sJ t          j        t          j        |j
                            sJ t          j        t          j        |j                            sJ d S )Nr@   r   Fr0   )r#   r:   floatr.   flags	writeabler   rS   isfiniter1   r   r2   r   r1   r
   r3   s       r   test_readonlyz$TestIsotonicRegression.test_readonly   s    Iau%%%GAU###!!!!Q///vbk#%(()))))vbk#+../////vbk#*--.......r+   c                 6   t          j        dt                    d d d         }t          j        dt                    d d d         }|j        j        rJ |j        j        rJ |j        j        rJ |j        j        rJ t          ||          }t          j        t          j	        |j
                            sJ t          j        t          j	        |j                            sJ t          j        t          j	        |j                            sJ d S )Nr7   r   r@   r0   )r#   r:   rY   r.   rZ   c_contiguousf_contiguousr   rS   r\   r1   r   r2   r]   s       r   test_non_contiguous_arraysz1TestIsotonicRegression.test_non_contiguous_arrays   s   Ib&&&sss+GBe$$$SSqS)7''''7''''7''''7''''!!Q///vbk#%(()))))vbk#+../////vbk#*--.......r+   )__name__
__module____qualname__r   markparametrizer   r*   r#   r%   float32int64int32r4   r<   rI   rW   r^   rb    r+   r   r   r   	   s       [!fXtFHVq!fXKMVaSKMAKMVQKMVaV24	
 "0 0# "0: : : [YRZ28(TUU[YRZ28(TUU[S4.11K K 21 VU VUK [\D%=996 6 :96= = =$61 61 61p
/ 
/ 
// / / / /r+   r   )numpyr#   numpy.testingr   r   r   scipy.optimize._pava_pybindr   scipy.optimizer   r   rk   r+   r   <module>rp      s        7 7 7 7 7 7 7 7  , , , , , , . . . . . .^/ ^/ ^/ ^/ ^/ ^/ ^/ ^/ ^/ ^/r+   