o
    wi#                     @  s\  d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlZd dl	Z	d dl
Zd dlZd dlZd dlZd dlmZ d dl
mZmZ d dlmZ G dd dejjjZG d	d
 d
ejjjZejdkredndZejjjeedeideideideideideiddZedre d e! d  dkre d e" dkre d e d e d e d e d e d e d e d e d e d e d  ejd!kre d" e d# e d$ e d% ej#d&kre d" e d# e d$ ej#d'k re d% ejd(kr!e d) e d* e	$d+rTe d, e d- e d. e d/ e d0 e d1 e d2 e d3 e d4 e	%d5rde d6 e d7 e& 'ej( ed8krej)d9d:d;Z*e*j+j,Z-e.e*j+j/Z/e.e*j+j0Z0e.e*j+j1Z2e.e*j+j3Z4e5d< e5d=e- d>e/ d?e0 d@e2 dAe4 
 dS dS )B    )annotationsN)Any)
ModelProto)Device
DeviceTypeReferenceEvaluatorc                   @  s   e Zd Zdd Zdd ZdS )ReferenceEvaluatorBackendRepc                 C  s
   || _ d S N)_session)selfsession r   ]/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/onnx/test/test_backend_reference.py__init__   s   
z%ReferenceEvaluatorBackendRep.__init__c           	      K  s   t |tjr	|g}t |trZt|t| jjkr"tt| jj|}nJi }d}t| jj| jj	D ])\}}t
dd |jjjD }||| jkrX|| ||< |d7 }|t|krX nq/nt |trb|}n
tdt|d| jd |}|S )Nr   c                 s  s    | ]}|j V  qd S r
   )	dim_value).0dr   r   r   	<genexpr>*   s    z3ReferenceEvaluatorBackendRep.run.<locals>.<genexpr>   zUnexpected input type .)
isinstancenumpyndarraylistlenr   input_namesdictzipinput_typestupletensor_typeshapedim	TypeErrortyperun)	r   inputskwargsfeeds
pos_inputsinptshaper"   outsr   r   r   r&      s,   

z ReferenceEvaluatorBackendRep.runN)__name__
__module____qualname__r   r&   r   r   r   r   r	      s    r	   c                   @  s`   e Zd Zedd ZedddZed	d
 Ze	ddddZedddZedddZ	dS )ReferenceEvaluatorBackendc                 C  s   dS )N)T r   clsmodelr   r   r   is_opset_supported9   s   z,ReferenceEvaluatorBackend.is_opset_supporteddevicestrreturnboolc                 C  s   t |}|jtjkS r
   )r   r%   r   CPU)r4   r7   r   r   r   r   supports_device=   s   z)ReferenceEvaluatorBackend.supports_devicec                 C  s   t |S r
   r   r3   r   r   r   create_inference_sessionB      z2ReferenceEvaluatorBackend.create_inference_sessionr;   r5   r   r(   r	   c                 K  sT   t |tr	t|S t |tttfr | |}| j||fi |S tdt	| d)NzUnexpected type z for model.)
r   r   r	   r8   bytesr   r=   preparer$   r%   )r4   r5   r7   r(   infr   r   r   r@   F   s   

z!ReferenceEvaluatorBackend.prepareNc                 K  s&   | j ||fi |}|j|fi |S r
   )r@   r&   )r4   r5   r'   r7   r(   repr   r   r   	run_modelS   s   z#ReferenceEvaluatorBackend.run_modelc                 K  s   t d)Nz%Unable to run the model node by node.)NotImplementedError)r4   noder'   r7   outputs_infor(   r   r   r   run_nodeX   r>   z"ReferenceEvaluatorBackend.run_node)r7   r8   r9   r:   )r;   )r5   r   r7   r8   r(   r   r9   r	   r
   )NN)
r.   r/   r0   classmethodr6   r<   r=   r@   rC   rG   r   r   r   r   r1   8   s    

r1   linuxgMbP?gư>atol)test_dfttest_dft_axistest_dft_axis_opset19test_dft_inversetest_dft_inverse_opset19test_dft_opset19)test_kwargsAPPVEYORz(test_vgg19|test_zfnet)32bitz)(test_vgg19|test_zfnet|test_bvlc_alexnet)Windowstest_sequence_modelz(test_gradient|test_if_opt|test_loop16_seq_none|test_range_float_type_positive_delta_expanded|test_range_int32_type_negative_delta_expanded|test_scan_sum)z-(test_scatter_with_axis|test_scatter_without)a  (test_cast_FLOAT_to_FLOAT8|test_cast_FLOAT16_to_FLOAT8|test_castlike_FLOAT_to_FLOAT8|test_castlike_FLOAT16_to_FLOAT8|test_cast_FLOAT_to_UINT4|test_cast_FLOAT16_to_UINT4|test_cast_FLOAT_to_INT4|test_cast_FLOAT16_to_INT4|test_cast_no_saturate_FLOAT_to_FLOAT8|test_cast_no_saturate_FLOAT16_to_FLOAT8|test_cast_BFLOAT16_to_FLOAT|test_castlike_BFLOAT16_to_FLOAT|test_cast_FLOAT_to_FLOAT4|test_cast_FLOAT16_to_FLOAT4|test_quantizelinear_e4m3|test_quantizelinear_e5m2|test_quantizelinear_uint4|test_quantizelinear_int4|test_quantizelinear_float4e2m1)zf(test_cast_FLOAT_to_BFLOAT16|test_castlike_FLOAT_to_BFLOAT16|test_castlike_FLOAT_to_BFLOAT16_expanded)z(test_bvlc_alexnet|test_densenet121|test_inception_v1|test_inception_v2|test_resnet50|test_shufflenet|test_squeezenet|test_vgg19|test_zfnet512)z(test_bernoulli)zF(test_cast_FLOAT_to_STRING|test_castlike_FLOAT_to_STRING|test_strnorm)zd(test_center_crop_pad_crop_axes_hwc_expanded|test_lppool_2d_dilations|test_averagepool_2d_dilations)z(test_eyelike_without_dtype)test_adam_multiplewin32test_regex_full_match_basic_cpu&test_regex_full_match_email_domain_cputest_regex_full_match_empty_cputest_image_decoder_decode_)      )r\   
   darwin&test_qlinearmatmul_3D_int8_float16_cpu&test_qlinearmatmul_3D_int8_float32_cpuz1.21.5	test_stfttest_stft_with_windowtest_stft_cpurK   rL   rN   rP   rM   rO   z10.0"test_image_decoder_decode_webp_rgb$test_image_decoder_decode_jpeg2k_rgb__main__   F)	verbosityexitz!---------------------------------z
tests_run=z errors=z	 skipped=z unexpected_successes=z expected_failures=)6
__future__r   osplatformsysunittesttypingr   r   version_utilsonnx.backend.baseonnxonnx.backend.testonnx.shape_inferenceonnx.version_converterr   r   r   onnx.referencer   backendbase
BackendRepr	   Backendr1   dft_atoltestBackendTestr.   backend_testgetenvexcludearchitecturesystemversion_infonumpy_older_thanpillow_older_thanglobalsupdate
test_casesmainresresulttestsRun	tests_runr   errorsskippedunexpectedSuccessesunexpected_successesexpectedFailuresexpected_failuresprintr   r   r   r   <module>   s   %































