o
    soi	                     @  s^   d dl mZ 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
dZG dd deZdS )    )annotations)AnyN)Base)expectoptional
Any | Nonereturnr   c                 C  s   | d usJ | S )N )r   r	   r	   b/home/ubuntu/.local/lib/python3.10/site-packages/onnx/backend/test/case/node/optionalgetelement.py-optional_get_element_reference_implementation   s   r   c                   @  s(   e Zd ZedddZedddZdS )	OptionalHasElementr   Nonec                  C  s   t g dt j} tjjtjjdgd}tj	|}tjj
ddgdgd}t| }t|| g|g|gdd	 t|| g|g|gd
d	 d S )N            r   	elem_typeshapeOptionalGetElementoptional_inputoutputinputsoutputs)test_optional_get_element_optional_tensorr   r   input_type_protosname test_optional_get_element_tensor)nparrayastypefloat32onnxhelpermake_tensor_type_protoTensorProtoFLOATmake_optional_type_proto	make_noder   r   )r   tensor_type_protooptional_type_protonoder   r	   r	   r
   export_get_element_tensor   s2   

z,OptionalHasElement.export_get_element_tensorc                  C  s   t g dt jg} tjjtjjdgd}tj	|}tj
|}tjjddgdgd}t| }t|| g|g|gdd	 t|| g|g|gd
d	 d S )Nr   r   r   r   r   r   r   +test_optional_get_element_optional_sequencer   "test_optional_get_element_sequence)r!   r"   r#   int32r%   r&   r'   r(   INT32make_sequence_type_protor*   r+   r   r   )r   r,   seq_type_protor-   r.   r   r	   r	   r
   export_get_element_sequence3   s4   

z.OptionalHasElement.export_get_element_sequenceN)r   r   )__name__
__module____qualname__staticmethodr/   r6   r	   r	   r	   r
   r      s
    r   )r   r   r   r   )
__future__r   typingr   numpyr!   r%   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   r	   r	   r	   r
   <module>   s   
