
    h                     B    S SK rS SKrS SKJr  S SKJr   " S S\5      rg)    N)Base)expectc                   x    \ rS rSr\S	S j5       r\S	S j5       r\S	S j5       r\S	S j5       r\S	S j5       r	Sr
g)

ReduceProd   Nc                     / SQn [         R                  " S/[         R                  S9nSn[        R                  R                  SSS/S/US	9n[         R                  " SS
/SS//SS/SS//SS/SS///[         R                  S9n[         R                  " U[        U5      US:H  S9n[        UXA/U/SS9  [         R                  R                  S5        [         R                  R                  SSU 5      R                  [         R                  5      n[         R                  " U[        U5      US:H  S9n[        UXA/U/SS9  g )N      r      dtyper   r   dataaxesreducedinputsoutputskeepdimsr   r
                  	   
      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   s         `/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/reduceprod.pyexport_do_not_keepdims!ReduceProd.export_do_not_keepdims   s6   xx288,{{$$F#K	 % 
 xx!fq!fAA/1b'B81DERZZ
 ''$U4[8q=I 	<I;		
 			qyy  b%077

C''$U4[8q=I<I:		
    c                     / SQn [         R                  " S/[         R                  S9nSn[        R                  R                  SSS/S/US9n[         R                  " SS	/S
S//SS/SS//SS/SS///[         R                  S9n[         R                  " U[        U5      US:H  S9n[        UXA/U/SS9  [         R                  R                  S5        [         R                  R                  SSU 5      R                  [         R                  5      n[         R                  " U[        U5      US:H  S9n[        UXA/U/SS9  g )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   s         r6   export_keepdimsReduceProd.export_keepdims4   s6   xx288,{{$$F#K	 % 
 xx!fq!fAA/1b'B81DERZZ
 ''$U4[8q=I 	<I4		
 			qyy  b%077

C''$U4[8q=I<I3		
r9   c                     / SQn S nSn[         R                  R                  SS/S/US9n[        R                  " SS/SS	//S
S/SS//SS/SS///[        R
                  S9n[        R                  " XAUS:H  S9n[        UU/U/SS9  [        R                  R                  S5        [        R                  R                  SSU 5      R                  [        R
                  5      n[        R                  " XAUS:H  S9n[        UU/U/SS9  g )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   s         r6   export_default_axes_keepdims'ReduceProd.export_default_axes_keepdims[   s   {{$$&I; % 
 xx!fq!fAA/1b'B81DERZZ
 ''$HMB 	6IA		
 			qyy  b%077

C''$HMB6I@		
r9   c                     / SQn [         R                  " S/[         R                  S9nSn[        R                  R                  SSS/S/US	9n[         R                  " SS
/SS//SS/SS//SS/SS///[         R                  S9n[         R                  " U[        U5      US:H  S9n[        UXA/U/SS9  [         R                  R                  S5        [         R                  R                  SSU 5      R                  [         R                  5      n[         R                  " U[        U5      US:H  S9n[        UXA/U/SS9  g )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   s         r6   export_negative_axes_keepdims(ReduceProd.export_negative_axes_keepdims}   s6   xxBHH-{{$$F#K	 % 
 xx!fq!fAA/1b'B81DERZZ
 ''$U4[8q=I 	<IB		
 			qyy  b%077

C''$U4[8q=I<IA		
r9   c                     / SQn Sn/ SQn[         R                  R                  SSS/S/US9n[        R                  " / [        R
                  S	9R                  U 5      n[        R                  " S/[        R                  S	9n[        R                  " [        R                  " U[        R
                  S	95      n[        UXE/U/S
S9  g )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   s          r6   export_empty_setReduceProd.export_empty_set   s    !{{$$F#K	 % 
 xx"**-55e<xx288,((277=

CD<I-		
r9    )returnN)__name__
__module____qualname____firstlineno__staticmethodr7   r=   rB   rH   rO   __static_attributes__rQ   r9   r6   r   r      sh    $
 $
L $
 $
L 
 
B $
 $
L 
 
r9   r   )numpyr&   r)   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   rQ   r9   r6   <module>r\      s!   
   , .n
 n
r9   