
    Si.                    &   % S SK Jr  S SKrS SKJrJrJr  S SKJrJ	r	J
r
  S SKJr  S SKJr  S SKJr  \(       a  S SKJr  SS	 jrSS
 jr/ qS\S'   / qS\S'           SS jr        SS jr    SS jrSS jrSS jr\S:X  a  \" 5         gg)    )annotationsN)IOTYPE_CHECKINGAny)AttributeProtodefsload)collect_snippets)load_model_tests)Runner)Sequencec                &    [        S U  5       5      $ )Nc              3  >   #    U  H  oR                   S :H  v   M     g7f
ai.onnx.mlN)domain).0ss     ^/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/backend/test/stat_coverage.py	<genexpr>is_ml.<locals>.<genexpr>   s     9Axx<'s   )any)schemass    r   is_mlr      s    9999    c                   U R                  S5        U(       a  U R                  S5        OU R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  S5        g )Nz# Test Coverage Reportz (ONNX-ML Operators)
z (ONNX Core Operators)
z## Outlines
z,* [Node Test Coverage](#node-test-coverage)
z.* [Model Test Coverage](#model-test-coverage)
z2* [Overall Test Coverage](#overall-test-coverage)
write)fmls     r   gen_outlinesr!      s_    GG$%		()	*+GGOGG;<GG=>GGABr   zSequence[str]common_coveredexperimental_coveredc                  ^^^ [        1 Sk5      m[        5       m[        UU4S jU  5       5      q[        UU4S jU  5       5      n[        U4S jU 5       5      n[        UU4S jU  5       5      q[        UU4S jU  5       5      n[        U4S jU 5       5      n[        [        5      [        U5      -   [        U5      -
  n[        [        5      [        U5      -   [        U5      -
  nUR                  S5        UR                  S	5        U(       aR  UR                  S
[        [        5       SU S[        [        5      [        U5      -  S-  S S[        U5       S3	5        OUR                  S5        U(       aV  UR                  SR                  [        [        5      U[        [        5      [        U5      -  S-  [        U5      5      5        OUR                  S5        / SQn	[        U[        U/n
U	 H?  nUR                  SUSS   SUSS  R                  5       R                  SS5       S35        MA     UR                  S5        [        XSS9 GH  u  pUR                  SU S35        U H  nUR                  SU 35        UT;   a  UR                  S [        TU   5       S!35        [        TU   5       HQ  u  pUR                  S"5        UR                  S#U S$35        UR                  S%U S&35        UR                  S'5        MS     O)UT;   a  UR                  S(5        OUR                  S)5        UR                  S*5        M     UR                  S+5        GM     g ),N>   MultinomialRandomNormalRandomUniformRandomNormalLikeRandomUniformLikec              3     >#    U  Hl  nUR                   T;   d  M  UR                  [        R                  R                  R
                  :X  d  MI  UR                  S :H  T:X  d  M^  UR                   v   Mn     g7fr   namesupport_levelr   OpSchemaSupportTypeCOMMONr   r   r   r    
node_testss     r   r   )gen_node_test_coverage.<locals>.<genexpr>7   se      A66Z 	 OOt}}88??? 	 XX%",	 	   A70A7A7$A7c              3     >#    U  Hl  nUR                   T;  d  M  UR                  [        R                  R                  R
                  :X  d  MI  UR                  S :H  T:X  d  M^  UR                   v   Mn     g7fr   r+   r1   s     r   r   r3   >   se      A66# 	 OOt}}88??? 	 XX%",	 	r4   c              3  6   >#    U  H  oT;   d  M
  Uv   M     g 7fN r   r,   
generatorss     r   r   r3   E   s     Ut*BTdd   		c              3     >#    U  Hl  nUR                   T;   d  M  UR                  [        R                  R                  R
                  :X  d  MI  UR                  S :H  T:X  d  M^  UR                   v   Mn     g7fr   r,   r-   r   r.   r/   EXPERIMENTALr   r1   s     r   r   r3   F   se      "A66Z 	 OOt}}88EEE 	 XX%",	 	r4   c              3     >#    U  Hl  nUR                   T;  d  M  UR                  [        R                  R                  R
                  :X  d  MI  UR                  S :H  T:X  d  M^  UR                   v   Mn     g7fr   r=   r1   s     r   r   r3   M   se      #A66# 	 OOt}}88EEE 	 XX%",	 	r4   c              3  6   >#    U  H  oT;   d  M
  Uv   M     g 7fr7   r8   r9   s     r   r   r3   T   s      $.*2D.r;   z# Node Test Coverage
z## Summary
zNode tests have covered /z (d   z.2fz%, z) generators excluded) common operators.

z6Node tests have covered 0/0 (N/A) common operators. 

zYNode tests have covered {}/{} ({:.2f}%, {} generators excluded) experimental operators.

z;Node tests have covered 0/0 (N/A) experimental operators.

)z!&#x1F49A;Covered Common Operatorsz"&#x1F494;No Cover Common Operatorsz'&#x1F49A;Covered Experimental Operatorsz(&#x1F494;No Cover Experimental Operatorsz* [	   z](# -z)

F)strict## z### z
There are z" test cases, listed as following:

<details>
	<summary>z</summary>

z
```python
z
```

</details>
z (random generator operator)
z (call for test cases)
z

z<br/>

)setr
   sortedr"   r#   lenr   floatformatlowerreplacezip)r   r   r    common_no_covercommon_generatorexperimental_no_coverexperimental_generator
num_commonnum_experimentaltitles	all_liststlr   summarycoder:   r2   s     `             @@r   gen_node_test_coverager`   (   sI   
 	
J "#J  N   O UUU! ""  # ##  $ $.$  ^$s?';;cBR>SSJ !
#
$	%
$
%	& 
 GG$%GGN	&s>':&;1ZL IN#eJ&77#=cB#cJZF[E\ ]9:	
 	
JK	**0&() )*U3C-DDsJ*+	+	
 	
OPF 		I 	#aeWC!" 5 5c3 ?@DE GGDMFe4	#aSAGGd1#JJ"3z!}#5"66YZ &,JqM%:MGGGM*GGiy?@GGk$y9:GGN+	 &; 
?GG<=GG67GGFO! " 	
' 5r   c                   UR                  S5        0 nU  H  nXCUR                  '   M     0 n/ n[        SS9 GH  nUR                  R	                  S5      (       a  [
        R                  R                  [
        R                  R                  [
        R                  R                  [        5      SSSUR                  5      5      n[
        R                  R                  U5      (       d  [        SU< S35      eUR                  U5        M  [        R                  " U5      n	UR                  [
        R                  R                  U	S5      5        GM     UR!                  5         S	n
U GH  n[#        U5      nU(       a4  S	nUR$                   H  nUR&                  S
:X  d  M  SnM     U(       d  MH  Sn
UR                  SUR(                  R                   S35        SnUR(                  R*                   GH  nUR,                  [.        ;   d  UR,                  [0        ;   d  M.  US-  nUR2                   GHx  nUR,                  U;  a  0 UUR,                  '   UR                  UUR,                     ;  a  / UUR,                     UR                  '   UR4                  [6        R8                  :X  ac  UR:                  UUR,                     UR                     ;  a7  UUR,                     UR                     R                  UR:                  5        M  M  UR4                  [6        R<                  :X  ae  UR>                  UUR,                     UR                     ;  a8  UUR,                     UR                     R                  UR>                  5        GM]  GM`  UR4                  [6        R@                  :X  ae  URB                  UUR,                     UR                     ;  a8  UUR,                     UR                     R                  URB                  5        GM  GM  UR4                  [6        RD                  :X  ae  URF                  UUR,                     UR                     ;  a8  UUR,                     UR                     R                  URF                  5        GMc  GMf  UR4                  [6        RH                  :X  ae  URJ                  UUR,                     UR                     ;  a8  UUR,                     UR                     R                  URJ                  5        GM  GM  UR4                  [6        RL                  :X  ae  URN                  UUR,                     UR                     ;  a8  UUR,                     UR                     R                  URN                  5        GMi  GMl  UR4                  [6        RP                  :X  ae  URR                  UUR,                     UR                     ;  a8  UUR,                     UR                     R                  URR                  5        GM  GM  UR4                  [6        RT                  :X  ae  URV                  UUR,                     UR                     ;  a8  UUR,                     UR                     R                  URV                  5        GMo  GMr  UR4                  [6        RX                  :X  ae  URZ                  UUR,                     UR                     ;  a8  UUR,                     UR                     R                  URZ                  5        GM  GM  UR4                  [6        R\                  :X  d  GM  UR^                  UUR,                     UR                     ;  d  GMC  UUR,                     UR                     R                  UR^                  5        GM{     GM     UR                  SUR(                  R                   SU S[a        UR(                  R*                  5       SS[c        U5      -  [c        [a        UR(                  R*                  5      5      -   S3	5        UR                  S5        UR                  S5        [e        U5       H  nUR                  S5        UR                  SU S[a        UU   5       S[a        UU   Rf                  5       S35        [e        UU   Rf                  5       HH  nUUU   ;   a(  UR                  U S[a        UU   U   5       S35        M4  UR                  U S35        MJ     UR                  S5        M     UR                  S5        GM     U
(       d  U(       a  UR                  S5        g g g )Nz# Model Test Coverage
real)kindzonnx/backend/test/data/light/z..zUnable to find model .z
model.onnxFr   TrH   rF   r      z has z nodes. Of these, z are covered by node tests (g      Y@z%)


rI   z<summary>nodes</summary>

rJ   z: z out of z attributes covered</summary>

z: 0
rK   z</details>


z+No model tests present for selected domain
)4r   r,   r   url
startswithospathnormpathjoindirname__file__existsFileNotFoundErrorappendr   prepare_model_datasortr	   opset_importr   graphnodeop_typer"   r#   	attributetyper   FLOATr   INTiSTRINGr   TENSORr\   GRAPHgFLOATSfloatsINTSintsSTRINGSstringsTENSORStensorsGRAPHSgraphsrN   rO   rM   
attributes)r   r   r    schema_dictschemaattrsmodel_pathsrt
model_name	model_dirmodel_writtenmodel_pb_pathmodel
ml_presentopsetnum_coveredru   attroprw   s                       r   gen_model_test_coverager      s    GG%&K#)FKK   .0EKF+66<==))RWW__X6dD"&&QJ 77>>*--'*?
~Q(OPPz*11"5Irww||I|DE , M$]#J++<<</!%J ,  M	#ekk&&'r*+KK$$D||~-AU1Uq  !NND||50.0dll+yydll(;;9;dll+DII6yyN$8$8866t||)<TYY)GG!$,,/		:AA$&&I Hn&8&8866t||)<TYY)GG!$,,/		:AA$&&I Hn&;&;;66t||)<TYY)GG!$,,/		:AA$&&I Hn&;&;;66t||)<TYY)GG!$,,/		:AA$&&I Hn&:&::66t||)<TYY)GG!$,,/		:AA$&&I Hn&;&;;;;eDLL.A$)).LL!$,,/		:AA$++N Mn&9&9999E$,,,?		,JJ!$,,/		:AA$))L Kn&<&<<<<uT\\/B499/MM!$,,/		:AA$,,O Nn&<&<<<<uT\\/B499/MM!$,,/		:AA$,,O Nn&;&;;;;eDLL.A$)).LL!$,,/		:AA$++NE + %P 	
!!"%} 5U[[--./ 0k**U3u{{7G7G3H-IIJ(T	
 	
	./-BGGM"GGB4r#eBi.!1#k"o>X>X:Y9ZZ{| $KO$>$>?	b	)GGykCb	)0D,E+FbIJGGyk/0	 @
 GGN#   	
"#S %T R	>?  =r   c                H    U R                  S5        U R                  S5        g )Nz# Overall Test Coverage
z## To be filled.
r   r   s    r   gen_overall_test_coverager      s     GG'(GG !r   c                &    U R                  S5        g )Nz.<!--- SPDX-License-Identifier: Apache-2.0 -->
r   r   s    r   gen_spdxr     s    
 GG=>r   c                    [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R                  [         R                  R                  [        5      5      5      5      5      n [         R                  R                  U S5      n[        R                  " 5       n[        U5      n[         R                  R                  US5      n[        USSSS9 n[        U5        [        US5        [        X%S5        [        X%S5        [        U5        S S S 5        U(       ap  [         R                  R                  US5      n[        USSSS9 n[        U5        [        US	5        [        X%S	5        [        X%S	5        [        U5        S S S 5        g g ! , (       d  f       N= f! , (       d  f       g = f)
NdocszTestCoverage.mdzw+ zutf-8)newlineencodingFzTestCoverage-ml.mdT)rh   ri   rl   realpathrm   rk   r   get_all_schemasr   openr   r!   r`   r   r   )base_dirdocs_dirr   has_mlfnamer   s         r   mainr     sG   ww
8H8H8R(STUH ww||Hf-H""$G7^FGGLL#45E	eT2	8AQw51E2!!$ 
9 X';<%rG<QKD!"7t4#G5%a( =<  
9	8 =<s   ;F?:;G?
G
G__main__)r   Sequence[defs.OpSchema]returnbool)r   IO[Any]r    r   r   None)r   r   r   r   r    r   r   r   )r   r   r   r   )r   r   )
__future__r   rh   typingr   r   r   onnxr   r   r	   onnx.backend.test.caser
   onnx.backend.test.loaderr   onnx.backend.test.runnerr   collections.abcr   r   r!   r"   __annotations__r#   r`   r   r   r   r   __name__r8   r   r   <module>r      s    # 	 ) ) + + 3 5 +(:	C !# "&( m (m$m)0m6:m	m`e@$e@)0e@6:e@	e@P""	"?)4 zF r   