
    bIgx                    |   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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mZmZmZ d dl
mZmZ d dlmZ  G d dej,                  j.                  j0                        Zh d	Zdd
ZdddiiZej,                  j:                  j=                  eee      Z  ejB                  d      re jE                  d        ejF                         d    dk(  re jE                  d       e jE                  d        e$       jK                  e jL                         edk(  r ejN                          yy)    )annotationsN)AnySequence)
ModelProto	NodeProtoTensorProto)Device
DeviceType)!BackendIsNotSupposedToImplementItc                       e Zd Ze	 d	 	 	 	 	 	 	 d fd       Ze	 	 d	 	 	 	 	 	 	 	 	 	 	 d fd       Zedd       Z xZS )	DummyBackendc                   t        |   ||fi | t        j                  j	                  |       ddd|}t        j
                  j                  |fi |}t        j                  |j                  j                  |j                  j                        D ci c]  }|j                  | }}t        |      r|j                  j                  D ]  }t        |j                        D ]  \  }}|j                   dk(  r|dk7  r||v sJ ||   j"                  j$                  }	|	j&                  t(        j*                  k7  sJ |	j,                  j.                  D ]  }
|
j1                  d      dk(  rJ    t3        d      c c}w )NT)
check_typestrict_modeDropoutr   value	dim_valueWThis is the dummy backend test that doesn't verify the results but does run the checker)superprepareonnxcheckercheck_modelshape_inferenceinfer_shapes	itertoolschaingraph
value_infooutputname!do_enforce_test_coverage_safelistnode	enumerateop_typetypetensor_type	elem_typer   	UNDEFINEDshapedim
WhichOneofr   )clsmodeldevicekwargsvivalue_infosr#   ir    ttr+   	__class__s              X/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/test/test_backend_test.pyr   zDummyBackend.prepare#   sw    	v00  ' !%TDVD$$11%B6B  ooekk&<&<ekk>P>PQ
 GGRK
 

 -U3(( F!*4;;!7 FIAv||y0Q!V ![000$V,11==B<<;+@+@@@@!xx|| F"~~g6+EEEFFF 0e
 	
!
s   Fc                @    t         |   ||||       t        d      )N)r/   outputs_infor   )r   run_noder   )r-   r#   inputsr/   r8   r0   r5   s         r6   r9   zDummyBackend.run_nodeC   s+     	vf<P/e
 	
    c                V    t        |      }|j                  t        j                  k(  ryy)NTF)r	   r&   r
   CPU)r-   r/   ds      r6   supports_devicezDummyBackend.supports_deviceQ   s!    6N66Z^^#r;   )r=   )r.   r   r/   strr0   r   returnz#onnx.backend.base.BackendRep | None)r=   N)r#   r   r:   r   r/   r@   r8   z4Sequence[tuple[numpy.dtype, tuple[int, ...]]] | Noner0   r   rA   ztuple[Any, ...] | None)r/   r@   rA   bool)__name__
__module____qualname__classmethodr   r9   r?   __classcell__)r5   s   @r6   r   r   "   s    .3

(+
?B
	,
 
> 
 MQ

 
 	

 K
 
 
 
 
  r;   r   >
   vgg19zfnetresnet50
SingleRelu
shufflenetdensenet121bvlc_alexnetinception_v1inception_v2squeezenet_oldc                    | j                   j                  t        vryt        d | j                   j                  D              S )NFc              3  8   K   | ]  }|j                   d v  yw)>   GRURNNLSTMN)r%   ).0r#   s     r6   	<genexpr>z4do_enforce_test_coverage_safelist.<locals>.<genexpr>j   s     Wdt||#99Ws   )r   r!   test_coverage_safelistallr#   )r.   s    r6   r"   r"   g   s3    {{55WekkFVFVWWWr;   test_mvnr   F)test_kwargsAPPVEYORz(test_vgg19|test_zfnet)32bitz)(test_vgg19|test_zfnet|test_bvlc_alexnet)$test_dequantizelinear_e4m3fn_float16__main__)r.   r   rA   rB   )(
__future__r   r   osplatformunittesttypingr   r   numpyonnx.backend.baser   onnx.backend.testonnx.shape_inferenceonnx.version_converterr   r   r   r	   r
   onnx.backend.test.runnerr   backendbaseBackendr   rY   r"   r\   testBackendTestrC   backend_testgetenvexcludearchitectureglobalsupdate
test_casesmain r;   r6   <module>rz      s!   #  	          3 3 0 F44<<$$,, 4n X &
 ||  ,,( -  299Z3481(EF   ; < 	  (( )zHMMO r;   