
    bIgy!                       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ej(                  j*                  j,                        Z G d	 d
ej(                  j*                  j0                        Zej                  dk7  rdndZej(                  j6                  j9                  eedeideideideideideid      Z ej>                  d      rejA                  d        ejB                         d    dk(  rejA                  d        ejD                         dk(  rejA                  d       ejA                  d       ejA                  d       ejA                  d       ejA                  d       ejA                  d       ejA                  d       ejA                  d       ejA                  d       ejA                  d       ejA                  d        ej                  d!k(  rDejA                  d"       ejA                  d#       ejA                  d$       ejA                  d%       ejF                  d&k  rejA                  d%       ej                  d'k(  r"ejA                  d(       ejA                  d)        e	jH                  d*      rejA                  d+       ejA                  d,       ejA                  d-       ejA                  d.       ejA                  d/       ejA                  d0       ejA                  d1       ejA                  d2       ejA                  d3        e	jJ                  d4      r"ejA                  d5       ejA                  d6        e&       jO                  ejP                         ed7k(  r ejR                  d8d9:      Z*e*jV                  jX                  Z- e.e*jV                  j^                        Z/ e.e*jV                  j`                        Z0 e.e*jV                  jb                        Z2 e.e*jV                  jf                        Z4 e5d;        e5d<e- d=e/ d>e0 d?e2 d@e4 
       yy)A    )annotationsN)Any)
ModelProto)Device
DeviceTypeReferenceEvaluatorc                      e Zd Zd Zd Zy)ReferenceEvaluatorBackendRepc                    || _         y N)_session)selfsessions     ]/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/test/test_backend_reference.py__init__z%ReferenceEvaluatorBackendRep.__init__   s	        c                   t        |t        j                        r|g}t        |t              rt	        |      t	        | j
                  j                        k(  r*t        t        | j
                  j                  |            }ni }d}t        | j
                  j                  | j
                  j                        D ]e  \  }}t        d |j                  j                  j                  D              }|||   j                  k(  sI||   ||<   |dz  }|t	        |      k\  se n- n+t        |t              r|}nt        dt        |      d      | j
                  j!                  d |      }|S )Nr   c              3  4   K   | ]  }|j                     y wr   )	dim_value).0ds     r   	<genexpr>z3ReferenceEvaluatorBackendRep.run.<locals>.<genexpr>*   s     !T!!++!Ts      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'   outss	            r   r+   z ReferenceEvaluatorBackendRep.run   s5   femm,XFfd#6{c$--";";<<S!:!:FCD
#&MM--t}}/H/H$ "KC "!Tv7I7I7O7O7S7S!TTEz 2 8 88%+J%7c
"a
%V4!" %E4T&\4DAFGG}}  u-r   N)__name__
__module____qualname__r   r+    r   r   r   r      s     r   r   c                      e Zd Zed        Zedd       Zed        Ze	 d		 	 	 	 	 	 	 d
d       Zedd       Zedd       Z	y)ReferenceEvaluatorBackendc                     y)N)T r6   clsmodels     r   is_opset_supportedz,ReferenceEvaluatorBackend.is_opset_supported9   s    r   c                R    t        |      }|j                  t        j                  k(  S r   )r   r*   r   CPU)r<   devicer   s      r   supports_devicez)ReferenceEvaluatorBackend.supports_device=   s    6Nvv''r   c                    t        |      S r   r   r;   s     r   create_inference_sessionz2ReferenceEvaluatorBackend.create_inference_sessionB   s    !%((r   c                    t        |t              rt        |      S t        |t        t        t
        f      r%| j                  |      } | j                  ||fi |S t        dt        |       d      )NzUnexpected type z for model.)
r   r	   r   strbytesr   rD   preparer)   r*   )r<   r=   rA   r-   infs        r   rH   z!ReferenceEvaluatorBackend.prepareF   sl     e/0/66ec5*56..u5C3;;sF5f55*4;-{CDDr   Nc                P     | j                   ||fi |} |j                  |fi |S r   )rH   r+   )r<   r=   r,   rA   r-   reps         r   	run_modelz#ReferenceEvaluatorBackend.run_modelS   s/    ckk%262swwv(((r   c                    t        d      )Nz%Unable to run the model node by node.)NotImplementedError)r<   noder,   rA   outputs_infor-   s         r   run_nodez"ReferenceEvaluatorBackend.run_nodeX   s    !"IJJr   )rA   rF   returnbool)r@   )r=   r   rA   rF   r-   r   rR   r   r   )NN)
r3   r4   r5   classmethodr>   rB   rD   rH   rL   rQ   r6   r   r   r8   r8   8   s      ( ( ) ) ',
E
E!$
E8;
E	%
E 
E ) ) K Kr   r8   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_quantizelinear_e4m3|test_quantizelinear_e5m2|test_quantizelinear_uint4|test_quantizelinear_int4)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_)   
   darwin&test_qlinearmatmul_3D_int8_float16_cpu&test_qlinearmatmul_3D_int8_float32_cpuz1.21.5	test_stfttest_stft_with_windowtest_stft_cpurW   rX   rZ   r\   rY   r[   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   Backendr8   dft_atoltestBackendTestr3   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printr6   r   r   <module>r      s/   # 	  
          0 -
4<<#4#4#?#? <"K 1 1 9 9 "KJ <<7*4||  ,,X& (+"((!3#X.%+X$6#X. -  299Z2381(DE8??	!./      D E   0      
   ' (   L
   &   3 4   ) * <<7:;AB:;56w56<<8ABAB "=!!(+%01)$)+,+,0134"=""6*=>?@ 	  (( )z
(--!%
0C

##I""#F#**$$%Gszz==>CJJ778	
-.	
YKxxy	 B  45 6./	1 r   