o
    soi                      @  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argmaxexpand_dimsastypeint64r   r   r
   result r   V/home/ubuntu/.local/lib/python3.10/site-packages/onnx/backend/test/case/node/argmax.pyargmax_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   "argmax_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 )ArgMaxr   Nonec                  C     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      
   dtyper   r   r   r   r   inputsoutputsr   r
   r   r
   test_argmax_no_keepdims_exampler#   r$   namer   r      test_argmax_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ArgMax.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_argmax_keepdims_exampler'   r)   r*   test_argmax_keepdims_randomr-   r5   r   r   r   export_keepdims8   s   
zArgMax.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_argmax_default_axis_exampler'   r)   r*   test_argmax_default_axis_randomr-   r   r
   r6   r   r   r   r   export_default_axes_keepdimsM   s(   
z#ArgMax.export_default_axes_keepdimsc                  C  r   )Nr   r   r   r    r   r   r   r   r"   r%   *test_argmax_negative_axis_keepdims_exampler'   r)   r*   )test_argmax_negative_axis_keepdims_randomr-   r5   r   r   r   export_negative_axis_keepdimsh   s*   
z$ArgMax.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_argmax_no_keepdims_example_select_last_indexr'   r)   r*   0test_argmax_no_keepdims_random_select_last_indexr   r.   r/   r0   r1   r2   r   r   r3   r4   r   r5   r   r   r   $export_no_keepdims_select_last_index   4   	
z+ArgMax.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   TrE   r%   .test_argmax_keepdims_example_select_last_indexr'   r)   r*   -test_argmax_keepdims_random_select_last_indexrI   r5   r   r   r   !export_keepdims_select_last_index   rK   z(ArgMax.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
   rF   r;   2test_argmax_default_axis_example_select_last_indexr'   r)   r*   1test_argmax_default_axis_random_select_last_indexrI   r>   r   r   r   .export_default_axes_keepdims_select_last_index   s0   	
z5ArgMax.export_default_axes_keepdims_select_last_indexc                  C  rD   )Nr   r   r   r    r@   r   r   r   r   TrE   r%   <test_argmax_negative_axis_keepdims_example_select_last_indexr'   r)   r*   ;test_argmax_negative_axis_keepdims_random_select_last_indexrI   r5   r   r   r   /export_negative_axis_keepdims_select_last_index   rK   z6ArgMax.export_negative_axis_keepdims_select_last_indexN)r   r   )__name__
__module____qualname__staticmethodr7   r:   r?   rC   rJ   rN   rQ   rT   r   r   r   r   r      s"    r   )r   r   )r   r   r   r	   r
   r	   r   r   )r   T)
__future__r   numpyr   r0   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   r   r   r   r   r   <module>   s   