
    /j5                    ^    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
dS )    )annotationsN)Base)expectoptionalnp.ndarray | Nonereturn
np.ndarrayc                V    | t          j        d          S t          j        d          S )NFT)nparray)r   s    s/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/backend/test/case/node/optionalhaselement.py-optional_has_element_reference_implementationr      s&     x8D>>    c                  >    e Zd Zedd            Zedd            ZdS )OptionalHasElementr   Nonec                    t          j        g d                              t           j                  } t          j                            t          j        j        dg          }t          j        	                    |          }||fD ]Y}t          j        
                    ddgdg          }t          |           }d||k    rdnd	z   }t          || g|g|g|
           Zd S )N)            r   	elem_typeshaper   optional_inputoutputinputsoutputstest_optional_has_element_tensor_inputr   r   input_type_protosname)r   r   astypefloat32onnxhelpermake_tensor_type_protoTensorProtoFLOATmake_optional_type_proto	make_noder   r   )r   tensor_type_protooptional_type_protor#   noder   	test_names          r   exportzOptionalHasElement.export   s   8LLL))00<< K>>&, ? 
 
 #kBBCTUU #45H!I 	 	;(($.>-?( )  D C8LLF4$(;;; ! #I
  z#6"7    	 	r   c            	        d } t           j                            t           j        j        g           }t           j                            |          }||fD ]}ddd d}|                                D ]t\  }}||k    r|rt           j                            d|g n|gdg          }t          |           }d|z   ||k    rd	nd
z   }	t          ||r| gng |g|r|gng |	           ud S )Nr   r    )emptyempty_no_input_nameempty_no_inputr   r   r   r    _optional_input_tensor_inputr"   )
r'   r(   r)   r*   INT32r,   itemsr-   r   r   )
r   r.   r/   input_type_protoinput_name_optionstest_name_surfix
input_namer0   r   r1   s
             r   export_emptyzOptionalHasElement.export_empty4   su    K>>&,B ? 
 
 #kBBCTUU "34G H 	 	)')"&" "
 1C0H0H0J0J  , *#'888Z8{,,(!+!322*%J -  
 GxPP0&' ,/BBB *),  )3;H::#H<F&N'7&8&8B"    '	 	r   N)r   r   )__name__
__module____qualname__staticmethodr2   r@    r   r   r   r      sR           \: ( ( ( \( ( (r   r   )r   r   r   r	   )
__future__r   numpyr   r'   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   rE   r   r   <module>rJ      s    # " " " " "      , , , , , , . . . . . .   H H H H H H H H H Hr   