o
    Ö­j­  ã                   @   s¸   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d„ Zeee
e	gZee	gZej d	e¡G d
d„ dƒƒZej d	e¡G d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                 C   s    t | tjƒs
t| ƒr| S |  ¡ S )N)Ú
isinstanceÚnpÚndarrayr   Útoarray)Úa© r   ú]/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/sparse/tests/test_minmax1d.pyr      s   r   Ú	spcreatorc                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTest_MinMaxMixin1Dc                 C   sR   t  d¡}||ƒ}t| ¡ dƒ t| ¡ dƒ t|  ¡ dƒ t|  ¡ dƒ d S )Né   r   é   éüÿÿÿ)r   Úaranger   ÚminÚmax)Úselfr   ÚDÚXr   r   r   Útest_minmax   s   
zTest_MinMaxMixin1D.test_minmaxc              	   C   sÞ   t  d¡}||ƒ}dD ]"}tt|j|d�ƒ|j|dd�ƒ tt|j|d�ƒ|j|dd�ƒ qdD ]<}tjtdd�� |j|d� W d   ƒ n1 sJw   Y  tjtdd�� |j|d� W d   ƒ n1 sgw   Y  q0d S )	Né2   )r   éÿÿÿÿ©ÚaxisT©r#   Úkeepdims)éþÿÿÿé   zaxis out of range©Úmatch)	r   r   r   r   r   r   ÚpytestÚraisesÚ
ValueError)r   r   r   r   r#   r   r   r   Útest_minmax_axis#   s$   
ÿÿÿÿ€ýz#Test_MinMaxMixin1D.test_minmax_axisc                 C   sF   t  g d¢¡}||ƒ}tt  |¡t  |¡ƒ tt  |¡t  |¡ƒ d S )N)r   r'   é   )r   Úarrayr   r   r   )r   r   ÚdatÚdatspr   r   r   Útest_numpy_minmax4   s   z$Test_MinMaxMixin1D.test_numpy_minmaxc              	   C   sV  t  g d¢¡}t  g d¢¡}t  g d¢¡}t  g d¢¡}t  g d¢¡}|||||fD ]6}||ƒ}t| ¡ t  |¡ƒ t| ¡ t  |¡ƒ t|jdd�t j|dd�ƒ t|jdd�t j|dd�ƒ q*t  d¡}	d	D ]@}
||	ƒ}tjtd
d�� |j|
d� W d   ƒ n1 s†w   Y  tjtd
d�� |j|
d� W d   ƒ n1 s£w   Y  qhd S )N)r!   r   r.   é   ©r   r   r!   r&   )r!   r&   éýÿÿÿr   )r'   r.   r3   r   )r'   r.   r   r   r   r"   )r   )Nr   zto an empty matrixr(   )	r   r/   r   ÚargmaxÚargminÚemptyr*   r+   r,   )r   r   ÚD1ÚD2ÚD3ÚD4ÚD5r   ÚmatÚD6r#   r   r   r   Útest_argmax;   s,   
ÿÿ€üzTest_MinMaxMixin1D.test_argmaxN)Ú__name__Ú
__module__Ú__qualname__r   r-   r2   r@   r   r   r   r   r      s
    	r   c                   @   s   e Zd Zdd„ ZdS )ÚTest_ShapeMinMax2DWithAxisc              	   C   s¶  t  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 ],\}}dD ]%\}}tt||d�ƒ|||d�ƒ t||d�j|ƒ ||d�j	dksSJ ‚q.q(|j
|jfD ]}dD ]}t||d�t jƒslJ ‚q_q[ttttdœ}||j	 |ƒ}	|	jt jf|	jt jf|	jt jf|	jt jffD ]-\}
}d	D ]&\}}tt|
|d�ƒ|||d
d�ƒ t|
|d�j|ƒ |
|d�j	dks¾J ‚q˜q’|	j
|	jfD ]}dD ]}t||d�t jƒs×J ‚qÊqÆd S )N)r!   r   r   r3   r4   )r   r   r'   r.   ))r   )r   )r'   )r3   r"   Úcoo)r   r'   )rE   ÚcsrÚcscÚbsr))r   )r'   r   )r'   )r3   r'   Tr$   )r   r/   r   r   ÚnanminÚnanmaxr   r   ÚshapeÚformatr7   r6   r   r   r   r	   r
   r   )r   r   r0   r1   ÚspminmaxÚnpminmaxÚaxÚresult_shapeÚ
spmat_formÚdatspmÚspmÚnpmr   r   r   r   W   sJ   



üýÿü



üýÿÿz&Test_ShapeMinMax2DWithAxis.test_minmaxN)rA   rB   rC   r   r   r   r   r   rD   U   s    rD   )Ú__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   rD   r   r   r   r   Ú<module>   s    <