§
    2�ÅjÈ+  ã                  óø   — d dl mZ d dlZd dlZd dlZd dlmZmZ d dlm	Z	m
Z
 d dlmZ d dlZd dlmZmZmZ  ej        ¦   «         Z G d„ d¦  «        Z G d	„ d
¦  «        Z G d„ d¦  «        Z G d„ d¦  «        ZdS )é    )ÚannotationsN)ÚOrderedDictÚdefaultdict)ÚIOÚAny)Útabulate)Ú
GraphProtoÚdefsÚhelperc                  ó   — e Zd Zdd„Zd	d„ZdS )
ÚAttrCoverageÚreturnÚNonec                ó:   — d | _         t          ¦   «         | _        d S ©N)ÚnameÚsetÚvalues©Úselfs    úRC:\Projects\Historical\venv\Lib\site-packages\onnx/backend/test/report/coverage.pyÚ__init__zAttrCoverage.__init__   s   € Ø $ˆŒ	Ý #¡¤ˆŒˆˆó    Úattrúonnx.AttributeProtoc                ó   — | j         d |j         hv sJ ‚|j         | _         t          j        |¦  «        }t          |t          ¦  «        rt          |¦  «        }| j                             t          |¦  «        ¦  «         d S r   )	r   r   Úget_attribute_valueÚ
isinstanceÚlistÚtupler   ÚaddÚstr)r   r   Úvalues      r   r!   zAttrCoverage.add   st   € ØŒy˜T 4¤9Ð-Ð-Ð-Ð-Ð-Ø”IˆŒ	ÝÔ*¨4Ñ0Ô0ˆõ �e�TÑ"Ô"ð 	!Ý˜%‘L”LˆEØŒ�Š�˜E™
œ
Ñ#Ô#Ð#Ð#Ð#r   N©r   r   )r   r   r   r   ©Ú__name__Ú
__module__Ú__qualname__r   r!   © r   r   r   r      s<   € € € € € ð&ð &ð &ð &ð	$ð 	$ð 	$ð 	$ð 	$ð 	$r   r   c                  ó   — e Zd Zdd„Zd	d„ZdS )
ÚNodeCoverager   r   c                óF   — d | _         t          t          ¦  «        | _        d S r   )Úop_typer   r   Úattr_coveragesr   s    r   r   zNodeCoverage.__init__&   s   € Ø#'ˆŒÝ7BÅ<Ñ7PÔ7PˆÔÐÐr   Únodeúonnx.NodeProtoc                ó
  — | j         d |j         fv sJ ‚| j         €:|j         | _         | j         €J ‚t          j        | j         |j        ¬¦  «        | _        |j        D ]'}| j        |j                                      |¦  «         Œ(d S )N)Údomain)	r-   r
   Ú
get_schemar2   ÚschemaÚ	attributer.   r   r!   )r   r/   r   s      r   r!   zNodeCoverage.add*   s‘   € ØŒ|  d¤lÐ3Ð3Ð3Ð3Ð3àŒ<ÐØœ<ˆDŒLØ”<Ð+Ð+Ð+Ýœ/¨$¬,¸t¼{ÐKÑKÔKˆDŒKà”Nð 	5ð 	5ˆDØÔ ¤	Ô*×.Ò.¨tÑ4Ô4Ð4Ð4ð	5ð 	5r   Nr$   )r/   r0   r   r   r%   r)   r   r   r+   r+   %   s@   € € € € € ðQð Qð Qð Qð	5ð 	5ð 	5ð 	5ð 	5ð 	5r   r+   c                  ó   — e Zd Zdd„Zd	d„ZdS )
ÚModelCoverager   r   c                óT   — d | _         d | _        t          t          ¦  «        | _        d S r   )r   Úgraphr   r+   Únode_coveragesr   s    r   r   zModelCoverage.__init__7   s&   € Ø $ˆŒ	Ø(,ˆŒ
Ý7BÅ<Ñ7PÔ7PˆÔÐÐr   Úmodelúonnx.ModelProtoc                óö   — | j         d |j        j         fv sJ ‚| j         €&|j        j         | _         | j         €J ‚|j        | _        |j        j        D ]'}| j        |j                                      |¦  «         Œ(d S r   )r   r9   r/   r:   r-   r!   )r   r;   r/   s      r   r!   zModelCoverage.add<   s‰   € ØŒy˜T 5¤;Ô#3Ð4Ð4Ð4Ð4Ð4àŒ9ÐØœÔ(ˆDŒIØ”9Ð(Ð(Ð(ØœˆDŒJà”KÔ$ð 	8ð 	8ˆDØÔ ¤Ô-×1Ò1°$Ñ7Ô7Ð7Ð7ð	8ð 	8r   Nr$   )r;   r<   r   r   r%   r)   r   r   r7   r7   6   s@   € € € € € ðQð Qð Qð Qð
	8ð 	8ð 	8ð 	8ð 	8ð 	8r   r7   c                  óF   — e Zd Zdd„Zdd„Zdd„Zd d„Zd!d„Zd"d„Zd#d„Z	dS )$ÚCoverager   r   c                ó¾   — t          t          ¦  «        t          t          ¦  «        dœ| _        t          t          ¦  «        t          t          ¦  «        dœ| _        d S )N)ÚloadedÚpassed)r   r+   Úbucketsr7   Úmodelsr   s    r   r   zCoverage.__init__I   sP   € å!¥,Ñ/Ô/Ý!¥,Ñ/Ô/ð<
ð <
ˆŒõ
 "¥-Ñ0Ô0Ý!¥-Ñ0Ô0ð<
ð <
ˆŒˆˆr   r/   r0   Úbucketr"   c                ó\   — | j         |         |j                                      |¦  «         d S r   )rC   r-   r!   )r   r/   rE   s      r   Úadd_nodezCoverage.add_nodeS   s*   € ØŒ�VÔ˜Tœ\Ô*×.Ò.¨tÑ4Ô4Ð4Ð4Ð4r   r9   úonnx.GraphProtoc                óF   — |j         D ]}|                      ||¦  «         Œd S r   )r/   rG   )r   r9   rE   r/   s       r   Ú	add_graphzCoverage.add_graphV   s4   € Ø”Jð 	(ð 	(ˆDØ�MŠM˜$ Ñ'Ô'Ð'Ð'ð	(ð 	(r   r;   r<   Úis_modelÚboolc                ó¤   — |                       |j        |¦  «         |r2| j        |         |j        j                                      |¦  «         d S d S r   )rJ   r9   rD   r   r!   )r   r;   rE   rK   s       r   Ú	add_modelzCoverage.add_modelZ   sU   € Ø�Š�u”{ FÑ+Ô+Ð+àð 	=ØŒK˜Ô ¤Ô 0Ô1×5Ò5°eÑ<Ô<Ð<Ð<Ð<ð	=ð 	=r   Úprotoc                ól   — t          |t          j        ¦  «        sJ ‚|                      |||¦  «         d S r   )r   ÚonnxÚ
ModelProtorN   )r   rO   rE   rK   s       r   Ú	add_protozCoverage.add_proto`   s6   € Ý˜%¥¤Ñ1Ô1Ð1Ð1Ð1Ø�Š�u˜f hÑ/Ô/Ð/Ð/Ð/r   ÚwriterúIO[str]c           
     óÂ  ‡
— |                      d¦  «         |                      dt          | j        d         ¦  «        › dt          | j        d         ¦  «        › dt          t          ¦  «        › d�¦  «         |                      d¦  «         g }g }g }g }| j        d                              ¦   «         D ]¶Š
d„ ‰
j                             ¦   «         D ¦   «         }ˆ
fd	„‰
j        j        D ¦   «         }t          |¦  «        t          |¦  «        z   }|r t          j
                             |¦  «        }	nd
}	|                     ‰
j        |	g¦  «         |                     ‰
j        ¦  «         Œ·|                      t          |ddgd¬¦  «        ¦  «         |                      d¦  «         t          j                             d¦  «        �|                      |||¦  «         d S d S )Nz%---------- onnx coverage: ----------
z!Operators (passed/loaded/total): rB   ú/rA   ú
z%------------------------------------
c                óJ   — g | ] }|j         › d t          |j        ¦  «        › �‘Œ!S )z: )r   Úlenr   )Ú.0Úattr_covs     r   ú
<listcomp>z(Coverage.report_text.<locals>.<listcomp>p   sB   € ð ð ð àð ”=Ð:Ð:¥C¨¬Ñ$8Ô$8Ð:Ð:ðð ð r   c                ó,   •— g | ]}|‰j         v¯|› d �‘ŒS )z: 0)r.   )r[   r   Úop_covs     €r   r]   z(Coverage.report_text.<locals>.<listcomp>t   s7   ø€ ð ð ð àØ˜vÔ4Ð4Ð4ð ���à4Ð4Ð4r   zNo attributesÚOperatorzAttributes
(name: #values)Úplain)ÚheadersÚtablefmtÚCSVDIR)ÚwriterZ   rC   Ú_all_schemasr   r.   r4   Ú
attributesÚsortedÚosÚlinesepÚjoinÚappendr-   r   ÚenvironÚgetÚ
report_csv)r   rT   ÚrowsrB   Úall_opsÚexperimentalÚcovered_attrsÚuncovered_attrsÚattrsÚattrs_columnr_   s             @r   Úreport_textzCoverage.report_textd   s#  ø€ Ø�ŠÐ=Ñ>Ô>Ð>Ø�Šð Bµ°D´LÀÔ4JÑ0KÔ0Kð  Bð  BÍcÐRVÔR^Ð_gÔRhÑNiÔNið  Bð  BÕloÕp|Ñl}Ôl}ð  Bð  Bð  Bñ	
ô 	
ð 	
ð 	�ŠÐ=Ñ>Ô>Ð>àˆØˆØˆØ"$ˆØ”l 8Ô,×3Ò3Ñ5Ô5ð 	*ð 	*ˆFðð à &Ô 5× <Ò <Ñ >Ô >ðñ ô ˆMðð ð ð à"œMÔ4ðñ ô ˆOõ
 ˜=Ñ)Ô)­F°?Ñ,CÔ,CÑCˆEØð /Ý!œzŸš¨uÑ5Ô5��à.�Ø�KŠK˜œ¨Ð6Ñ7Ô7Ð7Ø�MŠM˜&œ.Ñ)Ô)Ð)Ð)Ø�ŠÝØØ#Ð%BÐCØ ðñ ô ñ	
ô 	
ð 	
ð 	�Š�TÑÔÐÝŒ:�>Š>˜(Ñ#Ô#Ð/Ø�OŠO˜G V¨\Ñ:Ô:Ð:Ð:Ð:ð 0Ð/r   rq   ú	list[str]rB   úlist[str | None]rr   c                óî  — t           D ]^}|j        dv rS|                     |j        ¦  «         |j        t
          j        j        j        k    r|                     |j        ¦  «         Œ_| 	                    ¦   «          t          j                             t          t          j                             d¦  «        ¦  «        d¦  «        }t          j                             t          t          j                             d¦  «        ¦  «        d¦  «        }t!          ¦   «         }t!          ¦   «         }g }	t          j                             |¦  «        r{t%          |¦  «        5 }
t'          j        |
¦  «        }|j        sJ ‚t-          |j        ¦  «        }	|D ]}|d         }|d= ||t          |¦  «        <   Œ 	 d d d ¦  «         n# 1 swxY w Y   t          j                             |¦  «        r^t%          |¦  «        5 }t'          j        |¦  «        }|D ]}|d         }|d= ||t          |¦  «        <   Œ 	 d d d ¦  «         n# 1 swxY w Y   t          j                             d¦  «        }|	dd …         }t%          |d	¦  «        5 }
d|	vr|	                     d¦  «         ||	vr#|	                     t          |¦  «        ¦  «         n"|                     t          |¦  «        ¦  «         t'          j        |
|	¬
¦  «        }|                     ¦   «          |D ]g}|}||v r|dz   }||vr!t!          ¦   «         ||<   |D ]}d||         |<   Œ||v rd||         t          |¦  «        <   ŒOd||         t          |¦  «        <   Œhi }d|v r|d         }|d= t5          |¦  «        › dt5          |¦  «        › d�|t          |¦  «        <   d|d<   |D ]5}t          |¦  «        ||         d<   |                     ||         ¦  «         Œ6|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t%          |d	¦  «        5 }d|	d<   t'          j        ||	¬
¦  «        }|                     ¦   «          d}| j        D ]Ì}| j        |         D ]¼}d}| j        |         |         j        D ]}||v r|dz  }Œd}|dk    r|| j        d         v rŒ@d}|dz  }||vr!t!          ¦   «         ||<   |D ]}d||         |<   Œt          |› dt5          | j        |         |         j        ¦  «        › d|› �¦  «        ||         t          |¦  «        <   Œ½ŒÍ|                     ¦   «          d|v r|d         }|d= t          |¦  «        |v r|t          |¦  «        = t5          | j        d         ¦  «        › d|› d�|t          |¦  «        <   d|d<   |D ](}|||         d<   |                     ||         ¦  «         Œ)|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t%          t          j                             t          t          j                             d¦  «        ¦  «        d¦  «        d	¦  «        5 }t'          j        |¦  «        }|                     dt@          j          !                    t@          j"        j#        ¬¦  «         $                    ¦   «          %                    dd¦  «        g¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N>   úai.onnxÚ rd   z	nodes.csvz
models.csvÚOpÚModelÚBACKENDé   Úw)Ú
fieldnamesz (Experimental)zSkipped!zPassed!zFailed!ÚSummaryrW   z node tests passedr   rA   rB   z nodes covered: z model tests passedzmetadata.csvzLatest Update)ÚtzÚTú )&rf   r2   rl   r   Úsupport_levelr
   ÚOpSchemaÚSupportTypeÚEXPERIMENTALÚsortri   Úpathrk   r"   rm   rn   r   ÚisfileÚopenÚcsvÚ
DictReaderr‚   r   ÚremoveÚ
DictWriterÚwriteheaderrZ   ÚwriterowrD   r:   ÚclearrT   ÚdatetimeÚnowÚtimezoneÚutcÚ	isoformatÚreplace)r   rq   rB   rr   r4   Ú
nodes_pathÚmodels_pathÚexisting_nodesÚexisting_modelsÚ
frameworksÚ
nodes_fileÚreaderÚrowÚopÚmodels_filer;   ÚbackendÚother_frameworksÚnode_writerr/   Ú	node_nameÚother_frameworkÚ	summariesÚmodel_writerÚ
num_modelsrE   Únum_coveredÚmsgÚmetadata_fileÚmetadata_writers                                 r   ro   zCoverage.report_csv“   sp  € õ #ð 	5ð 	5ˆFØŒ} Ð/Ð/Ø—’˜vœ{Ñ+Ô+Ð+ØÔ'­4¬=Ô+DÔ+QÒQÐQØ ×'Ò'¨¬Ñ4Ô4Ð4øØ�Š‰ŒˆÝ”W—\’\¥#¥b¤j§n¢n°XÑ&>Ô&>Ñ"?Ô"?ÀÑMÔMˆ
Ý”g—l’l¥3¥r¤z§~¢~°hÑ'?Ô'?Ñ#@Ô#@À,ÑOÔOˆÝ;F¹=¼=ˆÝ<G¹M¼MˆØ "ˆ
ÝŒ7�>Š>˜*Ñ%Ô%ð 	2Ý�jÑ!Ô!ð 2 ZÝœ¨
Ñ3Ô3�ØÔ(Ð(Ð(Ð(Ý! &Ô"3Ñ4Ô4�
Ø!ð 2ð 2�CØ˜Tœ�BØ˜D˜	Ø.1�N¥3 r¡7¤7Ñ+Ð+ð2ð	2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2õ Œ7�>Š>˜+Ñ&Ô&ð 	6Ý�kÑ"Ô"ð 6 kÝœ¨Ñ4Ô4�Ø!ð 6ð 6�CØ œL�EØ˜G˜Ø25�O¥C¨¡J¤JÑ/Ð/ð6ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6õ ”*—.’. Ñ+Ô+ˆØ% a b bœ>ÐÝ�*˜cÑ"Ô"ð 	, jØ˜:Ð%Ð%Ø×!Ò! $Ñ'Ô'Ð'Ø˜jÐ(Ð(Ø×!Ò!¥# g¡,¤,Ñ/Ô/Ð/Ð/à ×'Ò'­¨G©¬Ñ5Ô5Ð5Ýœ.¨À
ÐKÑKÔKˆKØ×#Ò#Ñ%Ô%Ð%Øð Hð H�Ø �	Ø˜<Ð'Ð'Ø $Ð'8Ñ 8�IØ NÐ2Ð2å0;±´�N 9Ñ-Ø+;ð Pð P˜ØEO˜ yÔ1°/ÑBÐBØ˜6�>�>Ø>G�N 9Ô-­c°'©l¬lÑ;Ð;à>G�N 9Ô-­c°'©l¬lÑ;Ð;Ø(*ˆIØ˜NÐ*Ð*Ø*¨9Ô5�	Ø" 9Ð-Ý),¨V©¬Ð&WÐ&Wµs¸7±|´|Ð&WÐ&WÐ&WˆI•c˜'‘l”lÑ#Ø'ˆI�d‰OØ&ð ;ð ;�Ý-0°©Y¬Y�˜tÔ$ TÑ*Ø×$Ò$ ^°DÔ%9Ñ:Ô:Ð:Ð:Ø× Ò  Ñ+Ô+Ð+ð?	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,õ@ �+˜sÑ#Ô#ð *	- {Ø#ˆJ�q‰MÝœ>¨+À*ÐMÑMÔMˆLØ×$Ò$Ñ&Ô&Ð&àˆJØœ+ð ð �Ø!œ[¨Ô0ð ð �Eà"#�KØ $¤¨FÔ 3°EÔ :Ô Ið -ð -˜Ø 6˜>˜>Ø'¨1Ñ,˜Køð $�CØ Ò)Ð)Ø  D¤K°Ô$9Ð9Ð9Ø$Ø'˜Ø !‘O�JØ OÐ3Ð3å1<±´˜¨Ñ.Ø/?ð Qð Q˜OØFP˜O¨EÔ2°?ÑCÐCÝ;>Ø&ÐnÐn­¨T¬[¸Ô-@ÀÔ-GÔ-VÑ)WÔ)WÐnÐnÐilÐnÐnñ<ô <�O EÔ*­3¨w©<¬<Ñ8Ð8ð'ð, �OŠOÑÔÐØ˜OÐ+Ð+Ø+¨IÔ6�	Ø# IÐ.Ý�7‰|Œ|˜yÐ(Ð(Ø�c '™lœlÐ+å�t”{ 8Ô,Ñ-Ô-ÐOÐO°
ÐOÐOÐOð •c˜'‘l”lÑ#ð "+ˆI�gÑØ(ð >ð >�Ø27� Ô& wÑ/Ø×%Ò% o°eÔ&<Ñ=Ô=Ð=Ð=Ø×!Ò! )Ñ,Ô,Ð,ðU*	-ð *	-ð *	-ñ *	-ô *	-ð *	-ð *	-ð *	-ð *	-ð *	-ð *	-øøøð *	-ð *	-ð *	-ð *	-õV ÝŒG�LŠL��RœZŸ^š^¨HÑ5Ô5Ñ6Ô6¸ÑGÔGØñ
ô 
ð 	ð Ý!œj¨Ñ7Ô7ˆOØ×$Ò$à#ÝÔ%×)Ò)­XÔ->Ô-BÐ)ÑCÔCß’Y‘[”[ß’W˜S #Ñ&Ô&ð	ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s^   ÅAF<Æ<G ÇG Ç57H9È9H=É H=É=FPÐPÐPÐ0F?W;×;W?ØW?ÙA?[*Û*[.Û1[.Nr$   )r/   r0   rE   r"   r   r   )r9   rH   rE   r"   r   r   )r;   r<   rE   r"   rK   rL   r   r   )rO   r<   rE   r"   rK   rL   r   r   )rT   rU   r   r   )rq   rx   rB   ry   rr   rx   r   r   )
r&   r'   r(   r   rG   rJ   rN   rS   rw   ro   r)   r   r   r?   r?   H   s§   € € € € € ð
ð 
ð 
ð 
ð5ð 5ð 5ð 5ð(ð (ð (ð (ð=ð =ð =ð =ð0ð 0ð 0ð 0ð%;ð %;ð %;ð %;ð^wð wð wð wð wð wr   r?   )Ú
__future__r   r�   r–   ri   Úcollectionsr   r   Útypingr   r   r   rQ   r	   r
   r   Úget_all_schemasrf   r   r+   r7   r?   r)   r   r   ú<module>r¶      sa  ðð #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€Ø 	€	€	€	Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð à €€€Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à#ˆtÔ#Ñ%Ô%€ð$ð $ð $ð $ð $ñ $ô $ð $ð"5ð 5ð 5ð 5ð 5ñ 5ô 5ð 5ð"8ð 8ð 8ð 8ð 8ñ 8ô 8ð 8ð$Bð Bð Bð Bð Bñ Bô Bð Bð Bð Br   