U
    rh                     @  sH   d dl mZ d dlZd dlZd dlmZ d dlmZ G dd deZ	dS )    )annotationsN)Base)expectc                   @  sf   e Zd ZeddddZeddddZeddddZeddd	d
ZeddddZdS )
ReduceProdNone)returnc                  C  s   dddg} t jdgt jd}d}tjjdddgd	g|d
}t jddgddggddgddggddgddgggt jd}t j|t||dkd}t	|||g|gdd t j
d t j
dd| t j}t j|t||dkd}t	|||g|gdd d S )N         Zdtyper   r   dataaxesreducedinputsoutputskeepdims               	   
         Zaxisr   Z(test_reduce_prod_do_not_keepdims_exampler   r   nameZ'test_reduce_prod_do_not_keepdims_randomnparrayint64onnxhelper	make_nodefloat32prodtupler   randomseeduniformastypeshaper   r   noder   r    r1   J/tmp/pip-unpacked-wheel-xnis5xre/onnx/backend/test/case/node/reduceprod.pyexport_do_not_keepdims   s:    
, z!ReduceProd.export_do_not_keepdimsc                  C  s   dddg} t jdgt jd}d}tjjdddgdg|d	}t jddgdd
ggddgddggddgddgggt jd}t j|t||dkd}t	|||g|gdd t j
d t j
dd| t j}t j|t||dkd}t	|||g|gdd d S )Nr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Z!test_reduce_prod_keepdims_exampler   r   r   Z test_reduce_prod_keepdims_randomr    r.   r1   r1   r2   export_keepdims5   s:    
, zReduceProd.export_keepdimsc                  C  s   dddg} d }d}t jjddgdg|d}tjddgddggd	d
gddggddgddgggtjd}tj|||dkd}t||g|gdd tj	d tj
dd| tj}tj|||dkd}t||g|gdd d S )Nr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Z.test_reduce_prod_default_axes_keepdims_exampler   r   r   Z-test_reduce_prod_default_axes_keepdims_random)r$   r%   r&   r!   r"   r'   r(   r   r*   r+   r,   r-   r.   r1   r1   r2   export_default_axes_keepdims\   s:    
   , z'ReduceProd.export_default_axes_keepdimsc                  C  s   dddg} t jdgt jd}d}tjjdddgd	g|d
}t jddgddggddgddggddgddgggt jd}t j|t||dkd}t	|||g|gdd t j
d t j
dd| t j}t j|t||dkd}t	|||g|gdd d S )Nr   r	   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Z/test_reduce_prod_negative_axes_keepdims_exampler   r   r   Z.test_reduce_prod_negative_axes_keepdims_randomr    r.   r1   r1   r2   export_negative_axes_keepdims~   s:    
, z(ReduceProd.export_negative_axes_keepdimsc                  C  s   dddg} d}dddg}t jjdddgdg|d	}tjg tjd
| }tjdgtjd
}ttj|tjd
}t	|||g|gdd d S )Nr	   r   r   r
   r   r   r   r   r   r   Ztest_reduce_prod_empty_setr   )
r$   r%   r&   r!   r"   r'   Zreshaper#   Zonesr   )r/   r   Zreduced_shaper0   r   r   r   r1   r1   r2   export_empty_set   s$    

zReduceProd.export_empty_setN)	__name__
__module____qualname__staticmethodr3   r4   r5   r7   r8   r1   r1   r1   r2   r      s   &&!&r   )

__future__r   Znumpyr!   r$   Zonnx.backend.test.case.baser   Zonnx.backend.test.case.noder   r   r1   r1   r1   r2   <module>   s
   