o
    soi                     @  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                   @  sR   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dS )
ReduceProdreturnNonec                  C  s   g d} 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      r
      dtyper   r   dataaxesreducedinputsoutputskeepdimsr
   r	                  	   
         axisr   (test_reduce_prod_do_not_keepdims_exampler   r   name'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    r6   Z/home/ubuntu/.local/lib/python3.10/site-packages/onnx/backend/test/case/node/reduceprod.pyexport_do_not_keepdims   8   0
z!ReduceProd.export_do_not_keepdimsc                  C  s   g d} 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   r   !test_reduce_prod_keepdims_exampler!   r   r#    test_reduce_prod_keepdims_randomr%   r3   r6   r6   r7   export_keepdims5   r9   zReduceProd.export_keepdimsc                  C  s   g d} 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   r   .test_reduce_prod_default_axes_keepdims_exampler!   r   r#   -test_reduce_prod_default_axes_keepdims_random)r)   r*   r+   r&   r'   r,   r-   r   r/   r0   r1   r2   r3   r6   r6   r7   export_default_axes_keepdims\   s2   0
z'ReduceProd.export_default_axes_keepdimsc                  C  s   g d} 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   r   /test_reduce_prod_negative_axes_keepdims_exampler!   r   r#   .test_reduce_prod_negative_axes_keepdims_randomr%   r3   r6   r6   r7   export_negative_axes_keepdims~   r9   z(ReduceProd.export_negative_axes_keepdimsc                  C  s   g d} d}g d}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 )N)r
   r   r   r   )r
   r   r   r   r   r   r   r   r   test_reduce_prod_empty_setr!   )
r)   r*   r+   r&   r'   r,   reshaper(   onesr   )r4   r   reduced_shaper5   r   r   r   r6   r6   r7   export_empty_set   s$   
zReduceProd.export_empty_setN)r   r   )	__name__
__module____qualname__staticmethodr8   r<   r?   rC   rH   r6   r6   r6   r7   r      s    &&!&r   )

__future__r   numpyr&   r)   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r6   r6   r6   r7   <module>   s   