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                   @  sT   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	dS )SequenceMapc               
   C  s   t jt jddgdggdt jdt jjdggt jdt jjdgg} t jjddgd	g| d
}dd tdD }|}t jt j	t jjdgg}t jt j	t jjdgg}t
||g|g||dd d S )NIdentityin0out0seq_map_bodyNMr   xyinputsoutputsbodyc                 S  $   g | ]}t jd ddt jqS               ?
   nprandomuniformastypefloat32.0_ r    \/home/ubuntu/.local/lib/python3.10/site-packages/onnx/backend/test/case/node/sequence_map.py
<listcomp>      $ zGSequenceMap.export_sequence_map_identity_1_sequence.<locals>.<listcomp>   %test_sequence_map_identity_1_sequencer   r   input_type_protosoutput_type_protosnameonnxhelper
make_graph	make_nodemake_tensor_value_infoTensorProtoFLOATrangemake_sequence_type_protomake_tensor_type_protor   )r   noder   r   r'   r(   r    r    r!   'export_sequence_map_identity_1_sequence   s6   
z3SequenceMap.export_sequence_map_identity_1_sequencec                  C  s^  t jt jddgdgt jddgdggdt jdt jjdgt jdt jjdggt jdt jjdgt jdt jjdgg} t jjd	d
dgddg| d}dd tdD }dd tdD }|}|}t jt j	t jjdgt jt j	t jjdgg}t jt j	t jjdgt jt j	t jjdgg}t
|||g||g||dd d S )Nr   r   r   in1out1r	   r
   r   r   x0x1y0y1r   c              
   S  .   g | ]}t jd dt jddt jqS r   r      r   r   r   r   randintr   r   r   r    r    r!   r"   N        zHSequenceMap.export_sequence_map_identity_2_sequences.<locals>.<listcomp>r$   c              
   S  r=   r>   r@   r   r    r    r!   r"   R   rB   &test_sequence_map_identity_2_sequencesr&   r*   )r   r5   r9   r:   r;   r<   r'   r(   r    r    r!   (export_sequence_map_identity_2_sequences0   sj   		
z4SequenceMap.export_sequence_map_identity_2_sequencesc                    sx  t jt jddgdgt jddgdggdt jdt jjdgt jdt jjdggt jdt jjdgt jdt jjdgg} t jjd	d
dgddg| d}dd tdD }tj	
ddtj	ddtj |} fddtdD }t jt jt jjdgt jt jjdgg}t jt jt jjdgt jt jt jjdgg}t|| g||g||dd d S )Nr   r   r   r7   r8   r	   r
   r   r   r9   r:   r;   r<   r   c              
   S  r=   r>   r@   r   r    r    r!   r"      rB   zPSequenceMap.export_sequence_map_identity_1_sequence_1_tensor.<locals>.<listcomp>r$   r   r   r?   r   c                   s   g | ]} qS r    r    r   r:   r    r!   r"      s    .test_sequence_map_identity_1_sequence_1_tensorr&   )r+   r,   r-   r.   r/   r0   r1   r2   r   r   r   rA   r   r   r3   r4   r   )r   r5   r9   r;   r<   r'   r(   r    rE   r!   0export_sequence_map_identity_1_sequence_1_tensorq   sb   	"
z<SequenceMap.export_sequence_map_identity_1_sequence_1_tensorc               
     sF  t jt jdddgdggdt jdt jjdgt jdt jjdggt jdt jjdgg} t jjddd	gd
g| d}dd tdD   fddtdD  fddtdD fddtdD }t jt j	t jjdgt jt j	t jjdgg}t jt j	t jjdgg}t
|g|g||dd d S )NAddr   r7   r   r	   r
   r   r9   r:   r;   r   c                 S  s   g | ]	}t jd dqS )r?   r   )r   r   rA   r   r    r    r!   r"      s    zCSequenceMap.export_sequence_map_add_2_sequences.<locals>.<listcomp>r$   c                   (   g | ]}t jd d | t jqS r   r   r   r   kr
   r    r!   r"         ( c                   rI   rJ   r   rK   rM   r    r!   r"      rN   c                   s   g | ]
} | |  qS r    r    rK   r9   r:   r    r!   r"          !test_sequence_map_add_2_sequencesr&   r*   r   r5   r;   r'   r(   r    )r
   r9   r:   r!   #export_sequence_map_add_2_sequences   sL   	
z/SequenceMap.export_sequence_map_add_2_sequencesc               
     s*  t jt jdddgdggdt jdt jjdgt jdt jjdggt jdt jjdgg} t jjddd	gd
g| d}dd tdD  tj	
dddtj fddtdD }t jt jt jjdgt jt jjdgg}t jt jt jjdgg}t| g|g||dd d S )NrH   r   r7   r   r	   r
   r   r9   r:   r;   r   c                 S  r   r   r   rK   r    r    r!   r"      r#   zKSequenceMap.export_sequence_map_add_1_sequence_1_tensor.<locals>.<listcomp>r$   r   r   r   c                   s   g | ]} |  qS r    r    )r   irO   r    r!   r"      s    )test_sequence_map_add_1_sequence_1_tensorr&   )r+   r,   r-   r.   r/   r0   r1   r2   r   r   r   r   r   r3   r4   r   rR   r    rO   r!   +export_sequence_map_add_1_sequence_1_tensor   sF   
z7SequenceMap.export_sequence_map_add_1_sequence_1_tensorc               
   C  s  t jt jddgdggdt jdt jjg dgt jdt jjdgg} t jjddgd	g| d
}tj	g dtj
dtj	g dtj
dtj	g dtj
dg}dd |D }t jt jt jjg dg}t jt jt jjdgg}t||g|g||dd d S )NShaper   shaper	   )HWCr$   r   in_seqshapesr   )(      r$   dtype)   r   r$   )r      r$   c                 S  s   g | ]
}t j|t jd qS )r`   )r   zerosr   )r   rX   r    r    r!   r"     rP   zBSequenceMap.export_sequence_map_extract_shapes.<locals>.<listcomp> test_sequence_map_extract_shapesr&   )r+   r,   r-   r.   r/   r0   r1   INT64r   arrayint64r3   r4   r   )r   r5   r]   r9   r'   r(   r    r    r!   "export_sequence_map_extract_shapes  sF   
z.SequenceMap.export_sequence_map_extract_shapesN)
__name__
__module____qualname__staticmethodr6   rD   rG   rS   rV   ri   r    r    r    r!   r      s    
!
@
;
-
*r   )

__future__r   numpyr   r+   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r    r    r    r!   <module>   s   