
    bIgC                    ^    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                Z    | t        j                  d      S t        j                  d      S )NFT)nparray)optionals    k/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/optionalhaselement.py-optional_has_element_reference_implementationr      s&     xxxx~    c                  0    e Zd Zedd       Zedd       Zy)OptionalHasElementc                    t        j                  g d      j                  t         j                        } t        j
                  j                  t        j                  j                  dg      }t        j
                  j                  |      }||fD ]P  }t        j
                  j                  ddgdg      }t        |       }d||k(  rdnd	z   }t        || g|g|g|
       R y )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    88L)00< KK>>&&,, ? 
 #kkBBCTU #45H!I 	;;(($.>-?( ) D C8LF4$(;; !#I
  z#6"7	r   c            	        d } t         j                  j                  t         j                  j                  g       }t         j                  j                  |      }||fD ]  }ddd d}|j                         D ]j  \  }}||k(  r|rt         j                  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 |	       l  y )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_namer,   r   r-   s
             r
   export_emptyzOptionalHasElement.export_empty5   s-    KK>>&&,,B ? 
 #kkBBCTU "34G H 	)')"&"
 1C0H0H0J , *#'88Z{{,,(!+!32*%J - 
 GxP0&' ,/BB *,  )3H:#H<F'7&8B"'	r   N)returnNone)__name__
__module____qualname__staticmethodr.   r<    r   r
   r   r      s(     : ( (r   r   )r	   znp.ndarray | Noner=   z
np.ndarray)
__future__r   numpyr   r#   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   rC   r   r
   <module>rH      s9    #   , .H Hr   