§
    1�Åj’  ã                  ó^   — 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    ú_C:\Projects\Historical\venv\Lib\site-packages\onnx/backend/test/case/node/optionalhaselement.pyÚ-optional_has_element_reference_implementationr      s&   € ð ÐÝŒx˜‰ŒÐÝŒ8�D‰>Œ>Ðó    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  € å”8˜L˜L˜LÑ)Ô)×0Ò0µ´Ñ<Ô<ˆÝ œK×>Ò>ÝÔ&Ô,àðð ?ñ 
ô 
Ðõ #œk×BÒBÐCTÑUÔUÐð #4Ð5HÐ!Ið 	ð 	ÐÝ”;×(Ò(Ø$Ð.>Ð-?È(Èð )ñ ô ˆDõ CÀ8ÑLÔLˆFØ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 |	¬¦  «         ŒuŒ’d 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ÒBÐCTÑUÔUÐð "3Ð4GÐ Hð 	ð 	Ðà)Ø')Ø"&ð"ð "Ðð
 1C×0HÒ0HÑ0JÔ0Jð ð Ñ,Ð  *Ø#Ð'8Ò8Ð8¸ZÐ8àÝ”{×,Ò,Ø(Ø!+Ð!3˜2˜2¸*¸Ø%˜Jð -ñ ô �õ
 GÀxÑPÔP�à0Ø&ñ'ð ,Ð/BÒBÐBð *Ð)à,ñð õ ØØ)3Ð;˜H˜:˜:¸Ø#˜HØ<FÐ&NÐ'7Ð&8Ð&8ÈBØ"ðñ ô ð ð ð'ð	ð 	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   