o
    soic
                     @  sT   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	G dd deZ
dS )    )annotationsN)Base)expectx
np.ndarrayaxisintreturnc                 C  s8   t j| |d}t | }t j|t j||dd|d |S )Nr      )npargmax
zeros_likeput_along_axisexpand_dims)r   r   x_argmaxy r   W/home/ubuntu/.local/lib/python3.10/site-packages/onnx/backend/test/case/node/hardmax.pyhardmax   s   
r   c                   @  s(   e Zd ZedddZedddZdS )	Hardmaxr
   Nonec                  C  s   t jjddgdgd} tg dg dg dg dgtj}t|}t| |g|gd	d
 tg dgtj}t|}t| |g|gdd
 d S )Nr   r   r   inputsoutputs)   r   r      )r      r   r   )r   r   r   r   )r   r   r   r   test_hardmax_exampler   r   name)r   r   r   r   test_hardmax_one_hot)	onnxhelper	make_noder   arrayastypefloat32r   r   )noder   r   r   r   r   export   s   "zHardmax.exportc                  C  s&  t jdddt j} tjjddgdgdd}t| dd	}t	|| g|gd
d tjjddgdgdd}t| dd	}t	|| g|gdd tjjddgdgdd}t| dd	}t	|| g|gdd tjjddgdgdd}t| dd	}t	|| g|gdd tjjddgdgd}t	|| g|gdd d S )Nr      r   r   r   r   r   )r   r   r   r   test_hardmax_axis_0r    r   test_hardmax_axis_1r   test_hardmax_axis_2r   test_hardmax_negative_axisr   test_hardmax_default_axis)
r   randomrandnr'   r(   r#   r$   r%   r   r   )r   r)   r   r   r   r   export_hardmax_axis/   sN   zHardmax.export_hardmax_axisN)r
   r   )__name__
__module____qualname__staticmethodr*   r3   r   r   r   r   r      s
    r   )r   )r   r   r   r	   r
   r   )
__future__r   numpyr   r#   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   r   r   r   r   <module>   s   