o
    wi                      @  sb   d dl mZ d dlZd dlZd dlmZ d dlmZ ddddZ		ddddZ
G dd deZdS )    )annotationsN)Base)expect   data
np.ndarrayaxisintkeepdimsreturnc                 C  s.   t j| |d}|dkrt ||}|t jS N)r   r   )npargminexpand_dimsastypeint64r   r   r
   result r   _/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/onnx/backend/test/case/node/argmin.pyargmin_use_numpy   s   r   Tc                 C  sH   t | |} t j| |d}| j| | d }|rt ||}|t jS r   )r   flipr   shaper   r   r   r   r   r   r   "argmin_use_numpy_select_last_index   s   r   c                   @  s|   e Zd ZedddZedddZedddZedd	d
ZedddZedddZ	edddZ
edddZdS )ArgMinr   Nonec                  C  s   t jddgddggt jd} d}d}tjjddgd	g||d
}t| ||d}t|| g|gdd t j	ddg d
t j} t| ||d}t|| g|gdd d S )N   r      
   dtyper   r   r   r   inputsoutputsr   r
   r   r
   test_argmin_no_keepdims_exampler"   r#   namer   r      test_argmin_no_keepdims_randomr   arrayfloat32onnxhelper	make_noder   r   randomuniformr   r   r   r
   noder   r   r   r   export_no_keepdims    s$   
zArgMin.export_no_keepdimsc                  C  s   t jddgddggt jd} d}d}tjjddgdg||d	}t| ||d
}t|| g|gdd t j	ddg d
t j} t| ||d
}t|| g|gdd d S )Nr   r   r   r   r   r   r   r   r!   r$   test_argmin_keepdims_exampler&   r(   r)   test_argmin_keepdims_randomr,   r4   r   r   r   export_keepdims8   s   
zArgMin.export_keepdimsc                  C  s   t jddgddggt jd} d}tjjddgdg|d	}t| |d
}t|| g|gdd t j	ddg d
t j} t| |d
}t|| g|gdd d S )Nr   r   r   r   r   r   r   r   )r"   r#   r
   r
    test_argmin_default_axis_exampler&   r(   r)   test_argmin_default_axis_randomr,   r   r
   r5   r   r   r   r   export_default_axes_keepdimsM   s(   
z#ArgMin.export_default_axes_keepdimsc                  C  s   t jddgddggt jd} d}d}tjjddgd	g||d
}t| ||d}t|| g|gdd t j	ddg d
t j} t| ||d}t|| g|gdd d S )Nr   r   r   r   r   r   r   r   r!   r$   *test_argmin_negative_axis_keepdims_exampler&   r(   r)   )test_argmin_negative_axis_keepdims_randomr,   r4   r   r   r   export_negative_axis_keepdimsh   s*   
z$ArgMin.export_negative_axis_keepdimsc                  C     t jddgddggt jd} d}d}tjjddgd	g||d
d}t| ||d}t|| g|gdd t j	ddg d
t j} t| ||d}t|| g|gdd d S )Nr   r   r   r   r   r   r   r   r   Tr"   r#   r   r
   select_last_indexr$   1test_argmin_no_keepdims_example_select_last_indexr&   r(   r)   0test_argmin_no_keepdims_random_select_last_indexr   r-   r.   r/   r0   r1   r   r   r2   r3   r   r4   r   r   r   $export_no_keepdims_select_last_index   4   	
z+ArgMin.export_no_keepdims_select_last_indexc                  C  s   t jddgddggt jd} d}d}tjjddgdg||d	d
}t| ||d}t|| g|gdd t j	ddg d
t j} t| ||d}t|| g|gdd d S )Nr   r   r   r   r   r   r   r   TrD   r$   .test_argmin_keepdims_example_select_last_indexr&   r(   r)   -test_argmin_keepdims_random_select_last_indexrH   r4   r   r   r   !export_keepdims_select_last_index   rJ   z(ArgMin.export_keepdims_select_last_indexc                  C  s   t jddgddggt jd} d}tjjddgdg|d	d
}t| |d}t|| g|gdd t j	ddg d
t j} t| |d}t|| g|gdd d S )Nr   r   r   r   r   r   r   r   T)r"   r#   r
   rE   r:   2test_argmin_default_axis_example_select_last_indexr&   r(   r)   1test_argmin_default_axis_random_select_last_indexrH   r=   r   r   r   .export_default_axes_keepdims_select_last_index   s0   	
z5ArgMin.export_default_axes_keepdims_select_last_indexc                  C  rC   )Nr   r   r   r   r?   r   r   r   r   TrD   r$   <test_argmin_negative_axis_keepdims_example_select_last_indexr&   r(   r)   ;test_argmin_negative_axis_keepdims_random_select_last_indexrH   r4   r   r   r   /export_negative_axis_keepdims_select_last_index   rJ   z6ArgMin.export_negative_axis_keepdims_select_last_indexN)r   r   )__name__
__module____qualname__staticmethodr6   r9   r>   rB   rI   rM   rP   rS   r   r   r   r   r      s"    r   )r   r   )r   r   r   r	   r
   r	   r   r   )r   T)
__future__r   numpyr   r/   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   r   r   r   r   r   <module>   s   