
    /j                    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l	m
Z
  G d de          ZdS )    )annotationsN)Base)expect)rotary_embeddingc                      e Zd Zedd            Zedd            Zedd            Zedd            Zedd            Zedd            Z	edd	            Z
edd
            ZdS )RotaryEmbeddingreturnNonec                    t           j                            dg ddg          } t          j                            dddd                              t          j                  }t          j                            d	d
d                              t          j	                  }t          j                            d
d                              t          j                  }t          j                            d
d                              t          j                  }t          ||||          }t          | ||||g|gd           d S )Nr   input	cos_cache	sin_cacheposition_idsoutputinputsoutputs            r   2   r   r   )r   test_rotary_embeddingr   r   nameonnxhelper	make_nodenprandomrandastypefloat32uniformint64r   r   node
input_dataposition_ids_datasin_cache_datacos_cache_dataexpected_outputs         p/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/backend/test/case/node/rotaryembedding.pyexport_rotary_embeddingz'RotaryEmbedding.export_rotary_embedding   s(   {$$FFFJ % 
 
 Y^^Aq!Q//66rzBB
I--aV<<CCBHMMA..55bjAAA..55bjAA*EV
 
 
 	@QR$%(		
 	
 	
 	
 	
 	
    c                    d} t           j                            dg ddg|           }t          j                            ddd                              t          j                  }t          j                            d	d
d                              t          j	                  }t          j                            d
d                              t          j                  }t          j                            d
d                              t          j                  }t          |||||           }t          |||||g|gd           d S )Nr   r   r   r   )r   r   	num_headsr   r       r   r   r   )r   r4   test_rotary_embedding_3d_inputr   r   )r4   r*   r+   r,   r-   r.   r/   s          r0    export_rotary_embedding_3d_inputz0RotaryEmbedding.export_rotary_embedding_3d_input'   s3   	{$$FFFJ	 % 
 
 Y^^Aq"--44RZ@@
I--aV<<CCBHMMA..55bjAAA..55bjAA**
 
 
 	@QR$%1		
 	
 	
 	
 	
 	
r2   c                    t           j                            dg ddgd          } t          j                            dddd	                              t          j                  }t          j                            d
dd                              t          j	                  }t          j                            dd                              t          j                  }t          j                            dd                              t          j                  }t          ||||d          }t          | ||||g|gd           d S )Nr   r   r      r   r   interleavedr   r   r   r   r   r   r   )r   r;   !test_rotary_embedding_interleavedr   r   r)   s         r0   #export_rotary_embedding_interleavedz3RotaryEmbedding.export_rotary_embedding_interleavedE   s0   {$$FFFJ	 % 
 
 Y^^Aq!Q//66rzBB
I--aV<<CCBHMMA..55bjAAA..55bjAA**
 
 
 	@QR$%4		
 	
 	
 	
 	
 	
r2   c                    t           j                            dg ddgd          } t          j                            dddd                              t          j                  }t          j                            d	d
d                              t          j	                  }t          j                            d
d                              t          j                  }t          j                            d
d                              t          j                  }t          ||||d          }t          | ||||g|gd           d S )Nr   r   r   r   r   r   rotary_embedding_dimr   r   r   r   r   r   )r   r@   %test_rotary_embedding_with_rotary_dimr   r   r)   s         r0   'export_rotary_embedding_with_rotary_dimz7RotaryEmbedding.export_rotary_embedding_with_rotary_dimb   s0   {$$FFFJ!"	 % 
 
 Y^^Aq!Q//66rzBB
I--aV<<CCBHMMA..55bjAAA..55bjAA**!"
 
 
 	@QR$%8		
 	
 	
 	
 	
 	
r2   c                    t           j                            dg ddgdd          } t          j                            dddd	                              t          j                  }t          j                            d
dd                              t          j	                  }t          j                            dd                              t          j                  }t          j                            dd                              t          j                  }t          ||||dd          }t          | ||||g|gd           d S )Nr   r   r   r   r9   )r   r   r@   r;   r   r   r   r   r   r   )r   r;   r@   1test_rotary_embedding_with_interleaved_rotary_dimr   r   r)   s         r0   3export_rotary_embedding_with_interleaved_rotary_dimzCRotaryEmbedding.export_rotary_embedding_with_interleaved_rotary_dim   s6   {$$FFFJ!" % 
 
 Y^^Aq!Q//66rzBB
I--aV<<CCBHMMA..55bjAAA..55bjAA**!"
 
 
 	@QR$%D		
 	
 	
 	
 	
 	
r2   c                    t           j                            dg ddg          } t          j                            dddd                              t          j                  }t          j                            ddd                              t          j                  }t          j                            ddd                              t          j                  }t          |||          }t          | |||g|gd	
           d S )Nr   r   r   r   r   r   r   r   r   r   %test_rotary_embedding_no_position_idsr   
r   r    r!   r"   r#   r$   r%   r&   r   r   r*   r+   r-   r.   r/   s        r0   'export_rotary_embedding_no_position_idsz7RotaryEmbedding.export_rotary_embedding_no_position_ids   s    {$$666J % 
 
 Y^^Aq!Q//66rzBB
1a0077
CC1a0077
CC*:~~VV?$%8		
 	
 	
 	
 	
 	
r2   c                    t           j                            dg ddgd          } t          j                            dddd	                              t          j                  }t          j                            ddd                              t          j                  }t          j                            ddd                              t          j                  }t          |||d
          }t          | |||g|gd           d S )Nr   rG   r   r9   r:   r   r   r   r   )r;   1test_rotary_embedding_no_position_ids_interleavedr   rI   rJ   s        r0   3export_rotary_embedding_no_position_ids_interleavedzCRotaryEmbedding.export_rotary_embedding_no_position_ids_interleaved   s   {$$666J	 % 
 
 Y^^Aq!Q//66rzBB
1a0077
CC1a0077
CC*	
 
 
 	?$%D		
 	
 	
 	
 	
 	
r2   c                    t           j                            dg ddgd          } t          j                            dddd                              t          j                  }t          j                            ddd                              t          j                  }t          j                            ddd                              t          j                  }t          |||d	          }t          | |||g|gd
           d S )Nr   rG   r   r   r?   r   r   r   )r@   0test_rotary_embedding_no_position_ids_rotary_dimr   rI   rJ   s        r0   2export_rotary_embedding_no_position_ids_rotary_dimzBRotaryEmbedding.export_rotary_embedding_no_position_ids_rotary_dim   s   {$$666J!"	 % 
 
 Y^^Aq!Q//66rzBB
1a0077
CC1a0077
CC*!"	
 
 
 	?$%C		
 	
 	
 	
 	
 	
r2   N)r	   r
   )__name__
__module____qualname__staticmethodr1   r7   r=   rB   rE   rK   rN   rQ    r2   r0   r   r      s       
 
 
 \
. 
 
 
 \
: 
 
 
 \
8 
 
 
 \
8 
 
 
 \
< 
 
 
 \
( 
 
 
 \
4 
 
 
 \
 
 
r2   r   )
__future__r   numpyr"   r   onnx.backend.test.case.baser   onnx.backend.test.case.noder   &onnx.reference.ops.op_rotary_embeddingr   r   rV   r2   r0   <module>r\      s    # " " " " "      , , , , , , . . . . . . C C C C C CY
 Y
 Y
 Y
 Y
d Y
 Y
 Y
 Y
 Y
r2   