
    bIg%	                    b    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Z	 G d de      Z
y)	    )annotationsN)Base)expectc                2    t        j                  | g| }|S )N)npeinsum)EqnOperandsZs      _/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/einsum.pyeinsum_reference_implementationr      s     			#!!AH    c                  f    e Zd Zedd       Zedd       Zedd       Zedd       Zedd       Zy)Einsumc                     d} t         j                  j                  ddgdg|       }t        j                  j                  dd      }t        | |f      }t        ||g|gd	       y )
Nzij->jir   xyinputsoutputsequation      test_einsum_transposer   r   nameonnxhelper	make_noder   randomrandnr   r   )r	   nodeXYs       r   export_einsum_transposezEinsum.export_einsum_transpose   sd    {{$$cUSEC % 
 IIOOAq!+C!6tQC!3JKr   c                     d} t         j                  j                  ddgdg|       }t        j                  j                  dd      }t        | |f      }t        ||g|gd	       y )
Nzij->ir   r   r   r   r   r   test_einsum_sumr   r   r	   r#   r$   r   s       r   export_einsum_sumzEinsum.export_einsum_sum!   sd    {{$$cUSEC % 
 IIOOAq!+C!6tQC!3DEr   c                     d} t         j                  j                  ddgdg|       }t        j                  j                  ddd      }t        | |f      }t        ||g|gd	       y )
Nz...ii ->...ir   r   r   r   r      test_einsum_batch_diagonalr   r   r)   s       r   export_einsum_batch_diagonalz#Einsum.export_einsum_batch_diagonal-   sf    {{$$cUSEC % 
 IIOOAq!$+C!6tQC!3OPr   c                    d} t         j                  j                  dddgdg|       }t        j                  j                  d      }t        j                  j                  d      }t        | ||f      }t        |||g|gd	       y )
Nzi,ir   r   r   zr   r,   test_einsum_inner_prodr   r   r	   r#   r$   r%   r   s        r   export_einsum_inner_prodzEinsum.export_einsum_inner_prod9   sz    {{$$c3Z# % 
 IIOOAIIOOA+C!Q8tQFQC6NOr   c                    d} t         j                  j                  dddgdg|       }t        j                  j                  ddd	      }t        j                  j                  dd	d
      }t        | ||f      }t        |||g|gd       y )Nzbij, bjk -> bikr   r   r   r0   r   r,      r   r   test_einsum_batch_matmulr   r   r2   s        r   export_einsum_batch_matmulz!Einsum.export_einsum_batch_matmulF   s    {{$$c3Z# % 
 IIOOAq!$IIOOAq!$+C!Q8tQFQC6PQr   N)returnNone)	__name__
__module____qualname__staticmethodr&   r*   r.   r3   r7    r   r   r   r      sn    	L 	L 	F 	F 	Q 	Q 
P 
P 
R 
Rr   r   )r	   strr
   ztuple[np.ndarray, ...]r8   z
np.ndarray)
__future__r   numpyr   r   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   r>   r   r   <module>rD      sA    #   , .	.=RT =Rr   