
    _Mh                     8   d Z ddlZddlZddlmZmZ ddlmZm	Z	m
Z
mZ ddlmZmZmZmZ ddlmZ d Zeee
e	gZee	gZej                            de           G d	 d
                      Zej                            de           G d d                      ZdS )z3Test of min-max 1D features of sparse array classes    N)assert_equalassert_array_equal)	coo_array	csr_array	csc_array	bsr_array)
coo_matrix
csr_matrix
csc_matrix
bsr_matrix)isscalarlikec                     t          | t          j                  st          |           r| S |                                 S )N)
isinstancenpndarrayr   toarray)as    `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/sparse/tests/test_minmax1d.pyr   r      s6    !RZ   LOO 99;;    	spcreatorc                   &    e Zd Zd Zd Zd Zd ZdS )Test_MinMaxMixin1Dc                 X   t          j        d          } ||          }t          |                                d           t          |                                d           t          |                                 d           t          |                                 d           d S )N   r      )r   aranger   minmax)selfr   DXs       r   test_minmaxzTest_MinMaxMixin1D.test_minmax   s    IaLLIaLLQUUWWa   QUUWWa   qbXXZZ$$$qbXXZZ#####r   c                    t          j        d          } ||          }dD ]}t          t          |                    |                    |                    |d                     t          t          |                    |                    |                    |d                     dD ]}t          j        t          d          5  |                    |           d d d            n# 1 swxY w Y   t          j        t          d          5  |                    |           d d d            n# 1 swxY w Y   d S )	N2   )r   axisTr(   keepdims)   zaxis out of rangematch)	r   r   r   r   r   r   pytestraises
ValueError)r    r   r!   r"   r(   s        r   test_minmax_axisz#Test_MinMaxMixin1D.test_minmax_axis#   s   IbMMIaLL 	 	D4(())155dT5+J+J   4(())155dT5+J+J     	! 	!Dz1DEEE ! !4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !z1DEEE ! !4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !	! 	!s$   C33C7	:C7	D<<E 	E 	c                    t          j        g d          } ||          }t          t          j        |          t          j        |                     t          t          j        |          t          j        |                     d S )N)r   r,      )r   arrayr   r   r   )r    r   datdatsps       r   test_numpy_minmaxz$Test_MinMaxMixin1D.test_numpy_minmax4   sh    hyyy!!	#26%=="&++66626%=="&++66666r   c                 (   t          j        g d          }t          j        g d          }t          j        g d          }t          j        g d          }t          j        g d          }|||||fD ]} ||          }t          |                                t          j        |                     t          |                                t          j        |                     t          |                    d          t          j        |d                     t          |                    d          t          j        |d                     t          j        d          }	d	D ]}
 ||	          }t          j        t          d
          5  |                    |
           d d d            n# 1 swxY w Y   t          j        t          d
          5  |                    |
           d d d            n# 1 swxY w Y   d S )N)r&   r   r4      r   r   r&   r+   )r&   r+   r   )r,   r4   r:   r   )r,   r4   r   r   r   r'   )r   )Nr   zto an empty matrixr-   )	r   r5   r   argmaxargminemptyr/   r0   r1   )r    r   D1D2D3D4D5r!   matD6r(   s              r   test_argmaxzTest_MinMaxMixin1D.test_argmax;   s\   Xmmm$$Xnnn%%X&&&''Xlll##Xlll##b"b"% 	C 	CA)A,,Cry||444ry||444++RYqq-A-A-ABBB++RYqq-A-A-ABBBBXd^^ 	& 	&D)B--Cz1EFFF & &


%%%& & & & & & & & & & & & & & &z1EFFF & &


%%%& & & & & & & & & & & & & & &		& 	&s$   F==G	G	#HH
	H
	N)__name__
__module____qualname__r#   r2   r8   rG    r   r   r   r      sP        $ $ $! ! !"7 7 7& & & & &r   r   c                       e Zd Zd ZdS )Test_ShapeMinMax2DWithAxisc           
         t          j        g dg dg dg          } ||          }|j        t           j        f|j        t           j        f|j        t           j        f|j        t           j        ffD ]u\  }}dD ]m\  }}t          t           ||                     |||                     t           ||          j        |            ||          j	        dk    sJ nv|j
        |j        fD ]-}dD ](}t           ||          t           j                  sJ ).t          t          t           t"          d} ||j	                 |          }	|	j        t           j        f|	j        t           j        f|	j        t           j        f|	j        t           j        ffD ]v\  }
}d	D ]n\  }}t          t           |
|                     |||d
                     t           |
|          j        |            |
|          j	        dk    sJ ow|	j
        |	j        fD ]-}dD ](}t           ||          t           j                  sJ ).d S )N)r&   r   r   r:   r;   )r   r   r,   r4   ))r   )r   )r,   )r:   r'   coo)r   r,   )rO   csrcscbsr))r   )r,   r   )r,   )r:   r,   Tr)   )r   r5   r   r   nanminnanmaxr   r   shapeformatr>   r=   r   r   r	   r
   r   r   )r    r   r6   r7   spminmaxnpminmaxaxresult_shape
spmat_formdatspmspmnpms               r   r#   z&Test_ShapeMinMax2DWithAxis.test_minmaxW   s   h~~~|||DEE	# YY\29%\29%	%
 		9 		9 Xx %; 9 9 LWXX2%6%6%677#B9O9O9OPPPXX2...4lCCCxR(((/5888889
 u|4 	A 	AH A A!(("3"3"3RZ@@@@@@A
 	
 

 *EL)#.. Z Z ]BI&]BI&	
 		4 		4HC %? 4 4 LWSSb\\\22CC"t4T4T4TUUUSSb\\\/>>>s|||*e333334
  6 	A 	AH A A!(("3"3"3RZ@@@@@@A	A 	Ar   N)rH   rI   rJ   r#   rK   r   r   rM   rM   U   s(        )A )A )A )A )Ar   rM   )__doc__r/   numpyr   numpy.testingr   r   scipy.sparser   r   r   r   r	   r
   r   r   scipy.sparse._sputilsr   r   formats_for_minmax formats_for_minmax_supporting_1dmarkparametrizer   rM   rK   r   r   <module>rh      sc   9 9      : : : : : : : : C C C C C C C C C C C C G G G G G G G G G G G G . . . . . .    IyA $-y#9   &FGG9& 9& 9& 9& 9& 9& 9& HG9&x &899*A *A *A *A *A *A *A :9*A *A *Ar   