
    Si=             
      B   % S SK Jr  S SKrS SKrS SKrS SKJrJr  S SKr	S SK
r
S SKJr  S SKJr  S SKrS SKJrJrJrJrJrJrJrJrJrJrJrJrJr  S SKJrJrJ r J!r!J"r"  S SK#J$r$J%r%J&r&J'r'J(r(J)r)J*r*  S S	K+J,r,  \(       a  S S
K-J.r.  SS jr/\R`                  " 5        V s0 s H(  n U Rb                  U Rd                  \3" \/" U 5      5      4_M*     sn r4S\5S'   SS jr6 " S S\Rn                  5      r8 " S S\85      r9 " S S\85      r:\;S:X  a  \Rx                  " SS9  ggs  sn f )    )annotationsN)TYPE_CHECKINGAny)text_format)parameterized)ONNX_ML
GraphProto
ModelProto	NodeProtoOperatorSetIdProtoSparseTensorProtoTensorProto	TypeProtoValueInfoProtocheckerdefshelpernumpy_helper)AI_ONNX_PREVIEW_TRAINING_DOMAINONNX_DOMAINONNX_ML_DOMAINOpSchemaSchemaError)make_empty_tensor_value_info
make_graph	make_nodemake_opsetidmake_tensormake_tensor_sequence_value_infomake_tensor_value_info)parse_graph)Sequencec                   [        5       n[        U R                  SS5       HH  n UR                  [        R
                  " U R                  X R                  5      R                  5        MJ     U$ ! [         a       U$ f = f)Nr   )	setrangesince_versionaddr   
get_schemanamedomainr   )schemaversionsversions      ]/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/test/shape_inference_test.pyget_available_versionsr0   7   so    H--q"5	LLWmmDRR 6 O  	O	s   AA00
A?>A?z%dict[str, tuple[str, frozenset[int]]]ALL_OP_VERSIONSc                    [         U    u  pU(       d  [        SU  35      e[        U5      nU Vs/ s H  nUS:  d  U[        :w  d  M  SU 3U4PM     sn$ s  snf )Nz#No versions available for operator    r.   )r1   
ValueErrorsortedr   )op_namer+   versions_setr-   r.   s        r/   all_versions_forr8   I   s|    *73F>wiHIIl#H  	
  G Q;&K/	
gY	
  	 	 	s   AAc                      \ rS rSr S	         S
S jjr      SS jr        SS jr      SS jrS rSr	g)TestShapeInferenceHelperZ   Nc           	     4   Uc  / nU Vs1 s H  oUR                   iM     nn/ nU H  n[        U[        5      (       a  US S u  p[        U6 nOU[        R
                  p[        U5      nX;   a  UR                  U5        M\  UR                  U5        UR                  [        SU	-   U
S5      5        UR                  [        SU	-   [        R                  S5      5        [        SSU	-   SU	-   /U	/5      /US S& M     [        R                  " USU/ UUS	9$ s  snf )
N   SEED_ UNKNOWN_SHAPE_NReshaper   test)initializer
value_info)r*   
isinstancetupler    r   	UNDEFINEDr   appendINT64r   r   r   )selfseed_valuesnodesrE   rD   xnames_in_initializerinput_value_infos
seed_value	seed_name
proto_typeseed_value_infos               r/   _make_graph$TestShapeInferenceHelper._make_graph[   s=    K0;<1< &J*e,,(22A%	"8*"E(2K4I4I:">z"J0!((9!!/2!((*7Y+>
BO "((*(94k6G6G ! 9,.>.JK"bq	' &4   #!
 	
?  =s   Dc                    UR                  SS5      n[        U[        5      (       a  SUS'   [        R                  " U40 UD6nOUn[
        R                  R                  USUS9n[        R                  " U5        U$ )N	data_propFz	onnx-testproducer_nameT)strict_moderX   )
poprF   r	   r   
make_modelonnxshape_inferenceinfer_shapesr   check_model)rK   graph_or_modelkwargsrX   
orig_modelinferred_models         r/   	_inferred"TestShapeInferenceHelper._inferred   s}     JJ{E2	nj11&1F?#**>DVDJ'J--::DI ; 
 	N+    c                ,   [        U[        5      (       a  UOUR                  nU Vs1 s H  oUR                  iM     nnUR                   Vs/ s H  oUR                  U;  d  M  UPM     snU-   nU R
                  " U40 UD6n[        UR                  R                  5      n[        US S9n[        US S9n[        U5      [        U5      :X  d   e[        X(SS9 H+  u  pU R                  U	R                  U
R                  5        M-     g s  snf s  snf )Nc                    U R                   $ rA   r*   rN   s    r/   <lambda>;TestShapeInferenceHelper._assert_inferred.<locals>.<lambda>   s    rg   )keyc                    U R                   $ rA   rj   rk   s    r/   rl   rm      s    !&&rg   T)strict)rF   r	   graphr*   rE   re   listr5   lenzip_compare_value_infostype)rK   ra   visrb   rq   rN   names_in_visrd   inferred_visv
inferred_vs              r/   _assert_inferred)TestShapeInferenceHelper._assert_inferred   s     .*55 %% 	
 ),,1,**I*QffL.Hq*ICOA&AN00;;<S./l0@A3x3|,,,, 4@MA%%affjoo> A -Is   DD$Dc                   UR                  S5      (       Ga  UR                  S5      (       d   eUR                  R                  S5      (       d   eUR                  R                  S5      (       d   eUR                  R                  UR                  R                  :X  d   eUR                  R                  S5      UR                  R                  S5      :X  d   eUR                  R                  S5      (       Ga  [        UR                  R                  R
                  5      [        UR                  R                  R
                  5      :X  d   e[        UR                  R                  R
                  5       H  u  p4UR                  R                  R
                  U   nUR                  (       a*  UR                  UR                  :X  d   SU SU S35       eMc  UR                  UR                  :X  a  M   SU SU S35       e   g g UR                  S5      (       aV  UR                  S5      (       d   eUR                  R                  nUR                  R                  nU R                  Xg5        g UR                  S5      (       aV  UR                  S5      (       d   eUR                  R                  nUR                  R                  nU R                  Xg5        g UR                  S5      (       a  UR                  S5      (       d   eUR                  R                  UR                  R                  :X  d   eU R                  UR                  R                  UR                  R                  5        g U[        R                   " 5       :X  a  U[        R                   " 5       :X  d   eg [#        S[%        U5      5      e)	Ntensor_type	elem_typeshape
sequence_typeoptional_typemap_typez6Unrecognized value info type in _compare_value_infos: )HasFieldr   r   rs   r   dim	enumerate	dim_param	dim_valuer   ru   r   r   key_type
value_typer]   r   NotImplementedErrorstr)rK   vi_typeinferred_vi_typedim_ir   inferred_dimviinferred_vis           r/   ru   -TestShapeInferenceHelper._compare_value_infos   sH    M**#,,];;;;&&//<<<<#//88EEEE##--1A1M1M1W1WWW&&//!--66w?@ @ @ ""++G447..44889S$0066::>    #,G,?,?,E,E,I,I"JJE#3#?#?#E#E#I#I%#PL}}"}}0F0FF  	,<+=R@F  #}}0F0FF  	,<+=R@F #K	 5 o..#,,_====&&00B*88BBK%%b6o..#,,_====&&00B*88BBK%%b6j))#,,Z8888##,,0@0@0I0IIII%%  ++-=-F-F-Q-Q ((#t~~'7777%H#g, rg   c                @    U(       a  [         R                  " U5        g g rA   )pytestskip)rK   	conditionreasons      r/   skipIfTestShapeInferenceHelper.skipIf   s    KK rg   r?   rA   )
rL   z5Sequence[str | tuple[str, TensorProto.DataType, Any]]rM   zlist[NodeProto]rE   list[ValueInfoProto]rD   zSequence[TensorProto] | Nonereturnr	   )ra   GraphProto | ModelProtorb   r   r   r
   )ra   r   rw   r   rb   r   r   None)r   r   r   r   r   r   )
__name__
__module____qualname____firstlineno__rU   re   r|   ru   r   __static_attributes__r?   rg   r/   r:   r:   Z   s     59/
J/
 /
 )	/

 2/
 
/
b5AD	?/? "? 	?
 
?*1 14=1	1f rg   r:   c                  <   \ rS rSrGSSS jrGSTS jr\R                  " \" S5      5      GSSS j5       r	\R                  " \" S5      5      GSSS j5       r
\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      GSSS	 j5       r\R                  " \" S5      5      GSSS
 j5       r\R                  " \" S5      5      GSSS j5       r      GSUS jr\R                  " \" S5      5      GSSS j5       r        GSVS jr\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      \R,                  " S5      GSSS j5       5       r\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      GSSS j5       r\R                  " \" S5      5      GSSS  j5       r \R                  " \" S5      5      GSSS! j5       r!\R                  " \" S5      5      GSSS" j5       r"\R                  " \" S5      5      GSSS# j5       r#\R                  " \" S$5      5      GSSS% j5       r$\R                  " \" S$5      5      GSSS& j5       r%\R                  " \" S$5      5      GSSS' j5       r&\R                  " \" S$5      5      GSSS( j5       r'\R                  " \" S$5      5      GSSS) j5       r(\R                  " \" S*5      5      GSSS+ j5       r)\R                  " \" S*5      5      GSSS, j5       r*\R                  " \" S*5      5      GSSS- j5       r+\R                  " \" S*5      5      GSSS. j5       r,\R                  " \" S*5      5      GSSS/ j5       r-\R                  " \" S*5      5      GSSS0 j5       r.\R                  " \" S*5      5      GSSS1 j5       r/\R                  " \" S*5      5      GSSS2 j5       r0\R                  " \" S35      5      GSSS4 j5       r1\R                  " \" S35      5      GSSS5 j5       r2\R                  " \" S65      5      GSSS7 j5       r3\R                  " \" S65      5      GSSS8 j5       r4\R                  " \" S65      5      GSSS9 j5       r5\R                  " \" S65      5      GSSS: j5       r6\R                  " \" S65      5      GSSS; j5       r7\R                  " \" S<5      5      GSSS= j5       r8\R                  " \" S>5      5      GSSS? j5       r9\R                  " \" S<5      5      GSSS@ j5       r:\R                  " \" S<5      5      GSSSA j5       r;\R                  " \" S<5      5      GSSSB j5       r<\R                  " \" S<5      5      GSSSC j5       r=\R                  " \" S<5      5      GSSSD j5       r>\R                  " \" S<5      5      GSSSE j5       r?\R                  " \" S<5      5      GSSSF j5       r@\R                  " \" S<5      5      GSSSG j5       rA\R                  " \" S<5      5      GSSSH j5       rB\R                  " \" S<5      5      GSSSI j5       rC\R                  " \" S<5      5      GSSSJ j5       rD\R                  " \" S<5      5      GSSSK j5       rE\R                  " \" SL5      5      GSSSM j5       rF\R                  " \" SL5      5      GSSSN j5       rG\R                  " \" SL5      5      GSSSO j5       rH\R                  " \" SL5      5      GSSSP j5       rI\R                  " \" SL5      5      GSSSQ j5       rJ\R                  " \" SL5      5      GSSSR j5       rK\R                  " \" SS5      5      GSSST j5       rL\R                  " \" SU5      5      GSSSV j5       rM\R                  " \" SU5      5      GSSSW j5       rN\R                  " \" SU5      5      GSSSX j5       rO\R                  " \" SY5      5      GSSSZ j5       rP\R                  " \" SY5      5      GSSS[ j5       rQ\R                  " \" S\5      5      GSSS] j5       rRGSSS^ jrS\R                  " \" S\5      5      GSSS_ j5       rTGSSS` jrU\R                  " \" Sa5      5      GSSSb j5       rV\R                  " \" Sa5      5      GSSSc j5       rW\R                  " \" Sd5      5      GSSSe j5       rX\R                  " \" Sd5      5      GSSSf j5       rYGSSSg jrZ\R                  " \" Sh5      5      GSSSi j5       r[\R                  " \" Sj5      5      GSSSk j5       r\\R                  " \" Sj5      5      GSSSl j5       r]\R                  " \" Sm5      5      GSSSn j5       r^\R                  " \" Sm5      5      GSSSo j5       r_GSSSp jr`GSSSq jraGSSSr jrbGSSSs jrcGSSSt jrdGSSSu jreGSSSv jrfGSSSw jrgGSSSx jrhGSSSy jriGSSSz jrjGSSS{ jrkGSSS| jrlGSSS} jrmGSSS~ jrnGSSS jroGSSS jrpGSSS jrqGSSS jrrGSSS jrsGSSS jrtGSSS jruGSSS jrvGSSS jrwGSSS jrxGSSS jryGSSS jrzGSSS jr{GSSS jr|GSSS jr}GSSS jr~GSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSWS jr      GSWS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jr          GSXS jrGSSS jr          GSXS jrGSSS jr GSY           GSZS jjrGSSS jr          GSXS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSS jrGSSGS  jrGSSGS jrGSSGS jrGSSGS jrGSSGS jrGSSGS jrGSSGS jrGSSGS jrGSSGS jrGSSGS	 jrGSSGS
 jrGSSGS jrGSSGS jrGSSGS jrGSSGS jrGSSGS jrGSSGS jGr GSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGr	GSSGS jGr
GSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS  jGrGSSGS! jGrGSSGS" jGrGSSGS# jGrGSSGS$ jGrGSSGS% jGrGSSGS& jGrGSSGS' jGrGSSGS( jGrGSSGS) jGrGSSGS* jGrGSSGS+ jGrGSSGS, jGrGSSGS- jGrGSSGS. jGrGSSGS/ jGrGSSGS0 jGr GSSGS1 jGr!GSSGS2 jGr"GSSGS3 jGr#GSSGS4 jGr$GSSGS5 jGr%GSSGS6 jGr&GSSGS7 jGr'GSSGS8 jGr(GSSGS9 jGr)GSSGS: jGr*GSSGS; jGr+GSSGS< jGr,GSSGS= jGr-GSSGS> jGr.GSSGS? jGr/      GSUGS@ jGr0GSSGSA jGr1        GSVGSB jGr2GSSGSC jGr3      GSUGSD jGr4GSSGSE jGr5\R                  " G\6GRn                  GRp                  G\6GRn                  GRr                  G\6GRn                  GRt                  /5      GSSGSF j5       Gr;GSSGSG jGr<GSSGSH jGr=GSSGSI jGr>GSSGSJ jGr?GSSGSK jGr@\R,                  " S5      GSSGSL j5       GrA\R                  " G\6GRn                  GRp                  G\6GRn                  GRr                  G\6GRn                  GRt                  /5      GSSGSM j5       GrBGSSGSN jGrCGSSGSO jGrDGSSGSP jGrEGSSGSQ jGrFGSSGSR jGrGGSSGSS jGrHGSSGST jGrIGSSGSU jGrJ\GR                  " G\LGSV5      GSSGSW j5       GrM\GR                  " G\LGSV5      GSSGSX j5       GrNGSSGSY jGrOGSSGSZ jGrPGSSGS[ jGrQGSSGS\ jGrRGSSGS] jGrS\R                  " G\L(       a	  \" GS^5      O/ GS_GS`9GSSGSa j5       GrT\R                  " G\L(       a	  \" GS^5      O/ GS_GS`9GSSGSb j5       GrU\R                  " G\L(       a	  \" GS^5      O/ GS_GS`9  GSSGSc j5       GrV          GS[GSd jGrWGSSGSe jGrXGSSGSf jGrYGSSGSg jGrZGSSGSh jGr[GSSGSi jGr\GSSGSj jGr]GSSGSk jGr^GSSGSl jGr_GSSGSm jGr`GSSGSn jGraGSSGSo jGrbGSSGSp jGrcGSSGSq jGrdGSSGSr jGreGSSGSs jGrfGSSGSt jGrgGSSGSu jGrhGSSGSv jGriGSSGSw jGrjGSSGSx jGrkGSSGSy jGrlGSSGSz jGrmGSSGS{ jGrnGSSGS| jGroGSSGS} jGrpGSSGS~ jGrqGSSGS jGrrGSSGS jGrsGSSGS jGrtGSSGS jGruGSSGS jGrvGSSGS jGrwGSSGS jGrxGSSGS jGryGSSGS jGrzGSSGS jGr{GSSGS jGr|GSSGS jGr}GSSGS jGr~GSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGr  GSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGr  GSSGS jGrGSSGS jGr  GSSGS jGr  GSSGS jGr  GSSGS jGr  GSSGS jGr  GSSGS jGr  GSSGS jGrGSSGS jGr  GSSGS jGr  GSSGS jGrGSSGS jGrGSSGS jGr  GSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGr  GSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGr  GSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGS GrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGr\R                  " \" GS5      5      GSSGS j5       Gr\R                  " \" GS5      5      GSSGS j5       Gr\R                  " \" GS5      5      GSSGS j5       Gr\R                  " \" GS5      5      GSSGS j5       Gr\R                  " \" GS5      5      GSSGS j5       GrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS  jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGSSGS jGrGS GrGS GrGS	 GrGS
 GrGS GrGS GrGS GrGS Gr \R                  " G\GR                  " \" GS5      GS5       V VVVVVVVVs
/ s H  u  u  pu  nnnnnnUUUUUUUU4PM     s
nnnnnnnnn 5                        GS\GS j5       Gr\R                  " G\GR                  " \" GS5      GS5       V VVVVVVVVs
/ s H  u  u  pu  nnnnnnUUUUUUUU4PM     s
nnnnnnnnn 5                        GS\GS j5       Gr\R                  " / GSQ5      GS]GS j5       Gr\R                  " / GSQ5      GS]GS j5       GrGSSGS jGrGSSGS jGrGSSGS jGr	GSSGS jGr
\R                  " GSGS/5      GS^GS j5       Gr\R                  " GS/5            GS^GS j5       Gr\R                  " GS/5            GS^GS j5       GrGSSGS  jGrGSSGS! jGrGS" GrGS# GrGS$ GrGS% GrGS& GrGS' GrGS( GrGS) GrGS* Gr\GR                  " G\LGSV5      GSSGS+ j5       Gr\R                  " / GS,QGS-GS./4/ GS,QGS/4GS// GS0Q4GS1/5      \GR                  " G\LGSV5        GSSGS2 j5       5       Gr\GR                  " G\LGSV5      GSSGS3 j5       Gr\R                  " G\7GRp                  G\7GR8                  G\7GRr                  /5      \GR                  " G\LGSV5      GSSGS4 j5       5       Gr\R                  " GS5/GS6-  G\" GS7G\7GR8                  GS8GS9/GS:-  5      G\" GS;G\7GR8                  GS<GS9/GS=-  5      4GS5/GS=-  G\" GS7G\7GRp                  GS8GS9/GS:-  5      G\" GS;G\7GR8                  GS<GS9/GS=-  5      4GS5/GS=-  G\" GS7G\7GR8                  GS>GS9/GS?-  5      G\" GS;G\7GR8                  GS<GS9/GS=-  5      4GS5/GS=-  G\" GS7G\7GR8                  GS8GS9/GS:-  5      G\" GS;G\7GRp                  GS<GS9/GS=-  5      4/5      \GR                  " G\LGSV5        GSSGS@ j5       5       Gr\GR                  " G\LGSV5      GSSGSA j5       Gr \GR                  " G\LGSV5      GSSGSB j5       Gr!\GR                  " G\LGSV5      GSSGSC j5       Gr"\GR                  " G\LGSV5      GSSGSD j5       Gr#\R                  " / GS,Q/ GS0Q4GS1/5      \GR                  " G\LGSV5        GSSGSE j5       5       Gr$\GR                  " G\LGSV5      GSSGSF j5       Gr%GSSGSG jGr&GSSGSH jGr'GSSGSI jGr(GSJ Gr)GSK Gr*GSL Gr+GSM Gr,GSN Gr-\R                  " \" GSO5      5      GSP 5       Gr.GSSGSQ jGr/GSRGr0Gg/s  s
nnnnnnnnn f s  s
nnnnnnnnn f (_  TestShapeInference   c                    U R                  S// / 5      nU R                  [        R                  R                  U R
                  U5        g )Ny)rU   assertRaisesr]   r^   InferenceErrorre   rK   rq   s     r/   test_empty_graph#TestShapeInference.test_empty_graph   s:      #B/$..==t~~uUrg   c                    U R                  S[        R                  S4/[        USS40 UD6// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN         r3   r   rU   r   FLOATr   r|   r    )rK   oprb   rq   s       r/   _identity_prop!TestShapeInference._identity_prop   sd      ;$$j12r3.v./

 	*30A0A:NO	
rg   	Transposec           
         U R                  S[        R                  S4/[        SS/S// SQS9// 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g 	NXr=      r   r   Y   r   r=   permr   r=   r   opset_imports	rU   r   r   r   r|   r    r   r   r   rK   _r.   rq   s       r/   test_transpose!TestShapeInference.test_transpose   s}      ;$$i01{SEC5yAB

 	#C):):IFG!..{GDE 	 	
rg   c           
     *   U R                  S[        R                  S4/[        SS/S// SQS9/[	        S[        R                  S 5      /5      nU R                  U[	        S[        R                  S5      /[        R                  " [        U5      /S9  g r   )	rU   r   r   r   r    r|   r   r   r   r   s       r/   test_transpose_preexisting-TestShapeInference.test_transpose_preexisting  s      ;$$i01{SEC5yAB#C):):DAB

 	#C):):IFG!..{GDE 	 	
rg   c                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr   r?   r   r   r   r   r   s       r/   test_transpose_scalar(TestShapeInference.test_transpose_scalar  s{      ;$$b)*{SEC512
 	#C):):B?@!..{GDE 	 	
rg   c           
     *   U R                  S[        R                  S4/[        SS/S// SQS9/[	        S[        R
                  S5      /5      nU R                  U[	        S[        R                  S5      /[        R                  " [        U5      /S	9  g )
Nr   r   r   r   r   r   )r   abr   r   )
rU   r   r   r   r    rH   r|   r   r   r   r   s       r/   test_transpose_partial)TestShapeInference.test_transpose_partial  s      ;$$i01{SEC5yAB#C)>)>NO

 	#C):):IFG!..{GDE 	 	
rg   c           
     
   U R                  S[        R                  S4/[        SS/S// SQS9/[	        S[        R                  S5      /5      nU R                  [        R                  R                  U R                  U5        g )Nr   r   r   r   r   r   )r3   r3   r3   )
rU   r   r   r   r    r   r]   r^   r   re   rK   r   rq   s      r/   *test_transpose_preexisting_incorrect_shape=TestShapeInference.test_transpose_preexisting_incorrect_shape,  ss      ;$$i01{SEC5yAB#C):):IFG

 	$..==t~~uUrg   c           
     
   U R                  S[        R                  S4/[        SS/S// SQS9/[	        S[        R
                  S5      /5      nU R                  [        R                  R                  U R                  U5        g )Nr   r   r   r   r   r   r   )rU   r   r   r   r    STRINGr   r]   r^   r   re   r   s      r/   )test_transpose_preexisting_incorrect_type<TestShapeInference.test_transpose_preexisting_incorrect_type5  ss      ;$$i01{SEC5yAB#C););YGH

 	$..==t~~uUrg   c           
         U R                  S[        R                  S4/[        SS/S// SQS9// 5      nU R	                  [
        R                  R                  U R                  U5        g )Nr   r   r   r   )r   r   r   r   	rU   r   r   r   r   r]   r^   r   re   r   s      r/   &test_transpose_incorrect_repeated_perm9TestShapeInference.test_transpose_incorrect_repeated_perm>  sa      ;$$i01{SEC5yAB

 	$..==t~~uUrg   c                8   [         R                  " [         R                  " [         R                  " U5      5      R	                  U5      [         R                  " [         R                  " U5      5      R	                  U5      5      R
                  nU R                  S[        R                  U4S[        R                  U4/[        SSS/S/5      // 5      nU R                  U[        S[        R                  U5      /[        R                  " [        U5      /S9  g NrN   r   MatMulzr   )npmatmularangeprodreshaper   rU   r   r   r   r|   r    r   r   r   rK   r.   shape1shape2expected_out_shaperq   s         r/    _make_matmul_test_all_dims_known3TestShapeInference._make_matmul_test_all_dims_knownG  s      YYIIbggfo&..v6IIbggfo&..v6
 % 	   ;$$f-[5F5F/OPx#scU34

 	#C):):<NOP!..{GDE 	 	
rg   r   c                   U R                  USS5        U R                  USS5        U R                  USS5        U R                  USS5        U R                  USS5        U R                  USS5        U R                  USS5        U R                  USS	5        U R                  US
S	5        U R                  USS5        U R                  USS	5        g )Nr=   r   r=   r=   r   )r3   r=   r=   r   r   r=   r=   r   r   r   r=   r   r=   r   )r   r   r=   r3   r   r   r=   r   r   r=   r   )r   rK   r   r.   s      r/   test_matmul_all_dims_known-TestShapeInference.test_matmul_all_dims_knownY  s    --gtTB--gvvF--gvvF--gvvF--gvvF--gtVD--gvtD--gy)L--gy)L--g|\R--gvyIrg   c                   U R                  S[        R                  U4S[        R                  U4/[        SSS/S/5      // 5      nU R	                  U[        S[        R                  U5      /[        R                  " [        U5      /S9  g r   r   r   s         r/   _make_matmul_test_allow_unknown2TestShapeInference._make_matmul_test_allow_unknownh  s       ;$$f-[5F5F/OPx#scU34

 	#C):):<NOP!..{GDE 	 	
rg   c                   U R                  USSS5        U R                  USSS5        U R                  USSS5        U R                  USSS5        U R                  US	SS5        U R                  US	S
S5        U R                  USSS5        U R                  USSS5        U R                  USS S 5        U R                  US S S 5        g NrA   r?   r   r   )r=   r   )r   r   )r   r   )r   N)Nr   r   )r   r=   r3   r   r   r3   )r   r   r   r=   r   r   r   r3   )r  r   s      r/   test_matmul_allow_unknown,TestShapeInference.test_matmul_allow_unknownv  s    ,,WgwK,,WdGRH,,WdHfM,,WfhQ,,Wi8T,,WihW,,Y[	
 	,,\;	
 	,,WdD$G,,WdD$Grg   Castc           
        U R                  S[        R                  S4/[        SS/S/[        R                  S9// 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r=   r   r   r
  r   tor   )
rU   r   r   r   UINT8r|   r    r   r   r   r   s       r/   	test_castTestShapeInference.test_cast  s      ;$$i01vuse0A0ABC

 	#C):):IFG!..{GDE 	 	
rg   zIssue #5960c           
         U R                  S[        R                  S4/[        SS/S/[        R                  S9// 5      nU R                  [        R                  R                  U R                  U5        g )NrN   r  r
  r   r  )
rU   r   r   r   
COMPLEX128r   r]   r^   r   re   r   s       r/   test_cast_to_complex'TestShapeInference.test_cast_to_complex  si    
   ;$$i01vuse0F0FGH
 	$..==t~~uUrg   CastLikec                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r  tNr  r   r   )
rU   r   r   FLOAT16r   r|   r    r   r   r   r   s       r/   test_cast_like!TestShapeInference.test_cast_like  s      ;$$i038K8KV2TUzC:u56

 	#C)<)<iHI!..{GDE 	 	
rg   BitCastc           
        U R                  S[        R                  S4/[        SS/S/[        R                  S9// 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r  r  r   r  r   
rU   r   r   r   INT32r|   r    r   r   r   r   s       r/   test_bitcast_same_size)TestShapeInference.test_bitcast_same_size  s       ;$$i01y3%#;3D3DEF

 	#C):):IFG!..{GDE 	 	
rg   c           
        U R                  S[        R                  S4/[        SS/S/[        R                  S9// 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r?   r  r   r  r   r   r   s       r/   test_bitcast_scalar&TestShapeInference.test_bitcast_scalar  s       ;$$b)*y3%#;3D3DEF

 	#C):):B?@!..{GDE 	 	
rg   c           
        U R                  S[        R                  S4/[        SS/S/[        R                  S9// 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN      r  r   r  r   )
rU   r   r   r   UINT32r|   r    r   r   r   r   s       r/   test_bitcast_1d"TestShapeInference.test_bitcast_1d  s       ;$$d+,y3%#;3E3EFG

 	#C););TBC!..{GDE 	 	
rg   c           
        U R                  S[        R                  S4/[        SS/S/[        R                  S9// 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r   r3   r  r   r  r   )
rU   r   DOUBLEr   rJ   r|   r    r   r   r   r   s       r/   test_bitcast_double_to_int64/TestShapeInference.test_bitcast_double_to_int64  s       ;%%v./y3%#;3D3DEF

 	#C):):FCD!..{GDE 	 	
rg   c           
        U R                  S[        R                  S4/[        SS/S/[        R                  S9// 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r      r  r   r  r   )
rU   r   INT8r   r  r|   r    r   r   r   r   s       r/   test_bitcast_int8_to_uint8-TestShapeInference.test_bitcast_int8_to_uint8  s       ;##V,-y3%#;3D3DEF

 	#C):):FCD!..{GDE 	 	
rg   c           
        U R                  S[        R                  S4/[        SS/S/[        R                  S9// 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r   r  r   r  r   )
rU   r   r  r   INT16r|   r    r   r   r   r   s       r/   test_bitcast_float16_to_int160TestShapeInference.test_bitcast_float16_to_int16  s       ;&&/0y3%#;3D3DEF

 	#C):):FCD!..{GDE 	 	
rg   Col2Imc                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/5      // [        S[        R                  SS	5      [        S[        R                  SS
5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Ninput)r   r3   r3   output_shaper   kernel_shaper<  r>  r?  r@  outputr3   r3   r   r3   rD   r   r   r3   r3   r   rU   r   r   rJ   r   r   r|   r    r   r   r   r   s       r/   test_col2imTestShapeInference.test_col2im  s      +++Y7!2!2D9!2!2D9 G(
 NK,=,=tVLNK,=,=tVL ! 
" 	#Hk.?.?NO!..{GDE 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/S	S	/S
9// [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr>  )r   	   r   r?  r   r@  r<  rA  rB  r=   stridesrC  r   r   rE  rF  r   rG  r   s       r/   test_col2im_strides&TestShapeInference.test_col2im_strides  s      +++Y7!2!2D9!2!2D9 =JF	 NK,=,=tVLNK,=,=tVL ! 
( 	#Hk.?.?NO!..{GDE 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS// S	QS
9// [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr>  )r   r3      r?  r   r@  r<  rA  rB  )r   r   r   r   padsrC  rD  rE  rF  r   rG  r   s       r/   test_col2im_pads#TestShapeInference.test_col2im_pads7  s      +++Z8!2!2D9!2!2D9 =J%	 NK,=,=tVLNK,=,=tVL ! 
( 	#Hk.?.?NO!..{GDE 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/S	S
/S9// [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr>  )r   r   r3   r?  r   r@  r<  rA  rB  r   r3   	dilationsr4  r4  r=   r=   rE  )r   r   r4  r4  r   rG  r   s       r/   test_col2im_dilations(TestShapeInference.test_col2im_dilationsS  s      +++Y7!2!2D9!2!2D9 =J !f	 NK,=,=tVLNK,=,=tVL ! 
( 	#Hk.?.?NO!..{GDE 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/5      // [        S[        R                  SS	5      [        S[        R                  SS
5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr>  )r   
      r?  r  r@  r<  rA  rB  r   r   r3   )r   r   r3   rE  r   r=   r   r   r3   r   rG  r   s       r/   test_col2im_5d!TestShapeInference.test_col2im_5do  s      +++[9!2!2D9!2!2D9 G(
 NK,=,=tYONK,=,=tYO ! 
" 	#Hk.?.?QR!..{GDE 	 	
rg   Concatc           
        U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /[        R                  " [        U5      /S
9  g )NrN   r  r   )   r   r   re  r   r   axis)rK  r   r   r   r   r   s       r/   test_concatTestShapeInference.test_concat        ;$$i038I8I92UVx#scU;<

 	#C):):IFG!..{GDE 	 	
rg   c           
         U R                  S[        R                  S4SS[        R                  S4/[        S/ SQS/S	S
9// 5      nU R	                  [
        R                  R                  U R                  U5        g )NrN   r  r   r   NNNre  rN   r   r   outr   rh  r   r   s      r/   test_concat_missing_shape,TestShapeInference.test_concat_missing_shape  sw      k''3k'');<
 x5'BC
 	$..==t~~uUrg   c           
        U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S	9  g )
NrN   r=   r=   r=   r   re  r   r=   rh  )r=   r=   r   r   r   r   s       r/   test_concat_3d_axis_2(TestShapeInference.test_concat_3d_axis_2  rl  rg   c           
        U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /[        R                  " [        U5      /S
9  g )NrN   r   r=   r   )r   r   re  r   r   rh  )r   r3   r   r   r   s       r/   test_concat_param$TestShapeInference.test_concat_param  s      ;$$h/#{7H7H(1STx#scU;<

 	#C):):HEF!..{GDE 	 	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   rx  re  r   r   rh  r   r   r   s       r/   test_concat_param_single_input1TestShapeInference.test_concat_param_single_input  s}      ;$$h/0x#A67

 	#C):):HEF!..{GDE 	 	
rg   rB   c                D   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4/[        SSS/S/5      // 5      nU R                  U[        S[        R                  S	5      /[        R                  " [        U5      /S
9  g )N   z'Rank inference is added from Version 14rN   r  r   r   rB   r   NNr   )r   rU   r   r  rJ   r   r|   r    r   r   r   r   s       r/   %test_reshape_dynamic_shape_known_rank8TestShapeInference.test_reshape_dynamic_shape_known_rank  s    GbL"KL  ;$$i07K<M<Mt2TUy3.3%89

 	#C):):LIJ!..{GDE 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S 5      /[        R                  " [        U5      /S9  g )NrN   r  r   MrB   r   r   
rU   r   r  rJ   r   r|   r    r   r   r   r   s       r/   #test_reshape_dynamic_shape_symbolic6TestShapeInference.test_reshape_dynamic_shape_symbolic  s      ;$$i07K<M<Mv2VWy3.3%89

 	#C):):DAB!..{GDE 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S 4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S 5      /[        R                  " [        U5      /S9  g )NrN   r  r   rB   r   r   r  r   s       r/   "test_reshape_dynamic_unknown_shape5TestShapeInference.test_reshape_dynamic_unknown_shape  s      ;$$i07K<M<Mt2TUy3.3%89

 	#C):):DAB!..{GDE 	 	
rg   c                N   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S	9  g )
NrN   r  r   r   rB   r   r   r)  rE  r   rU   r   r  rJ   r   r   r|   r    r   r   r   r   s       r/   test_reshape_static_shape,TestShapeInference.test_reshape_static_shape  s      ;$$i07K<M<Mt2TUy3.3%89$Wk.?.?vNO	 ! 
 	#C):):FCD!..{GDE 	 	
rg   c                N   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /[        R                  " [        U5      /S
9  g )NrN   r  r   r  rB   r   )r   r   r$   rE  r   r   r  r   s       r/   "test_reshape_static_shape_inferred5TestShapeInference.test_reshape_static_shape_inferred  s      ;$$i07K<M<Mt2TUy3.3%89$Wk.?.?zRS	 ! 
 	#C):):IFG!..{GDE 	 	
rg   c                N   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S	9  g )
NrN   r   r   r   r   r  rB   r   r   r   r   rE  r   r  r   s       r/   test_reshape_static_shape_zero1TestShapeInference.test_reshape_static_shape_zero  s      ;$$i07K<M<Mt2TUy3.3%89$Wk.?.?yQR	 ! 
 	#C):):IFG!..{GDE 	 	
rg   c                v   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4/[        SSS/S/S	S
9// [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr  z"allowzero is added from Version 14rN   r   r   r   r   r  rB   r   r   	allowzeror  rE  r   )r   rU   r   r  rJ   r   r   r|   r    r   r   r   r   s       r/   #test_reshape_static_shape_allowzero6TestShapeInference.test_reshape_static_shape_allowzero  s    GbL"FG  k''3+++T2 y3.3%1EF$Wk.?.?yQR ! 
 	#C):):IFG!..{GDE 	 	
rg   c                v   U R                  S[        R                  S4/[        S/ S/[	        S[        R
                  SS5      S9[        SSS/S	/5      // 5      nU R                  U[        S[        R
                  S5      [        S	[        R                  S5      /[        R                  " [        U5      /S
9  g )NrN   r  Constantr   r   r  valuerB   r   r   )rU   r   r  r   r   rJ   r|   r    r   r   r   r   s       r/   "test_reshape_static_shape_constant5TestShapeInference.test_reshape_static_shape_constant-  s      ;$$i01I%g{/@/@$O	 )c7^cU; 
 	&w0A0A4H&sK,=,=vF "..{GDE 	 	
rg   Upsamplec                  ^ ^^ TS:X  az  T R                  S[        R                  S4/[        SS/S// SQS9// 5      mT R	                  T[        S[        R                  S5      /[        R                  " [        T5      /S	9  g T R                  S[        R                  S4S
[        R                  S4/[        SSS
/S/5      // [        S
[        R                  SS5      /S9mUU U4S jnTS:X  a  U" 5         g T R                  [        R                  R                  5       nU" 5         S S S 5        WR                  nS[!        U5      ;   d   eg ! , (       d  f       N,= f)Nrg  rN   r=   r   r   r3   r  r         ?皙??ffffff?scalesr=   r   r   rK  r   r  r   rE  c                    > TR                  T [        S[        R                  S5      /[        R
                  " [        T5      /S9  g Nr   r  r   r|   r    r   r!  r   r   r   rq   rK   r.   s   r/   call_inference8TestShapeInference.test_upsample.<locals>.call_inference_  A    %%+C1B1BLQR#)#6#6{G#L"M & rg   rK  Upsample is deprecated)rU   r   r!  r   r|   r    r   r   r   r   r   r   r]   r   ValidationError	exceptionr   rK   r   r.   r  cmr  rq   s   ` `   @r/   test_upsample TestShapeInference.test_upsampleE  sW   a<$${((,78:use<PQRE
 !!'[->->MN%22;HI "  $$+++\:{00$7 :X>?+*;*;TCWX % 
E !|  &&t||'C'CD"$ ELL	/3y>AAA EDs   #E
Ec                  ^ ^^ TS:X  az  T R                  S[        R                  S4/[        SS/S// SQS9// 5      mT R	                  T[        S[        R                  S5      /[        R                  " [        T5      /S	9  g T R                  S[        R                  S
4S[        R                  S4/[        SSS/S/5      // [        S[        R                  S[        R                  " / SQSS9R                  5       SS9/S9mUU U4S jnTS:X  a  U" 5         g T R                  [        R                   R"                  5       nU" 5         S S S 5        WR$                  nS['        U5      ;   d   eg ! , (       d  f       N,= f)Nrg  rN   r  r  r          @r  gffffff@r  r  r=   r   rK  rK  r   r  r  r  r  <f4dtypeTvalsrawrE  c                    > TR                  T [        S[        R                  S5      /[        R
                  " [        T5      /S9  g r  r  r  s   r/   r  ATestShapeInference.test_upsample_raw_data.<locals>.call_inference  r  rg   rK  r  )rU   r   r!  r   r|   r    r   r   r   r   r   r   arraytobytesr   r]   r   r  r  r   r  s   ` `   @r/   test_upsample_raw_data)TestShapeInference.test_upsample_raw_datao  st   a<$${((,78:use<PQRE
 !!'[->->MN%22;HI "  $$+++\:{00$7 :X>? #))XX&:%HPPR  % E$ !|  &&t||'C'CD"$ ELL	/3y>AAA EDs   E33
FExpandc                N   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /[        R                  " [        U5      /S
9  g )NrN   r   r   r   r  r  r   )r=   r   r4  rE  r=   r   r4  r   rU   r   r!  rJ   r   r   r|   r    r   r   r   r   s       r/   test_expandTestShapeInference.test_expand  s      ;$$f-9J9JD/QRx#w#78$Wk.?.?yQR	 ! 
 	#C):):IFG!..{GDE 	 	
rg   c                N   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S	9  g )
NrN   r?   r   r   r  r   )r   r)  rE  r   r  r   s       r/   test_expand_scalar_input+TestShapeInference.test_expand_scalar_input  s      ;$$b)G[5F5F+MNx#w#78$Wk.?.?vNO	 ! 
 	#C):):FCD!..{GDE 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  S[        R                  " SS/S	S
9R                  5       SS9/S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r  r   r   r  r   r   r   <i8r  Tr  rE  r   r   r   )rU   r   r!  rJ   r   r   r   r  r  r|   r    r   r   r   r   s       r/   test_expand_raw_data'TestShapeInference.test_expand_raw_data  s      ;$$f-9J9JD/QRx#w#78%%1a&6>>@	 ! 
 	#C):):FCD!..{GDE 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // / S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S	9  g )
NrN   r   r=   Nr   r  r  r   rE  )Nr=   Nr   
rU   r   r!  rJ   r   r|   r    r   r   r   r   s       r/   test_expand_dynamic_shape,TestShapeInference.test_expand_dynamic_shape  s      k''6+++T2 x#w#78 ! 
 	#C):):OLM!..{GDE 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // / S9nU R                  U[        S[        R                  S 5      /[        R                  " [        U5      /S9  g )	NrN   r  r   )unk__0r  r   rE  r   r  r   s       r/   test_expand_symbolic_shape-TestShapeInference.test_expand_symbolic_shape  s      k''6+++[9 x#w#78 ! 
 	#C):):DAB!..{GDE 	 	
rg   Resizec                j   US:X  a  U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S	9nU R                  U[        S[        R                  S
5      /[        R                  " [        U5      /S9  g US:X  a  U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/5      // [        S[        R                  SS5      /S	9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/5      // [        S[        R                  SS5      /S	9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr_  rN   r  r  r  r  r   r  rE  r  r      roir(  sizesrN   r  r  r  )r   r3   r4  rg  rN   r   r  )rU   r   r!  r   r   r   r|   r    r   r   r   rJ   r   s       r/   test_resize_size#TestShapeInference.test_resize_size  sF   b=$$+++\:{00$7 8c8_se<=+*;*;TCWX % 
E !!'[->->MN%22;HI " 
 ]$$+++\:K--t4{00$7k//6	 8%DseLM):):D,O % E !!'[->->MN%22;HI "  $$+++\:K--t4k//6
 8%>FG):):D,O % E !!'[->->MN%22;HI " rg   RMSNormalizationc           
        U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S	9  g )
Nr   r  CHWscale)r  r  r  r   r=   rh  r   r   r   s       r/   test_rms_normalization)TestShapeInference.test_rms_normalization-  s      k'')=>+++Z8 )C>C5qIJ
 	#C):):<PQR!..{GDE 	 	
rg   c                   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4S[        R
                  S4/[        S	/ S
QS/SS9// [        S[        R
                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )N   axes is from Version 18rN   r  r  r  r  r   r  r  r   r   axesr4  rg  rE  )r=   r   r4  rg  r   r   rU   r   r!  r   rJ   r   r   r|   r    r   r   r   r   s       r/   test_resize_size_axes_2_3,TestShapeInference.test_resize_size_axes_2_3=      GbL";<  k''6))40+++T2
 x!:SEOP$Wk.?.?vNO ! 	
 	#C):):LIJ!..{GDE 	 	
rg   c                   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4S[        R
                  S4/[        S	/ S
QS/SS9// [        S[        R
                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr  r  rN   r  r  r  r  r   r  r  r   r   r=   r  r  rE  )r=   r   rg  r4  r   r   r   s       r/   test_resize_size_axes_3_2,TestShapeInference.test_resize_size_axes_3_2P  r  rg   c                   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4S[        R
                  S4/[        S	/ S
QS/SS9// [        S[        R
                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr  +keep_aspect_ratio_policy is from Version 18rN   r.  r  r  r  r   r  r  r   
not_largerkeep_aspect_ratio_policyrZ  rE  r3  r   r   r   s       r/   test_resize_size_not_larger.TestShapeInference.test_resize_size_not_largerc  s    bL9	
   k''0))40+++T2 -E-9	 $Wk.?.?vNO ! 
" 	#C):):FCD!..{GDE 	 	
rg   c                   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4S[        R
                  S4/[        S	/ S
QS/SSS9// [        S[        R
                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr  3axes & keep_aspect_ratio_policy are from Version 18rN   r  r  r  r  r   r  r  r   r   r
  r  r  rZ  rE  )r=   r   r   r4  r   r   r   s       r/   $test_resize_size_axes_2_3_not_larger7TestShapeInference.test_resize_size_axes_2_3_not_larger  s    bLA	
   k''6))40+++T2 -E-9 $Wk.?.?vNO! ! 
$ 	#C):):LIJ!..{GDE 	 	
rg   c                   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4S[        R
                  S4/[        S	/ S
QS/SS9// [        S[        R
                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr  r	  rN   r.  r  r  r  r   r  r  r   not_smallerr  rZ  rE  )r4  r_  r   r   r   s       r/   test_resize_size_not_smaller/TestShapeInference.test_resize_size_not_smaller  s    bL9	
   k''0))40+++T2 -E-:	 $Wk.?.?vNO ! 
" 	#C):):GDE!..{GDE 	 	
rg   c                   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4S[        R
                  S4/[        S	/ S
QS/SSS9// [        S[        R
                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr  r  rN   r  r  r  r  r   r  r  r   r   r  r  rZ  rE  )r=   r   r4  r_  r   r   r   s       r/   %test_resize_size_axes_2_3_not_smaller8TestShapeInference.test_resize_size_axes_2_3_not_smaller  s    bLA	
   k''6))40+++T2 -E-: $Wk.?.?vNO! ! 
$ 	#C):):MJK!..{GDE 	 	
rg   c                   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S	/ S
QS/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr  roi input is from Version 11rN   r  r  r(  r  r  r  rN   r  r  r   r  rE  r  r   r   rU   r   r!  r   r   r   r|   r    r   r   r   r   s       r/   test_resize_scale$TestShapeInference.test_resize_scale  s    GbL"@A  k''6))40;,,d3
 x!7#?@Hk&7&7?ST ! 
 	#C):):LIJ!..{GDE 	 	
rg   c                   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S	/ S
QS/SS9// [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr  r  rN   r  r  r(  r  r   r  r  r   r   r  )r  r  rE  r  r   r  r   s       r/   test_resize_scale_axes_2_3-TestShapeInference.test_resize_scale_axes_2_3      GbL";<  k''6))40;,,d3
 x!7#VLM$X{/@/@$
ST ! 	
 	#C):):LIJ!..{GDE 	 	
rg   c                   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S	/ S
QS/SS9// [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr  r  rN   r  r  r(  r  r   r  r  r   r  r  )r  r  rE  r  r   r  r   s       r/   test_resize_scale_axes_3_2-TestShapeInference.test_resize_scale_axes_3_2  r$  rg   c                   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S	/ S
QS/5      // [        S[        R                  S[        R                  " / SQSS9R                  5       SS9/S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr  r  rN   r  r  r(  r  r  r  r  r   r  r  r  Tr  rE  r  r   )r   rU   r   r!  r   r   r   r   r  r  r|   r    r   r   r   r   s       r/   test_resize_scale_raw_data-TestShapeInference.test_resize_scale_raw_data  s    GbL"@A  k''6))40;,,d3
 x!7#?@%%"6eDLLN ! 
$ 	#C):):LIJ!..{GDE 	 	
rg   c                z   U R                  US:  S5        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S	[        R
                  S
4/[        S/ SQS/5      // [        S[        R                  S[        R                  " / SQSS9R                  5       SS9[        S	[        R
                  S
[        R                  " / SS9R                  5       SS9/S9nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )Nr  r  rN   r  r  r(  r  r  r  r   r  r  r   r  r  r  Tr  r  rE  r  r   )r   rU   r   r!  r   rJ   r   r   r   r  r  r|   r    r   r   r   r   s       r/   +test_resize_scale_and_size_but_one_is_empty>TestShapeInference.test_resize_scale_and_size_but_one_is_empty/  s0   GbL"@A  k''6))40;,,d3+++T2	 x!@3%HI%%"6eDLLN %%"E2::< ! 
4 	#C):):LIJ!..{GDE 	 	
rg   c                   U R                  US:g  S5        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S	[        R
                  S
4/[        S/ SQS/5      // [        S	[        R
                  S
[        R                  " / SQSS9R                  5       SS9/S9nU R                  U[        S[        R                  S5      /[        R                  " SU5      /S9  g )Nr  z#This test only works for Version 11rN   r  r  r(  r  r,  r  r  r  r  r   )r=   r4  r)  r_  r  r  Tr  rE  r  r   )r   rU   r   r!  r   rJ   r   r   r   r  r  r|   r    r   r   r   s       r/   #test_resize_opset11_scales_is_empty6TestShapeInference.test_resize_opset11_scales_is_emptyR  s    GrM#HI   k''6))40;,,d3+++T2	 x!@3%HI%%%Ugi
 ! 
, 	#C):):MJK!..r7;< 	 	
rg   Shapec                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r  r2  r   r  r   
rU   r   r   r   r|   r    rJ   r   r   r   r   s       r/   
test_shapeTestShapeInference.test_shapes  s{      ;$$i01wu-.

 	#C):):DAB!..{GDE 	 	
rg   c           
        U R                  US:  S5        U R                  S[        R                  S4/[	        SS/S/SS9// 5      nU R                  U[        S[        R                  S	5      /[        R                  " [        U5      /S
9  g )NrR  !start and end are from Version 15rN   r  r2  r   r   startr   r   r   rU   r   r   r   r|   r    rJ   r   r   r   r   s       r/   test_shape_start_1%TestShapeInference.test_shape_start_1  s    GbL"EF  ;$$i01wuA67

 	#C):):DAB!..{GDE 	 	
rg   c           
        U R                  US:  S5        U R                  S[        R                  S4/[	        SS/S/SS9// 5      nU R                  U[        S[        R                  S	5      /[        R                  " [        U5      /S
9  g )NrR  r8  rN   r  r2  r   r   endr   r   r;  r   s       r/   test_shape_end_1#TestShapeInference.test_shape_end_1  s    GbL"EF  ;$$i01wu!45

 	#C):):DAB!..{GDE 	 	
rg   c           
        U R                  US:  S5        U R                  S[        R                  S4/[	        SS/S/SS9// 5      nU R                  U[        S[        R                  S	5      /[        R                  " [        U5      /S
9  g )NrR  r8  rN   r  r2  r   r$   r9  rA  r   r;  r   s       r/   test_shape_negative_start,TestShapeInference.test_shape_negative_start      GbL"EF  ;$$i01wuB78

 	#C):):DAB!..{GDE 	 	
rg   c           
        U R                  US:  S5        U R                  S[        R                  S4/[	        SS/S/SS9// 5      nU R                  U[        S[        R                  S	5      /[        R                  " [        U5      /S
9  g )NrR  r8  rN   r  r2  r   r9  r  r   r;  r   s       r/   test_shape_clip1#TestShapeInference.test_shape_clip1  rG  rg   c           
        U R                  US:  S5        U R                  S[        R                  S4/[	        SS/S/SS9// 5      nU R                  U[        S[        R                  S	5      /[        R                  " [        U5      /S
9  g )NrR  r8  rN   r  r2  r   r_  r?  r  r   r;  r   s       r/   test_shape_clip2#TestShapeInference.test_shape_clip2  s    GbL"EF  ;$$i01wu"56

 	#C):):DAB!..{GDE 	 	
rg   Sizec                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r  rO  r   r?   r   r4  r   s       r/   	test_sizeTestShapeInference.test_size  sz      ;$$i01IfsecU4S3TVX
 	#C):):B?@!..{GDE 	 	
rg   Gatherc                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )	NrN   r   r   ir   rS  r   r   r   
rU   r   r   rJ   r   r|   r    r   r   r   r   s       r/   test_gatherTestShapeInference.test_gather  s      ;$$f-[5F5F/MNx#scU34

 	#C):):FCD!..{GDE 	 	
rg   c           
        U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS9// 5      nU R                  U[        S[        R                  S	5      /[        R                  " [        U5      /S
9  g )NrN   )r   r   r3   rV  r   rS  r   r   rh  )r   r   r=   r3   r   rW  r   s       r/   test_gather_axis1$TestShapeInference.test_gather_axis1  s      ;$$i038I8I62RSx#scU;<

 	#C):):LIJ!..{GDE 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r  rV  r?   rS  r   r   rW  r   s       r/   test_gather_into_scalar*TestShapeInference.test_gather_into_scalar  s      ;$$d+c;3D3Db-IJx#scU34

 	#C):):B?@!..{GDE 	 	
rg   GatherElementsc           
        U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS9// 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )	NrN   r[  rV  r`  r   r   rh  r   rW  r   s       r/   test_gather_elements'TestShapeInference.test_gather_elements        ;$$f-[5F5F/OP'#scUCD

 	#C):):FCD!..{GDE 	 	
rg   c           
        U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS9// 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S	9  g )
NrN   rN  rV  r   r`  r   r   rh  r   rW  r   s       r/   test_gather_elements_axis0-TestShapeInference.test_gather_elements_axis0  rd  rg   Scatterc                   US:  aa  U R                  [        R                  R                  5       nU R	                  U5        S S S 5        WR
                  nS[        U5      ;   d   eg U R	                  U5        g ! , (       d  f       N>= fNr  zScatter is deprecated)r   r]   r   r  _test_scatterr  r   rK   r   r.   r  r  s        r/   test_scatterTestShapeInference.test_scatter  sj    b=""4<<#?#?@B""7+ AI*c)n<<<w' A@   A::
Bc                >   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/5      // 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S	9  g )
NrN   rN  rV  r   urh  rN   rV  rq  r   r   rW  rK   r.   rq   s      r/   rk   TestShapeInference._test_scatter  s      k''0k''0k''0
 y/C59:
 	#C):):FCD!..{GDE 	 	
rg   c                   US:  aa  U R                  [        R                  R                  5       nU R	                  U5        S S S 5        WR
                  nS[        U5      ;   d   eg U R	                  U5        g ! , (       d  f       N>= frj  )r   r]   r   r  _test_scatter_axis1r  r   rl  s        r/   test_scatter_axis1%TestShapeInference.test_scatter_axis1-  sj    b=""4<<#?#?@B((1 AI*c)n<<<$$W- A@ro  c           
     <   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/S	S
9// 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   rD  rV  r   rq  rh  rr  r   r   rh  r   rW  rs  s      r/   rv  &TestShapeInference._test_scatter_axis18  s      k''0k''0k''0
 y/C5qAB
 	#C):):FCD!..{GDE 	 	
rg   ScatterElementsc                >   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/5      // 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S	9  g )
NrN   rN  rV  r   rq  r{  rr  r   r   rW  r   s       r/   test_scatter_elements(TestShapeInference.test_scatter_elementsH  s      k''0k''0k''0
 (/C5AB
 	#C):):FCD!..{GDE 	 	
rg   c           
     <   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/S	S
9// 5      nU R                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   rD  rV  r   rq  r{  rr  r   r   rh  r   rW  r   s       r/   test_scatter_elements_axis1.TestShapeInference.test_scatter_elements_axis1Y  s      k''0k''0k''0
 (/C5qIJ
 	#C):):FCD!..{GDE 	 	
rg   	ScatterNDc                >   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	/5      // 5      nU R                  U[        S	[        R                  S5      /[        R                  " [        U5      /S
9  g )NrN   r   r3   r4  indicesr   r   r=   updatesr   r   r4  r  )rN   r  r  r   r   rW  r   s       r/   test_scatternd!TestShapeInference.test_scatterndj  s      k''3K--y9K--y9
 {$?#GH
 	#C):):IFG!..{GDE 	 	
rg   c           	        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S	SS/S
/5      [	        S/ SQS/5      // 5      nU R                  U[        S
[        R                  S 5      [        S[        R                  S 5      /[        R                  " [        U5      /S9  g )NrN   r  r  r  r  r  r   r  rB   
x_reshapedr  )r  r  r  r   r   rW  r   s       r/   test_scatternd_noshape)TestShapeInference.test_scatternd_noshape{  s       k''3K--y9K--y9+++V4	 )c7^l^D+'KcUS 
 	&|[5F5FM&sK,=,=tD "..{GDE 	 	
rg   c           
     <   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	/S
S9// 5      nU R                  U[        S	[        R                  S5      /[        R                  " [        S5      /S9  g )N
past_cache)r=   r)     @   update)r=   r)  r_  r  write_indicesr   TensorScatter)r  r  r  present_cacher=   rh     r   rW  r   s     r/   test_tensor_scatter&TestShapeInference.test_tensor_scatter  s      {00/B;,,n= +"3"3T: #=$%	 
  	&#[%6%6
 "..{B?@ 	 	
rg   Squeezec                H   US:X  ax  U R                  S[        R                  S4/[        SSS/ SQS9// 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S	9  g U R                  S[        R                  S4S
[        R                  S4/[        SSS
/S5      // [        S
[        R                  SS5      /S9nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S	9  g )Nr  rN   r   r   r   r   r=   r   r  r   )r   r=   r   r3   r  r  r   r  r  rE  )rU   r   r   r   r|   r    r   r   r   rJ   r   r   s       r/   test_squeezeTestShapeInference.test_squeeze  s/   b=$${((*<=>9c3\BCE
 !!'[->->GH%22;HI "  $$+++-?@[..5 9sFmS9:(9(94N % 
E !!'[->->GH%22;HI " rg   StringConcatc                   U R                  S[        R                  S4S[        R                  S4/[        SSS/S5      // 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r   r   r  r   r   	rU   r   r   r   r|   r    r   r   r   r   s       r/   test_stringconcat$TestShapeInference.test_stringconcat        k(()4k(()4 ~Sz378
 	#C););YGH!..{GDE 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[        SSS/S5      // 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r   r   )r   r   r   r  r   r   r  r   s       r/   test_stringconcat_broadcasting1TestShapeInference.test_stringconcat_broadcasting  r  rg   RegexFullMatchc           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r  r  r   ^[A-Z][a-z]*$patternr   
rU   r   r   r   r|   r    BOOLr   r   r   r   s       r/   test_regex_full_match(TestShapeInference.test_regex_full_match  s      ;%%|45'#?OPQ

 	#C)9)9<HI!..{GDE 	 	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        U5      /S9  g )NrN   r?   r  r   r  r  r   r  r   s       r/   !test_regex_full_match_empty_shape4TestShapeInference.test_regex_full_match_empty_shape  s      ;%%r*+'#?OPQ

 	#C)9)92>?!..{GDE 	 	
rg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      n[	        5       nSUl        SUl        U R                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r  r  r  	rU   r   r   r   r   r+   r.   r|   r    rK   rq   operatorsetids      r/   test_squeeze_no_axes_opset11/TestShapeInference.test_squeeze_no_axes_opset11	  s~      k'');< y3%-.
 +,! "*30A0A6JK	
rg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      n[	        5       nSUl        SUl        U R                  U[        S[        R                  S 5      /U/S9  g )NrN   )r   r   r   Nr=   r   r  r   r  r  r   r  r  s      r/   *test_squeeze_no_axes_dynamic_input_opset11=TestShapeInference.test_squeeze_no_axes_dynamic_input_opset11  s      k'')>? y3%-.
 +,! "#C):):DAB(/ 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /5        g )
NrN   r  r  r  	Unsqueezer   )r   r   r   r3   rE  )r   r   r   r   r=   r   rU   r   r   rJ   r   r   r|   r    r   s     r/   test_unsqueeze_regular)TestShapeInference.test_unsqueeze_regular)  s      ;$$f-8I8I4/PQ{S&M378$V[->->lST	 ! 
 	*30A0ACUVW	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /5        g )
NrN   ra  r  r   r  r   )r   r   rE  r   r   r   r3   r   r  r   s     r/   test_unsqueeze_unsorted_axes/TestShapeInference.test_unsqueeze_unsorted_axes4  s      ;$$i06;;L;Ld2ST{S&M378$V[->->fMN	 ! 
 	*30A0A?ST	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /5        g )
NrN   ra  r  r   r  r   )r   r$   rE  r  r  r   s     r/   test_unsqueeze_negative_axes/TestShapeInference.test_unsqueeze_negative_axes?  s      ;$$i06;;L;Ld2ST{S&M378$V[->->gNO	 ! 
 	*30A0A?ST	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /5        g )	NrN   r?   r  r  r   r$   rE  rA  r  r   s     r/   test_unsqueeze_scalar(TestShapeInference.test_unsqueeze_scalarJ  s      ;$$b)FK4E4Er+JK{S&M378$V[->->EJK	 ! 
 	*30A0A4HI	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/5      // 5      nU R                  U[        S[        R                  S	5      /5        g )
NrN   )r   r=   r   startsrA  endsSlicerN   r  r  r   rn  rU   r   r   rJ   r   r|   r    r   s     r/   test_slice_without_input_shape1TestShapeInference.test_slice_without_input_shapeU  s      k''5;,,d3**D1
 w 7#?@
 	*30A0ACUVW	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/5      // [        S[        R                  S[        R                  " S	S
/SS9R                  5       SS9[        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r  r  r  r   r   r   r  r  Tr  r[  rE  r   rU   r   r   rJ   r   r   r   r  r  r|   r    r   s     r/   test_slice_with_input_shape.TestShapeInference.test_slice_with_input_shapec  s      k''0;,,d3**D1
 w 7#?@%%1a&6>>@ FK$5$5tVD	 ! 
& 	*30A0A6JK	
rg   c                v   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/5      // [        S[        R                  SS	5      [        S[        R                  SS
5      /S9nU R                  U[        S[        R                  S5      /5        g )NrN   )r   r   r   r  r  r  r  r  r   )r   r   r   r  rE  )r   Nr   r  r   s     r/   1test_slice_with_input_shape_containing_dim_paramsDTestShapeInference.test_slice_with_input_shape_containing_dim_params{  s      k''5;,,d3**D1
 w 7#?@Hk&7&7yIFK$5$5tYG ! 
 	*30A0A<PQ	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S 4S[        R                  S4/[	        S/ S	QS
/5      // [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S
[        R                  S5      /5        g )NrN   r3   r4  rg  r  r  r  r  stepsr  rN   r  r  r  r  r   r  )r=   r4  r4  )r   r   r   rE  r   r=   r=   r  r   s     r/   !test_slice_with_input_shape_steps4TestShapeInference.test_slice_with_input_shape_steps  s      k''3;,,d3**D1**T3+++T2 w H3%PQHk&7&7yIFK$5$5tYGG[%6%6iH ! 
  	*30A0A9MN	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S 4/[	        S/ S	QS
/5      // [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S
[        R                  S5      /5        g )NrN   )r   r4  r=   r  r   r  r  r  r  r  r   r   r   r[  )r   r=   rE  )r   r4  r=   r  r   s     r/    test_slice_with_input_shape_axes3TestShapeInference.test_slice_with_input_shape_axes  s      k''3;,,d3**D1**D1+++d4 w H3%PQHk&7&7vFFK$5$5tVDFK$5$5tVD ! 
  	*30A0A9MN	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	5      // [        S[        R                  SS
5      [        S[        R                  SS5      [        S[        R                  SS
5      /S9nU R                  U[        S	[        R                  S5      /5        g )NrN   r  r  r   r  r  r  rN   r  r  r  r   r  r[  rE  r   r  r   s     r/   test_slice_unsorted_axes+TestShapeInference.test_slice_unsorted_axes  s      k''0;,,d3**D1**D1	 w ?EFHk&7&7vFFK$5$5tVDFK$5$5tVD ! 
 	*30A0A6JK	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	5      // [        S[        R                  SS
5      [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S	[        R                  S5      /5        g NrN   r  r  r   r  r  r  r  r   r  )   iU  r   r   rE  r[  r  r   s     r/   test_slice_giant_number*TestShapeInference.test_slice_giant_number  s      k''0;,,d3**D1**D1	 w ?EFHk&7&7vFFK$5$5t\JFK$5$5tVD ! 
 	*30A0A6JK	
rg   c                (   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
5      // [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S
[        R                  S5      /5        g )NrN   r  r  r   r  r  r  r  r  r   r  )r  r  r  )r   r  rE  r   r  r   s     r/   test_slice_giant_step(TestShapeInference.test_slice_giant_step  s      k''0;,,d3**D1**D1+++T2 w H#NOHk&7&7vFFK$5$5tZHFK$5$5tVDG[%6%6hG	 ! 
" 	*30A0A6JK	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	5      // [        S[        R                  SS
5      [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S	[        R                  S5      /5        g )NrN   r  r  r   r  r  r  r  r   r  )r  r$   r  rE  r   r  r   s     r/   test_slice_negative_end*TestShapeInference.test_slice_negative_end  s      k''0;,,d3**D1**D1	 w ?EFHk&7&7vFK--tY FK$5$5tVD ! 
" 	*30A0A6JK	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	5      // [        S[        R                  SS
5      [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S	[        R                  S5      /5        g )NrN   r  r  r   r  r  r  r  r   )r   )r  r   r  rE  r[  r  r   s     r/   test_slice_negative_start,TestShapeInference.test_slice_negative_start  s      k''0;,,d3**D1**D1	 w ?EFk//w FK$5$5tXFFK$5$5tVD ! 
" 	*30A0A6JK	
rg   c                (   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
5      // [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S
[        R                  S5      /5        g )NrN   r  r  r   r  r  r  r  r  r   r   r   )r  r   r  )r   r$   rE  r   r  r   s     r/   test_slice_negative_step+TestShapeInference.test_slice_negative_step!  s     k''0;,,d3**D1**D1+++T2 w H#NOk//v FK$5$5tXFFK$5$5tVDG[%6%6gF ! 
& 	*30A0A6JK	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	5      // [        S[        R                  SS5      [        S[        R                  SS
5      [        S[        R                  SS5      /S9nU R                  U[        S	[        R                  S5      /5        g )NrN   rx  r  rA  r  r  r  r  r   )r  rE  )r   r   r  r   s     r/   test_slice_variable_copy+TestShapeInference.test_slice_variable_copy9  s      k''2;,,d3**D1**D1	 w ?EFHk&7&7tDFK$5$5tVDFK$5$5tTB ! 
 	*30A0A8LM	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	5      // [        S[        R                  SS
5      [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S	[        R                  S5      /5        g r  )rU   r   r/  r!  r   r   r|   r    r   s     r/   test_slice_variable_input_types2TestShapeInference.test_slice_variable_input_typesM  s      k((&1;,,d3**D1**D1	 w ?EFHk&7&7vFFK$5$5t\JFK$5$5tVD ! 
 	*30B0BFKL	
rg   c                (   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
5      // [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S
[        R                  S5      /5        g)zGSlice on empty dimension with positive step should produce dim_value=0.rN   r   r4  r  rA  r  r  r  r  r  r   r,  rE  Nr  r   s     r/   "test_slice_empty_dim_positive_step5TestShapeInference.test_slice_empty_dim_positive_stepa  s      k''0;,,d3**D1**D1+++T2 w H#NOHk&7&7tDFK$5$5tTBFK$5$5tTBG[%6%6dC	 ! 
" 	*30A0A6JK	
rg   c                (   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
5      // [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S
[        R                  S5      /5        g)zIRegression test for issue #7735: std::clamp UB on empty dim with step=-1.rN   r  r  rA  r  r  r  r  r  r   r,  r  rE  Nr  r   s     r/   "test_slice_empty_dim_negative_step5TestShapeInference.test_slice_empty_dim_negative_stepx  s      k''0;,,d3**D1**D1+++T2 w H#NOHk&7&7tDFK$5$5tTBFK$5$5tTBG[%6%6eD	 ! 
" 	*30A0A6JK	
rg   c                z   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        SS/S	/5      [	        S
/ SQS/5      // [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      [        S[        R                  SS5      /S9nU R                  U[        S	[        R                  S5      [        S[        R                  S5      /5        g)zEShape(scalar) produces 0-length output; Slice on it should not crash.rN   r?   r  rA  r  r  r  r2  r   r  )r   r  r  r  r  r   r,  rE  Nr  r   s     r/   test_slice_scalar_shape_output1TestShapeInference.test_slice_scalar_shape_output  s*     k'',;,,d3**D1**D1+++T2 'C57)4'#ORUQVW Hk&7&7tDFK$5$5tTBFK$5$5tTBG[%6%6dC	 ! 
( 	&w0A0A4H&sK,=,=tD	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S/ SQ/ SQ/ S	QS
9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r   r   r3   r4  rg  r   r3   r   r=   r   r   Convr   r   r   r   r   r   r   r  r   r   r=   rT  rY  rM  r   r3   r   r   r   r   r   s     r/   	test_convTestShapeInference.test_conv  s      k''9k''9
 #J+'%	 
" 	*30A0A?ST	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/SS/S9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r   r   )2   r   r=   r  r   r   rX  )r   r  r   r   r   s     r/   test_conv_1d_simple&TestShapeInference.test_conv_1d_simple  s{      k''4k''4 vSz31#>?
 	*30A0A;OP	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/ SQS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r   r   r)  r)  r)  r   r  r   r   r   r   r  r   r   r=   r   rX  r   r  r4  r   r=   r   r   s     r/   test_conv_dilations&TestShapeInference.test_conv_dilations  s|      k'')9:k'')9: vSz3)DE
 	*30A0ACTUV	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/ SQS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r  r   r  r  r   r   rL  r   r  r4  r   r=   r   r   s     r/   test_conv_strides$TestShapeInference.test_conv_strides  s|      k'')9:k'')9: vSz3	BC
 	*30A0ACTUV	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/ SQS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r   r   rg  r4  r   r   r  r  r   r   r   r=   r   r   r=   rS  r   r  r4  r4  r4  r   r   s     r/   test_conv_pads!TestShapeInference.test_conv_pads  s}      k'')9:k'')9: vSz35GHI
 	*30A0ACTUV	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r)  r   r  r   r   r   r=   r  r   
SAME_UPPER)auto_pad)r   r  rg  r4  r   r   r   s     r/   test_conv_auto_pad%TestShapeInference.test_conv_auto_pad  s|      k'')9:k'')9: vSz3FG
 	*30A0ACTUV	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/SS/ SQS	9// 5      nU R	                  U[        S[        R                  S
5      /5        g )NrN   r)  r   r/  r  r   r0  r=   r=   r   r1  rM  )r   r  r   r   r   r   r   s     r/   test_conv_auto_pads&TestShapeInference.test_conv_auto_pads	  s      k'')9:k'')9:
 S#JlI
 
 	*30A0ACTUV	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/SS/ SQS	9// 5      nU R	                  U[        S[        R                  S
5      /5        g )NrN   )r   r   A   r  ?   r   r/  r  r   r0  r   )r1  rY  )r   r  r:  r  r;  r   r   s     r/   test_conv_auto_pad_dilation.TestShapeInference.test_conv_auto_pad_dilation	  s      k'')<=k'')9:
 S#Jli
 
 	#C):):<PQR	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r  r   r   r   r)  r)  r)  r  r   r   groupr   r   r   r   r   r   r   s     r/   test_conv_group"TestShapeInference.test_conv_group'	  s{      k'')9:k''9 vSz3a89
 	*30A0ACSTU	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/SS/S9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r   r   )r  r   r3   r  r   r=   rL  )r   r  r   r   r   s     r/   test_conv_only_one_pos)TestShapeInference.test_conv_only_one_pos4	  s{      k''4k''4 vSz3<=
 	*30A0A;OP	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/ SQS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r   r   Nr4  r   r   r  r  r   r*  rS  r   r  Nr4  r4  r   r   s     r/   test_conv_partial_missing_shape2TestShapeInference.test_conv_partial_missing_shapeA	  s}      k'')<=k'')9: vSz35GHI
 	#C):):<PQR	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/ SQS9// 5      nU R	                  U[        S[        R                  S 5      /5        g )	NrN   r)  r   r  r   Nr   r   r  r   r*  rS  r   r   s     r/   &test_conv_partial_missing_weight_shape9TestShapeInference.test_conv_partial_missing_weight_shapeO	  s|      k'')9:k'')<= vSz35GHI
 	*30A0A4HI	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS	/5      // 5      nU R	                  U[        S	[        R                  S
5      /5        g )NQ)Bq_num_headsq_seq_length	head_sizeK)rS  kv_num_heads
kv_seq_lenrV  V)rS  rX  rY  v_head_size	Attention)rR  rW  rZ  r   )rS  rT  rU  r[  r   r   s     r/   test_attention_4d$TestShapeInference.test_attention_4d\	  s       %%E %%D %%F$ #E 3
6 	&%%G		
rg   c                    U R                  S[        R                  S4/[        SS/SS/ SQ/ SQS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r)  AveragePoolr   r0  )r   r   r=   r5  r1  r@  rM  )r   r   r   r   r   r   r   s     r/   test_average_pool_auto_pads.TestShapeInference.test_average_pool_auto_pads	  su      ;$$&678!E)!*%	 
 	*30A0ACSTU	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS/SS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   r3   r   r   r   r`  r   r=   r@  rY  r3   r   r=   r=   r   r   s     r/    test_average_pool_with_dilations3TestShapeInference.test_average_pool_with_dilations	  sy      ;$$l34!C53%q!fQRTUPV
 
 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SSS/SS/SS/S9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
Nr   re  r`  r   r0  r=   r   r1  r@  rM  rY  rg  r   r   s     r/   Atest_average_pool_with_same_upper_padding_and_stride_and_dilationTTestShapeInference.test_average_pool_with_same_upper_padding_and_stride_and_dilation	  s      ;$$l34!EE)"#QF !f
 
 	*30A0A<PQ	
rg   c                &    U R                  S5        g )NRelur   rK   s    r/   	test_reluTestShapeInference.test_relu	  s    F#rg   c                &    U R                  S5        g )NIdentityrp  rq  s    r/   test_identity TestShapeInference.test_identity	  s    J'rg   c           	     \   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      [        S	S/S
/5      // 5      nU R	                  U[        S[        R                  S5      [        S
[        R                  S5      /5        g )Ninput1r   input2input3r=   r3   r   SequenceConstructry  rz  r{  in_sequenceru  output_sequencer=   Nr   rU   r   r   r   r|   r   r   s     r/   test_identity_sequence)TestShapeInference.test_identity_sequence	  s      ;,,i8;,,i8;,,i8 ')G- *}o8I7JK	 
 	/!;#4#4l 0%{'8'8,	
	
rg   c           	     x   U R                  S[        R                  S4/[        SS/S/5      [        SS/S/5      // 5      n[        R
                  " [        R                  S5      n[        R                  " U5      nU R                  U[        R                  " SU5      [        R                  " SU5      /5        g )N	in_tensorr   Optionalin_optionalru  output_optional)	rU   r   r   r   r   make_tensor_type_protomake_optional_type_protor|   make_value_info)rK   rq   tensor_type_protooptional_type_protos       r/   test_identity_optional)TestShapeInference.test_identity_optional	  s      ;,,i89*{mm_E*}o8I7JK 
 #99+:K:KYW$==>OP&&}6IJ&&'8:MN	
rg   c           
     6   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      [        S	S/S
/5      [        SS
/S/5      // 5      n[        R
                  " [        R                  S5      n[        R                  " U5      n[        R                  " U5      nU R                  U[        R                  " SU5      [        R                  " S
U5      [        R                  " SU5      /5        g )Nry  r   rz  r{  r|  r}  r~  r  r  r  ru  r  r  )
rU   r   r   r   r   r  make_sequence_type_protor  r|   r  )rK   rq   r  sequence_type_protor  s        r/   test_identity_optional_sequence2TestShapeInference.test_identity_optional_sequence	  s     ;,,i8;,,i8;,,i8 ')G- *}oG*}o8I7JK 
 #99|
 %==>OP$==>QR&&}6IJ&&}6IJ&&'8:MN	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r   r   Addr   r   r   s     r/   test_addTestShapeInference.test_add

  w      k''4k''4 usCj#./
 	*30A0A:NO	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r   r   Powr   r   r   s     r/   test_powTestShapeInference.test_pow
  r  rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r=   r   r   r   BitShiftr   RIGHT	directionrU   r   r*  r   r|   r    r   s     r/   test_bitshift TestShapeInference.test_bitshift$
  sy      k(()4k(()4 zC:sgFG
 	*30B0BINO	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   )   r   r   r   rA  r  r   r  r  r  r   s     r/    test_bitshift_broadcast_to_first3TestShapeInference.test_bitshift_broadcast_to_first1
  st      ;%%z2S+:L:Ld4STzC:sgFG

 	*30B0BJOP	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   rA  r   r  r  r   r  r  r  r   s     r/   !test_bitshift_broadcast_to_second4TestShapeInference.test_bitshift_broadcast_to_second;
  st      ;%%t,sK4F4F	.RSzC:sgFG

 	*30B0BINO	
rg   c                &    U R                  S5        g )NSumrp  rq  s    r/   test_sum_single"TestShapeInference.test_sum_singleE
  s    E"rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r   r   r   r  ro  rp  r   r   s     r/   test_sum_multi!TestShapeInference.test_sum_multiH
  s      k''4k''4k''4
 uow78
 	*5+2C2CZPQ	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS	/5      // 5      nU R	                  U[        S	[        R                  S
5      /5        g )NrN   )r   r   r3   r   r   r   r   r   )r   r   r  ro  rp  r   r   r   s     r/   test_sum_multi_broadcasting.TestShapeInference.test_sum_multi_broadcastingV
  s      k''4k''5k''2
 uow78
 	*5+2C2CZPQ	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   )r   r   r3   r   r  r  rp  r  r   r   s     r/   test_sum_broadcasting_param.TestShapeInference.test_sum_broadcasting_paramd
  sy      k''5k''5 usCj5'23
 	*5+2C2C[QR	
rg   c                    U R                  / [        S/ S/[        R                  SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NRandomNormalrp  ra  )r  r   )rU   r   r   r/  r|   r    r   s     r/   test_random_normal%TestShapeInference.test_random_normalq
  sf      "G%,,# 
 	*5+2D2DiPQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   r   RandomNormalLikerp  r   r   s     r/   test_random_normal_like*TestShapeInference.test_random_normal_like
  sd      ;$$i01)C55':;

 	*5+2C2CYOP	
rg   c           
         U R                  S[        R                  S4/[        SS/S/[        R                  S9// 5      nU R                  U[        S[        R                  S5      /5        g )Nr   r   r  rp  r  rU   r   r   r   r/  r|   r    r   s     r/   "test_random_normal_like_with_dtype5TestShapeInference.test_random_normal_like_with_dtype
  su      ;$$i01&EG%,,	 
 	*5+2D2DiPQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  	Bernoullirp  r   r   s     r/   test_bernoulli!TestShapeInference.test_bernoulli
  sc      ;$$f-.{SEE734

 	*5+2C2CVLM	
rg   c           
         U R                  S[        R                  S4/[        SS/S/[        R                  S9// 5      nU R                  U[        S[        R                  S5      /5        g )NrN   r   r  rp  r  r  r   s     r/   test_bernoulli_with_dtype,TestShapeInference.test_bernoulli_with_dtype
  su      ;$$i01EG%,,	 
 	*5+2D2DiPQ	
rg   c                    U R                  SUS4SUS4/[        USS/S5      // 5      nU R                  U[        S[        R
                  S5      /5        g )NrN   r   r   r   rU   r   r|   r    r   r  rK   r   
input_typerq   s       r/   _logical_binary_op%TestShapeInference._logical_binary_op
  sf      :z*S*j,IJrC:s+,

 	*30@0@*MN	
rg   c                    U R                  SUS4SUS4/[        USS/S5      // 5      nU R                  U[        S[        R
                  S5      /5        g )NrN   rD  r   r   r   r  r  s       r/   $_logical_binary_op_with_broadcasting7TestShapeInference._logical_binary_op_with_broadcasting
  sh       :v&j*(EFrC:s+,

 	*30@0@*MN	
rg   c                    U R                  S[        R                  5        U R                  S[        R                  5        g )NAndr  r   r  r  rq  s    r/   test_logical_and#TestShapeInference.test_logical_and
  .    {'7'7811%9I9IJrg   c                    U R                  S[        R                  5        U R                  S[        R                  5        g )NOrr  rq  s    r/   test_logical_or"TestShapeInference.test_logical_or
  s.    k&6&6711$8H8HIrg   c                    U R                  S[        R                  5        U R                  S[        R                  5        g )NXorr  rq  s    r/   test_logical_xor#TestShapeInference.test_logical_xor
  r  rg   c                    U R                  S[        R                  5        U R                  S[        R                  5        g )NGreaterr  rq  s    r/   test_greaterTestShapeInference.test_greater
  s.    	;+;+;<11)[=M=MNrg   c                    U R                  S[        R                  5        U R                  S[        R                  5        g )NLessr  rq  s    r/   	test_lessTestShapeInference.test_less
  s.    (8(8911&+:J:JKrg   c                    U R                  S[        R                  5        U R                  S[        R                  5        g NEqualr  rq  s    r/   
test_equalTestShapeInference.test_equal
  s.    )9)9:11';;K;KLrg   c                    U R                  S[        R                  5        U R                  S[        R                  5        g r  )r  r   r   r  rq  s    r/   test_equal_string$TestShapeInference.test_equal_string
  s.    ););<11';;M;MNrg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r   Notr   )rU   r   r  r   r|   r    r   s     r/   test_logical_not#TestShapeInference.test_logical_not
  s`      ;##Z01IecUC4P3QSU
 	*30@0@*MN	
rg   c                    U R                  S[        R                  5        U R                  S[        R                  5        g )NLessOrEqualr  rq  s    r/   test_less_or_equal%TestShapeInference.test_less_or_equal
  s.    {/?/?@11-AQAQRrg   c                    U R                  S[        R                  5        U R                  S[        R                  5        g )NGreaterOrEqualr  rq  s    r/   test_greater_or_equal(TestShapeInference.test_greater_or_equal
  s0     0+2B2BC112BKDTDTUrg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r=   r   r   r3   Flattenr   r=   rh  )r4     r   r   s     r/   test_flattenTestShapeInference.test_flatten
  se      ;$$l34y3%#Q78

 	*30A0A7KL	
rg   c                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r  r   )r=   <   r   r   s     r/   test_flatten_default_axis,TestShapeInference.test_flatten_default_axis  sc      ;$$l34y3%#/0

 	*30A0A7KL	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r   rh  )r   x   r   r   s     r/   test_flatten_zero_axis)TestShapeInference.test_flatten_zero_axis  se      ;$$l34y3%#Q78

 	*30A0A8LM	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   )r=   r  r   r3   r  r   r=   rh  )Nr  r   r   s     r/   test_flatten_unknown_dim+TestShapeInference.test_flatten_unknown_dim  se      ;$$n56y3%#Q78

 	*30A0A:NO	
rg   c           
         SnU R                  S[        R                  S4/[        SS/S/US9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr_  rN   r=   r   d   r  SpaceToDepthr   	blocksizer=   ,  r_  r_  r   rK   r   rq   s      r/   test_space_to_depth&TestShapeInference.test_space_to_depth#  sl      ;$$&678~useqAB

 	*30A0ACSTU	
rg   c           
         SnU R                  S[        R                  S4/[        SS/S/US9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr_  rN   )r=   r  r  r  r  r   r  )r=   Nr_  r_  r   r  s      r/   test_space_to_depth_unknown_dim2TestShapeInference.test_space_to_depth_unknown_dim.  sl      ;$$&89:~useqAB

 	*30A0ACTUV	
rg   c                    SnU R                  S[        R                  S4/[        SS/S/USS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr_  rN   r  DepthToSpacer   DCR)r  moder  r   r  s      r/   test_depth_to_space&TestShapeInference.test_depth_to_space9  sn      ;$$&678~usequMN

 	*30A0ACSTU	
rg   c                V   U R                  S[        R                  XU44S[        R                  SXC44S[        R                  SXD44/[        S/ SQSS/US	9// 5      nU R	                  U[        S[        R                  USX$45      [        S[        R                  SX$45      /5        g )
NrN   wr   rRNNrN   r)  r*  alllasthidden_sizer   rK   seqlen	batchsizeinpsize
hiddensizerq   s         r/   _rnn_forwardTestShapeInference._rnn_forwardD  s       k''&W)EFk''!Z)ABk''!Z)DE ?UFO
 
 	&;,,vq).P 'K--9/I	
	
rg   c                ,    U R                  SSSS5        g Nr      r_  r   )r6  rq  s    r/   test_rnn_forward#TestShapeInference.test_rnn_forward`  s    "b"a(rg   c                X   U R                  S[        R                  XU44S[        R                  SXC44S[        R                  SXD44/[        S/ SQSS/US	S
9// 5      nU R	                  U[        S[        R                  USX$45      [        S[        R                  SX$45      /5        g )NrN   r)  r=   r*  r+  r,  r-  r.  bidirectional)r0  r  r   r1  s         r/   _rnn_bidirectional%TestShapeInference._rnn_bidirectionalc  s       k''&W)EFk''!Z)ABk''!Z)DE #FO *- 
" 	&;,,vq).P 'K--9/I	
	
rg   c                V    U R                  SSSS5        U R                  SSSSS5        g )Nr  r:  r_  r   r>  )_rnn_layoutrq  s    r/   test_rnn_layout"TestShapeInference.test_rnn_layout  s,    RQ'RQ8rg   c                n   U R                  S[        R                  X!U44S[        R                  SXC44S[        R                  SXD44/[        S/ SQSS/USUS	9// 5      nUS
:X  a  SnOSnU R	                  U[        S[        R                  X!Xt45      [        S[        R                  X'U45      /5        g )NrN   r)  r   r*  r+  r,  r-  r.  )r0  layoutr  r>  r=   r   )rK   r2  r3  r4  r5  r  rq   num_directionss           r/   rB  TestShapeInference._rnn_layout  s       k'')W)EFk''!Z)ABk''!Z)DE #FO *'	 !
$ 'NN&%%C
 'K--	:/V		
rg   c                ,    U R                  SSSS5        g r9  )r?  rq  s    r/   test_rnn_bidirectional)TestShapeInference.test_rnn_bidirectional  s    BA.rg   c                   U R                  S[        R                  XU44S[        R                  SSU-  U44S[        R                  SSU-  U44/[        S/ SQ/ SQUS	9// 5      nU R	                  U[        S
[        R                  USX$45      [        S[        R                  SX$45      [        S[        R                  SX$45      /5        g )NrN   r)  r   r   r*  LSTMr,  )r-  hiddenr.  r/  r-  rN  r.  r   r1  s         r/   _lstm_forward TestShapeInference._lstm_forward  s       k''&W)EFk''!Q^W)EFk''!Q^Z)HI #- *	 
  	&;,,vq).P 'k//!Y1K 'K--9/I
	
rg   c                ,    U R                  SSSS5        g r9  )rO  rq  s    r/   test_lstm_forward$TestShapeInference.test_lstm_forward  s    2r2q)rg   c                .   U R                  S[        R                  S4/[        SSS/SS/5      // [	        S[        R
                  SS5      /S	9nU R                  U[        S[        R                  S
5      [        S[        R
                  S
5      /5        g )NrN   r   r   r3   r_  TopKkr   r   rA  r   rE  )r   r   r3   r=   rU   r   r   r   r   rJ   r|   r    r   s     r/   test_topk_default_axis)TestShapeInference.test_topk_default_axis  s      ;$$m45vSzC:67$S+*;*;T4HI	 ! 
 	&sK,=,=|L&sK,=,=|L	
rg   c                ,   U R                  S[        R                  S4/[        SSS/SS/SS9// [	        S[        R
                  S	S
5      /S9nU R                  U[        S[        R                  S5      [        S[        R
                  S5      /5        g )NrN   rU  rV  rW  r   r   r=   rh  rA  r   rE  )r   r   r=   r_  rX  r   s     r/   	test_topkTestShapeInference.test_topk  s      ;$$m45vSzC:A>?$S+*;*;T4HI	 ! 
 	&sK,=,=}M&sK,=,=}M	
rg   c                n   U R                  S[        R                  S4/[        SSS/SS/SS9// [	        S[        R
                  S	[        R                  " S
/SS9R                  5       SS9/S9nU R                  U[        S[        R                  S5      [        S[        R
                  S5      /5        g )NrN   rU  rV  rW  r   r   r=   rh  rA  r   r  r  Tr  rE  )r   r   r   r_  )rU   r   r   r   r   rJ   r   r  r  r|   r    r   s     r/   test_topk_raw_data%TestShapeInference.test_topk_raw_data  s      ;$$m45vSzC:A>?%%1#U3;;=	 ! 
 	&sK,=,=}M&sK,=,=}M	
rg   c           
        U R                  S[        R                  S4S[        R                  S4/[	        SSS/SS/SS	9// 5      nU R                  U[        S[        R                  S
5      [        S[        R                  S
5      /5        g )NrN   rU  rW  rA  rV  r   r   r=   rh  )NNNNr  r   s     r/   +test_topk_missing_k_value_output_rank_check>TestShapeInference.test_topk_missing_k_value_output_rank_check  s      ;$$m4sK<M<Mt6TUvSzC:A>?

 	&**,D '**,D	
	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S 4/[        S/ SQS/5      // 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   rg  r3   r   r3   r  r   Gemmro  rp  rg  r  r   r   s     r/   	test_gemmTestShapeInference.test_gemm"  s      k''0k''1k''.
 v89
 	*5+2C2CWMN	
rg   c           
     
   U R                  S[        R                  S4S[        R                  S4S[        R                  S 4/[        S/ SQS/S	S
9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r3   rg  r   rf  r   rg  ro  rp  r   )transArh  r   r   s     r/   test_gemm_transA#TestShapeInference.test_gemm_transA0        k''0k''1k''.
 vBC
 	*5+2C2CWMN	
rg   c           
     
   U R                  S[        R                  S4S[        R                  S4S[        R                  S 4/[        S/ SQS/S	S
9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   re  r   r  r3   r   rg  ro  rp  r   )transBrh  r   r   s     r/   test_gemm_transB#TestShapeInference.test_gemm_transB>  rp  rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S 4/[        S/ SQS/S	S	S
9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rl  r   rr  r   rg  ro  rp  r   )rm  rs  rh  r   r   s     r/   test_gemm_transA_and_transB.TestShapeInference.test_gemm_transA_and_transBL  s      k''0k''1k''.
 v!LM
 	*5+2C2CWMN	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   )   rg  r   )rg     rg  rp  )rz  r{  r   r   s     r/   test_gemm_no_bias$TestShapeInference.test_gemm_no_biasZ  st      ;$$g.k6G6G0QRvSzE734

 	*5+2C2CXNO	
rg   c                "   U R                  S[        R                  S4/[        SSSSSS9// [	        S[        R
                  S	S5      /S
9n[        5       nSUl        SUl        U R                  U[        S[        R                  S5      /U/S9  g )NrN   r  r   r  ReduceL1r   r   r   r  keepdimsr  r   rE  r  rz  r  r   rU   r   r   r   r   rJ   r   r+   r.   r|   r    r  s      r/   #test_reduce_op_shape_2_axis_opset136TestShapeInference.test_reduce_op_shape_2_axis_opset13d  s      ;$$k23z3&1EF$V[->->fMN	 ! 
 +,! "#C):):EBC(/ 	 	
rg   c                H   U R                  S[        R                  S4S[        R                  S4/[	        SSS/SSS9// [        S[        R                  SS	5      /S
9n[        5       nSUl        SUl        U R                  U[        S[        R                  S5      /U/S9  g )NrN   r  r  r   r  r   r   r  r   rE  r  r  r  r   rU   r   r   rJ   r   r   r   r+   r.   r|   r    r  s      r/   #test_reduce_op_shape_2_axis_opset186TestShapeInference.test_reduce_op_shape_2_axis_opset18u  s      ;$$k2V[=N=NPT4UVzC=#BC$V[->->fMN	 ! 
 +,! "#C):):EBC(/ 	 	
rg   c                    U R                  S[        R                  S4/[        SSSSSS9// / S9n[	        S	S
S9nU R                  U[        S[        R                  S5      /U/S9  g )NrN   r  r   r  r  r   rA  r   r  rE  r  rz  r+   r.   r  r   r  r   )rU   r   r   r   r   r|   r    r  s      r/    test_reduce_op_empty_set_opset133TestShapeInference.test_reduce_op_empty_set_opset13  s      ;$$k23z3$CD	 ! 
 +"bA#C):):KHI(/ 	 	
rg   c                ,   U R                  S[        R                  S4S[        R                  S4/[	        SSS/SSS9// [        S[        R                  SS5      /S	9n[        S
SS9nU R                  U[        S[        R                  S5      /U/S9  g )NrN   r  r  rA  r  r   r   r  rE  r  r  r  r  r   )	rU   r   r   rJ   r   r   r   r|   r    r  s      r/    test_reduce_op_empty_set_opset183TestShapeInference.test_reduce_op_empty_set_opset18  s      ;$$k2V[=N=NPT4UVzC=#BC$V[->->dKL	 ! 
 +"bA#C):):KHI(/ 	 	
rg   c                "   U R                  S[        R                  S4/[        SSSSSS9// [	        S[        R
                  S	S5      /S
9n[        5       nSUl        SUl        U R                  U[        S[        R                  S5      /U/S9  g )NrN   r  r  r   r   r   r  r  r   rE  r  rz  r  r   r   r   r  r  s      r/   &test_reduce_op_shape_keep_dims_opset139TestShapeInference.test_reduce_op_shape_keep_dims_opset13  s      ;$$k23z3&1EF$V[->->fMN	 ! 
 +,! "#C):):JGH(/ 	 	
rg   c                H   U R                  S[        R                  S4S[        R                  S4/[	        SSS/SSS9// [        S[        R                  SS	5      /S
9n[        5       nSUl        SUl        U R                  U[        S[        R                  S5      /U/S9  g )NrN   r  r  r   r  r   r   r  r   rE  r  r  r  r   r  r  s      r/   &test_reduce_op_shape_keep_dims_opset189TestShapeInference.test_reduce_op_shape_keep_dims_opset18  s      ;$$k2V[=N=NPT4UVzC=#BC$V[->->fMN	 ! 
 +,! "#C):):JGH(/ 	 	
rg   c                    U R                  S[        R                  S4/[        SSS5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r  r   r   s     r/   "test_reduce_op_shape_default_value5TestShapeInference.test_reduce_op_shape_default_value  s_      ;$$k23z3,-

 	*30A0A9MN	
rg   c           
         U R                  S[        R                  S4/[        SSSSS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r   r  r?   r   r   s     r/   -test_reduce_op_shape_no_axes_do_not_keep_dims@TestShapeInference.test_reduce_op_shape_no_axes_do_not_keep_dims  sa      ;$$k23z3a89

 	*30A0A2FG	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /5        g )
NrN   r  r  r   r  r   )r$   r  rE  r  r  r   s     r/   "test_reduce_op_shape_negative_axis5TestShapeInference.test_reduce_op_shape_negative_axis  s      ;$$k2V[=N=NPT4UVzC=#67$V[->->hOP	 ! 
 	*30A0A:NO	
rg   c                    U R                  S[        R                  S4/[        SSSSSS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  ArgMaxr   r   ri  r  r  rU   r   r   r   r|   r    rJ   r   s     r/   test_argmax_shape$TestShapeInference.test_argmax_shape  sc      ;$$k23xcA>?

 	*30A0A;OP	
rg   c                    U R                  S[        R                  S4/[        SSSSSS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r   r  )r   r  r  r   s     r/   test_argmax_shape_keepdims-TestShapeInference.test_argmax_shape_keepdims  sc      ;$$k23xcA>?

 	*30A0A7KL	
rg   c                    U R                  S[        R                  S4/[        SSS5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r  r   )r   r   r  r  r   s     r/   test_argmax_shape_default_value2TestShapeInference.test_argmax_shape_default_value  s^      ;$$k23i#s6S5TVX
 	*30A0A:NO	
rg   c           
         U R                  S[        R                  S4/[        SSSSS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r  rh  r  r  r   s     r/   test_argmax_shape_negative_axis2TestShapeInference.test_argmax_shape_negative_axis  sa      ;$$k23xc34

 	*30A0A;OP	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )Ndatara  ratior?   Dropoutrp  r   r   s     r/   test_dropoutTestShapeInference.test_dropout  s       %% +++R0 y67"3eW=>
  	&%%
	
rg   c                (    U R                  SSSSS9  g )NLRN      ?r   )alphabetasizerp  rq  s    r/   test_LRNTestShapeInference.test_LRN'  s    E3Q?rg   c           	     T   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ S	QS
/5      // 5      nU R	                  U[        S
[        R                  S5      /5        g )NrN   r  r  r  r   meanvarBatchNormalizationrN   r  r   r  r  rp  r   r   s     r/   test_batch_norm"TestShapeInference.test_batch_norm*  s      k''9+++T2k''.**D1))40 (*Lug
 
 	*5+2C2C_UV	
rg   c           	     T   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ S	QS
/5      // 5      nU R	                  U[        S
[        R                  S5      /5        g )NrN   r  r  rA  r   r  r  r  r  rp  r   r   s     r/   test_batch_norm_rank1(TestShapeInference.test_batch_norm_rank1>  s      k''0+++T2k''.**D1))40 (*Lug
 
 	*5+2C2CVLM	
rg   c           	     f   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        S	/ S
QS/5      // 5      nU R	                  [
        R                  R                  U R                  U5        g )NrN   r  r  r   r   rA  r  r  r  r  rp  r   r   s     r/   test_batch_norm_invalid*TestShapeInference.test_batch_norm_invalidR  s      k''0+++V4k''.**D1))40 (*Lug
 
 	$..==t~~uUrg   c                    U R                  S[        R                  S4/[        SS/SS/SSS9// 5      nU R	                  U[        S[        R                  S	5      [        S[        R                  S	5      /5        g )
NrN   r   Splitr   r   r$   r=   ri  num_outputsr[  r   r   s     r/   test_split_negative_axis+TestShapeInference.test_split_negative_axisd  s}      ;$$f-.wSzJK

 	&sK,=,=vF&sK,=,=vF	
rg   c                P   U R                  S[        R                  S4S[        R                  S4/[	        SSS/SS/SS	9// [        S[        R                  SS
5      /S9nU R                  U[        S[        R                  S5      [        S[        R                  S5      /5        g )NrN   r   splitr   r  r   r   r   rh  r  rE  r   r   r  r   s     r/   test_split_with_split_attribute2TestShapeInference.test_split_with_split_attributer  s      ;$$f-9J9JD/QRwgc
CD$Wk.?.?vNO	 ! 
 	&sK,=,=vF&sK,=,=vF	
rg   c                P   U R                  S[        R                  S4S[        R                  S4/[	        SSS/SS/SS	9// [        S[        R                  SS
5      /S9nU R                  U[        S[        R                  S5      [        S[        R                  S5      /5        g )NrN   )r=   r   r   r  r   r  r   r   r   rh  r  rE  )r=   Nr   r  r   s     r/   1test_split_with_split_attribute_unknown_split_dimDTestShapeInference.test_split_with_split_attribute_unknown_split_dim  s      k''7+++T2 wgc
CD$Wk.?.?vNO ! 
 	&sK,=,=~N&sK,=,=~N	
rg   c                    U R                  S[        R                  S4/[        SS/SS/SSS9// 5      nU R	                  U[        S[        R                  S	5      [        S[        R                  S	5      /5        g )
NrN   r  r  r   r   r   r=   r  r3   r   rg  r   r   s     r/   test_split_from_GLU&TestShapeInference.test_split_from_GLU  s}      ;$$i01wSzqIJ

 	&sK,=,=yI&sK,=,=yI	
rg   c                ,   U R                  S[        R                  S4/[        SS// SQSSS9// 5      nU R	                  U[        S[        R                  S	5      [        S
[        R                  S	5      [        S[        R                  S5      /5        g )NrN   )r)  r=   r  r   r   r   r   r   r  r   r  r   r   r[  r   r   s     r/   test_split_uneven_split_2d-TestShapeInference.test_split_uneven_split_2d  s      ;$$f-.wQANO

 	&sK,=,=vF&sK,=,=vF&sK,=,=vF	
rg   c                ,   U R                  S[        R                  S4/[        SS// SQSSS9// 5      nU R	                  U[        S[        R                  S	5      [        S
[        R                  S	5      [        S[        R                  S5      /5        g )NrN   )r=   rg  r   r  r  r   r   r  r   r=   r   r   r   r   r=   r   r   r   r   s     r/   test_split_uneven_split_3d-TestShapeInference.test_split_uneven_split_3d  s      ;$$i01wQANO

 	&sK,=,=yI&sK,=,=yI&sK,=,=yI	
rg   c                H   U R                  S[        R                  S4/[        SS/SS/SSS9[        S	S/S
/5      // 5      nU R	                  U[        S[        R                  S5      [        S[        R                  S5      [        S
[        R                  S5      /5        g )NrN   r  r  r   r   r   r=   r  Sigmoidr   r  r   r   s     r/   test_GLU_partial#TestShapeInference.test_GLU_partial  s      ;$$i01'C53*1!L)cUSE2 
 	&sK,=,=yI&sK,=,=yI&sK,=,=yI	
rg   c                   U R                  S[        R                  S4/[        SS/SS/SSS9[        S	S/S
/5      [        SSS
/S/5      // 5      nU R	                  U[        S[        R                  S5      [        S[        R                  S5      [        S
[        R                  S5      [        S[        R                  S5      /5        g )NrN   r  r  r   r   r   r=   r  r  r   Mulr   r  r   r   s     r/   test_GLUTestShapeInference.test_GLU  s      ;$$i01'C53*1!L)cUSE2%#scU3
 
 	&sK,=,=yI&sK,=,=yI&sK,=,=yI&sK,=,=yI		
rg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r   r3   Softmaxr   r   r   s     r/   test_softmax_2d"TestShapeInference.test_softmax_2d  `      ;$$f-.9seS1Q0RTV
 	*30A0A6JK	
rg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r   r   s     r/   test_softmax_3d"TestShapeInference.test_softmax_3d  a      ;$$i01y3%-.

 	*30A0A9MN	
rg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      nU R	                  [
        R                  R                  U R                  U5        g )NrN   r?   r  r   r   r   s     r/   test_softmax_scalar_invalid.TestShapeInference.test_softmax_scalar_invalid  \      ;$$b)*Yy3%-M,NPR
 	$..==t~~uUrg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  Hardmaxr   r   r   s     r/   test_hardmax_2d"TestShapeInference.test_hardmax_2d  r  rg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r   r   s     r/   test_hardmax_3d"TestShapeInference.test_hardmax_3d  r  rg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      nU R	                  [
        R                  R                  U R                  U5        g )NrN   r?   r  r   r   r   s     r/   test_hardmax_scalar_invalid.TestShapeInference.test_hardmax_scalar_invalid  r  rg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  
LogSoftmaxr   r   r   s     r/   test_logsoftmax_2d%TestShapeInference.test_logsoftmax_2d  sa      ;$$f-.|cUC01

 	*30A0A6JK	
rg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r   r   s     r/   test_logsoftmax_3d%TestShapeInference.test_logsoftmax_3d  sa      ;$$i01|cUC01

 	*30A0A9MN	
rg   c                    U R                  S[        R                  S4/[        SS/S5      // 5      nU R	                  [
        R                  R                  U R                  U5        g )NrN   r?   r  r   r   r   s     r/   test_logsoftmax_scalar_invalid1TestShapeInference.test_logsoftmax_scalar_invalid)  s\      ;$$b)*Y|cUC-P,QSU
 	$..==t~~uUrg   c           
         U R                  S[        R                  S4/[        SS/SSS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r$   rh  r   r   s     r/    test_logsoftmax_3d_negative_axis3TestShapeInference.test_logsoftmax_3d_negative_axis/  sc      ;$$i01|cUCb9:

 	*30A0A9MN	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   re  MaxPoolr   r=   r@  r3   r   r   r   r   r   s     r/   test_maxpoolTestShapeInference.test_maxpool9  si      ;$$l34y3%#aVDE

 	*30A0A<PQ	
rg   c           
         U R                  S[        R                  S4/[        SS/SS/SS/S9// 5      nU R	                  U[        S[        R                  S5      [        S[        R                  S5      /5        g )	Nr   re  r  r   Zr=   r  r  r  r   s     r/   test_maxpool_with_indices,TestShapeInference.test_maxpool_with_indicesC  s      ;$$l34y3%#s1a&IJ

 	&sK,=,=|L&sK,=,=|L	
rg   c           
         U R                  S[        R                  S4/[        SS/S// SQS9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   r3   r   r   r   r   r  r   rt  r  r3   r   r   r   r   r   r   s     r/   test_maxpool_3D"TestShapeInference.test_maxpool_3DQ  se      ;$$o67y3%#YGH

 	*30A0A?ST	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS// SQS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr   re  r  r   r=   r   r   r=   r=   r@  rT  r3   r   r4  r4  r   r   s     r/   test_maxpool_with_padding,TestShapeInference.test_maxpool_with_padding[  sr      ;$$l34use1a&|
 
 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS// SQSS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr   re  r  r   r=   r'  r@  rT  rM  r  r   r   s     r/   $test_maxpool_with_padding_and_stride7TestShapeInference.test_maxpool_with_padding_and_stridei  s}      ;$$l34EE"#Q%F	 
 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS/SS/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr   r:     #   r3  r  r   r=   Fr@  rM  	ceil_mode)r:  r2  r{  r{  r   r   s     r/   test_maxpool_with_floor_mode/TestShapeInference.test_maxpool_with_floor_mode|  s      ;$$&789EE"#QF#	 
 	*30A0ACTUV	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS/SS/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr   r1  r  r   r=   Tr4  )r:  r2  r  r  r   r   s     r/   test_maxpool_with_ceil_mode.TestShapeInference.test_maxpool_with_ceil_mode  s      ;$$&789EE"#QF"	 
 	*30A0ACTUV	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS/SS/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
Nr   r   r   r   r   r  r   r   r=   Tr4  r'  r   r   s     r/   test_maxpool_ceil$TestShapeInference.test_maxpool_ceil  s}      ;$$l34EE"#QF"	 
 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS/SS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   re  r  r   r=   rf  rg  r   r   s     r/   test_maxpool_with_dilations.TestShapeInference.test_maxpool_with_dilations  sq      ;$$l34y3%#aVPQSTvVW

 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SSS/SS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr   re  r  r   r0  r=   ra  rg  r   r   s     r/   /test_maxpool_with_same_upper_padding_and_strideBTestShapeInference.test_maxpool_with_same_upper_padding_and_stride  }      ;$$l34EE)"#QF	 
 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SSS/SS/SS/S9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
Nr   re  r  r   r0  r=   r   rk  rg  r   r   s     r/   <test_maxpool_with_same_upper_padding_and_stride_and_dilationOTestShapeInference.test_maxpool_with_same_upper_padding_and_stride_and_dilation        ;$$l34EE)"#QF !f
 
 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SSS/SS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr   re  r  r   r0  r=   r   ra  r   r   s     r/   3test_maxpool_with_same_upper_padding_and_stride_oneFTestShapeInference.test_maxpool_with_same_upper_padding_and_stride_one  rE  rg   c                    U R                  S[        R                  S4/[        SS/S/SSS/SS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr   r3   r   rK  rK  r  r   
SAME_LOWERr=   ra  r3   r   r3   r3   r   r   s     r/   /test_maxpool_with_same_lower_padding_and_strideBTestShapeInference.test_maxpool_with_same_lower_padding_and_stride  rE  rg   c                    U R                  S[        R                  S4/[        SS/S/SSS/SS/SS/S9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
Nr   rN  r  r   rO  r=   r   rk  rP  r   r   s     r/   <test_maxpool_with_same_lower_padding_and_stride_and_dilationOTestShapeInference.test_maxpool_with_same_lower_padding_and_stride_and_dilation  rI  rg   c                    U R                  S[        R                  S4/[        SS/S/SSS/SS/S9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
Nr   re  r  r   rO  r=   r   ra  r3   r   r   r   r   r   s     r/   3test_maxpool_with_same_lower_padding_and_big_strideFTestShapeInference.test_maxpool_with_same_lower_padding_and_big_stride   rE  rg   c           
         U R                  S[        R                  S4/[        SS/S/SS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   re  r`  r   r=   r  r  r   r   s     r/   test_averagepool#TestShapeInference.test_averagepool3  si      ;$$l34}secU!QHI

 	*30A0A<PQ	
rg   c           
         U R                  S[        R                  S4/[        SS/S// SQS9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   r"  r`  r   rt  r  r#  r   r   s     r/   test_averagepool_3D&TestShapeInference.test_averagepool_3D=  se      ;$$o67}secUKL

 	*30A0A?ST	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS// SQS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr   re  r`  r   r=   r'  r(  r)  r   r   s     r/   test_averagepool_with_padding0TestShapeInference.test_averagepool_with_paddingG  sr      ;$$l34!C53%q!f<
 
 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS// SQSS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr   re  r`  r   r=   r'  r-  r  r   r   s     r/   (test_averagepool_with_padding_and_stride;TestShapeInference.test_averagepool_with_padding_and_strideU  s}      ;$$l34!EE"#Q%F	 
 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS/SS/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
Nr   r<  r`  r   r   r=   Tr4  r'  r   r   s     r/   test_averagepool_ceil(TestShapeInference.test_averagepool_ceilh  s}      ;$$l34!EE"#QF"	 
 	*30A0A<PQ	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   re  LpPoolr   r=   r  r  r   r   s     r/   test_lppoolTestShapeInference.test_lppool{  si      ;$$l34x#QFCD

 	*30A0A<PQ	
rg   c           
         U R                  S[        R                  S4/[        SS/S// SQS9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   r"  rj  r   rt  r  r#  r   r   s     r/   test_lppool_3D!TestShapeInference.test_lppool_3D  se      ;$$o67x#IFG

 	*30A0A?ST	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS// SQS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr   re  rj  r   r=   r'  r(  r)  r   r   s     r/   test_lppool_with_padding+TestShapeInference.test_lppool_with_padding  sk      ;$$l34x#QFVW

 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS// SQSS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )	Nr   re  rj  r   r=   r'  r-  r  r   r   s     r/   #test_lppool_with_padding_and_stride6TestShapeInference.test_lppool_with_padding_and_stride  s}      ;$$l34EE"#Q%F	 
 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SS/SS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   re  rj  r   r=   rf  rg  r   r   s     r/   test_lppool_with_dilations-TestShapeInference.test_lppool_with_dilations  sp      ;$$l34x#QFqRSfUV

 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/SSS/SS/SS/S9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
Nr   re  rj  r   r0  r=   r   rk  rg  r   r   s     r/   ;test_lppool_with_same_upper_padding_and_stride_and_dilationNTestShapeInference.test_lppool_with_same_upper_padding_and_stride_and_dilation  s      ;$$l34EE)"#QF !f
 
 	*30A0A<PQ	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS/S9// 5      nU R                  U[        S[        R                  S	5      /5        g )
Nr   re  rois)r=   r3   
MaxRoiPoolr   r=   )pooled_shape)r=   r   r=   r=   r  r   s     r/   test_roipoolTestShapeInference.test_roipool  s      k''6**F3 |c6]SEAOP
 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  LpNormalizationrp  r   r   s     r/   test_lp_normTestShapeInference.test_lp_norm  sd      ;$$o67(3%%9:

 	*5+2C2C_UV	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   r  r  r  r   InstanceNormalization)rN   r  r   rp  r   r   s     r/   test_instance_norm%TestShapeInference.test_instance_norm  s      k''9+++T2k''.
 .0CeWMN
 	*5+2C2C_UV	
rg   c                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   re  GlobalMaxPoolr   rW  r   r   s     r/   test_global_maxpool&TestShapeInference.test_global_maxpool  sc      ;$$l34u56

 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   re  GlobalAveragePoolr   rW  r   r   s     r/   test_global_averagepool*TestShapeInference.test_global_averagepool  sd      ;$$l34*SEC59:

 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   re  GlobalLpPoolr   rW  r   r   s     r/   test_global_lppool%TestShapeInference.test_global_lppool  sc      ;$$l34~use45

 	*30A0A<PQ	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS/S9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
Nr      0   r  r  r  r  r:  r   r   ConvTransposer   r=   rL  )r  r:  !   r  r   r   s     r/   test_conv_transpose&TestShapeInference.test_conv_transpose  s      k'')9:k''8 c
C!QHI
 	*30A0ACSTU	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS// SQS	9// 5      nU R	                  U[        S[        R                  S
5      /5        g )Nr   r  r  r  r  r   r=   r'  )rM  rT  r  r:  r   r   r   r   s     r/   test_conv_transpose_with_pads0TestShapeInference.test_conv_transpose_with_pads  s      k'')9:k''8
 #c3Zq!f<
 
 	*30A0ACSTU	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS// SQS	S	/S
9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   r  r  r  r  r   r=   r'  $   )rM  rT  r?  )r  r:  r  r  r   r   s     r/   %test_conv_transpose_with_output_shape8TestShapeInference.test_conv_transpose_with_output_shape+  s      k'')9:k''8
 ##JF%"$b	 
" 	*30A0ACSTU	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS/SS// S	QS
9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   r  r  )r  r:  NNr  r   r   r=   r'  )r@  rM  rT  r  r   r   s     r/   %test_conv_transpose_with_kernel_shape8TestShapeInference.test_conv_transpose_with_kernel_shapeA  s      k'')9:k'')=>
 ##J"#QF%	 
" 	*30A0ACSTU	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS// SQS	S	/S
9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   r  r  r  r  r   r=   r'  r   )rM  rT  rY  )r  r:  "   r  r   r   s     r/   "test_conv_transpose_with_dilations5TestShapeInference.test_conv_transpose_with_dilationsW  s      k'')9:k''8
 ##JF% !f	 
" 	*30A0ACSTU	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS// SQSS	9// 5      nU R	                  U[        S[        R                  S
5      /5        g )Nr   r  r  r  r  r   r=   r'  )rM  rT  rA  )r  r  r   r   r   r   s     r/   test_conv_transpose_with_group1TestShapeInference.test_conv_transpose_with_groupm  s      k'')9:k''8
 ##JF%	 
" 	*30A0ACSTU	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS// SQSS	S	/S
9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   r  r  r  r  r   r=   r'  r  )rM  rT  rA  r?  )r  r  r  r  r   r   s     r/   /test_conv_transpose_with_group_and_output_shapeBTestShapeInference.test_conv_transpose_with_group_and_output_shape  s      k'')9:k''8
 ##JF%"$b
 !
$ 	*30A0ACSTU	
rg   c                h   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS	S
SS// SQS9// 5      nU R	                  [
        R                  R                  [
        R                  R                  [        R                  " U5      SS9  g )Nr   r'  r  r   r   r   r   rS  rA  r  )r   r  rS  r   r0  r   )r   r   r   r   )r1  rM  rT  TrZ   )rU   r   r   r   r   r]   r^   r   r_   r   r\   r   s     r/   +test_conv_transpose_with_pads_and_auto_pads>TestShapeInference.test_conv_transpose_with_pads_and_auto_pads  s      k''6k''6k''. ##)F%	 !
$ 	  //  --e$	 	 	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/SSSS/S	9// 5      nU R	                  U[        S[        R                  S
5      /5        g )Nr   r  r  r  r  r   r0  r=   r6  )r  r:  r:  r:  r   r   s     r/   test_conv_transpose_auto_pads0TestShapeInference.test_conv_transpose_auto_pads  s      k'')9:k''8
 ##J)F 
  	*30A0ACSTU	
rg   c           
         U R                  S[        R                  S4/[        SSS/ SQS9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   r  MeanVarianceNormalizationr   )r   r=   r   r  r   r   s     r/   test_mvn_function_output_shape1TestShapeInference.test_mvn_function_output_shape  sd      ;$$&6782C9MN

 	*30A0ACSTU	
rg   c                   SnSnSnSn[        S[        R                  S 5      [        S[        R                  S 5      /n[        S[        R                  S 5      [        S[        R                  S 5      /n[        R                  " [        S	S/S/5      [        S	S/S/5      /S
UU5      nU R                  S[        R                  X44S[        R                  XU44/[        S/ SQSS/SUS9// 5      nU R                  U[        S[        R                  X45      [        S[        R                  XU45      /[        R                  " [        S5      /S9  g )Nr   sequencer=   r   loop_state_inr>  loop_state_outrB  ru  subgraphloop_state_orig
scan_inputScan)r  r  r  loop_state_finalscan_outputnum_scan_inputsbodyr)  r   r    r   rH   r   r   r   rU   r   r|   r   r   )	rK   
batch_sizeseq_len
input_sizeloop_state_sizerP   output_value_infosr  rq   s	            r/   	test_scanTestShapeInference.test_scan  s   

 #?K4I4I4P"7K,A,A4H

 ##3[5J5JDQ"8[-B-BDI

 $$*&7:J9KL*wi(< 
   "K$5$5
7TU{00:
2ST
 9'7$%! 
" 	&&(9(9J;X '!;#4#4zJ6W	 "..{A>? 	 	
rg   c                   SnSnSn[        S[        R                  S 5      [        S[        R                  S 5      /n[        S[        R                  S 5      [        S[        R                  S 5      /n[        R                  " [        SS/S/5      [        SS/S/5      /S	UU5      nU R                  S
[        R                  U44S[        R                  X44/[        SS
S/SS/SUS9// 5      nU R                  U[        S[        R                  U45      [        S[        R                  X45      /[        R                  " [        S5      /S9  g )Nr  r=   r   r  r>  r  rB  ru  r  r  r  r  r  r  r   r  rK  r   r  )rK   r  r  r  rP   r  r  rq   s           r/   test_scan_opset9#TestShapeInference.test_scan_opset9  s   
 #?K4I4I4P"7K,A,A4H

 ##3[5J5JDQ"8[-B-BDI

 $$*&7:J9KL*wi(< 
   "K$5$57IJ{0072GH
 &5'7$%! 
" 	&&(9(9O;M '!;#4#4w6K	 "..{A>? 	 	
rg   c                   SnSnSnSn[        S[        R                  S 5      [        S[        R                  S 5      /n[        S[        R                  S 5      [        S[        R                  S 5      /n[        R                  " [        S	S/S/5      [        S	S/S/5      /S
UU5      nU R                  S[        R                  U44S[        R                  XU44/[        SSS/SS/SUS/S9// 5      nU R                  U[        S[        R                  U45      [        S[        R                  X!U45      /[        R                  " [        S5      /S9  g )Naxis0r  r=   r   r  r>  r  rB  ru  r  r  r  r  r  r  r   )r  r  scan_input_axesrK  r   r  	rK   
axis_0_lenr  r  r  rP   r  r  rq   s	            r/   test_scan_opset9_axes(TestShapeInference.test_scan_opset9_axesG  s   

 #?K4I4I4P"7K,A,A4H

 ##3[5J5JDQ"8[-B-BDI

 $$*&7:J9KL*wi(< 
   "K$5$57IJ{00:
2ST
 &5'7$%!%&C	 
$ 	&&(9(9O;M '!;#4#4wJ6W	 "..{A>? 	 	
rg   c                   SnSnSnSn[        S[        R                  S 5      [        S[        R                  S 5      /n[        S[        R                  S 5      [        S[        R                  S 5      /n[        R                  " [        S	S/S/5      [        S	S/S/5      /S
UU5      nU R                  S[        R                  U44S[        R                  XU44/[        SSS/SS/SUS/S/S9// 5      nU R                  U[        S[        R                  U45      [        S[        R                  XU45      /[        R                  " [        S5      /S9  g )Nr  r  r=   r   r  r>  r  rB  ru  r  r  r  r  r  r  r   r  r  r  scan_output_axesrK  r   r  r  s	            r/   test_scan_opset9_output_axes/TestShapeInference.test_scan_opset9_output_axes  s   

 #?K4I4I4P"7K,A,A4H

 ##3[5J5JDQ"8[-B-BDI

 $$*&7:J9KL*wi(< 
   "K$5$57IJ{00:
2ST
 &5'7$%!%&C&'S
 !
& 	&&(9(9O;M '!;#4#4zJ6W	 "..{A>? 	 	
rg   c                   SnSnSnSn[        S[        R                  S 5      [        S[        R                  S 5      /n[        S[        R                  S 5      [        S[        R                  S 5      /n[        R                  " [        S	S/S/5      [        S	S/S/5      /S
UU5      nU R                  S[        R                  U44S[        R                  XU44/[        SSS/SS/SUS/S/S9// 5      nU R                  U[        S[        R                  U45      [        S[        R                  XU45      /[        R                  " [        S5      /S9  g )Nr  r  r=   r   r  r>  r  rB  ru  r  r  r  r  r  r  r   r  r  rK  r   r  r  s	            r/   test_scan_opset9_negative_axes1TestShapeInference.test_scan_opset9_negative_axes  s   

 #?K4I4I4P"7K,A,A4H

 ##3[5J5JDQ"8[-B-BDI

 $$*&7:J9KL*wi(< 
   "K$5$57IJ{00:
2ST
 &5'7$%!%'D&(T
 !
& 	&&(9(9O;M '!;#4#4zJ6W	 "..{A>? 	 	
rg   c                R   [         R                  " [        SSS/S/5      /S/ [        S[        R
                  S 5      /5      n[         R                  " [        SSS/S/5      /S	/ [        S[        R
                  S 5      /5      nU R                  S
[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        SS
/S/UUS9// 5      nU R                  U[        S[        R                  S5      /[        [        S5      /S9  g )Nr  current_value	add_valuethen_outputthen_subgraphSub	sub_valueelse_outputelse_subgraphcondrA  If	if_outputthen_branchelse_branchr_  r   )r   r   r   r    r   rH   rU   r  r   r|   r   r   rK   r  r  rq   s       r/   test_if_ver1TestShapeInference.test_if_ver1  s@   
 ))u<}oNO#M;3H3H$OP	
 ))u<}oNO#M;3H3H$OP	
   ))40 +"3"3T:k//6k//6	 H M - - !
& 	#K1B1BDIJ'R89 	 	
rg   c                6   [         R                  " [        SSS/S/5      /S/ [        S[        R
                  S 5      /5      n[         R                  " [        SSS/S/5      /S	/ [        S[        R
                  S 5      /5      nU R                  S
[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        SS
/S/UUS9// 5      nU R                  U[        S[        R                  S5      /5        g )Nr  r  r  r  r  r  r  r  r  r  rA  r  r  r  
r   r   r   r    r   rH   rU   r  r   r|   r  s       r/   test_ifTestShapeInference.test_if   s.   
 ))u<}oNO#M;3H3H$OP	
 ))u<}oNO#M;3H3H$OP	
   ))40 +"3"3T:k//6k//6	 H M - - !
& 	*;8I8I4PQ	
rg   c                6   [         R                  " [        SSS/S/5      /S/ [        S[        R
                  S5      /5      n[         R                  " [        SSS/S	/5      /S
/ [        S	[        R
                  S5      /5      nU R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        SS/S/UUS9// 5      nU R                  U[        S[        R                  S5      /5        g )Nr  r  r  r  r  rA  r  r  r  r  r3   r  r  r  r  rA   r  r  s       r/   3test_if_with_different_shapes_in_then_else_branchesFTestShapeInference.test_if_with_different_shapes_in_then_else_branchesJ  s.   
 ))u<}oNO#M;3H3H$OP	
 ))u<}oNO#M;3H3H$OP	
   ))40 +"3"3T:k//6k//6	 H M - - !
& 	*;8I8I7ST	
rg   c                6   [        S5      n[        S5      nU R                  S[        R                  S4S[        R                  S4S[        R
                  S4/[        SS/S	/UUS
9// 5      nU R                  U[        S	[        R                  S 5      /5        g )NzQthen_graph () => (then_output) { then_output = ReduceSum <keepdims=0> (X, axes) }zKelse_graph () => (else_output) { else_output = ReduceSum <keepdims=0> (X) }r  rA  r   r   r)  r  r  r  r  r  	r!   rU   r   r  r   rJ   r   r|   r    rK   
then_graph
else_graphrq   s       r/   test_if_no_shape_in_then_branch2TestShapeInference.test_if_no_shape_in_then_brancht  s     _

 !Y

   ))40k''4**D1 H M * * 
" 	*;8I8I4PQ	
rg   c                6   [        S5      n[        S5      nU R                  S[        R                  S4S[        R                  S4S[        R
                  S4/[        SS/S	/UUS
9// 5      nU R                  U[        S	[        R                  S 5      /5        g )NzKthen_graph () => (then_output) { then_output = ReduceSum <keepdims=0> (X) }zQelse_graph () => (else_output) { else_output = ReduceSum <keepdims=0> (X, axes) }r  rA  r   r  r  r  r  r  r  r  s       r/   test_if_no_shape_in_else_branch2TestShapeInference.test_if_no_shape_in_else_branch  s     Y

 !_

   ))40k''4**D1 H M * * 
" 	*;8I8I4PQ	
rg   c                Z   [         R                  " [        R                  S/S9n[         R                  " U5      n[         R
                  " SU5      n[         R                  " [        SS/S/5      /S/ U/5      n[         R                  " [        R                  S/S9n[         R                  " U5      n[         R
                  " SU5      n[         R                  " [        SS	/S/5      /S
/ U/5      nU R                  S[        R                  S4S[        R                  S4S	[        R                  S4/[        SS/S/UUS9// 5      n	[         R                  " [        R                  SS9n
[         R                  " U
5      n[         R
                  " SU5      nU R                  X/5        g )Nr   r   r   then_optional_outputr  then_tensor_valuer  r3   else_optional_outputelse_tensor_valuer  r  rA  r  r  r  r  rA   )r   r  r   rH   r  r  r   r   rU   r  r   r|   )rK   then_tensor_protothen_optional_type_protothen_optional_vir  else_tensor_protoelse_optional_type_protoelse_optional_vir  rq   output_tensor_protooutput_optional_type_protooutput_optional_vis                r/   <test_if_with_different_optional_shapes_in_then_else_branchesOTestShapeInference.test_if_with_different_optional_shapes_in_then_else_branches  s   
 #99!++
 $*#B#BCT#U !11"$<
 ))z$7#8;Q:RST	
 #99!++
 $*#B#BCT#U !11"$<
 ))z$7#8;Q:RST	
   ))40$k&7&7>$k&7&7> H M - - 
$ %;;!''w
 &,%D%D&
" $333
 	e%9:rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS/SS/S9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NxTr'  xI	MaxUnpoolr   r=   r@  rM  r<  r   r   s     r/   )test_maxunpool_shape_without_output_shape<TestShapeInference.test_maxunpool_shape_without_output_shape  s      {((,7{((,7
 $s!QRSUVQW
 
 	*30A0A<PQ	
rg   c                F   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQSS	S	/S	S	/S
9/[	        S[        R                  S 5      /5      nU R                  U[	        S[        R                  S 5      /5        g )Nr  r'  r  r?  r  r   )r  r  r?  r   r=   r!  )rU   r   r   r   r    r|   r   s     r/   &test_maxunpool_shape_with_output_shape9TestShapeInference.test_maxunpool_shape_with_output_shape  s      {((,7{((,7!2!2D9 0"#QF $C):):DAB
" 	*30A0A4HI	
rg   c                
   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	5      // 5      nU R                  U[        S	[        R                  S
5      /5        g )Nr  r[  depthr?   valuesr   OneHotr  r(  r)  r   )r=   r=   NrU   r   rJ   r   r   r|   r    r   s     r/   test_onehot_without_axis+TestShapeInference.test_onehot_without_axis  s      K--v6+++R0;,,d3
 x!?EF
 	*30A0A<PQ	
rg   c           
        U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	S
S9// 5      nU R                  U[        S	[        R                  S5      /5        g )Nr  r=   r   r3   r(  rA  r)  r   r*  r+  r   r   rh  )r=   Nr   r3   r,  r   s     r/   test_onehot_with_axis(TestShapeInference.test_onehot_with_axis%  s      K--y9+++T2;,,d3
 x!?1MN
 	*30A0A?ST	
rg   c                >   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	5      // [        S[        R                  SS
5      /S9nU R                  U[        S	[        R                  S5      /5        g )Nr  r[  r(  r?   r)  r   r*  r+  r      rE  )r=   r=   r5  rU   r   rJ   r   r   r   r|   r    r   s     r/   test_onehot_without_axis_2-TestShapeInference.test_onehot_without_axis_23  s      K--v6+++R0;,,d3
 x!?EF$Wk.?.?VLM ! 	
 	*30A0A;OP	
rg   c                <   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	S
S9// [        S[        R                  SS5      /S9nU R                  U[        S	[        R                  S5      /5        g )Nr  r0  r(  rA  r)  r   r*  r+  r   r   rh  r4  rE  )r=   r5  r   r3   r6  r   s     r/   test_onehot_with_axis_2*TestShapeInference.test_onehot_with_axis_2B  s      K--y9+++T2;,,d3
 x!?1MN$Wk.?.?vNO ! 	
 	*30A0A>RS	
rg   c           
     *   [        S[        R                  S5      [        S[        R                  S 5      [        S[        R                  S5      /n[        S[        R                  S 5      [        S[        R                  S 5      [        S[        R                  S	5      /n[
        R                  " [        S
S/S/5      [        S
S/S/5      [        S
S/S/5      /SUU5      nU R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S	4/[        S/ SQSS/US9// 5      nU R                  U[        S[        R                  S 5      [        S[        R                  S5      /5        g )Niter_num_inrA  cond_inr  r?   cond_outr  rB  r  ru  outer_scope_inputr  max_trip_count	cond_origr  r   Loop)rA  rB  r  r  loop_outputr  Nr   
r    r   rJ   rH   r   r   r   r   rU   r|   rK   rP   r  r  rq   s        r/   	test_loopTestShapeInference.test_loopQ  s   
 #=+2C2CTJ"9k.C.CTJ"?K4I4I2N
 #:{/D/DdK"#3[5J5JDQ"8[->->E
 $$*ykJ<@*&7:J9KL*':&;hZH
 	
   !;#4#4d;k//6"K$5$5t<$k&7&7>	 F'7!	 
$ 	&&(9(94 '}k6G6GS		
rg   c           
     L   [        S[        R                  S5      [        S[        R                  S 5      /n[        S[        R                  S 5      [        S[        R                  S5      /n[
        R                  " [        SS/S/5      [        SS/S/5      /S	UU5      nU R                  S
[        R                  S4S[        R                  S4S[        R                  S4/[        SS
S/S/US9// 5      nU R                  U[        S[        R                  S5      /5        g )Nr=  rA  r>  r?  rB  r  ru  r@  r  rA  rB  rC  rD  rE  rF  rG  rH  s        r/   test_loop_no_state%TestShapeInference.test_loop_no_state  s6   "=+2C2CTJ"9k.C.CTJ

 #:{/D/DdK"8[->->E

 $$*ykJ<@*':&;hZH 
   !;#4#4d;k//6$k&7&7> %{3"O!	 
" 	*=+:K:KYWX	
rg   c                P   U R                  / [        S/ S/[        S[        R                  SS5      S9[        SS/S/[        S[        R
                  S	S
5      S9// 5      nU R                  U[        S[        R                  S5      [        S[        R
                  S5      /5        g )Nr  r   r  ra  r  ConstantOfShaper   r  rA  r   rU   r   r   r   rJ   r!  r|   r    r   s     r/   %test_constantofshape_with_input_shape8TestShapeInference.test_constantofshape_with_input_shape  s      I%g{/@/@$	R	 %IE%g{/@/@$M	 !
$ 	&w0A0A4H&sK,=,=yI	
rg   c                    U R                  S[        R                  S4/[        SS/S/[	        S[        R
                  SS5      S9// 5      nU R                  U[        S[        R
                  S	5      /5        g )
Nr   r  rO  r   r  rA  r   r  rn  rU   r   rJ   r   r   r  r|   r    r   s     r/   (test_constantofshape_without_input_shape;TestShapeInference.test_constantofshape_without_input_shape  s      {(($/0%IE%g{/@/@$M	 
 	*30A0ACUVW	
rg   c                    U R                  S[        R                  S4/[        SS/S/[	        S[        R
                  SS5      S9// 5      nU R                  U[        S[        R
                  S	5      /5        g )
Nr   r,  rO  r   r  rA  r   r  r?   rT  r   s     r/   /test_constantofshape_without_input_shape_scalarBTestShapeInference.test_constantofshape_without_input_shape_scalar  s      {(($/0%IE%g{/@/@$M	 
 	*30A0A2FG	
rg   c                P   U R                  / [        S/ S/[        S[        R                  SS5      S9[        SS/S/[        S[        R
                  SS	5      S9// 5      nU R                  U[        S[        R                  S5      [        S[        R
                  S5      /5        g )
Nr  r   rA  r,  r  rO  r   r  r   rP  r   s     r/   $test_constantofshape_with_shape_zero7TestShapeInference.test_constantofshape_with_shape_zero  s      I%g{/@/@$M	 %IE%g{/@/@$M	 !
$ 	&w0A0A4H&sK,=,=tD	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S/ SQ/ SQ/ S	QS
9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r   r  ConvIntegerr   r  r  r  r  r  rU   r   r  r   r|   r    r!  r   s     r/   test_convinteger#TestShapeInference.test_convinteger  s      k''9k''9
 !#J+'%	 
" 	*30A0A?ST	
rg   c           
     0   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
/ SQS9// 5      nU R                  U[        S
[        R                  S5      /5        g )NrN   r  r   r  x_zero_pointr?   y_zero_pointr^  rN   r   rc  rd  r   r   rX  r!  rU   r   r  r5  r   r|   r    r!  r   s     r/   test_convinetger_dilations-TestShapeInference.test_convinetger_dilations  s      k'')9:k&&(89!2!2B7!2!2B7	 !>'	 
" 	*30A0ACTUV	
rg   c           
     0   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
/ SQS9// 5      nU R                  U[        S
[        R                  S5      /5        g )NrN   r  r   r  rc  r?   rd  r^  re  r   r   rL  r%  )rU   r   r5  r  r   r|   r    r!  r   s     r/   test_convinteger_strides+TestShapeInference.test_convinteger_strides4  s      k&&(89k&&(89!2!2B7!2!2B7	 !>%	 
" 	*30A0ACTUV	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/ SQS9// 5      nU R                  U[        S[        R                  S	5      /5        g )
NrN   r)  r   r  r^  r   r*  rS  r+  rf  r   s     r/   test_convineteger_pads)TestShapeInference.test_convineteger_padsJ  s}      k'')9:k&&(89 }sCj#<NOP
 	*30A0ACTUV	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/SSS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r  r   r?  r^  r   r   r@  rB  )rU   r   r5  r   r|   r    r!  r   s     r/   test_convineteger_group*TestShapeInference.test_convineteger_groupW  s{      k&&(89k&&8 }sCj#Q?@
 	*30A0ACSTU	
rg   c           
     0   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ S	QS
/ SQS9// 5      nU R	                  U[        S
[        R                  S5      /5        g )NrN   rI  r   r  rc  r?   rd  r^  re  r   r*  rS  rJ  r_  r   s     r/   'test_convineteger_partial_missing_shape:TestShapeInference.test_convineteger_partial_missing_shaped  s      k'')<=k'')9:!2!2B7!2!2B7	 !>+	 
" 	#C):):<PQR	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/ SQS9// 5      nU R	                  U[        S[        R                  S 5      /5        g )	NrN   r)  r   rN  r^  r   r*  rS  r_  r   s     r/   .test_convineteger_partial_missing_weight_shapeATestShapeInference.test_convineteger_partial_missing_weight_shape{  s|      k'')9:k'')<= }sCj#<NOP
 	*30A0A4HI	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4S
[        R                  S4S[        R                  S4/[	        S/ SQS/ SQ/ SQ/ SQS9// 5      nU R                  U[        S[        R                  S5      /5        g )NrN   r  x_scaler?   rc  r)  r  w_scalew_zero_pointy_scalerd  QLinearConvrN   ry  rc  r)  rz  r{  r|  rd  r   r  r  r  r  r  rU   r   r  r   r   r|   r    r   s     r/   test_qlinearconv#TestShapeInference.test_qlinearconv  s      k''9K--r2!2!2B7k''9K--r2!2!2B7K--r2!2!2B7	 !	 +'%& =
@ 	*30A0A?ST	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4S
[        R                  S4S[        R                  S4/[	        S/ SQS/ SQS9// 5      nU R                  U[        S[        R                  S5      /5        g )NrN   r  ry  r?   rc  r)  r  rz  r{  r|  rd  r}  r~  r   r   rX  r!  r  r   s     r/   test_qlinearconv_dilations-TestShapeInference.test_qlinearconv_dilations  s      k'')9:K--r2!2!2B7k'')9:K--r2!2!2B7K--r2!2!2B7	 !	 '" 9
< 	*30A0ACTUV	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4S
[        R                  S4S[        R                  S4/[	        S/ SQS/ SQS9// 5      nU R                  U[        S[        R                  S5      /5        g )NrN   r  ry  r?   rc  r)  r  rz  r{  r|  rd  r}  r~  r   r   rL  r%  rU   r   r5  r   r   r|   r    r   s     r/   test_qlinearconv_strides+TestShapeInference.test_qlinearconv_strides  s      k&&(89K--r2!1!126k&&(89K--r2!1!126K--r2!1!126	 !	 %" 9
< 	*30@0@BSTU	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4S
[        R                  S4S[        R                  S4/[        S/ SQS/ SQS9// 5      nU R                  U[        S[        R                  S5      /5        g )NrN   r)  ry  r?   rc  r)  r  rz  r{  r|  rd  r}  r~  r   r*  rS  r+  )rU   r   r  r   r5  r   r|   r    r   s     r/   test_qlinearconv_pads(TestShapeInference.test_qlinearconv_pads  s      k'')9:K--r2!2!2B7k&&(89K--r2!1!126K--r2!2!2B7	 !	 +" 9
< 	*30A0ACTUV	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4S
[        R                  S4S[        R                  S4/[	        S/ SQSSS9// 5      nU R                  U[        S[        R                  S5      /5        g )NrN   r  ry  r?   rc  r)  r?  rz  r{  r|  rd  r}  r~  r   r   r@  rB  r  r   s     r/   test_qlinearconv_group)TestShapeInference.test_qlinearconv_group  s      k&&(89K--r2!1!126k&&8K--r2!1!126K--r2!1!126	 !	 " 9
< 	*30@0@BRST	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4S
[        R                  S4S[        R                  S4/[	        S/ SQS/ SQS9// 5      nU R                  U[        S[        R                  S5      /5        g )NrN   rI  ry  r?   rc  r)  r  rz  r{  r|  rd  r}  r~  r   r*  rS  rJ  r  r   s     r/   &test_qlinearconv_partial_missing_shape9TestShapeInference.test_qlinearconv_partial_missing_shape9  s      k'')<=K--r2!2!2B7k'')9:K--r2!2!2B7K--r2!2!2B7	 !	 +" 9
< 	#C):):<PQR	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4S
[        R                  S4S[        R                  S4/[	        S/ SQS/ SQS9// 5      nU R                  U[        S[        R                  S 5      /5        g )NrN   r)  ry  r?   rc  r)  rN  rz  r{  r|  rd  r}  r~  r   r*  rS  r  r   s     r/   -test_qlinearconv_partial_missing_weight_shape@TestShapeInference.test_qlinearconv_partial_missing_weight_shape]  s      k'')9:K--r2!2!2B7k'')<=K--r2!2!2B7K--r2!2!2B7	 !	 +" 9
< 	*30A0A4HI	
rg   c                   [         R                  " [         R                  " [         R                  " U5      5      R	                  U5      [         R                  " [         R                  " U5      5      R	                  U5      5      R
                  nU R                  S[        R                  U4S[        R                  S4S[        R                  S4S[        R                  U4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4/[        S
/ SQS/5      // 5      nU R                  U[        S[        R                  U5      /5        g Nr   a_scaler?   a_zero_pointr   b_scaleb_zero_pointr|  rd  QLinearMatMul)r   r  r  r   r  r  r|  rd  r   )r   r   r   r   r   r   rU   r   r  r   r   r|   r    rK   r   r   r   rq   s        r/   _make_qlinearmatmul_test+TestShapeInference._make_qlinearmatmul_test  s=     YYIIbggfo&..v6IIbggfo&..v6
 % 	   k''0K--r2!2!2B7k''0K--r2!2!2B7K--r2!2!2B7	 #	 E  7
: 	*30A0ACUVW	
rg   c                    U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        g )	Nr  r   r   r   r   r   r   r   )r  rq  s    r/   test_qlinearmatmul%TestShapeInference.test_qlinearmatmul  b    %%dD1%%ff5%%dF3%%fd3%%lLA%%fi8rg   c                   U R                  S[        R                  U4S[        R                  S4S[        R                  S4S[        R                  U4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4/[	        S
/ SQS/5      // 5      nU R                  U[        S[        R                  U5      /5        g r  r  r  s        r/   &_make_qlinearmatmul_test_allow_unknown9TestShapeInference._make_qlinearmatmul_test_allow_unknown  s       k''0K--r2!2!2B7k''0K--r2!2!2B7K--r2!2!2B7	 #	 E  7
: 	*30A0ACUVW	
rg   c                   U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  S	SS5        U R                  S	S
S5        U R                  SSS5        U R                  SSS5        U R                  S SS 5        U R                  S S S 5        g r  )r  rq  s    r/    test_qlinearmatmul_allow_unknown3TestShapeInference.test_qlinearmatmul_allow_unknown  s    33GWbI33D'2F33D(FK33FHhO33IxR33I{HU33I{KX33+|	
 	33D+tL33D$Erg   c                N   [         R                  " [         R                  " [         R                  " U5      5      R	                  U5      [         R                  " [         R                  " U5      5      R	                  U5      5      R
                  nU R                  S[        R                  U4S[        R                  U4S[        R                  S4S[        R                  S4/[        S/ SQS/5      // 5      nU R                  U[        S[        R                  U5      /5        g )	NArS  r  r?   r  MatMulInteger)r  rS  r  r  r   )r   r   r   r   r   r   rU   r   r  r   r|   r    r!  r  s        r/   _make_matmulinteger_test+TestShapeInference._make_matmulinteger_test  s      YYIIbggfo&..v6IIbggfo&..v6
 % 	   k''0k''0!2!2B7!2!2B7	 #%ORUQV
 
 	*30A0ACUVW	
rg   c                    U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        g )Nr   r   r   r   r   r   r   )r  rq  s    r/   test_matmulinteger%TestShapeInference.test_matmulinteger  r  rg   c                    U R                  SUS4SUS4S[        R                  S4/[        S/ SQS/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   r   r|  r?   rd  QuantizeLinearrN   r|  rd  r   rU   r   r  r   r|   r    rK   r   rq   s      r/   test_quantizelinear&TestShapeInference.test_quantizelinear  s}       i,Ir*!2!2B7
 ')IC5QR
 	*30A0A:NO	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r   r|  r?   r  r   rU   r   r   r   r|   r    r  r   s     r/   test_quantizelinear_default_zp1TestShapeInference.test_quantizelinear_default_zp  sw      ;$$j1I{?P?PRT3UV'#y)9C5AB

 	*30A0A:NO	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        S/ SQS/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r   r|  r?   r  )rN   r|  r  r   r  r   s     r/   "test_quantizelinear_optional_input5TestShapeInference.test_quantizelinear_optional_input  ss      ;$$j1I{?P?PRT3UV')=uEF

 	*30A0A:NO	
rg   c           
        U R                  S[        R                  S4S[        R                  S4/[        SSS/S/[        R                  S9// 5      nU R                  U[        S[        R                  S5      /5        g NrN   ra  r|  r?   r  r   output_dtype)rU   r   r   r   UINT4r|   r    r   s     r/    test_quantizelinear_output_dtype3TestShapeInference.test_quantizelinear_output_dtype(  s      ;$$i09k>O>OQS2TU$)$E!,!2!2	 
 	*30A0A9MN	
rg   c           
     &   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/[        R                  S	9// 5      nU R                  U[        S[        R                  S5      /5        g 
NrN   ra  r|  r?   rd  r  r  r   r  )rU   r   r   UINT16r   r|   r    r   s     r/   #test_quantizelinear_zp_output_dtype6TestShapeInference.test_quantizelinear_zp_output_dtype9  s      k''3K--r2!3!3R8 $4E!,!3!3	 
  	*30B0BINO	
rg   c           
     8   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/[        R
                  S	9// 5      nU R                  [        R                  R                  U R                  U5        g r  )rU   r   r   r  r   INT4r   r]   r^   r   re   r   s     r/   .test_quantizelinear_zp_output_dtype_conflictedATestShapeInference.test_quantizelinear_zp_output_dtype_conflictedN  s      k''3K--r2!3!3R8 $4E!,!1!1	 
" 	  //NN	
rg   c           
        U R                  S[        R                  S4S[        R                  S4/[        SSS/S/[        R                  S9// 5      nU R                  [        R                  R                  U R                  U5        g r  )
rU   r   r   r   r  r   r]   r^   r   re   r   s     r/   (test_quantizelinear_invalid_output_dtype;TestShapeInference.test_quantizelinear_invalid_output_dtypef  s       ;$$i09k>O>OQS2TU$)$E!,!4!4	 
 	  //NN	
rg   c                    U R                  S[        R                  S4SUS4S[        R                  S4/[        S/ SQS/5      // 5      nU R	                  U[        SUS5      /5        g )	NrN   r   ry  r?   rc  DequantizeLinear)rN   ry  rc  r   r  r  s      r/   test_dequantizelinear(TestShapeInference.test_dequantizelinear}  s}       k''4Ir*!2!2B7
 )+KcUST
 	*3	:FG	
rg   c           
     ,   U R                  S[        R                  S4/[        SS// SQ5      // 5      nU R	                  U[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      /5        g )	NrN   r   DynamicQuantizeLinear)r   r|  rd  r   r|  r?   rd  r  r   s     r/   test_dynamicquantizelinear-TestShapeInference.test_dynamicquantizelinear  s      ;$$j12+cU4T
 
 	&sK,=,=zJ&y+2C2CRH&~{7H7H"M	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S5      /5        g )NrN   r  sequence_lensr  ReverseSequencer   r  r   s     r/   test_reversesequence'TestShapeInference.test_reversesequence  s{      k''3 +"3"3T: (3*@3%HI
 	*30A0A9MN	
rg   c                `   U R                  S[        R                  S4/[        SS// SQ5      // 5      nU R	                  U[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      [        S	[        R                  S5      /5        g )
Nr   r=   r   r=   Uniquer   r  inverse_indicescountsr   rA   r  r  r  r  r   s     r/   test_unique_without_axis+TestShapeInference.test_unique_without_axis  s      ;$$i01x#(UVW

 	&sK,=,=wG&y+2C2CWM&'8+:K:KWU&x1B1BGL		
rg   c                ^   U R                  S[        R                  S4/[        SS// SQSS9// 5      nU R	                  U[        S[        R                  S5      [        S	[        R                  S
5      [        S[        R                  S
5      [        S[        R                  S
5      /5        g )Nr   r  r  r  r   rh  r   )r=   Nr=   r  rA   r  r  r  r   s     r/   test_unique_with_axis(TestShapeInference.test_unique_with_axis  s      ;$$i01EA	 
 	&sK,=,=|L&y+2C2CWM&'8+:K:KWU&x1B1BGL		
rg   c                   U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   rN  Detr   r?   )r   r3   r4  rg  rg  r  r   r   s     r/   test_detTestShapeInference.test_det  s      ;$$f-.53%#1O0PRT
 	*30A0A2FG	
   ;$$o67usecU+,

 	*30A0A9MN	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /5        g )
NrN   r  repeatsr  Tiler   r   rE  r   r_  r  r  r   s     r/   	test_tileTestShapeInference.test_tile  s      ;$$i09k>O>OQU2VWvY/#78$Y0A0A4ST	 ! 
 	*30A0A;OP	
rg   c                `   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  S[        R                  " / SQSS	9R                  5       S
S9/S9nU R                  U[        S[        R                  S5      /5        g )NrN   r  r  r  r  r   r   r  r  Tr  rE  r  r  r   s     r/   test_tile_raw_input_data+TestShapeInference.test_tile_raw_input_data  s      ;$$i09k>O>OQU2VWvY/#78%%)59AAC	 ! 
 	*30A0A;OP	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S5      /5        g )NrN   r  r  r  r  r   rn  r  r   s     r/   test_tile_rank_inference+TestShapeInference.test_tile_rank_inference  sw      ;$$i09k>O>OQU2VWvY/#78

 	*30A0ACUVW	
rg   z-ONNX_ML required to test ai.onnx.ml operatorsc                J   U R                  S[        R                  S4/[        SS/SS/[        SS/SS/S	S
/S9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      /[        [        S	5      [        [        S5      /S9  g )NrN   r  LinearClassifierr   r   g-C6J?g-C6Jr  r   r=   r+   coefficients
interceptsclasslabels_intsrA  r   r  r   
rU   r   r   r   r   r|   r    rJ   r   r   r   s     r/   test_linearclassifier_1D_input1TestShapeInference.test_linearclassifier_1D_input  s      ;$$d+,&E#J)"('!2 #Sz&'V
 
 	&sK,=,=tD&sK,=,=vF
 ^Q/["- 	 
	
rg   c                J   U R                  S[        R                  S4/[        SS/SS/[        / SQ/ SQ/ SQS	9// 5      nU R                  U[        S[        R                  S
5      [        S[        R                  S5      /[        [        S5      [        [        S5      /S9  g )NrN   r  r  r   r   )皙?皙?g333333?皙?r  g333333?)r  r  g      @r   r  r  rU  r   r  r   r   r   s     r/   test_linearclassifier_2D_input1TestShapeInference.test_linearclassifier_2D_input+  s      ;$$f-.&E#J)!?.%.
 
 	&sK,=,=tD&sK,=,=vF
 ^Q/["- 	 
	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	/S
SS9// 5      nU R                  U[        S	[        R                  S5      /5        g )NrN   r  r}  num_roisr   batch_indicesr  RoiAlignrN   r}  r  r   r_  r3   )output_heightoutput_width)r  r  r_  r3   r  r   s     r/   test_roialign_symbolic)TestShapeInference.test_roialign_symbolicH  s      k'')=>**O< +"3"3]C 2E"$!" 
" 	#C):):<TUV	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	/5      // 5      nU R                  U[        S	[        R                  S
5      /5        g )NrN   r  r}  r
  r  r  r  r  r   )r  r  r   r   r  r   s     r/   test_roialign_symbolic_defaults2TestShapeInference.test_roialign_symbolic_defaults_  s      k'')=>**O< +"3"3]C
 z#AC5IJ
 	#C):):<STU	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	/5      // 5      nU R                  U[        S	[        R                  S
5      /5        g )NrN   r  r}  r
  r  )rR  r  r  r   )rR  r  r   r   r  r   s     r/   test_roialign_num_rois)TestShapeInference.test_roialign_num_roisn  s      k'')=>**O< +"3"3U;
 z#AC5IJ
 	*30A0A?ST	
rg   c                0   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
/5      // 5      nU R                  U[        S
[        R                  S5      /5        g )Nr   )rS  	num_headsr  rV  	cos_cachemax_seq_lenhead_size_div_2	sin_cacheposition_idsrS  r  RotaryEmbeddingr   r  r   r!  r   r  r   s     r/   test_rotaryembedding_4d*TestShapeInference.test_rotaryembedding_4d|  s      k'')STk//1STk//1ST!2!24DE	 %CE 
  	&**,V	
rg   c           
     .   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
/SS9// 5      nU R                  U[        S
[        R                  S5      /5        g )Nr   )rS  r  r0  r  r  r   r!  r"  r#  r$  r   r   )r  r  r   s     r/   test_rotaryembedding_3d*TestShapeInference.test_rotaryembedding_3d  s      k'')HIk//1STk//1ST!2!24DE	 %CE	 
" 	&**,K	
rg   LabelEncoderT)skip_on_emptyc                R   U R                  US:  S5        / SQn/ SQn/ SQnU R                  S[        R                  S4/[	        SS/S	/[
        UUS
9// 5      nU R                  U[        S	[        R                  S5      /[        [
        U5      [        [        S5      /S9  U R                  S[        R                  S4/[	        SS/S	/[
        UUS9// 5      nU R                  U[        S	[        R                  S5      /[        [
        U5      [        [        S5      /S9  U R                  S[        R                  S4/[	        SS/S	/[
        UUS9// 5      nU R                  U[        S	[        R                  S5      /[        [
        U5      [        [        S5      /S9  U R                  S[        R                  S4/[	        SS/S	/[
        UUS9// 5      nU R                  U[        S	[        R                  S5      /[        [
        U5      [        [        S5      /S9  U R                  S[        R                  S4/[	        SS/S	/[
        UUS9// 5      nU R                  U[        S	[        R                  S5      /[        [
        U5      [        [        S5      /S9  U R                  S[        R                  S4/[	        SS/S	/[
        UUS9// 5      nU R                  U[        S	[        R                  S5      /[        [
        U5      [        [        S5      /S9  g )Nr=   z7keys_* attributes were introduced in ai.onnx.ml opset 2)r  mr   )g{GW@g      B@g     X)r`     V   rN   r4  r   r*  r   )r+   keys_stringsvalues_int64sr  r   r   )r+   keys_int64svalues_stringsr   )r+   keys_floatsr2  r(  )r+   r3  values_floatsr?   )r+   r5  r4  r   )r+   r1  r6  )r   rU   r   r   r   r   r|   r    rJ   r   r   r   )rK   r   r.   string_list
float_list
int64_listrq   s          r/   test_label_encoder_string_int642TestShapeInference.test_label_encoder_string_int64  s    	aKR	
 &*
!
  ;%%v./"EE)!,",	 
 	#C):):FCD^W5["- 	 	
   ;$$f-."EE) *#.	 
 	#C););VDE^W5["- 	 	
   ;$$d+,"EE) *",	 
 	#C):):DAB^W5["- 	 	
   ;$$d+,"EE) *",	 
 	#C):):DAB^W5["- 	 	
   ;$$b)*"EE) *#.	 
 	#C););R@A^W5["- 	 	
   ;%%v./"EE)!,",	 
 	#C):):FCD^W5["- 	 	
rg   c                   U R                  US:  S5        [        S[        R                  S// SQ5      n[        S[        R                  S// SQ5      nU R                  S[        R                  S4/[        S	S/S
/[        UU[        S[        R                  S/S/5      S9// 5      nU R                  U[        S
[        R                  S5      /[        [        U5      [        [        S5      /S9  g )Nr   z7tensor attributes were introduced in ai.onnx.ml opset 4keys_tensorr   r   ccdddvalues_tensorr   r=   r   r   rN   r  Nr   r`  r*  r   default_tensorr   r   r+   r=  rA  rD  r  r   )r   r   r   r   rJ   rU   r   r   r|   r    r   r   )rK   r   r.   
key_tensorrA  rq   s         r/   $test_label_encoder_tensor_attributes7TestShapeInference.test_label_encoder_tensor_attributesE  s    	aKR	
 !;--s4K

 $[..\
   ;%%'9:;"EE) *"/#.(+*;*;aS1#$
 
" 	#C):):<NOP^W5["- 	 	
rg   c                   U R                  US:  S5        [        S[        R                  S// SQ5      n[        S[        R                  S// SQ5      n[        [        U5      [        [        S5      /nU R                  S[        R                  S	4/[        S
S/S/[        UU[        S[        R                  S/S/5      S9// 5      nU R                  [        R                  R                  U R                  UUS9  U R                  S[        R                  S	4/[        S
S/S/[        U/ SQ[        S[        R                  SS/SS/5      S9// 5      nU R                  [        R                  R                  U R                  UUS9  g )Nr   z2tensor attributes introduced in ai.onnx.ml opset 4r=  r>  rA  rB  r  rN   rC  r*  r   rD  r   r   rE  r   r=   r   r   )r+   r=  r4  rD  )r   r   r   r   rJ   r   r   r   rU   r   r!  r   r]   r^   r   re   )rK   r   r.   rF  rA  r   rq   s          r/   ;test_label_encoder_tensor_attributes_invalid_configurationsNTestShapeInference.test_label_encoder_tensor_attributes_invalid_configurationsl  s    	GaK!UV ;--s4K

 $[..\

 1b)
   ;%%'9:;"EE) *"/#.(+*;*;aS1#$
 
$ 	  //NN'	 	 	
   ;%%'9:;"EE) *#:#.(+*<*<q!fsCj$
 
$ 	  //NN'	 	 	
rg   c                f   [        5       nUR                  R                  U5        [        U5      nUR                  R                  [        R                  " S[        R                  U4U5      5        UR                  R                  [        R                  " S[        R                  X45      5        U$ )Nspvalspind)r   dimsextendrs   r)  CopyFromr   r   r   rJ   r  )rK   r   r)  indices_shaper  sparsennzs          r/   make_sparseTestShapeInference.make_sparse  s     #$5!&kw(9(9C66J	
 	w(9(9=R	
 rg   c           
         S/nU R                  U/ SQS// SQ5      nU R                  / [        S/ S/US9// 5      nU R                  U[	        S[
        R                  U5      /5        g )Nr  )rz  r{     r   )rK     Q   r  r   )sparse_value)rU  rU   r   r|   r    r   rJ   )rK   y_shapey_valuerq   s       r/   test_constant_sparse'TestShapeInference.test_constant_sparse  sp    %""7L1#{K  :rC5wGH"
 	*30A0A7KL	
rg   c           
         U R                  / [        S/ S/SS9// 5      nU R                  U[        S[        R
                  / 5      /5        g )Nr  r   *   )	value_int)rU   r   r|   r    r   rJ   r   s     r/   test_constant_value_int*TestShapeInference.test_constant_value_int  sQ      :rC5B?@"
 	*30A0A2FG	
rg   c           
         / SQnU R                  / [        S/ S/US9// 5      nU R                  U[        S[        R
                  [        U5      /5      /5        g )Nr   r  r   )
value_ints)rU   r   r|   r    r   rJ   rs   )rK   rf  rq   s      r/   test_constant_value_ints+TestShapeInference.test_constant_value_ints  s]    
  :rC5ZHI2
 	*30A0AC
OCTUV	
rg   c           
         U R                  / [        S/ S/SS9// 5      nU R                  U[        S[        R
                  / 5      /5        g )Nr  r   gQ?)value_float)rU   r   r|   r    r   r   r   s     r/   test_constant_value_float,TestShapeInference.test_constant_value_float  sQ      :rC5dCDb
 	*30A0A2FG	
rg   c           
         / SQnU R                  / [        S/ S/US9// 5      nU R                  U[        S[        R
                  [        U5      /5      /5        g )N)r  r  g333333?r  r   )value_floats)rU   r   r|   r    r   r   rs   )rK   rn  rq   s      r/   test_constant_value_floats-TestShapeInference.test_constant_value_floats  s^    &  :rC5|LMr
 	*30A0ACDUCVWX	
rg   c           
         U R                  / [        S/ S/SS9// 5      nU R                  U[        S[        R
                  / 5      /5        g )Nr  r   zString value)value_string)rU   r   r|   r    r   r   r   s     r/   test_constant_value_string-TestShapeInference.test_constant_value_string  sR      :rC5~NOQS
 	*30B0BBGH	
rg   c           
         / SQnU R                  / [        S/ S/US9// 5      nU R                  U[        S[        R
                  [        U5      /5      /5        g )N)onrw  rN   r  r   )value_strings)rU   r   r|   r    r   r   rs   )rK   rx  rq   s      r/   test_constant_value_strings.TestShapeInference.test_constant_value_strings  s_    ,  :rC5NOQS
 	#C););c->P=QRS	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      // [	        S[        R                  SS5      [	        S[        R                  SS	5      [	        S[        R                  SS
5      /S9nU R                  U[        S[        R                  S
5      /5        g )Nr:  r?   limitdeltaRanger:  r|  r}  rB  rA  r  r   rE  )rU   r   r   r   r   r|   r    r   s     r/   
test_rangeTestShapeInference.test_range  s      +++R0+++R0+++R0
 w ;hZHIG[%6%6DAG[%6%6DAG[%6%6DA ! 
 	*8[5F5FMN	
rg   c                   [        5       nSUl        [         R                  Ul        UR                  R                  S/5        U R                  S[         R                  S4S[         R                  S4S[         R                  S4/[        S/ SQS/5      // [        S[         R                  SS	5      [        S[         R                  SS
5      U/S9nU R                  [        R                  R                  U R                  U5        g )Nr}  r=   r:  r?   r|  r~  r  rB  rA  r  rE  )r   r*   r   	data_type
int64_datarP  rU   r   r   r   r]   r^   r   re   rK   
bad_tensorrq   s      r/   test_range_initializer_invalid1TestShapeInference.test_range_initializer_invalid  s     !]
!
*00
$$aS)  +++R0+++R0+++R0
 w ;hZHIG[%6%6DAG[%6%6DA ! 
 	$..==t~~uUrg   c                   [        S[        R                  S[        R                  " S/SS9R                  5       SS9nSUl        U R                  S	[        R                  S4S
[        R                  S4S[        R                  S4/[        S/ SQS/5      // [        S	[        R                  SS5      [        S
[        R                  SS5      U/S9nU R                  [        R                  R                  U R                  U5        g )Nr}  r?   r  r  r  Tr  rg   r:  r|  r~  r  rB  rA  r  rE  )r   r   r   r   r  r  raw_datarU   r   r   r]   r^   r   re   r  s      r/   &test_range_initializer_invalid_rawdata9TestShapeInference.test_range_initializer_invalid_rawdata/  s     !3%u-557

 "
  +++R0+++R0+++R0
 w ;hZHIG[%6%6DAG[%6%6DA ! 
 	$..==t~~uUrg   c                v   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      // [	        S[        R                  SS5      [	        S[        R                  SS	5      /S
9nU R                  U[        S[        R                  S5      /5        g )Nr:  r?   r|  r}  r~  r  rB  rA  r  rE  rA   )rU   r   r!  r   r   r|   r    r   s     r/   test_range_rank_inference,TestShapeInference.test_range_rank_inferenceL  s      +++R0+++R0+++R0
 w ;hZHIG[%6%6DAG[%6%6DA ! 
 	*8[5F5FPQ	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S5      /5        g )NrN   r  r  r   GatherNDr   r4  r  r   s     r/   test_gathernd TestShapeInference.test_gathernd^  sv      ;$$i09k>O>OQU2VWzC#3cU;<

 	*30A0A4HI	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS9// 5      nU R                  U[        S[        R                  S	5      /5        g )
NrN   rt  r  r   r  r   r   )
batch_dimsr[  r  r   s     r/   test_gathernd_batchdim_1+TestShapeInference.test_gathernd_batchdim_1h  s|      k''3K--v6 zC#3cUqIJ
 	*30A0A6JK	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  ri  rA  CumProdr   r   r   s     r/   test_cumprodTestShapeInference.test_cumprodu  sr      ;$$f-8I8I4/PQy3-56

 	*30A0A6JK	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r   ri  rA  CumSumr   r   r   s     r/   test_cumsumTestShapeInference.test_cumsum  sr      ;$$f-8I8I4/PQx#v45

 	*30A0A6JK	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )Nboxesr   r   r   scores)r   r3   r   NonMaxSuppressionr   rF  r  r   s     r/   test_nonmaxsuppression)TestShapeInference.test_nonmaxsuppression  s{      +++Y7;,,i8 *Wh,?#GH
 	*30A0A9MN	
rg   c                    U R                  / [        S/ S/5      // 5      nU R                  U[        S[        R
                  S 5      /5        g )NSequenceEmptyrB  )rU   r   r|   r   r   r   r   s     r/   test_sequence_empty&TestShapeInference.test_sequence_empty  sL      ihZ&P%QSUV3Hk>O>OQUVW	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )Nry  r   rz  r{  r}  r~  r  r  r   s     r/   test_sequence_construct*TestShapeInference.test_sequence_construct  s      ;,,i8;,,i8;,,i8 '2&' 
 	/%{'8'8)	
rg   c                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )Nry  r   r}  r  r  r   s     r/   !test_sequence_construct_one_input4TestShapeInference.test_sequence_construct_one_input  sk      ))956*XJ9J8KLM

 	/%{'8'8)	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      // 5      nU R	                  U[        S[        R                  S 5      /5        g )	Nry  r   rz  r   r{  r}  r~  r  r  r   s     r/   !test_sequence_construct_diff_rank4TestShapeInference.test_sequence_construct_diff_rank  s      ;,,i8;,,f5;,,f5 '2&' 
 	/%{'8'8$	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS	/5      // 5      nU R	                  U[        S	[        R                  S
5      /5        g )Nry  r   rz  r0  r{  r  r}  r~  r  r=   r   Nr  r   s     r/   %test_sequence_construct_diff_dim_size8TestShapeInference.test_sequence_construct_diff_dim_size  s      ;,,i8;,,i8;,,i8 '2&' 
 	/%{'8'8,	
rg   c           	        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      [        S	SS/S
/5      // 5      nU R	                  U[        S[        R                  S5      [        S
[        R                  S5      /5        g )Nry  r   rz  r{  input4r}  r~  r  SequenceInsertr  r  r   s     r/   test_sequence_insert'TestShapeInference.test_sequence_insert  s      ;,,i8;,,i8;,,i8;,,i8	 ')G- $}h&?BSAT	 
" 	/!;#4#4i 0%{'8'8)	
	
rg   c           	        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS	/5      [        S
S	S/S/5      // 5      nU R	                  U[        S	[        R                  S5      [        S[        R                  S 5      /5        g )Nry  r   rz  r{  r  r   r}  r~  r  r  r  r  r   s     r/   test_sequence_insert_diff_rank1TestShapeInference.test_sequence_insert_diff_rank  s      ;,,i8;,,i8;,,i8;,,f5	 ')G- $}h&?BSAT	 
" 	/!;#4#4i 0%{'8'8$	
	
rg   c           	        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ S	QS
/5      [        SS
S/S/5      // 5      nU R	                  U[        S
[        R                  S5      [        S[        R                  S5      /5        g )Nry  r   rz  r{  r|  r  r=   r3   r=   r}  r~  r  r  r  r  r=   NNr  r   s     r/   test_sequence_insert_diff_shape2TestShapeInference.test_sequence_insert_diff_shape2  s      ;,,i8;,,i8;,,i8;,,i8	 ')G- $}h&?BSAT	 
" 	/!;#4#4l 0%{'8'8/	
	
rg   c           	        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	/5      [	        S
S	S/S/5      // 5      nU R                  U[        S	[        R                  S5      [        S[        R                  S5      /5        g )Nry  r   rz  r{  indr?   r}  r~  r  
SequenceAtrB  rU   r   r   rJ   r   r|   r   r    r   s     r/   test_sequence_at#TestShapeInference.test_sequence_atP  s      ;,,i8;,,i8;,,i8))2.	 ')G- ,(>
K	 
 	/!;#4#4i 'x1B1BIN		
rg   c           	        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
/5      [	        SS
S/S/5      // 5      nU R                  U[        S
[        R                  S 5      [        S[        R                  S 5      /5        g )Nry  r   rz  r   r{  r  r?   r}  r~  r  r  rB  r  r   s     r/   test_sequence_at_unknown_shape1TestShapeInference.test_sequence_at_unknown_shapej  s      ;,,i8;,,f5;,,i8))2.	 ')G- ,(>
K	 
 	/{?P?PRVW&x1B1BDI	
rg   c           	        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
/5      [	        SS
S/S/5      // 5      nU R                  U[        S
[        R                  S5      [        S[        R                  S5      /5        g )Nry  r   rz  r0  r{  r  r?   r}  r~  r  r  rB  r  r  r   s     r/   !test_sequence_at_unknown_dim_size4TestShapeInference.test_sequence_at_unknown_dim_size  s      ;,,i8;,,i8;,,i8))2.	 ')G- ,(>
K	 
 	/!;#4#4l 'x1B1BLQ		
rg   c           	        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS	/5      [	        S
S	S/S/5      // 5      nU R                  U[        S	[        R                  S5      [        S[        R                  S5      /5        g )Nry  r   rz  r{  r  r?   r}  r~  r  SequenceEraser  rU   r   r   rJ   r   r|   r   r   s     r/   test_sequence_erase&TestShapeInference.test_sequence_erase  s      ;,,i8;,,i8;,,i8))2.	 ')G- /M5+ADUCVW	 
 	/!;#4#4i 0%{'8'8)	
	
rg   c           	        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
/5      [	        SS
S/S/5      // 5      nU R                  U[        S
[        R                  S5      [        S[        R                  S5      /5        g )Nry  r=   r   rN   rz  r{  )r=   r3   rN   r  r?   r}  r~  r  r  r  r=   NrN   r  r   s     r/   !test_sequence_erase_diff_dim_size4TestShapeInference.test_sequence_erase_diff_dim_size  s      ;,,k:;,,k:;,,k:))2.	 ')G- /M5+ADUCVW	 
 	/!;#4#4n 0%{'8'8.	
	
rg   c           	     \   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      [        SS/S	/5      // 5      nU R	                  U[        S[        R                  S5      [        S	[        R                  S
5      /5        g )Nry  r  rz  r{  r}  r~  r  SequenceLengthrs   r?   )rU   r   r   r   r|   r   r    rJ   r   s     r/   test_sequence_length'TestShapeInference.test_sequence_length  s      ;,,k:;,,k:;,,k: ')G- *]OeWE	 
 	/!;#4#4k 'uk.?.?D		
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /5        g )
Nr>  r4  r   r  r   SplitToSequencer  rN  rE  r  rU   r   r   r!  r   r   r|   r   r   s     r/   test_split_to_sequence)TestShapeInference.test_split_to_sequence  s      {((&1G[=N=NPT3UV(7G*<?P>QRS$Wk.?.?vNO	 ! 
 	/%{'8'8&	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /5        g )
Nr>  r  r  r?   r  r  r   rE  r   r  r   s     r/   test_split_to_sequence_scalar0TestShapeInference.test_split_to_sequence_scalar  s      {((&1G[=N=NPR3ST(7G*<?P>QRS$Wk.?.?TJK	 ! 
 	/%{'8'8&	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr>  r  r  r  r   r  r  r  r   s     r/   test_split_to_sequence_keepdims2TestShapeInference.test_split_to_sequence_keepdims  sn      {((&12(7)6G5HSTUV

 	/%{'8'8&	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr>  r  r  r  r   r  r  r  r   s     r/   #test_split_to_sequence_not_keepdims6TestShapeInference.test_split_to_sequence_not_keepdims  sn      {((&12(7)6G5HSTUV

 	/%{'8'8$	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS9// [        S[        R                  SS	5      /S
9nU R                  U[        S[        R                  S5      /5        g )Nr>  r  r  r   r  r  r   r  rN  rE  r  r  r   s     r/   &test_split_to_sequence_ignore_keepdims9TestShapeInference.test_split_to_sequence_ignore_keepdims+  s      {((&1G[=N=NPT3UV%g&&'	 $Wk.?.?vNO ! 
 	/%{'8'8&	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr>  r  r  r  r   rh  r0  r  r   s     r/   test_split_to_sequence_axis.TestShapeInference.test_split_to_sequence_axisB  sm      {((&12(7)6G5HqQR

 	/%{'8'8&	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr>  r  r  r  r  rh  r  r  r   s     r/   test_split_to_sequence_neg_axis2TestShapeInference.test_split_to_sequence_neg_axisQ  sm      {((&12(7)6G5HrRS

 	/%{'8'8&	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /5        g )
Nr>  r  r  r  r  r  r  rE  Nr   r  r   s     r/   "test_split_to_sequence_split_sizes5TestShapeInference.test_split_to_sequence_split_sizes`  s      {((&1G[=N=NPT3UV(7G*<?P>QRS$Wk.?.?yQR	 ! 
 	/%{'8'8)	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /5        g )
Nr>  r  r  r?   r  r  r  rE  r  r  r   s     r/   $test_split_to_sequence_non_divisible7TestShapeInference.test_split_to_sequence_non_divisiblep  s      {((&1G[=N=NPR3ST(7G*<?P>QRS$Wk.?.?TJK	 ! 
 	/%{'8'8)	
rg   c                Z   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      [        SS/S	/S
S9// 5      nU R	                  U[        S[        R                  S5      [        S	[        R                  S5      /5        g )Nry  r  rz  r{  r}  r~  r  ConcatFromSequencerp  r   rh  )Nr   rN   rU   r   r   r   r|   r   r    r   s     r/   test_concat_from_sequence,TestShapeInference.test_concat_from_sequence  s      ;,,k:;,,k:;,,k: ')G- .%qQ	 
 	/!;#4#4k 'uk.?.?P		
rg   c                Z   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      [        S	S/S
/SS9// 5      nU R	                  U[        S[        R                  S 5      [        S
[        R                  S 5      /5        g )Nry  r  rz  r   r{  r}  r~  r  r   rp  r   rh  r  r   s     r/   'test_concat_from_sequence_unknown_shape:TestShapeInference.test_concat_from_sequence_unknown_shape  s      ;,,k:;,,f5;,,k: ')G- .%qQ	 
 	/{?P?PRVW&uk.?.?F	
rg   c                Z   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      [        S	S/S
/SS9// 5      nU R	                  U[        S[        R                  S5      [        S
[        R                  S5      /5        g )Nry  r  rz  r=   r   rN   r{  r}  r~  r  r   rp  r   rh  r  NNrN   r  r   s     r/   *test_concat_from_sequence_unknown_dim_size=TestShapeInference.test_concat_from_sequence_unknown_dim_size  s      ;,,k:;,,k:;,,k: ')G- .%qQ	 
 	/!;#4#4n 'uk.?.?ARS		
rg   c                Z   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      [        S	S/S
/SS9// 5      nU R	                  U[        S[        R                  S5      [        S
[        R                  S5      /5        g )Nry  r  rz  r  r{  r}  r~  r  r   rp  r=   rh  r  r  r  r   s     r/   test_concat_from_sequence_axis1TestShapeInference.test_concat_from_sequence_axis  s      ;,,k:;,,k:;,,k: ')G- .%qQ	 
 	/!;#4#4n 'uk.?.?Q		
rg   c                Z   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      [        S	S/S
/SS9// 5      nU R	                  U[        S[        R                  S5      [        S
[        R                  S5      /5        g )Nry  r  rz  r  r{  r}  r~  r  r   rp  rh  r  r	  r  r   s     r/   "test_concat_from_sequence_neg_axis5TestShapeInference.test_concat_from_sequence_neg_axis  s      ;,,k:;,,k:;,,k: ')G- .%rR	 
 	/!;#4#4n 'uk.?.?ARS		
rg   c                \   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      [        SS/S	/S
SS9// 5      nU R	                  U[        S[        R                  S5      [        S	[        R                  S5      /5        g )Nry  r  rz  r{  r}  r~  r  r   rp  r=   r   ri  new_axis)r=   r   NrN   r  r   s     r/   "test_concat_from_sequence_new_axis5TestShapeInference.test_concat_from_sequence_new_axis  s      ;,,k:;,,k:;,,k: ')G- (=/E7UV	 
  	/!;#4#4k 'uk.?.?ARS		
rg   c                \   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ SQS/5      [        SS/S	/S
SS9// 5      nU R	                  U[        S[        R                  S5      [        S	[        R                  S5      /5        g )Nry  r  rz  r{  r}  r~  r  r   rp  r$   r   r  )r=   r   rN   Nr  r   s     r/   &test_concat_from_sequence_neg_new_axis9TestShapeInference.test_concat_from_sequence_neg_new_axis  s      ;,,k:;,,k:;,,k: ')G- (=/E7VW	 
  	/!;#4#4k 'uk.?.?ARS		
rg   c           
        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
S/[
        S9// 5      nU R                  U[        S
[        R                  S5      [        S[        R                  S5      /[        R                  " [        S5      [        R                  " [
        S5      /S9  g )NRr?   Tr   r   Gr  Adagrad)r  r  r   r  r  X_newH_newr+   r`  r   r   rU   r   r   rJ   r   r   r|   r    r   r   r   r   s     r/   test_adagradTestShapeInference.test_adagrad1  s      k'',k'',k''0k''0k''0 -g&:	 !
& 	&w0A0A6J&w0A0A6J
 ##K4##$CQG 	 
	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4S
[        R                  S4S[        R                  S4/[	        S/ SQ/ SQ[
        S9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      /[        R                  " [        S5      [        R                  " [
        S5      /S9  g )Nr  r?   r  X1r   X2r  G1G2H1H2r  )r  r  r'  r(  r)  r*  r+  r,  )X1_newX2_newH1_newH2_newr"  r-  r.  r/  r0  r`  r   r   r#  r   s     r/   test_adagrad_multiple(TestShapeInference.test_adagrad_multipleQ  sD     k'',k'',{((&1{((&1{((&1{((&1{((&1{((&1	 B<:	 '
, 	&x1B1BFK&x1B1BFK&x1B1BFK&x1B1BFK	 ##K4##$CQG 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	QS
S/SSSS[
        S9// 5      nU R                  U[        S
[        R                  S5      [        S[        R                  S5      /[        R                  " [        S5      [        R                  " [
        S5      /S9  g )Nr  r?   r  r   r   r  rZ  Momentum)r  r  r   r  rZ  r   V_new?r  {Gz?standardr  r  norm_coefficientr%  r+   r`  r   r   r#  r   s     r/   test_momentum TestShapeInference.test_momentumv  s     k'',k'',k''0k''0k''0 -g&%)#:	 )
, 	&w0A0A6J&w0A0A6J
 ##K4##$CQG 	 
	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4S
[        R                  S4S[        R                  S4/[	        S/ SQ/ SQSSSS[
        S9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      /[        R                  " [        S5      [        R                  " [
        S5      /S9  g )Nr  r?   r  r'  r   r(  r  r)  r*  V1V2r4  )r  r  r'  r(  r)  r*  r>  r?  )r-  r.  V1_newV2_newr6  r  r7  nesterovr9  r-  r.  r@  rA  r`  r   r   r#  r   s     r/   test_momentum_multiple)TestShapeInference.test_momentum_multiple  sP     k'',k'',{((&1{((&1{((&1{((&1{((&1{((&1	 B<%)#:	 /
4 	&x1B1BFK&x1B1BFK&x1B1BFK&x1B1BFK	 ##K4##$CQG 	 	
rg   c                ,   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S	/ S
Q/ SQ[
        SSSS9// 5      n[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      /nU R                  UU[        [
        S5      [        [        S5      /S9  g )Nr  r?   r  r   r   r  rZ  r  Adam)r  r  r   r  rZ  r  )r   r5  r!  r6  r  r7  r+   r  r  r:  r   r5  r!  r   r`  r   
rU   r   r   rJ   r   r   r    r|   r   r   rK   rq   infoss      r/   	test_adamTestShapeInference.test_adam  s     k'',k'',k''0k''0k''0k''0 2/:%)
 )
0 #7K,=,=vF"7K,=,=vF"7K,=,=vF
 	<a@["- 	 	
rg   c                X   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S	[        R                  S4S
[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/
[	        S/ SQ/ SQ[
        SSSS9// 5      n[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      /nU R                  UU[        [
        S5      [        [        S5      /S9  g )Nr  r?   r  r'  r   r(  r  r)  r*  r>  r?  r+  r,  rF  )
r  r  r'  r(  r)  r*  r>  r?  r+  r,  )r-  r.  r@  rA  r/  r0  r6  r  r7  rG  r-  r.  r@  rA  r/  r0  r   r`  r   rH  rI  s      r/   test_adam_multiple%TestShapeInference.test_adam_multiple  s     k'',k'',{((&1{((&1{((&1{((&1{((&1{((&1{((&1{((&1 NP:%)
 1
8 #8[->->G"8[->->G"8[->->G"8[->->G"8[->->G"8[->->G
 	<a@["- 	 	
rg   c           
         U R                  S[        R                  S4/[        SSS/ SQS9// 5      nU R	                  U[        S[        R                  S5      /[        R                  " [        S5      /S	9  g )
NrN   r   Nr=   Padr   r   r   r   r   r   r   rS  r   Nr   r_  r   r   r   s     r/   test_pad_opset10#TestShapeInference.test_pad_opset10  sz      ;$$l34uc3-?@A

 	#C):):LIJ!..{B?@ 	 	
rg   c                    U R                  S[        R                  S4/[        SSS/ SQSSS9// 5      nU R	                  U[        S[        R                  S	5      /[        R                  " [        S
5      /S9  g )NrN   )r=   r   r   r   rR  r   )r   r   r   r   r   r   r   r=   constantr  )rT  r%  r  )r=   r   r  rg  r_  r   r   r   s     r/   test_constant_pad_2d_opset10/TestShapeInference.test_constant_pad_2d_opset10#  s      ;$$l341#	 
 	#C):):MJK!..{B?@ 	 	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S	5      /5        g )
NrN   rQ  rT  r  rR  r   rS  rE  rT  r  r   s     r/   test_padTestShapeInference.test_pad8  s      ;$$l3fk>O>OQU5VWusFmS12%%		 ! 
( 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S5      /5        g )NrN   r  r  r   r`  r   r  r   s     r/   test_gatherelements_basic,TestShapeInference.test_gatherelements_basicQ  sv      ;$$d+i9J9JD-QR'#y)9C5AB

 	*30A0A4HI	
rg   c                    U R                  S[        R                  S4S[        R                  S 4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S 5      /5        g )NrN   r  r  r`  r   r  r   s     r/   )test_gatherelements_indices_missing_shape<TestShapeInference.test_gatherelements_indices_missing_shape[  s{      k''.K--t4 '#y)9C5AB
 	*30A0A4HI	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  Einsumr   zij->jiequationrU  r   r   s     r/   test_einsum_transpose(TestShapeInference.test_einsum_transposeh  e      ;$$f-.x#AB

 	*30A0A6JK	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   rA  r   re  r   i,i->rf  r?   r   r   s     r/   test_einsum_dot"TestShapeInference.test_einsum_dotr  v      ;$$d+c;3D3Dd-KLx#scUWEF

 	*30A0A2FG	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r?   r   re  r   z,->rf  r   r   s     r/   test_einsum_scalar%TestShapeInference.test_einsum_scalar|  sv      ;$$b)C1B1BB+GHx#scUUCD

 	*30A0A2FG	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  [
        R                  R                  U R                  U5        g )NrN   r?   re  r   zi->irf  r   r   s     r/   #test_einsum_scalar_invalid_equation6TestShapeInference.test_einsum_scalar_invalid_equation  sc       ;$$b)*x#?@

 	$..==t~~uUrg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r.  r   )rg  rK  re  r   zij,ab->ijabrf  )r   r3   rg  rK  r   r   s     r/   test_einsum_outer_prod)TestShapeInference.test_einsum_outer_prod  sv      ;$$f-[5F5F/OPx#scU]KL

 	*30A0A<PQ	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  re  r   zi j->i rf  r  r   r   s     r/   test_einsum_sum_along_dim,TestShapeInference.test_einsum_sum_along_dim  se      ;$$f-.x#	BC

 	*30A0A4HI	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   )r   r   r   re  r   z... ii ->... irf  r  r   r   s     r/   test_einsum_ellipsis'TestShapeInference.test_einsum_ellipsis  sf      ;$$i01x#8HIJ

 	*30A0A6JK	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r   r   r=   r   r3   re  r   ...ij,...jk->...ikrf  r0  r   r   s     r/   test_einsum_ellipsis_2)TestShapeInference.test_einsum_ellipsis_2  sw      ;$$i038I8I92UVx#scU=QRS

 	*30A0A9MN	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r   r   r  re  r   z...ij,...jkrf  r0  r   r   s     r/   test_einsum_ellipsis_3)TestShapeInference.test_einsum_ellipsis_3  sv      ;$$i038I8I92UVx#scU]KL

 	*30A0A9MN	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r  r   )r:  r   r3   re  r   r  rf  )r:  r   r3   r   r   s     r/   test_einsum_ellipsis_broadcast1TestShapeInference.test_einsum_ellipsis_broadcast  sw      ;$$i038I8I:2VWx#scU=QRS

 	*30A0A:NO	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   )r3   r4  rg  r)  r   )r)  rK  r_  re  r   zabcd,dfg->abcfgrf  )r3   r4  rg  rK  r_  r   r   s     r/   test_einsum_contraction*TestShapeInference.test_einsum_contraction  s}      k''6k''4 x#scU=NOP
 	#C):):<LMN	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   ra  r   r.  re  r   z
ijk,ik->jkrf  r  r   r   s     r/   test_einsum_contraction_2,TestShapeInference.test_einsum_contraction_2  sv      ;$$i038I8I62RSx#scU\JK

 	*30A0A6JK	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   )r3   r=   r   r   )r3   r   r   re  r   zbij , b jk-> bikrf  )r3   r=   r   r   r   s     r/   test_einsum_batch_matmul+TestShapeInference.test_einsum_batch_matmul  sw      ;$$i038I8I92UVx#scU=OPQ

 	*30A0A9MN	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r   r   r  re  r   zij,klrf  )r=   r   r   r   r   r   s     r/   test_einsum_left_hand_eqn,TestShapeInference.test_einsum_left_hand_eqn  sv      ;$$f-[5F5F/OPx#scUWEF

 	*30A0A<PQ	
rg   c           
        U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  [
        R                  R                  U R                  U5        g )NrN   r   r   r   re  zi,...j, k, l-> irf  r   r   s     r/    test_einsum_incorrect_num_inputs3TestShapeInference.test_einsum_incorrect_num_inputs  s      k''0k''0k''0
 x#scU=OPQ
 	$..==t~~uUrg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  re  r   rV  rf  r   r   s     r/   test_einsum_view_A1&TestShapeInference.test_einsum_view_A1  se      ;$$d+,x#<=

 	*30A0A4HI	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  re  r   zi->rf  r?   r   r   s     r/   test_einsum_sum_A1%TestShapeInference.test_einsum_sum_A1  se      ;$$d+,x#>?

 	*30A0A2FG	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r   re  r   zi,i->irf  r   r   s     r/   -test_einsum_element_wise_multiplication_A1_B1@TestShapeInference.test_einsum_element_wise_multiplication_A1_B1  sx       ;$$d+c;3D3Dd-KLx#scUXFG

 	*30A0A4HI	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   r  r   re  r   rl  rf  r?   r   r   s     r/   test_einsum_inner_product_A1_B12TestShapeInference.test_einsum_inner_product_A1_B1$  ro  rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   r  r   re  r   zi,j->ijrf  rN  r   r   s     r/   test_einsum_outer_product_A1_B12TestShapeInference.test_einsum_outer_product_A1_B1.  sv      ;$$d+c;3D3Dd-KLx#scUYGH

 	*30A0A6JK	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  re  r   zij->ijrf  r   r   s     r/   test_einsum_view_A2&TestShapeInference.test_einsum_view_A28  rj  rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  re  r   ijrf  r   r   s     r/   test_einsum_view_A2_2(TestShapeInference.test_einsum_view_A2_2B  e      ;$$f-.x#=>

 	*30A0A6JK	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  re  r   jirf  r   r   s     r/   test_einsum_transpose_A2+TestShapeInference.test_einsum_transpose_A2L  r  rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  re  r   zji->ijrf  r   r   s     r/   test_einsum_transpose_A2_to_ij1TestShapeInference.test_einsum_transpose_A2_to_ijV  rj  rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  re  r   zii->irf  r  r   r   s     r/   test_einsum_diag_A2&TestShapeInference.test_einsum_diag_A2`  e      ;$$f-.x#@A

 	*30A0A4HI	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  re  r   zii->rf  r?   r   r   s     r/   test_einsum_trace_A2'TestShapeInference.test_einsum_trace_A2j  e      ;$$f-.x#?@

 	*30A0A2FG	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  re  r   zij->rf  r?   r   r   s     r/   test_einsum_sum_A2%TestShapeInference.test_einsum_sum_A2t  r  rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  re  r   zij->jrf  r  r   r   s     r/   test_einsum_sum_columns_A2-TestShapeInference.test_einsum_sum_columns_A2~  sg       ;$$f-.x#@A

 	*30A0A4HI	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  re  r   zij->irf  r  r   r   s     r/   test_einsum_sum_rows_A2*TestShapeInference.test_einsum_sum_rows_A2  r  rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  r   re  r   z	ij,ij->ijrf  r   r   s     r/   -test_einsum_element_wise_multiplication_A2_B2@TestShapeInference.test_einsum_element_wise_multiplication_A2_B2  x       ;$$f-[5F5F/OPx#scU[IJ

 	*30A0A6JK	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  r   re  r   z	ij,ji->ijrf  r   r   s     r/   7test_einsum_element_wise_multiplication_A2_B2_transposeJTestShapeInference.test_einsum_element_wise_multiplication_A2_B2_transpose  r  rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  r   re  r   zij,jkrf  r   r   s     r/   'test_einsum_matrix_multiplication_A2_B2:TestShapeInference.test_einsum_matrix_multiplication_A2_B2  sx       ;$$f-[5F5F/OPx#scUWEF

 	*30A0A6JK	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  r   re  r   z	ij,jk->ikrf  r   r   s     r/   -test_einsum_matrix_multiplication_A2_B2_to_ik@TestShapeInference.test_einsum_matrix_multiplication_A2_B2_to_ik  r  rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r   re  r   zbij,bjk->bikrf  r   r   s     r/   'test_einsum_matrix_multiplication_A3_B3:TestShapeInference.test_einsum_matrix_multiplication_A3_B3  x       ;$$i038I8I92UVx#scU^LM

 	*30A0A9MN	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r   re  r   zbij,bkj->bikrf  r   r   s     r/   1test_einsum_matrix_multiplication_A3_B3_transposeDTestShapeInference.test_einsum_matrix_multiplication_A3_B3_transpose  r  rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rN  r   re  r   z	ij,kj->ikrf  r   r   s     r/   test_einsum_inner_product_A2_B22TestShapeInference.test_einsum_inner_product_A2_B2  sv      ;$$f-[5F5F/OPx#scU[IJ

 	*30A0A6JK	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   rN  r   re  r   z
ij,kj->ikjrf  )r   r   r   r   r   s     r/   $test_einsum_row_multiplication_A2_B27TestShapeInference.test_einsum_row_multiplication_A2_B2  sx       ;$$f-[5F5F/OPx#scU\JK

 	*30A0A9MN	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   rN  r   re  r   zij,kl->ijklrf  )r   r   r   r   r   r   s     r/   &test_einsum_value_multiplication_A2_B29TestShapeInference.test_einsum_value_multiplication_A2_B2  sx       ;$$f-[5F5F/OPx#scU]KL

 	*30A0A<PQ	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   r?   r   rN  re  r   z,ij->ijrf  r   r   s     r/   test_einsum_scalar_times_array1TestShapeInference.test_einsum_scalar_times_array  sv      ;$$b)C1B1BF+KLx#scUYGH

 	*30A0A6JK	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   rN  r   r  re  r   zij,j->irf  r   r   s     r/   test_einsum_matrix_vector_A2_B12TestShapeInference.test_einsum_matrix_vector_A2_B1  sv      ;$$f-[5F5F/MNx#scUYGH

 	*30A0A4HI	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   rN  r   re  r   zii,ii->irf  r  r   r   s     r/   %test_einsum_diag_multiplication_A2_B28TestShapeInference.test_einsum_diag_multiplication_A2_B2  sx       ;$$f-[5F5F/OPx#scUZHI

 	*30A0A4HI	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   rN  r   re  r   zii,ii->rf  r?   r   r   s     r/   "test_einsum_diag_dot_product_A2_B25TestShapeInference.test_einsum_diag_dot_product_A2_B2  sv      ;$$f-[5F5F/OPx#scUYGH

 	*30A0A2FG	
rg   c           
         Su  pU R                  S[        R                  X44S[        R                  U44/[	        SSS/S/SS9// 5      nU R                  U[        S[        R                  U45      /5        g )Nr  r>  targetNegativeLogLikelihoodLosslossnone	reductionr  rK   r  r  rq   s       r/   *test_negative_log_likelihood_shape_is_NCdd=TestShapeInference.test_negative_log_likelihood_shape_is_NCdd(  s      {((1&1Hk>O>ORSQU3VW/h'H$	 
 	*6;3D3DqdKL	
rg   c           
        Su  pU R                  S[        R                  X44S[        R                  U44S[        R                  U44/[	        S/ SQS/SS	9// 5      nU R                  U[        S[        R                  U45      /5        g )
Nr  r>  r  weightr  r>  r  r  r  r  r  r  r  s       r/   4test_negative_log_likelihood_shape_is_NC_with_weightGTestShapeInference.test_negative_log_likelihood_shape_is_NC_with_weight:  s      +++aV4;,,qd3;,,qd3 /1H$	 
  	*6;3D3DqdKL	
rg   c           
         Su  pU R                  S[        R                  X44S[        R                  U44/[	        SSS/S/SS9// 5      nU R                  U[        S[        R                  S5      /5        g )	Nr  r>  r  r  r  r  r  r?   r  r  s       r/   7test_negative_log_likelihood_shape_is_NC_reduction_meanJTestShapeInference.test_negative_log_likelihood_shape_is_NC_reduction_meanP  s      {((1&1Hk>O>ORSQU3VW/h'H$	 
 	*6;3D3DbIJ	
rg   c           
        Su  pU R                  S[        R                  X44S[        R                  U44S[        R                  U44/[	        S/ SQS/SS	9// 5      nU R                  U[        S[        R                  S
5      /5        g )Nr  r>  r  r  r  r  r  r  r  r?   r  r  s       r/   Ctest_negative_log_likelihood_shape_is_NC_with_weight_reduction_meanVTestShapeInference.test_negative_log_likelihood_shape_is_NC_with_weight_reduction_meanb  s       +++aV4;,,qd3;,,qd3 /1H$	 
  	*6;3D3DbIJ	
rg   c           
         Su  pp4U R                  S[        R                  XX444S[        R                  XU44/[	        SSS/S/SS9// 5      nU R                  U[        S[        R                  XU45      /5        g )Nr   r   r3   r4  r>  r  r  r  r  r  r  rK   r  r  d1d2rq   s         r/   ,test_negative_log_likelihood_shape_is_NCd1d2?TestShapeInference.test_negative_log_likelihood_shape_is_NCd1d2z  s    !b  +++aB^<;,,qbk:
 /h'H$	 
 	*6;3D3DqbkRS	
rg   c           
     "   Su  pp4U R                  S[        R                  XX444S[        R                  XU44S[        R                  U44/[	        S/ SQS/SS	9// 5      nU R                  U[        S[        R                  XU45      /5        g )
Nr	  r>  r  r  r  r  r  r  r  r  r	  s         r/   8test_negative_log_likelihood_shape_is_NCd1d2_with_weightKTestShapeInference.test_negative_log_likelihood_shape_is_NCd1d2_with_weight  s    !b  +++aB^<;,,qbk:;,,qd3 /1H$	 
  	*6;3D3DqbkRS	
rg   c           
         Su  pp4U R                  S[        R                  XX444S[        R                  XU44/[	        SSS/S/SS9// 5      nU R                  U[        S[        R                  S5      /5        g )	Nr	  r>  r  r  r  sumr  r?   r  r	  s         r/   :test_negative_log_likelihood_shape_is_NCd1d2_reduction_sumMTestShapeInference.test_negative_log_likelihood_shape_is_NCd1d2_reduction_sum  s    !b  +++aB^<;,,qbk:
 /h'H#	 
 	*6;3D3DbIJ	
rg   c           
        Su  pp4U R                  S[        R                  XX444S[        R                  XU44S[        R                  U44/[	        S/ SQS/SS	9// 5      nU R                  U[        S[        R                  S
5      /5        g )Nr	  r>  r  r  r  r  r  r  r  r?   r  r	  s         r/   Gtest_negative_log_likelihood_shape_is_NCd1d2_with_weight_reduction_meanZTestShapeInference.test_negative_log_likelihood_shape_is_NCd1d2_with_weight_reduction_mean  s     "b  +++aB^<;,,qbk:;,,qd3 /1H$	 
  	*6;3D3DbIJ	
rg   c           
     Z   Su  pp4U R                  S[        R                  XU44S[        R                  XS-   U44S[        R                  U44S[        R                  S4/[	        S/ S	QS/S
S9// 5      nU R                  [        R                  R                  U R                  U5        g )Nr	  r>  r  r   r  r  r?   r  r  r  r  )
rU   r   r   rJ   r   r   r]   r^   r   re   r	  s         r/   8test_negative_log_likelihood_input_target_shape_mismatchKTestShapeInference.test_negative_log_likelihood_input_target_shape_mismatch  s    !b  +++aR[9;,,qq&"o>;,,qd3**B/	 /1H$	 
" 	$..==t~~uUrg   c           
     J   Su  pp4U R                  S[        R                  XX444S[        R                  XU44S[        R                  US-   44S[        R                  XU44/[	        S/ SQS/S	S
9// 5      nU R                  [        R                  U R                  U5        g )Nr	  r>  r  r  r   r  r  r  r  r  )	rU   r   r   rJ   r   r   r   r  re   r	  s         r/   8test_negative_log_likelihood_input_weight_shape_mismatchKTestShapeInference.test_negative_log_likelihood_input_weight_shape_mismatch  s    !b  +++aB^<;,,qbk:;,,q1uh7**QBK8	 /1H$	 
" 	'114>>5Irg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   r   r   r   SoftmaxCrossEntropyLossr   r  r  r   r   s     r/   test_softmax_cross_entropy_none2TestShapeInference.test_softmax_cross_entropy_none  sw      ;$$f-[5F5F/MN03*sevVW

 	*30A0A4HI	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r   r   r   r	  r   r  r  r?   r   r   s     r/   test_softmax_cross_entropy_mean2TestShapeInference.test_softmax_cross_entropy_mean   sw      ;$$f-[5F5F/MN03*sevVW

 	*30A0A2FG	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )	NrN   )r=   r   r3   r)  r   )r=   r3   r)  r	  r   r  r  r   r   s     r/   &test_softmax_cross_entropy_none_NCD1D29TestShapeInference.test_softmax_cross_entropy_none_NCD1D2   s|      k''6k''3 03*sevVW
 	*30A0A9MN	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// 5      nU R	                  U[        S[        R                  S	5      /5        g )
NrN   r  r   r  r	  r   r  r  r?   r   r   s     r/   &test_softmax_cross_entropy_mean_NCD1D29TestShapeInference.test_softmax_cross_entropy_mean_NCD1D2   s|      k''6k''3 03*sevVW
 	*30A0A2FG	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )Nr   r  Celur   r  )r  r   r   s     r/   test_celu_function_output_shape2TestShapeInference.test_celu_function_output_shape*   sg      ;$$&678vuse378

 	*30A0ACSTU	
rg   c           	        [        SSS/S5      /nUc  / nO`SnU H  nXV-  nM	     [        U5       Vs/ s H  nSPM     nn[        S[        R                  X5      [        S[        R                  X5      /nUc  / n	OL[
        R                  " S[        R                  U5      [
        R                  " S[        R                  U5      /n	[
        R                  " USU	/ U/ S9n
[
        R                  " U
5      $ s  snf )	Nr  rN   r   r   r           rC   )inputsoutputsrD   rE   )	r   r&   r   r   r   r   r    r   r\   )rK   initializer_shapeinput_shaperM   rD   r  drV  r  r0	  rq   s              r/   !prepare_input_initializer_tensors4TestShapeInference.prepare_input_initializer_tensors4   s    53*c23$KD&x '!&t-ACD-C!2!24ELC!2!24ELK F --c;3D3DkR--c;3D3DkRF
 !!#
   ''+ .s   C8c                   SnU R                  US 5      n[        R                  R                  USS9nUR                  R
                  R                  5       nUR                  R                  R                  R                  S   R                  UR                  R                  R                  R                  S   R                  4nXQ:X  d   eg )Nr)  rg  Tr  r   r   )r5	  r]   r^   r_   rq   rE   r[   rv   r   r   r   r   )rK   r2	  original_modelrd   z_tenorz_shapes         r/   3test_infer_with_initializer_without_input_above_ir4FTestShapeInference.test_infer_with_initializer_without_input_above_ir4S   s     #??@QSWX--:: ; 

 !&&11557LL$$**..q1;;LL$$**..q1;;
 +++rg   c                   SnSnU R                  X5      nSUl        [        R                  R	                  USS9nUR
                  R                  R                  5       nUR                  R                  R                  R                  S   R                  UR                  R                  R                  R                  S   R                  4nUS:X  d   eg )	Nr8	  r  r   Tr  r   r   r   r   )r5	  
ir_versionr]   r^   r_   rq   rE   r[   rv   r   r   r   r   )rK   r2	  r3	  r9	  rd   r:	  r;	  s          r/   3test_infer_with_initializer_without_input_below_ir4FTestShapeInference.test_infer_with_initializer_without_input_below_ir4d   s     #"??
 %&!--:: ; 
 !&&11557LL$$**..q1;;LL$$**..q1;;

 &   rg   c                    SnSnU R                  X5      nU R                  [        R                  R                  [        R                  R
                  USS9  g )Nr8	  rU  Tr  r5	  r   r]   r^   r   r_   rK   r2	  r3	  r9	  s       r/   %test_infer_initializer_input_mismatch8TestShapeInference.test_infer_initializer_input_mismatchz   sY    "??
 	  //  --	 	 	
rg   c                j    SnSnU R                  X5      n[        R                  R                  USS9  g Nr8	  r  Tr  r5	  r]   r^   r_   rE	  s       r/   1test_infer_initializer_input_consistency_all_noneDTestShapeInference.test_infer_initializer_input_consistency_all_none   s;    ""??
 	)).d)Krg   c                j    SnSnU R                  X5      n[        R                  R                  USS9  g )Nr8	  Nrg  Tr  rJ	  rE	  s       r/   4test_infer_initializer_input_consistency_single_noneGTestShapeInference.test_infer_initializer_input_consistency_single_none   s;    "??
 	)).d)Krg   c                    SnSnU R                  X5      nU R                  [        R                  R                  [        R                  R
                  USS9  g )N)r)  rg  rK  rN	  Tr  rD	  rE	  s       r/   7test_infer_initializer_input_consistency_different_rankJTestShapeInference.test_infer_initializer_input_consistency_different_rank   sY    %??
 	  //  --	 	 	
rg   c                    SnSnU R                  X5      n[        R                  R                  UR	                  5       SS9  g rI	  )r5	  r]   r^   r_   SerializeToStringrE	  s       r/   <test_infer_initializer_input_consistency_all_none_serializedOTestShapeInference.test_infer_initializer_input_consistency_all_none_serialized   sK     #"??
 	)),,.D 	* 	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SS5      /S9nU R                  U[        S[        R                  S5      /5        g )	NrN   ra  rW  r?   Trilur   r   rE  r  r   s     r/   test_trilu_upper#TestShapeInference.test_trilu_upper   s      ;$$i038I8I22NOwc
SE23$S+*;*;RFG	 ! 
 	*30A0A9MN	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS9// [        S[        R                  SS	5      /S
9nU R                  U[        S[        R                  S5      /5        g )NrN   ra  rW  r?   rY	  r   r   upperr_  rE  r  r   s     r/   test_trilu_lower#TestShapeInference.test_trilu_lower   s      ;$$i038I8I22NOwc
SE;<$S+*;*;RGH	 ! 
 	*30A0A9MN	
rg   c                   U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SS9// [	        S[        R                  SS	5      /S
9nU R                  U[        S[        R                  S5      /5        g )NrN   )r   r3   rW  r?   rY	  r   r   r]	  r  rE  )rU   r   rJ   r   r   r|   r    r   s     r/   test_trilu_upper_zero(TestShapeInference.test_trilu_upper_zero   s      ;$$f-[5F5F/KLwc
SE;<$S+*;*;RFG	 ! 
 	*30A0A6JK	
rg   c           
         U R                  S[        R                  S4/[        SS/S/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   )r   r   r3   rY	  r   r   r]	  )rU   r   r!  r   r|   r    r   s     r/   test_trilu_lower_one'TestShapeInference.test_trilu_lower_one   se      ;$$i01wuA67

 	*30A0A9MN	
rg   c           
        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ S	Q/ S
QSS9// 5      nU R	                  U[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      /5        g NrN   r  r  r  r   
input_mean	input_varr  rN   r  r   rj	  rk	  rp  output_mean
output_varr   training_moderp  rn	  ro	  r   r   s     r/   test_batch_norm_train(TestShapeInference.test_batch_norm_train   s      k''9+++T2k''.{00$7k//6 (B8"#	 !
$ 	&uk.?.?Q&}k6G6GN&|[5F5FM	
rg   c           
        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ S	Q/ S
QSS9// 5      nU R	                  U[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      /5        g )NrN   )r   r  r3   r4  rg  r  r  r   rj	  rk	  r  rl	  rm	  r   rp	  rp  rn	  ro	  r   r   s     r/   test_batch_norm_train_dim_param2TestShapeInference.test_batch_norm_train_dim_param   s      k''):;+++V4k''0{00&9k//8 (B8"#	 !
$ 	&uk.?.?ARS&}k6G6GP&|[5F5FO	
rg   c           
        U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ S	Q/ S
QSS9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      /5        g ri	  )rU   r   r  r   r   r|   r    r   s     r/   $test_batch_norm_train_with_diff_type7TestShapeInference.test_batch_norm_train_with_diff_type!  s      k))?;+--t4k))40{00$7k//6 (B8"#	 !
$ 	&uk.A.A?S&}k6G6GN&|[5F5FM	
rg   c           
     R   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        S/ S	QS
/SS9// 5      nU R	                  U[        S
[        R                  S5      /5        g )NrN   r  r  r  r   rj	  rk	  r  rl	  rp  r   rp	  r   r   s     r/   test_batch_norm_test'TestShapeInference.test_batch_norm_test5!  s      k''9+++T2k''.{00$7k//6 (BG"#	 !
$ 	*5+2C2C_UV	
rg   c           
     R   U R                  S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4S[        R                  S4/[        S	/ S
QS/SS9// 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   )r   r   NNNr  r  r   rj	  rA   rk	  r  rl	  rp  r   rp	  r   r   s     r/   test_batch_norm_test_no_dim.TestShapeInference.test_batch_norm_test_no_dimL!  s      k'')AB+++T2k''.{00':k//6 (BG"#	 !
$ 	&;,,.F	
rg   c           
        U R                  S[        R                  S 4S[        R                  S 4S[        R                  S 4S[        R                  S4S[        R                  S4/[        S/ SQ/ S	QS
S9// 5      nU R	                  U[        S[        R                  S 5      [        S[        R                  S5      [        S[        R                  S5      /5        g )NrN   r  r   rj	  ru	  rk	  r  rl	  )rp  running_meanrunning_varr   rp	  rp  r	  r	  r   r   s     r/   test_batch_norm_train_no_shape1TestShapeInference.test_batch_norm_train_no_shapeh!  s      k''.+++T2k''.{00&9k//8 (B:"#	 !
$ 	&uk.?.?F&~{7H7H&Q&}k6G6GP	
rg   c                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   rA   NonZerorp  )r   Nr  r   s     r/   test_nonzeroTestShapeInference.test_nonzero!  sc      ;$$g./y3%%12

 	*5+2C2CYOP	
rg   c                    U R                  S[        R                  S 4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r	  rp  r  r  r   s     r/   test_nonzero_no_shape(TestShapeInference.test_nonzero_no_shape!  sb      ;$$d+,ySEE7/S.TVX
 	*5+2C2C\RS	
rg   c           	         U R                  S[        R                  S4/[        SS/S/5      /[	        S[        R
                  S5      /5      nU R                  U[	        S[        R
                  S5      /5        g )NrN   r  r	  r   )NNZ)r   r	  )rU   r   r   r   r    rJ   r|   r   s     r/   test_nonzero_existing_dim_param2TestShapeInference.test_nonzero_existing_dim_param!  su      ;$$d+,y3%#/0#C):):LIJ

 	*30A0A9MN	
rg   c                    U R                  S[        R                  S4/[        SS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r?   r	  rp  )r   Nr  r   s     r/   test_nonzero_scalar&TestShapeInference.test_nonzero_scalar!  sb      ;$$b)*Yy3%%-Q,RTV
 	*5+2C2CYOP	
rg   c           
        [         R                  " [        R                  / SQS9n[         R                  " U5      n[         R
                  " SUS9nU R                  / [        S/ S/US9// 5      nU R                  XC/5        g )Nr   r  rB  r*   
type_protor  rv   	r   r  r   r   r  r  rU   r   r|   rK   r  r  optional_val_inforq   s        r/   $test_optional_construct_empty_tensor7TestShapeInference.test_optional_construct_empty_tensor!  s    "99!''y
 %==>OP"22&9
   :rH:<MNOQS
 	e%89rg   c           
     2   [         R                  " [        R                  / SQS9n[         R                  " U5      n[         R
                  " U5      n[         R                  " SUS9nU R                  / [        S/ S/US9// 5      nU R                  XT/5        g )Nr   r  r  r	  r  r	  )
r   r  r   r!  r  r  r  rU   r   r|   )rK   r  r  r  r	  rq   s         r/   &test_optional_construct_empty_sequence9TestShapeInference.test_optional_construct_empty_sequence!  s    "99!''y
 %==>OP$==>QR"22"/B
   z2(9':ATUV

 	e%89rg   c                .   [         R                  " [        R                  / SQS9n[         R                  " U5      n[         R
                  " SUS9nU R                  S[        R                  S4/[        SS/S/5      // 5      nU R                  XC/5        g )Nr   r  rB  r	  ry  r  r	  r	  s        r/   test_optional_construct_tensor1TestShapeInference.test_optional_construct_tensor!  s    "99!''y
 %==>OP"22&9
   ))956zH:z:;

 	e%89rg   c           	        [         R                  " [        R                  / SQS9n[         R                  " U5      n[         R
                  " SUS9n[         R                  " U5      n[         R
                  " SUS9nU R                  S[        R                  S4/[        SS/S/5      [        SS/S/5      // 5      nU R                  XcU/5        g )	N)r=   r   r   r  input_sequencer	  r  ry  r}  r  )
r   r  r   rJ   r  r  r  rU   r   r|   rK   r  r  sequence_val_infor  r	  rq   s          r/    test_optional_construct_sequence3TestShapeInference.test_optional_construct_sequence!  s    "99!''y
 %==>OP"22!.A
 %==>QR"22"/B
   ))956-z<L;MN*'7&8;L:MN 
 	e9J%KLrg   c           	        [         R                  " [        R                  / SQS9n[         R                  " U5      n[         R
                  " SUS9nU R                  S[        R                  S4/[        SS/S/5      [        SS/S/5      // 5      nU R                  UU[        S[        R                  S	5      /5        g )
Nr   r  r  r	  ry  r  OptionalHasElementrB  r?   )r   r  r   r   r  r  rU   r   r|   r    r  r	  s        r/    test_optional_tensor_has_element3TestShapeInference.test_optional_tensor_has_element!  s    "99!''y
 %==>OP"22(;
   ))956*xj:,?.xjI 
 	 6xAQAQSU VW	
rg   c           
        [         R                  " [        R                  / SQS9n[         R                  " U5      n[         R
                  " SUS9n[         R                  " U5      n[         R
                  " SUS9nU R                  S[        R                  S4/[        SS/S/5      [        SS/S/5      [        S	S/S
/5      // 5      nU R                  UUU[        S
[        R                  S5      /5        g )N)r   r   r   r  r  r	  optionalry  r}  r  r	  rB  r?   )r   r  r   r   r  r  r  rU   r   r|   r    r  r	  s          r/   "test_optional_sequence_has_element5TestShapeInference.test_optional_sequence_has_element!  s   "99!''y
 %==>OP"22(;
 %==>QR"22(;
   ))956-zJ<H*zlZLA.xjI
 
 	!!&x1A1A2F	
rg   c                   [         R                  " [        R                  / SQS9n[         R                  " SUS9nU R                  S[        R                  S4/[        SS/S/5      // 5      nU R                  X2/5        g )Nr=   r   r   r  rB  r	  r>  OptionalGetElement)r   r  r   r/  r  rU   r   r|   )rK   r  output_tensor_val_inforq   s       r/   test_tensor_get_element*TestShapeInference.test_tensor_get_element"  s    "99!((	
 "(!7!7&7"
   {))956.	H:F 
 	e%=>rg   StringSplitc           	     2   [        S[        R                  S5      n[        S[        R                  S5      nU R	                  S[        R                  S4/[        SS/SS/5      /X4/5      nU R                  UX4/[        R                  " [        U5      /S9  g )N
substrings)r=   Nlengthr   rN   r	  r   
r    r   r   rJ   rU   r   r|   r   r   r   rK   r   r.   r	  r	  rq   s         r/   test_string_split_basic*TestShapeInference.test_string_split_basic-"  s    +


 (+2C2CTJ  k(($/ }selH-EFG 
 	 !..{GDE 	 	
rg   c           	     2   [        S[        R                  S5      n[        S[        R                  S5      nU R	                  S[        R                  S4/[        SS/SS/5      /X4/5      nU R                  UX4/[        R                  " [        U5      /S9  g )Nr	  )r  Nr	  )r  rN   r	  r   r	  r	  s         r/   test_string_split_symbolic-TestShapeInference.test_string_split_symbolicB"  s    +


 (+2C2CVL  k((&1 }selH-EFG 
 	 !..{GDE 	 	
rg   c           
     0   [        S[        R                  S5      n[        S[        R                  S5      nU R	                  S[        R                  S4/[        SS/SS/SS9/X4/5      nU R                  UX4/[        R                  " [        U5      /S	9  g )
Nr	  )r=   r   r   Nr	  r  rN   r	  r=   maxsplitr   r	  r	  s         r/   test_string_split_nested+TestShapeInference.test_string_split_nestedW"  s    ++,,o

 (+2C2CYO  k(()4 }selH-EPQRS 
 	 !..{GDE 	 	
rg   c           
     0   [        S[        R                  S5      n[        S[        R                  S5      nU R	                  S[        R                  S4/[        SS/SS/SS9/X4/5      nU R                  UX4/[        R                  " [        U5      /S	9  g )
Nr	  rA   r	  r?   rN   r	  r=   r	  r   r	  r	  s         r/   (test_string_split_zero_dimensional_input;TestShapeInference.test_string_split_zero_dimensional_inputj"  s    +L+:L:LgV
'+2C2CRH  k(("- }selH-EPQRS 
 	 !..{GDE 	 	
rg   c           
     0   [        S[        R                  S5      n[        S[        R                  S5      nU R	                  S[        R                  S4/[        SS/SS/SS9/X4/5      nU R                  UX4/[        R                  " [        U5      /S	9  g )
Nr	  )r  r   r   Nr	  )r  r   r   rN   r	  r=   r	  r   r	  r	  s         r/   test_string_split_empty_input0TestShapeInference.test_string_split_empty_input|"  s    ++,,.?

 (+2C2C[Q  k((+6 }selH-EPQRS 
 	 !..{GDE 	 	
rg   c           	     v   [         R                  " [        R                  / SQS9n[         R                  " SUS9n[         R
                  " U5      n[         R                  " SUS9nU R                  S[        R                  S4/[        SS/S/5      [        SS/S/5      // 5      nU R                  XTU/5        g )	Nr	  r  rB  r	  r	  ry  r  r	  )	r   r  r   r/  r  r  rU   r   r|   )rK   r  tensor_val_intor  r	  rq   s         r/    test_optional_tensor_get_element3TestShapeInference.test_optional_tensor_get_element"  s    "99!((	
 !00&7
 %==>OP"22(;
   **I67*xj:,?.xjI 
 	e%IJrg   c           
        [         R                  " [        R                  / SQS9n[         R                  " U5      n[         R
                  " SUS9n[         R                  " U5      n[         R
                  " SUS9n[         R
                  " SUS9nU R                  S[        R                  S4/[        SS/S/5      [        S	S/S/5      [        S
S/S/5      // 5      nU R                  XuX6/5        g )N)r=   r   r   r  r  r	  r	  rB  ry  r}  r  r	  )
r   r  r   r!  r  r  r  rU   r   r|   )rK   r  r  sequence_val_intor  r	  output_val_intorq   s           r/   "test_optional_sequence_get_element5TestShapeInference.test_optional_sequence_get_element"  s   "99!''y
 %==>OP"22(;
 %==>QR"22(;
 !00&9
   ))956-zJ<H*zlZLA.xjI
 
 	'8J	
rg   c                   U R                  S[        R                  S4S[        R                  S4S[        R                  S4/[	        S/ SQS/5      // 5      nU R                  U[        S[        R                  S5      /5        g )Nr  r_	  rN   r   Where)r  rN   r   rp  )rU   r   r  BFLOAT16r   r|   r    r   s     r/   test_where_bfloat$TestShapeInference.test_where_bfloat"  s      ))51k**E2k**E2
 w 2UG<=
 	*5+2F2FNO	
rg   c                   [         R                  " [         R                  " S/ [         R                  " S[        R
                  S S9/[        SS/S/5      /[        R                  " [        R                  " SS/[        R                  S9SS	9/S
9S9nU R                  [        R                  R                  [        R                  R                   USS9  [        R                  R!                  U5      nU R#                  UR$                  R&                  S   R(                  R*                  R-                  S5      5        g )Ngraph_with_unsupported_typer   r   rO  rN   r   r   r  rj   r*   r0	  r1	  rM   rD   rq   Tr  r   r   )r   r\   r   r    r   r   r   r   
from_arrayr   r  int32r   r]   r^   r   r_   assertFalserq   rB  rv   r   r   )rK   modelrd   s      r/   ,test_parse_data_with_unsupported_tensor_type?TestShapeInference.test_parse_data_with_unsupported_tensor_type"  s   !!##211#{7H7HPTU !!2SEC5AB !++BHHaV288,LSVW
 	  //  --	 	 	
 --::5A  ''*//;;DDWM	
rg   c                   [         R                  " [         R                  " S/ [         R                  " S[        R
                  S S9/[        SS/S/5      /[        R                  " [        R                  " SS/[        R                  S9SS	9/S
9S9n[        R                  UR                  R                  S   l        U R!                  ["        R$                  R&                  ["        R$                  R(                  USS9  ["        R$                  R)                  U5      nU R+                  UR                  R,                  S   R.                  R0                  R3                  S5      5        U R5                  S[        R6                  S4S[        R8                  S4/[        SSS/S/SS9// [;        S[        R8                  SS5      /S9nU R=                  U[        S[        R6                  S5      /5        g )Ngraph_with_undefined_typer   r	  rO  rN   r   r   r  rj   r	  r	  r   Tr  r   r  r  rB   r   r  r  rE  )r   r\   r   r    r   r   r   r   r	  r   r  int64rH   rq   rD   r  r   r]   r^   r   r_   r	  rB  rv   r   r   rU   r  rJ   r   r|   )rK   r	  rd   rq   s       r/   *test_parse_data_with_undefined_tensor_type=TestShapeInference.test_parse_data_with_undefined_tensor_type"  s   !!##011#{7H7HPTU !!2SEC5AB ++BHHaV288,LSVW

 0;/D/D",  //  --	 	 	
 --::5A  ''*//;;DDWM	
   ;$$i07K<M<Mt2TUy3.3%1EF$Wk.?.?yQR	 ! 
 	*30A0A9MN	
rg   c                4   Su  pp4U R                  S[        R                  USS44S[        R                  S4/[	        SSS/S/S	S
9// [        S[        R                  SXX445      /S9nU R                  U[        S[        R                  XUS45      /5        g )Nr  thetar=   r   r  r  
AffineGridgridr   )align_cornersrE  r  )rK   r  r  r  r  rq   s         r/   test_affinegrid_2d%TestShapeInference.test_affinegrid_2d#  s    
a  +++aAY7**D1
  f%H"#	 $V[->->qQlST ! 
  	*6;3D3DqQPQlST	
rg   c                :   Su  pp4nU R                  S[        R                  USS44S[        R                  S4/[	        SSS/S/5      // [        S[        R                  SXX4U45      /S	9nU R                  U[        S[        R                  XXES45      /5        g )
N)r=   r   r   r3   r4  r	  r   r   r  r  r	  r	  rE  r  )rK   r  r  Dr  r  rq   s          r/   test_affinegrid_3d%TestShapeInference.test_affinegrid_3d(#  s    %aA  +++aAY7**D1
  f%H $V[->->qQSToVW ! 
 	*6;3D3DqQSToVW	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SSS	S
9// 5      nU R                  U[        S[        R                  S5      /5        g )NrN   r  r	  )r   r   r   r=   
GridSampler   nearestborderr   r%  padding_moder	  r  r   s     r/   test_gridsample_2d%TestShapeInference.test_gridsample_2d=#  s      k''6**L9
  &ME"!)"#	 
" 	*30A0A<PQ	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SSS	S
9// 5      nU R                  U[        S[        R                  S5      /5        g )NrN   )r   r   r   r   r   r	  )r   r   r=   r   r   r	  r   r	  r	  r   r	  )r   r   r   r=   r   r  r   s     r/   test_gridsample_3d%TestShapeInference.test_gridsample_3dS#  s      k''9**O<
  &ME"!)"#	 
" 	*30A0A?ST	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   r  r	  )r  H_outW_outr=   r	  r   )r  r  r
  r
  r   r   s     r/   test_gridsample_2d_defaults.TestShapeInference.test_gridsample_2d_defaultsi#  s      k'')=>**,FG |c6]SE:;
 	&**,H	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S/5      // 5      nU R	                  U[        S[        R                  S5      /5        g )NrN   )r  r  r	  r  r  r	  )r  D_outr
  r
  r   r	  r   )r  r  r
  r
  r
  r   r   s     r/   test_gridsample_3d_defaults.TestShapeInference.test_gridsample_3d_defaults{#  s      k'')BC**,OP |c6]SE:;
 	&**,Q	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SSS	9// 5      nU R	                  U[        S[        R                  S5      /5        g )
NrN   )r  r  NNr	  )r  NNr=   r	  r   linearr	  r%  r	  r   r   s     r/   test_gridsample_2d_no_dim,TestShapeInference.test_gridsample_2d_no_dim#  s      k'')?@**,@A
  &ME!!) 
  	#C):):<RST	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[        SSS/S/SSS	9// 5      nU R	                  U[        S[        R                  S5      /5        g )
NrN   )r  r  NNNr	  )r  NNNr   r	  r   r
  r	  r
  r   r   s     r/   test_gridsample_3d_no_dim,TestShapeInference.test_gridsample_3d_no_dim#  s      k'')EF**,FG
  &ME!!) 
  	&**,H	
rg   c                   [        S[        R                  S5      /n[        S[        R                  S5      /n[        R                  " [        SS/S/5      /SUU5      nU R                  S[        R                  S4S[        R                  S4S[        R                  S4/[        S	/ S
QS/5      [        SS/S/US9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      /5        g )Nr>  )   r
  r   rB  ru  
body_graphry  rz  r{  r}  r~  r  SequenceMapout_sequencerE  	r    r   r   r   r   r   rU   r|   r   rK   rP   r  r
  rq   s        r/   %test_sequence_map_identity_known_dims8TestShapeInference.test_sequence_map_identity_known_dims#  s'   "7K,=,=}M
 #8[->->N
 &&zG9xj9:	

   ;,,m<;,,m<;,,m< ')G- !M?^4D:	 
  	/!;#4#4m 0"K$5$5}	
	
rg   c                   [        S[        R                  S5      /n[        S[        R                  S5      /n[        R                  " [        SS/S/5      /SUU5      nU R                  S[        R                  S4S[        R                  S	4S
[        R                  S4/[        S/ SQS/5      [        SS/S/US9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      /5        g )Nr>  r  r  r   rB  ru  r
  ry  )r  r  r   rz  )r  r  r   r{  )r3   r   r   r}  r~  r  r
  r
  rE  NNr   r
  r
  s        r/   'test_sequence_map_identity_unknown_dims:TestShapeInference.test_sequence_map_identity_unknown_dims#  s'   "7K,=,=}M
 #8[->->N
 &&zG9xj9:	

   ;,,m<;,,m<;,,i8 ')G- !M?^4D:	 
  	/!;#4#4o 0"K$5$5	
	
rg   c                Z   [         R                  " [        S/ SQS/5      [        S/ SQS/5      /S[        R                   R	                  S[        R
                  R                  S5      /[        R                   R	                  S[        R
                  R                  S	5      [        R                   R	                  S[        R
                  R                  S
5      /[        S[
        R                  SS5      [        S[
        R                  SS5      [        S[
        R                  SS5      [        S[
        R                  SS5      [        S[
        R                  SS5      /S9nU R                  S[
        R                  S4S[
        R                  S4S[
        R                  S4/[        S/ SQS/5      [        SS/S S!/US"9// 5      nU R                  U[        S[
        R                  S#5      [        S [
        R                  S	5      [        S![
        R                  S
5      /5        g )$Nr  rN   starts1ends1r  r  y1rN   starts2ends2r  r  y2r
  rN   r
  )r_  r  r   )r   (   r   r  r   r  r"
  r?	  r#
  r_  r  r&
  r'
  r   r)
  rM   r*   r0	  r1	  rD   ry  r
  i6  r   rz  n      r   r{  r;   r/
  r   r}  r~  r  r
  out_sequence1out_sequence2rE  r
  r   r   r   r]   r    r   r   r   rJ   rU   r|   r   rK   r
  rq   s      r/   'test_sequence_map_slice_outs_known_dims:TestShapeInference.test_sequence_map_slice_outs_known_dims$  s   &&'#H4&Q'#H4&Q 22))// 22$**00+ 22$**00+	 FK$5$5tVDI{'8'8$GG[%6%6hGI{'8'8$GG[%6%6hG'

8   ;,,m<;,,m<;,,l; ')G- !"O$o6#		
 #
& 	/!;#4#4o 0#[%6%6 0#[%6%6
	
rg   c                Z   [         R                  " [        S/ SQS/5      [        S/ SQS/5      /S[        R                   R	                  S[        R
                  R                  S5      /[        R                   R	                  S[        R
                  R                  S	5      [        R                   R	                  S[        R
                  R                  S
5      /[        S[
        R                  SS5      [        S[
        R                  SS5      [        S[
        R                  SS5      [        S[
        R                  SS5      [        S[
        R                  SS5      /S9nU R                  S[
        R                  S4S[
        R                  S4S[
        R                  S4/[        S/ SQS/5      [        SS/S S!/US"9// 5      nU R                  U[        S[
        R                  S#5      [        S [
        R                  S#5      [        S![
        R                  S#5      /5        g )$Nr  r!
  r$
  r%
  r(
  r
  rN   r
  )r+  W1r   )r,  W2r   r  r   r  r"
  r?	  r#
  r*
  r&
  r'
  r+
  r,
  ry  r-
  rz  r.
  r{  r1
  r}  r~  r  r
  r2
  r3
  rE  r
  r4
  r5
  s      r/   )test_sequence_map_slice_outs_unknown_dims<TestShapeInference.test_sequence_map_slice_outs_unknown_dimsN$  s   &&'#H4&Q'#H4&Q 22))// 22$**00/ 22$**00/	 FK$5$5tVDI{'8'8$GG[%6%6hGI{'8'8$GG[%6%6hG'

8   ;,,m<;,,m<;,,l; ')G- !"O$o6#		
 #
& 	/!;#4#4o 0#[%6%6 0#[%6%6
	
rg   c                   [         R                  " [        SS/S/5      /S[        R                   R	                  S[        R
                  R                  S5      /[        R                   R	                  S[        R
                  R                  S5      /S9nU R                  S[
        R                  S	4S
[
        R                  S4S[
        R                  S4/[        S/ SQS/5      [        SS/S/US9// 5      nU R                  U[        S[
        R                  S5      [        S[
        R                  S5      /5        g )Nr2  rN   r   r
  )r  r  r  r  )rM   r*   r0	  r1	  ry  r-
  rz  r.
  r{  r1
  r}  r~  r  r
  shapesrE  r
  )r   r   r   r]   r    r   r   rJ   rU   r|   r   r5
  s      r/   'test_sequence_map_different_tensor_type:TestShapeInference.test_sequence_map_different_tensor_type$  s8   &&WsegY7822))// 22T--33T

   ;,,m<;,,m<;,,l; ')G- --8*:V	 
 	/!;#4#4o 0+:K:KTR		
rg   c                6   U R                  / [        S/ S/[        S[        R                  SS5      S9[        SS/S/5      // 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      /5        U R                  / [        S/ S/[        S[        R                  SS5      S9[        SS/S/SS	9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      /5        g )
Nr  r   r?   r_	  r  HammingWindowr   r   periodicrU   r   r   r   rJ   r|   r    r   r   s     r/   test_hammingwindow%TestShapeInference.test_hammingwindow$  s*     I%g{/@/@"eL	 /G9se< 
 	&w0A0A2F&sK,=,=uE	
   I%g{/@/@"eL	 /G9seaH 
 	&w0A0A2F&sK,=,=uE	
rg   c                6   U R                  / [        S/ S/[        S[        R                  SS5      S9[        SS/S/5      // 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      /5        U R                  / [        S/ S/[        S[        R                  SS5      S9[        SS/S/SS	9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      /5        g )
Nr  r   r?   r_	  r  
HannWindowr   r   rC
  rE
  r   s     r/   test_hannwindow"TestShapeInference.test_hannwindow$  s*     I%g{/@/@"eL	 ,	C59 
 	&w0A0A2F&sK,=,=uE	
   I%g{/@/@"eL	 ,	C51E 
 	&w0A0A2F&sK,=,=uE	
rg   c                6   U R                  / [        S/ S/[        S[        R                  SS5      S9[        SS/S/5      // 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      /5        U R                  / [        S/ S/[        S[        R                  SS5      S9[        SS/S/SS	9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      /5        g )
Nr  r   r?   r_	  r  BlackmanWindowr   r   rC
  rE
  r   s     r/   test_blackmanwindow&TestShapeInference.test_blackmanwindow%  s,     I%g{/@/@"eL	 *WIu= 
 	&w0A0A2F&sK,=,=uE	
   I%g{/@/@"eL	 *WIuqI 
 	&w0A0A2F&sK,=,=uE	
rg   DFT))reals_default_axisr=   r3   r   NNNr  )reals_axis_0r   r3   r_  r   r   r   r   r   r3   r_  r=   )reals_axis_1rT
  r   r   r   rU
  )reals_axis_2rT
  r=   r   r   rU
  )reals_axis_negrT
  r  r   r   rU
  )reals_axis_0_onesidedrT
  r   r   r   r=   r3   r_  r=   )reals_axis_1_onesidedrT
  r   r   r   r   r   r_  r=   )reals_axis_2_onesidedrT
  r=   r   r   r   r3   r4  r=   )reals_axis_neg_onesidedrT
  r  r   r   r^
  )complex_default_axisr  NNNr  )real_inverserR
  r   Nr   r  )complex_inverser  r   Nr   r  )irfft_axis_0rZ
  r   r   r   )r=   r3   r_  r   )irfft_axis_1r\
  r   r   r   )r   r   r_  r   )irfft_axis_2r^
  r=   r   r   rT
  )irfft_axis_negr^
  r  r   r   rT
  c	                   0 n	Ub  XiS'   Ub  XyS'   US:  a  Ub  XYS'   [        SSS/S/40 U	D6/n
/ nOuUS:  d   eUbV  [        S	/ S/[        S[        R                  S
U45      S9[        S/ SQS/40 U	D6/n
[	        S[        R                  S
5      /nO[        S/ SQS/40 U	D6/n
/ nU R                  / [        S	/ S/[        S[        R                  U[        R                  " U[        R                  S9R                  5       5      S9/U
Q/ 5      nU R                  U[	        S[        R                  U5      /UQ[	        S[        R                  U5      P[        R                  " [        U5      /S9  g )Nonesidedinverser  ri  rP
  r>  r  rB  r  r?   r  r>  r  ri  r>  r  r  r  r   r   r   r   rJ   r    rU   r   r   onesfloat32flattenr|   r   r   r   )rK   r   r.   _test_aspectr3	  ri  rh
  ri
  expected_shape
attributesrM   value_infosrq   s                r/   test_dftTestShapeInference.test_dft6%  s   l 
%-z"$+y!R<%)6"uwmhZN:NOEKb= =")&+2C2CR$Q	 e%:XJU*U  6fk>O>OQSTU e%6
QjQ !   I%#))#2::>FFH		
  !
$ 	&w0A0A;O 'x1B1BNS
 "..{GDE 	 	
rg   ))rQ
  rR
  NNNr=   ra  r=   )rS
  rT
  r   r   r   )ra  r3   r_  r=   )rV
  rT
  r   r   r   )r   ra  r_  r=   )rW
  rT
  r=   r   r   r   r3   ra  r=   )rX
  rT
  r  r   r   rw
  )rY
  rT
  r   r   r   )   r3   r_  r=   )r[
  rT
  r   r   r   )r   rx
  r_  r=   )r]
  rT
  r=   r   r   r   r3   rx
  r=   )r_
  rT
  r  r   r   ry
  )r`
  r  NNNrv
  )ra
  rR
  r   Nr   rv
  )rb
  r  r   Nr   rv
  )rc
  rZ
  r   r   r   )ra  r3   r_  r   )rd
  r\
  r   r   r   )r   ra  r_  r   )re
  r^
  r=   r   r   r   r3   ra  r   )rf
  r^
  r  r   r   rz
  c	                t   0 n	Ub  XiS'   Ub  XyS'   Sn
US:  a]  Ub  XYS'   [        S/ S/[        S[        R                  SU
45      S	9[        S
SS/S/40 U	D6/n[	        S[        R                  S5      /nOUS:  d   eUb  [        S/ S/[        S[        R                  SU45      S	9[        S/ S/[        S[        R                  SU
45      S	9[        S
/ SQS/40 U	D6/n[	        S[        R                  S5      [	        S[        R                  S5      /nOU[        S/ S/[        S[        R                  SU
45      S	9[        S
/ SQS/40 U	D6/n[	        S[        R                  S5      /nU R                  / [        S/ S/[        S[        R                  U[        R                  " U[        R                  S9R                  5       5      S	9/UQ/ 5      nU R                  U[	        S[        R                  U5      /UQ[	        S[        R                  U5      P[        R                  " [        U5      /S9  g )Nrh
  ri
  ra  r  ri  r  
dft_lengthr?   r  rP
  r>  rB  r>  r|
  ri  )r>  r|
  r  r  r   rl
  )rK   r   r.   rp
  r3	  ri  rh
  ri
  rq
  rr
  r|
  rM   rs
  rq   s                 r/   test_dft_dft_length&TestShapeInference.test_dft_dft_length%  s   l 
%-z"$+y!
R<%)6"!N%$k&7&7j]	 %'<!88*S
S
E 2,@Q@QSUVWKb= =")&+2C2CR$Q	 "%)(+*;*;R*	 7!
 %	. +<9J9JBO*6;3D3DbI "%)(+*;*;R*	 3!
 %	" +<9J9JBO
   I%#))#2::>FFH		
  !
$ 	&w0A0A;O 'x1B1BNS
 "..{GDE 	 	
rg   ))r.  r   )last_negativer$   )out_of_ranger   )out_of_range_negativerI  c                6   U R                  / [        S/ S/[        S[        R                  S[
        R                  " S[
        R                  S9R                  5       5      S9[        SSS/S/S	US
9// 5      nU R                  [        R                  R                  5         U R                  U[        S[        R                  S5      [        S[        R                  S5      /[        R                   " ["        S5      /S9  S S S 5        g ! , (       d  f       g = f)Nr  r>  r=   r3   r3   r=   r  r  rP
  r  rB  r   rh
  ri  r=   r   r3   r=   r{  r   rU   r   r   r   r   r   rm
  rn
  ro
  r   r]   r^   r   r|   r    r   r   r   rK   r   ri  rq   s       r/   test_dft_invalid_axis_opset170TestShapeInference.test_dft_invalid_axis_opset17C&  s       I%#))$BJJ?GGI		
 %'2
QTR !
$ t33BBC!!*7K4E4E|T*8[5F5FU  &22;CD "  DCC   !A D


Dc                   U R                  / [        S/ S/[        S[        R                  S[
        R                  " S[
        R                  S9R                  5       5      S9[        S/ S/[        S[        R                  SU45      S9[        S/ S	QS
/5      // 5      nU R                  [        R                  R                  5         U R                  U[        S[        R                  S5      [        S[        R                  S5      [        S
[        R                  S5      /[         R"                  " [$        S5      /S9  S S S 5        g ! , (       d  f       g = f)Nr  r>  r
  r  r  ri  r?   rP
  rj
  rB  r
  r  r   rU   r   r   r   r   r   rm
  rn
  ro
  rJ   r   r]   r^   r   r|   r    r   r   r   r
  s       r/   test_dft_invalid_axis_opset200TestShapeInference.test_dft_invalid_axis_opset20h&  s1      I%#))$BJJ?GGI		
 H%fk.?.?dWM	 %!6
C%( -
0 t33BBC!!*7K4E4E|T*6;3D3DbI*8[5F5FU
  &22;CD "  DCCs   A:E
Ec                6   U R                  / [        S/ S/[        S[        R                  S[
        R                  " S[
        R                  S9R                  5       5      S9[        SSS/S/S	S	S
9// 5      nU R                  [        R                  R                  5         U R                  U[        S[        R                  S5      [        S[        R                  S5      /[        R                   " ["        S5      /S9  SSS5        g! , (       d  f       g= f)<Test that RFFT (onesided=1, inverse=0) rejects complex inputr  r>  r  r  r  rP
  r  rB  r   r
  r=   r   r=   r{  r   Nr
  r   s     r/   +test_dft_rfft_invalid_complex_input_opset17>TestShapeInference.test_dft_rfft_invalid_complex_input_opset17&  s      I%#))!	<DDF		
 %'2
QQO !
$ t33BBC!!*7K4E4EyQ*8[5F5F	R  &22;CD "  DCCr
  c                   U R                  / [        S/ S/[        S[        R                  S[
        R                  " S[
        R                  S9R                  5       5      S9[        S/ S/[        S[        R                  SS5      S9[        S	/ S
QS/SS9// 5      nU R                  [        R                  R                  5         U R                  U[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      /[         R"                  " [$        S5      /S9  SSS5        g! , (       d  f       g= f)r
  r  r>  r  r  r  ri  r?   rA  rP
  rj
  rB  r   rh
  r
  r  r   Nr
  r   s     r/   +test_dft_rfft_invalid_complex_input_opset20>TestShapeInference.test_dft_rfft_invalid_complex_input_opset20&  s/     I%#))!	<DDF		
 H%fk.?.?TJ	 %!6
QO%( -
0 t33BBC!!*7K4E4EyQ*6;3D3DbI*8[5F5F	R
  &22;CD "  DCCs   A:E		
Ec                8   U R                  / [        S/ S/[        S[        R                  S[
        R                  " S[
        R                  S9R                  5       5      S9[        SSS/S/S	S	S	S
9// 5      nU R                  [        R                  R                  5         U R                  U[        S[        R                  S5      [        S[        R                  S5      /[        R                   " ["        S5      /S9  SSS5        g! , (       d  f       g= f):Test that IRFFT (onesided=1, inverse=1) rejects real inputr  r>  rR
  r  r  rP
  r  rB  r   )rh
  ri
  ri  r=   r)  r   r{  r   Nr
  r   s     r/   )test_dft_irfft_invalid_real_input_opset17<TestShapeInference.test_dft_irfft_invalid_real_input_opset17&  s      I%#))!	<DDF		
 GR=8*q!RS  %
( t33BBC!!*7K4E4EyQ*8[5F5F	R  &22;CD "  DCCs   "A D
Dc                   U R                  / [        S/ S/[        S[        R                  S[
        R                  " S[
        R                  S9R                  5       5      S9[        S/ S/[        S[        R                  SS5      S9[        S	/ S
QS/SSS9// 5      nU R                  [        R                  R                  5         U R                  U[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      /[         R"                  " [$        S5      /S9  SSS5        g! , (       d  f       g= f)r
  r  r>  rR
  r  r  ri  r?   rA  rP
  rj
  rB  r   )rh
  ri
  r
  r  r   Nr
  r   s     r/   )test_dft_irfft_invalid_real_input_opset20<TestShapeInference.test_dft_irfft_invalid_real_input_opset20&  s5     I%#))!	<DDF		
 H%fk.?.?TJ	 08*qRS%, 1
4 t33BBC!!*7K4E4EyQ*6;3D3DbI*8[5F5F	R
  &22;CD "  DCCs   A:E


E)realr=   r3   r3   r   )complexr
  c                   U R                  S[        R                  S4/[        S/ S/[	        S[        R
                  U[        R                  " U[        R                  S9R                  5       5      S9[        S/ SQS	/5      // 5      nU R                  U[        S[        R
                  U5      [        S	[        R
                  S
5      /[        R                  " [        S5      /S9  g )Nri  r?   r  r>  r  r  rP
  rj
  rB  r
  r  r   rU   r   rJ   r   r   r   r   rm
  rn
  ro
  r|   r    r   r   r   rK   r   r   rq   s       r/   test_dft_dynamic_axis_opset200TestShapeInference.test_dft_dynamic_axis_opset20'  s       k'',-I%#))RZZ8@@B		
 %!6
C !
$ 	&w0A0A5I&x1B1BLQ "..{B?@ 	 	
rg   c                   U R                  S[        R                  S4/[        S/ S/[	        S[        R
                  U[        R                  " U[        R                  S9R                  5       5      S9[        S/ S/[	        S[        R                  S[        R                  " S/[        R                  S95      S9[        S	/ S
QS/SS9// 5      nU R                  U[        S[        R
                  U5      [        S[        R                  S5      [        S[        R
                  S5      /[        R                  " [         S5      /S9  g )Nri  r?   r  r>  r  r  r|
  ra  rP
  r}
  rB  r   r
  NNNr=   r  r   )rU   r   rJ   r   r   r   r   rm
  rn
  ro
  r  r	  r|   r    r   r   r   r
  s       r/   1test_dft_dynamic_axis_onesided_dft_length_opset20DTestShapeInference.test_dft_dynamic_axis_onesided_dft_length_opset20@'  s9      k'',-I%#))RZZ8@@B		
 !N%$#))"RXX6		
 :XJQR/6 ;
> 	&w0A0A5I&|[5F5FK&k//1F "..{B?@ 	 
	
rg   c                   U R                  S[        R                  S4/[        S/ S/[	        S[        R
                  U[        R                  " U[        R                  S9R                  5       5      S9[        S/ SQS	/S
S9// 5      nU R                  U[        S[        R
                  U5      [        S	[        R
                  S5      /[        R                  " [        S5      /S9  g )Nri  r?   r  r>  r  r  rP
  rj
  rB  r   r
  r
  r  r   r
  r
  s       r/   &test_dft_dynamic_axis_onesided_opset209TestShapeInference.test_dft_dynamic_axis_onesided_opset20s'  s       k'',-I%#))RZZ8@@B		
 %!6
QO !
$ 	&w0A0A5I&k//1F "..{B?@ 	 		
rg   c                   U R                  / [        S/ S/[        S[        R                  S[
        R                  " S[
        R                  S9R                  5       5      S9[        SSS/S/S	S
9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      /[        R                  " [        S5      /S9  g )Nr  r>  r
  r  r  rP
  r  rB  r   r
  r
  r{  r   rU   r   r   r   r   r   rm
  rn
  ro
  r|   r    r   r   r   r   s     r/   &test_dft_onesided_default_axis_opset179TestShapeInference.test_dft_onesided_default_axis_opset17'  s      I%#))$BJJ?GGI		
 %'2
QG !
$ 	&w0A0A<P&x1B1BLQ "..{B?@ 	 	
rg   c                   U R                  / [        S/ S/[        S[        R                  S[
        R                  " S[
        R                  S9R                  5       5      S9[        S/ SQS/S	S
9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      /[        R                  " [        S5      /S9  g )Nr  r>  r
  r  r  rP
  rk
  rB  r   r
  )r=   r3   r   r=   r  r   r
  r   s     r/   &test_dft_onesided_default_axis_opset209TestShapeInference.test_dft_onesided_default_axis_opset20'  s      I%#))$BJJ?GGI		
 %!2XJK !
$ 	&w0A0A<P&x1B1BLQ "..{B?@ 	 	
rg   c                   U R                  / [        S/ S/[        S[        R                  SS5      S9[        S/ S/[        S[        R
                  SS5      S9[        S/ S	/[        S	[        R
                  S
S5      S9[        S/ SQS/5      // 5      nU R                  U[        S[        R                  S5      [        S[        R
                  S5      [        S	[        R
                  S
5      [        S[        R                  S5      /5        U R                  / [        S/ S/[        S[        R                  SS5      S9[        S/ S/[        S[        R
                  SS5      S9[        S/ S	/[        S	[        R
                  S
S5      S9[        S/ S/[        S[        R
                  SS
5      S9[        S/ SQS/5      // 5      nU R                  U[        S[        R                  S5      [        S[        R
                  S5      [        S	[        R
                  S
5      [        S[        R
                  S5      [        S[        R                  S5      /5        U R                  / [        S/ S/[        S[        R                  SS5      S9[        S/ S/[        S[        R
                  SS5      S9[        S/ S/[        S[        R
                  SS
5      S9[        S/ SQS/5      // 5      nU R                  U[        S[        R                  S5      [        S[        R
                  S5      [        S[        R
                  S5      [        S[        R                  S5      /5        g )Nr  signal)r=   r_  r   )r   r   r   r   r   r   r   r   r   r   r=   r=   r=   r=   r=   r   r   r   r   r   r  
frame_stepr?   r   windowr  rb  STFT)r
  r
  r
  rB  r
  frame_length)r
  r
  r  r
  )rU   r   r   r   r   rJ   r|   r    r   s     r/   test_stft_reals"TestShapeInference.test_stft_reals'  sy     J% #))"T		
 !N%lK4E4Er4P	 J% +"3"3T?	 &"DxjQ58 =
B 	&x1B1BJO&|[5F5FK&x1B1BDI&x1B1BLQ		
   J% #))"T		
 !N%lK4E4Er4P	 J% +"3"3T?	 #$%nk6G6GTR	 &"DxjQA!D I%
N 	&x1B1BJO&|[5F5FK&x1B1BDI&~{7H7H"M&x1B1BLQ		
   J% #))"T		
 !N%lK4E4Er4P	 #$%nk6G6GTR	 H8*18 =
B 	&x1B1BJO&|[5F5FK&~{7H7H"M&x1B1BLQ		
rg   c                    U R                  / [        S/ S/[        S[        R                  SS5      S9[        S/ S/[        S[        R                  SS5      S9[        S/ S/[        S[        R                  SS5      S9[        S/ S	/[        S	[        R
                  SS
5      S9[        S/ S/[        S[        R
                  SS5      S9[        S/ SQS/5      // 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      [        S	[        R
                  S5      [        S[        R
                  S5      [        S[        R
                  S5      /5        g )Nr  num_mel_binsr?   r_	  r  r|
  r  sample_ratelower_edge_hertzg      $@upper_edge_hertzg      Y@MelWeightMatrixr
  r|
  r
  r
  r
  rB  r:  r_  )rU   r   r   r   rJ   r   r|   r    r   s     r/   test_melweightmatrix'TestShapeInference.test_melweightmatrix[(  s     #$%nk6G6GUS	 !N%lK4E4Er6R	 "O%m[5F5FER	 '(%*K,=,=r7	 '(%*K,=,=r8	 % J
G.^ c2
f 	&~{7H7H"M&|[5F5FK&}k6G6GL&'9;;L;LbQ&'9;;L;LbQ&x1B1BHM
	
rg   c                :   U R                  / [        S/ S/[        S[        R                  SS5      S9[        S/ S/[        S[        R                  SS5      S9[        S/ S/[        S[        R                  SS5      S9[        S/ S	/[        S	[        R
                  SS
5      S9[        S/ S/[        S[        R
                  SS5      S9[        S/ SQS/[        R                  S9// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S5      [        S[        R                  S5      [        S	[        R
                  S5      [        S[        R
                  S5      [        S[        R                  S5      /5        g )Nr  r
  r?   r_	  r  r|
  r  r
  r
  r
  r
  r
  r
  r
  rB  )output_datatyper
  )	rU   r   r   r   rJ   r   r/  r|   r    r   s     r/   )test_melweightmatrix_with_output_datatype<TestShapeInference.test_melweightmatrix_with_output_datatype(  s     #$%nk6G6GUS	 !N%lK4E4Er6R	 "O%m[5F5FER	 '(%*K,=,=r7	 '(%*K,=,=r8	 % J$/$6$6G/` e3
h 	&~{7H7H"M&|[5F5FK&}k6G6GL&'9;;L;LbQ&'9;;L;LbQ&x1C1CXN
	
rg   c                P   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS/S	9// [        S[        R                  SS
5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        S5      /S9  g )N
input_data)r  r_  r   r   r   CenterCropPadr   r   r   r  r_  r)  rE  r_  r)  r   r  r   rG  r   s     r/   test_center_crop_pad_hwc_crop0TestShapeInference.test_center_crop_pad_hwc_crop(        {00+>+++T2 w(?#aQRVTU$Wk.?.?wOP ! 
 	#C):):JGH!..{B?@ 	 	
rg   c                P   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS/S	9// [        S[        R                  SS
5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        S5      /S9  g )Nr
  )r   r  r_  r   r   r
  r   r   r=   r  r
  rE  )r   r_  r)  r  r   rG  r   s     r/   test_center_crop_pad_chw_crop0TestShapeInference.test_center_crop_pad_chw_crop(  r
  rg   c                P   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS/S	9// [        S[        R                  SS
5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        S5      /S9  g )Nr
  )r_  r_  r   r   r   r
  r   r   r   r  r  r)  rE  )r  r)  r   r  r   rG  r   s     r/    test_center_crop_pad_hwc_croppad3TestShapeInference.test_center_crop_pad_hwc_croppad(  r
  rg   c                P   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS/S	9// [        S[        R                  SS
5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        S5      /S9  g )Nr
  )r   r_  r_  r   r   r
  r   r   r=   r  r
  rE  )r   r  r)  r  r   rG  r   s     r/    test_center_crop_pad_chw_croppad3TestShapeInference.test_center_crop_pad_chw_croppad)  r
  rg   c                   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S 5      /[        R                  " [        S5      /S9  g )	Nr
  r  r   r   r
  r   r  r   rW  r   s     r/   (test_center_crop_pad_without_input_shape;TestShapeInference.test_center_crop_pad_without_input_shape)  s      {00&9+++T2 w(?#GH
 	#C):):DAB!..{B?@ 	 	
rg   c                P   U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS/S	9// [        S[        R                  SS
5      /S9nU R                  U[        S[        R                  S5      /[        R                  " [        S5      /S9  g )Nr
  )r  r  r   r   r   r
  r   r   r   r  r
  rE  r
  r  r   rG  r   s     r/   ;test_center_crop_pad_with_input_shape_containing_dim_paramsNTestShapeInference.test_center_crop_pad_with_input_shape_containing_dim_params+)  s       {00,?+++T2 w(?#aQRVTU$Wk.?.?wOP ! 
 	#C):):JGH!..{B?@ 	 	
rg   c           	        [        SS/S/[        / SQ/ SQS9nU R                  S[        R                  S4/U// 5      nU R                  U[        S[        R                  S5      /[        [        S5      [        [        S	5      /S
9  U R                  S[        R                  S4/U// 5      nU R                  U[        S[        R                  S5      /[        [        S5      [        [        S	5      /S
9  g )NCategoryMapperrN   r   r   123r+   cats_int64scats_stringsr   r   r  r   )r   r3   r   )
r   r   rU   r   rJ   r|   r    r   r   r   )rK   cat	graph_int	graph_strs       r/   test_category_mapper'TestShapeInference.test_category_mapper=)  s   EE!!(
 $$;$$j12E
	
 	#C););ZHI^Q/["- 	 	
 $$;%%z23E
	
 	#C):):JGH^Q/["- 	 	
rg   r   r
  r
  Nr
  r  c           
        [        SS/S/[        UUS9nU R                  S[        R                  S4/U// 5      nU R                  [        R                  R                  U R                  U[        [        S5      [        [        S5      /S9  g )	Nr
  rN   r   r
  r   r   r  r   )r   r   rU   r   rJ   r   r]   r^   r   re   r   r   )rK   r
  r
  r
  rq   s        r/   0test_category_mapper_fails_if_invalid_attributesCTestShapeInference.test_category_mapper_fails_if_invalid_attributesb)  s     EE!#%
   ;$$j12E

 	  //NN^Q/["-	 	 	
rg   c           	        [        SS/S/[        SS9nU R                  S[        R                  S4/U// 5      nU R                  U[        S[        R                  S5      /[        [        S5      [        [        S	5      /S
9  g )NTreeEnsembleRegressorrN   r   r3   )r+   	n_targetsr   r   r   r3   r   r  r   )
r   r   rU   r   r/  r|   r    r   r   r   rK   treerq   s      r/   test_tree_ensemble_regressor/TestShapeInference.test_tree_ensemble_regressor)  s    #EE!
   ;%%w/0F

 	#C):):GDE^Q/["- 	 	
rg   c                   SnSn[        SS/S/[        SS/U-  [        SUU4[        [	        U5      5      5      [        S[
        R                  U4S/U-  5      S/U-  S/U-  S/U-  S/U-  [        S	US
SSS[        R                  SSS/5      S/U-  [        SX4S/U-  5      S/S9nU R                  SUS4/U// 5      nU R                  U[        SUS5      /[        [        S5      [        [        S5      /S9  g )Nr3   rK  TreeEnsemblerN   r   r   nodes_splitsnodes_modesmembership_values)rg  r/	  r  r  r  r  r  leaf_weightsr   )r+   r
  nodes_featureidsr  r  nodes_truenodeidsnodes_falsenodeidsnodes_trueleafsnodes_falseleafsr  leaf_targetidsr  
tree_roots
Batch SizeFeatures)r  r3   r  r   )r   r   r   rr   r&   r   r  r   nanrU   r|   r    r   r   )rK   r  interior_nodesleavesr
  rq   s         r/   test_tree_ensemble%TestShapeInference.test_tree_ensemble)  s[    EE!S>1$!U>*+	 $!!!n$	  !cN2 !s^3C.0S>1)#c3S#6	 3<$^UIsV|Ts? 
D   5456F
 	#C0ABC^Q/["- 	 	
rg   r   r4  r  )rK  r   rK  r  r  r3   )r  r  c                   SnSn[        SS/S/[        SS/U-  U[        S[        R                  U4S/U-  5      US/U-  S/U-  S/U-  S/U-  US/S9nU R                  S[        R                  S	4/U// 5      nU R                  [        R                  R                  U R                  U[        [        S5      [        [        S
5      /S9  g )Nr3   rK  r  rN   r   r   r  )r+   r
  r  r  r  r  r	  r
  r  r  r  r  r  r  r   )r   r   r   r   r  rU   r/  r   r]   r^   r   re   r   r   )rK   r  r  r  r  r  r
  rq   s           r/   .test_tree_ensemble_fails_if_invalid_attributesATestShapeInference.test_tree_ensemble_fails_if_invalid_attributes)  s   > EE!S>1%#!!!n$	 0 !s^3C.0S>13<%s)
.   ;%%'ABCF

 	  //NN^Q/["-	 	 	
rg   c           	     B   [        SS/SS// SQ[        S9nU R                  S[        R                  S4/U// 5      nU R                  U[        S[        R                  S5      [        S[        R                  S	5      /[        [        S
5      [        [        S5      /S9  g )NTreeEnsembleClassifierrN   r   r   )r   r   r=   r   r   )classlabels_int64sr+   r
  )r   r
  r   r  r   )r   r   rU   r   r/  r|   r    rJ   r   r   r   r
  s      r/   test_tree_ensemble_classifier0TestShapeInference.test_tree_ensemble_classifier*  s    $E#J.!
   ;%%w/0F

 	&sK,=,=uE&sK,=,=wG
 ^Q/["- 	 
	
rg   c                H   [        SSS/S/[        S9nS H  u  p#U R                  S[        R                  S4S[        R                  U4/U// 5      nU R                  U[        S[        R                  SS	U45      /[        [        S5      [        [        S
5      /S9  M     g )NArrayFeatureExtractorrN   r   r   r"  ))r   r=   )r?   r  )r  r  ra  r   r   r  r   	r   r   rU   r   rJ   r|   r    r   r   )rK   node
axes_shapeexpectedrq   s        r/   test_array_feature_extractor/TestShapeInference.test_array_feature_extractor3*  s    ##JE!	
%
 J
 $$+++Y7+++Z8 E !!'[->->Ax@PQR 3 b1 " %
rg   c           	        [        SS/S/[        S9nU R                  S[        R                  S4/U// 5      nU R                  U[        S[        R                  S5      /[        [        S5      [        [        S5      /S9  g )	N	BinarizerrN   r   r"  ra  r   r  r   r   )rK   r!  rq   s      r/   test_binarizer!TestShapeInference.test_binarizerQ*  s    EE!	
   k''3 F
 	#C):):IFG^Q/["- 	 	
rg   c                    U R                  S[        R                  S4/[        SS/S// SQSS9// 5      nU R	                  U[        S[        R                  S5      /[        [        S	5      [        [        S
5      /S9  g )Nr>  r=   r  r   OneHotEncoderrB  rB  
ai.onnx.ml)r
  r+   r=   r  r   r   r   r  r   )
rU   r   rJ   r   r|   r    r   r   r   r   r   s     r/   test_one_hot_encoder'TestShapeInference.test_one_hot_encoderi*  s      {((+67#IJ ,' 
 	#Hk.?.?PQ^Q/["- 	 	
rg   c                   U R                  S[        R                  S4/[        SS/S/UUSS9// 5      nU R	                  [
        R                  R                  U R                  U[        [        S5      [        [        S5      /S	9  g )
Nr>  r+  r,  rB  r-  )r
  r
  r+   r   r  r   )rU   r   rJ   r   r   r]   r^   r   re   r   r   r   )rK   r
  r
  rq   s       r/   0test_one_hot_encoder_fails_if_invalid_attributesCTestShapeInference.test_one_hot_encoder_fails_if_invalid_attributes*  s       {((+67#IJ +!-'	 
 	  //NN^Q/["-	 	 	
rg   c                   S/ SQ0[         R                  R                  4S/ SQ0[         R                  R                  44nU H.  u  p#U R	                  X#S9   U R                  X#5        S S S 5        M0     g ! , (       d  f       MB  = f)Nr  r   classlabels_strings)r   r   c)attrsr  )r]   r   rJ   r   subTestzip_map_test_case)rK   paramsr7  r  s       r/   test_zip_mapTestShapeInference.test_zip_map*  sx     #I.0@0@0F0FG#_5t7G7G7N7NO
 "(EEA&&u9 BA "(AAs   A66
B	c           	        U R                  S[        R                  S4/[        SS/S/40 UDSS0D6// 5      n[        R
                  R                  U[        R
                  R                  [        R                  S5      5      nU R                  U[        R
                  R                  S[        R
                  R                  U5      5      /[        [        S5      [        [        S	5      /S
9  g )Nr>  )r  r   ZipMaprB  r+   r-  r?   r   r  r   )rU   r   r   r   r]   r   make_map_type_protor  r|   r  r  r   r   r   )rK   r7  r  rq   typs        r/   r9  $TestShapeInference.zip_map_test_case*  s      {(((34IJ 	
 ( 
 kk--::;;L;LbQ
 	++dkkBB3G ^Q/["- 	 	
rg   c                    U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/5      // 5      nU R                  U[        S[        R                  S5      /5        g )Nr>  r.  r   rA   CompressrB  rU   r   rJ   r  r   r|   r    r   s     r/   test_compress_without_axis-TestShapeInference.test_compress_without_axis*  sz      +++^<k..8 zG[#9H:FG
 	*8[5F5FPQ	
rg   c           
         U R                  S[        R                  S4S[        R                  S4/[	        SSS/S/SS9// 5      nU R                  U[        S[        R                  S	5      /5        g )
Nr>  r.  r   rA   rC  rB  r$   rh  )r=   r  r   NrD  r   s     r/   test_compress_with_axis*TestShapeInference.test_compress_with_axis*  s}      +++^<k..8 zG[#9H:BOP
 	#Hk.?.?ARST	
rg   c                   Sn[         R                  R                  U5      n[        R                  " SSS/ / S9n[         R                  R                  U5        U R                  [         R                  R                  5         [         R                  R                  US5        S S S 5        [         R                  R                  UR                  UR                  UR                  5        g ! , (       d  f       NN= f)Nz
            <
                ir_version: 7,
                opset_import: ["" : 1]
            >
            agraph (X, Y) => (Z)
            {
                Z = CustomOp(X, Y)
            }
           CustomOpr  r   )r0	  r1	  T)r]   parserparse_modelr   r   register_schemar   r^   r   r_   deregister_schemar*   r'   r+   )rK   r>  r	  	op_schemas       r/   (test_check_type_when_schema_has_empty_io;TestShapeInference.test_check_type_when_schema_has_empty_io*  s    	 ''.MM
	 			!!),t33BBC  --eT: D		##NNI33Y5E5E	
 DCs   !C++
C9c                F   Sn[         R                  R                  U5      nU R                  [         R                  R
                  5         [         R                  R                  USS9  [         R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Na  
        <
        ir_version: 10,
        opset_import: ["" : 17]
        >
        graph (float in0, float[2,7,8,1,3] in1, float[3,7] in2) => () {
        out0, out1, out2 = LayerNormalization <epsilon: float = -841.058, stash_type: int = -940> (in0, in1, in2)
        }
        T
full_check	r]   rL  rM  r   r^   r   r   r`   r_   rK   modeltxtr	  s      r/   #test_issue_layer_normalization_61876TestShapeInference.test_issue_layer_normalization_6187+  q     ''1t33BBCLL$$Ut$<  --e4 DCC   >B
B c                F   Sn[         R                  R                  U5      nU R                  [         R                  R
                  5         [         R                  R                  USS9  [         R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Nz
        <
        ir_version: 9,
        opset_import: ["" : 11]
        >
        graph (float[7,6,1,5] in0, float in1, float[7,2,3,2,1] in2) => () {
        out0 = Conv <auto_pad = "NOTSET", group = 1> (in0, in1, in2)
        }
        TrT  rV  rW  s      r/   test_issue_conv_6180'TestShapeInference.test_issue_conv_6180+  r[  r\  c                F   Sn[         R                  R                  U5      nU R                  [         R                  R
                  5         [         R                  R                  USS9  [         R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Na  
        <
        ir_version: 10,
        opset_import: ["" : 6]
        >
        graph (double[2,1] in0, double in1, double[2] in2) => () {
        out0 = Gemm <alpha: float = 1, beta: float = -693.752, broadcast: int = -436, transB: int = 823> (in0, in1, in2)
        }
        TrT  )	r]   rL  rM  r   r   r  r`   r^   r_   rW  s      r/   test_issue_gemm_6185'TestShapeInference.test_issue_gemm_6185+  sn     ''1t||;;<LL$$Ut$<  --e4 =<<r\  c                F   Sn[         R                  R                  U5      nU R                  [         R                  R
                  5         [         R                  R                  USS9  [         R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Nz
        <
        ir_version: 10,
        opset_import: ["" : 17]
        >
        graph (float16[3] in0, int32[2] in1, float16[7,8,8,8] in2, int32[8,1,7,2] in3) => () {
        out0 = STFT (in0, in1, in2, in3)
        }
        TrT  rV  rW  s      r/   test_issue_stft_6186'TestShapeInference.test_issue_stft_6186.+  r[  r\  rO  c                :   U R                  S[        R                  S4S/[        SS/S/SS9// [	        S[        R
                  SS5      /S9nU R                  [        R                  R                  U R                  U[        R                  " [        U5      /S	9  g )
Nzstd.constantrA  rB  rO  invalid_node)r0	  r1	  r*   )irE  r   )rU   r   rJ   r   r   r   r   r]   r^   r   re   r   r   r   r   s       r/   test_issue_constantofshape_61352TestShapeInference.test_issue_constantofshape_6135=+  s      k//6A%*+%J'	 $^[5F5FfUV ! 
 	  //NN!..{GDE	 	 	
rg   c                    Sn[         R                  " U[        R                  " 5       5      nU R	                  U/ 5        g )Na  
            ir_version: 8
            producer_name: "test"
            graph {
              node {
                input: "in"
                output: "out"
                op_type: "Flatten"
                attribute {
                  name: "axis"
                  type: INT
                }
              }
              name: "g"
              input {
                name: "in"
                type {
                  tensor_type {
                    elem_type: 1
                    shape {
                      dim {
                        dim_value: 2
                      }
                      dim {
                        dim_value: 3
                      }
                    }
                  }
                }
              }
              output {
                name: "out"
                type {
                  tensor_type {
                    elem_type: 1
                    shape {
                      dim {
                        dim_value: 1
                      }
                      dim {
                        dim_value: 6
                      }
                    }
                  }
                }
              }
            }
            opset_import {
              version: 18
            }
        )r   Parser]   r
   r|   )rK   
model_textr	  s      r/   test_protobuf_default(TestShapeInference.test_protobuf_defaultS+  s5    2
f !!*doo.?@eR(rg   r?   r   r   )r   r   rb   r   r   r   )r   Sequence[int]r   rp  r   r   )r   r   r   r   r   r   r   r   )r   r   r  zTensorProto.DataTyper   r   )
r2  intr3  rq  r4  rq  r5  rq  r   r   )forward)r2  rq  r3  rq  r4  rq  r5  rq  r  r   r   r   )
r   rp  r)  rp  rR  rp  r  rp  r   r   )r   r   r.   rq  rp
  r   r3	  
tuple[int]ri  
int | Nonerh
  rt  ri
  rt  rq
  rs  r   r   )r   r   ri  rq  r   r   )r   r   r   ztuple[int, ...]r   r   (1  r   r   r   r   r   r   r   expandr8   r   r   r   r   r   r   r   r   r   r  r  r  unittestr   r  r  r"  r%  r+  r0  r6  r:  rH  rO  rU  r\  rc  rj  rq  ru  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r&  r)  r-  r0  r5  r<  rB  rE  rJ  rM  rQ  rX  r[  r^  rb  rf  rm  rk  rw  rv  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r
  r  r  r  r"  r&  r,  r2  r7  r<  rC  rF  rK  rO  r]  rb  rh  rl  rr  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r&  r6  r;  r?  rC  rB  rJ  rO  rR  rY  r\  r_  rb  ri  rn  rt  rw  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r*  r.  r6  r9  r=  r@  rC  rG  rK  rQ  rT  rX  r[  r^  ra  rd  rg  rk  rn  rq  rt  rw  rz  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r"  r%  r-  r1  r7  r:  rI  rL  rQ  rU  rX  r[  r`  rg  rj  rm  rp  rs  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r]   r   r   r  r	  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  
skipUnlessr   r  r  r  r  r  r%  r(  r:  rG  rJ  rU  r^  rc  rg  rk  ro  rs  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r$  r1  r;  rC  rK  rN  rU  rY  r\  r_  rb  rh  rm  rq  rt  rw  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r	  r	  r	  r	  r	  r	  r	  r	  r"	  r%	  r(	  r,	  r5	  r<	  rA	  rF	  rK	  rO	  rR	  rV	  rZ	  r`	  rc	  rf	  rr	  rv	  ry	  r|	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r	  r
  r
  r
  r
  r
  r
  r6
  r;
  r?
  rF
  rJ
  rN
  	itertoolsproductrt
  r~
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r
  r/  r  r   r  r  r$  r(  r/  r2  r;  r9  rE  rH  rQ  rY  r^  ra  rd  rh  rm  r   )	.0r*   r.   test_aspectr3	  ri  rh
  ri
  rq
  s	   000000000r/   r   r      s6   V
 *;78

 9

 *;78

 9

 *;78
 9
 *;78

 9

 *;78V 9V *;78V 9V *;78V 9V
,
6C
	
$ *845J 6J
"
,/
EH
	
 *845H 6H  *623

 4

 *623]]V 4V *:67

 8

 *956
 7
 *956
 7
 *956
 7
 *956
 7
 *956
 7
 *956
 7
 *845
 6
0 *845
 6
6 *845
 6
6 *845
 6
6 *845
 6
0 *845

 6

 *845
V 6
V *845

 6

 *845

 6

 *845

 6

 *956
 7
 *956

 7

 *956

 7

 *956
 7
 *956
 7
 *956
 7
 *956
 7
" *956
 7
. *:67'B 8'BR *:67-B 8-B^ *845
 6
 *845
 6
 *845
 6
* *845
 6
  *845
 6
" *8456 66p *+=>?
 @
 *845
 6
$ *845
 6
$ *845
 6
8 *845
 6
: *845
 6
8 *845
 6
: *845
 6
( *845
 6
$ *845
 6
$ *845
 6
4 *845 
 6 
D *845
 6
@ *734

 5

 *734
 5
 *734
 5
 *734
 5
 *734
 5
 *734
 5
 *623
 4
 *845

 6

 *845

 6

 *845

 6

 *+;<=

 >

 *+;<=

 >

 *956( 7(
  *956. 7.
  *+<=>
 ?
  *+<=>
 ?
  *;78
 9
  *;78
 9
2
6 *956 7< *>:;
 <
 *>:;
 <
 *+;<=

 >

 *+;<=

 >



"	
	
	
	


0
$
*
*
(
(
,
,
,
0
(
(
.
.
<
,





"
$



%
N
&

($(
6
&
<




#



$

"

"




#7

	

KJKOLMO
SV



	
	
	


&)
47
EH
	
8)

&)
47
EH
	
@9 #*
*
 *
 	*

 *
 *
 
*
X/ 
 
&) 
47 
EH 
	 
D*


.
$





"
"


 
 

	





@@
(
(V$


$



$
(

V

V

V





&
&
&
&

&
(
&
&
(
&



&
&



&

(







"
,
,
,
,
.
6
*
8
t7
r9
v7
r7
r*
X(
T(
T
8
8B;H
"
,



4
l'
R
6
"
"
6
,
,
,


.
#
J!
F!
F!
F!
F"
H!
F&
#&
-:&
	&
P9"
"
#&"
<?"
	"
HF
#
-:
	
29 					!1!1!9!94;K;K;T;TU




"
*
0 ]]

( 					!1!1!9!94;K;K;T;TU


&

 
.
"	

&
 "QR
 S
8 "QR
 S
8
.


4
6 ,3(4O
O
b ,3(4"
"
H ,3(4B
	B
B
H  %	
  
$







&V2V:
$






2

2
2
<
<
<
4
0
4
8
8
2
 
 


.


 
 
2
.
2
2
2
6
6
@#
J!
F'
R%
N,
\


*
2




V










V



	












	




	



	



	



	



	



	




	



	





	



$
,
$
	
0
*
,
*
	
0V*J*




(>,"!,
LL

	
	
	


8
8
8
.
8
8



:: :M,
*
<?  *=9:
 ;
( *=9:
 ;
( *=9:
 ;
$ *=9:
 ;
" *=9:
 ;
&K*
8

8%
N
,
*
,
,
$
$
,
4'
R'
R=
~=
~&
P)
V)
V)
V & "" '%'	
 '	
$ " 	"%'	
 '	
)TE
E
 E
 	E

  E
 E
 E
 E
 #E
 
E
U)TE
N & "" '%'	
 '	
$ " 	"%'	
 '	
)Tp
p
 p
 	p

  p
 p
 p
 p
 #p
 
p
U)Tp
d 	
: 	
""H<#J@%N "%	


8 "	

,
,
,,
	,

,
\ "	



,
	


@
:
:G
R>
@?
B
 
 
 
 

$ "QR"
 S"
H c
#?#		
 "QR
	
 S
4 "QR
 S
, ;,,k.@.@+BUBUVW"QR2
 S X2
h  aNK,>,>qcAgNNK,>,>qcAgN aNK,=,=taS1WMNK,>,>qcAgN aNK,>,>sRxPNK,>,>qcAgN aNK,>,>qcAgNNK,=,=taS1WM!	
0 "QR,

 
,
 S12,
\ "QR
 S
2 "QR S: "QR
 S
. "QR
 S
. (	
 "QR
	
 S
6 "QR: S:
<


65555 *+<=>
 ?
*5) 5)y0'	
 '	
b'	
 '	
s   c Ax'e
 Ax4r   c                      \ rS rSr% SrS\S'   SrS\S'   SrS\S	'   S
rS\S'   SS jr	SS jr
S rS rSS jrS rS rSS jrSS jrSS jrSrg)TestCustomSchemaShapeInferencei+  rK  r   custom_op_type
DummyGraphdummy_graph_op_typer   rq  
op_versionr  	op_domainc                   U R                  [        R                  R                  U R                  U R
                  5      5        U R                  [        R                  R                  U R                  U R
                  5      5        g rA   )r	  r]   r   hasr~  r  r  rq  s    r/   setUp$TestCustomSchemaShapeInference.setUp+  sP    t':':DNNKLt'?'?PQrg   c                   [         R                  " [        R                  R                  5         [        R                  R                  U R                  U R                  U R                  5        [        R                  R                  U R                  U R                  U R                  5        S S S 5        g ! , (       d  f       g = frA   )

contextlibsuppressr]   r   r   rO  r~  r  r  r  rq  s    r/   tearDown'TestCustomSchemaShapeInference.tearDown+  sv      !6!67II''##T__dnn II''(($//4>>	 877s   A?B77
Cc                  ^  [        T R                  T R                  T R                  [        R                   R                  SS5      [        R                   R                  SS5      /[        R                   R                  SS[         R                  R                  S9/[        R                   R                  S[        R                   R                  R                  5      /S9nS	U 4S jjnUR                  U5        U$ )
Nr   floatr   rp  param_optionout_lenr0	  r1	  rr
  c                V  > SU4S jjnTR                  U R                  5       S5        U R                  S5      nU R                  S5      nU" U5      u  pEU" U5      u  pgTR                  U[        R                  5        TR                  U[        R                  5        TR                  [        U5      S5        TR                  [        U5      S5        TR                  US   US   5        Uu  pUu  pU R                  S5      nUR                  nTR                  [        U5      U R                  5       5        [        U R                  5       5       H  nU R                  U5      nXOR                  l        XR                  R                  R                  R                  5       l        X-  UR                  R                  R                  R                  5       l        X   UR                  R                  R                  R                  5       l        U R#                  X5        M     g )Nc                  > TR                  [        U [        5      5        U R                  R                  U R                  R
                  R                   Vs/ s H'  nUR                  S5      (       a  UR                  OS PM)     sn4$ s  snf )Nr   )	
assertTruerF   r   r   r   r   r   r   r   )r  r4	  rK   s     r/   parse_tensor_inputpTestCustomSchemaShapeInference.get_custom_op_schema.<locals>.schema_shape_infer_func.<locals>.parse_tensor_input+  sv    
1i 89MM++ "#!4!4!8!8!8A ()zz+'>'>DH!8 s   .B
r=   r   r   r  )r  r   )assertEqualget_num_inputsget_input_typer   r   rs   get_attributeintsget_num_outputsr&   get_output_typer   r   r   r   r(   r   set_output_type)ctxr  in0in1in0_type	in0_shapein1_type	in1_shaper  Lar   Lbattrr  rV  rp  rK   s                   r/   schema_shape_infer_funcTTestCustomSchemaShapeInference.get_custom_op_schema.<locals>.schema_shape_infer_func+  s    S//115$$Q'C$$Q'C"4S"9H"4S"9HX{'8'89X{'8'89S^Q/S^Q/Yq\9Q<8EAEA$$Y/DiiGS\3+>+>+@A3..01))!,,4)<=%%))--/9<>G%%))--/9<CJ%%))--/9##A+ 2rg   r  z%onnx.shape_inference.InferenceContext)r   r~  r  r  r   FormalParameterFormalParameterOptionVariadic	AttributeAttrTypeINTS%set_type_and_shape_inference_functionrK   r,   r  s   `  r/   get_custom_op_schema3TestCustomSchemaShapeInference.get_custom_op_schema+  s     NNOO--c7;--c7;
 --71O1O1X1X .  ''	4==3I3I3N3NO
$ 	,D 	445LMrg   c                  ^  [        T R                  T R                  T R                  [        R                   R                  SS[         R                  R                  S9/[        R                   R                  SS[         R                  R                  S9/[        R                   R                  S[        R                   R                  R                  5      /S9nSU 4S jjnUR                  U5        U$ )	Ninr  r  rp  rq   r  c           	       > TR                  U R                  5       S5        TR                  U R                  S5      5        U R	                  S5      nUR                  [        U R                  5       5       Vs/ s H  o R                  U5      PM     sn[        U R                  5       5       Vs/ s H  o R                  U5      PM     sn5      n[        U5       H  u  pEU R                  XE5        M     g s  snf s  snf )Nr=   rq   )r  r  assertIsNotNoner  get_graph_attribute_inferencerdo_inferencingr&   r  get_input_datar   r  )r  gctxrV  r1	  idxrp  rK   s         r/   r  VTestCustomSchemaShapeInference.get_dummy_graph_schema.<locals>.schema_shape_infer_func+  s    S//115  !2!27!;<55g>D))05c6H6H6J0KL0K1##A&0KL05c6H6H6J0KL0K1##A&0KLG &g.##C- / MLs   9C70C<
r  )r   r  r  r  r   r  r  r  r  r  GRAPHr  r  s   `  r/   get_dummy_graph_schema5TestCustomSchemaShapeInference.get_dummy_graph_schema+  s     $$NNOO--'0N0N0W0W .  --71O1O1X1X . 
 //9O9O9U9UVW
"		. 	445LMrg   c                   [        S[        R                  X45      n[        S[        R                  X45      n[        [	        U5      5       Vs/ s H!  n[        SU 3[        R                  S 5      PM#     n	n[        U R                  SS/U	 V
s/ s H  oR                  PM     sn
US9n[        U/SXg/U(       a  XS9$ / U	S9$ s  snf s  sn
f )Nr   r   rp  )r  rC   rE   )	r    r   r   r&   rs   r   r~  r*   r   )rK   r  r  r  r  mark_outputr   r   rV  outsrz   r!  s               r/   gen_custom_op_graph2TestCustomSchemaShapeInference.gen_custom_op_graph	,  s    "3(9(9A7C"3(9(9A7C 3w<(
( #S9k.?.?F( 	 
 #sd-Cdffd-CW
 FFQFKD
 	
=?D
 	


 .Ds   (CC
c                   U R                  XX4S5      n[        S[        R                  X45      n[        S[        R                  X45      n[	        [        U5      5       Vs/ s H!  n[        SU 3[        R                  S 5      PM#     n	n[        U R                  SS/U	 V
s/ s H  oR                  PM     sn
US9n[        U/SXg// U	S9$ s  snf s  sn
f )NTr   r   rp  r	  rC   r  )
r  r    r   r   r&   rs   r   r  r*   r   )rK   r  r  r  r  r  r   r   rV  r  rz   r!  s               r/   gen_dummy_graph_graph4TestCustomSchemaShapeInference.gen_dummy_graph_graph,  s    ++A2E"3(9(9A7C"3(9(9A7C 3w<(
( #S9k.?.?F( 	 
 $$sCj42H4a6642HPX
 4&&1&"FF

 3Is   "(C#Cc                    U R                  U[        U5       VVs/ s H(  u  pg[        SU 3[        R                  X#U-  U45      PM*     snn5        g s  snnf )Nrp  )r|   r   r    r   r   )rK   rq   r  r  r  r  rV  Lis           r/   shape_infer_once/TestCustomSchemaShapeInference.shape_infer_once$,  s[     'w//EA 'QCy+2C2CabRTEUV/	
s   /Ac                   SnSnSnSS/nU R                  XX45      nU R                  [        R                  R                  5         U R                  XQX#U5        S S S 5        U R                  5       n[        R                  R                  U5        U R                  XQX#U5        [        R                  R                  UR                  UR                  UR                  5        g ! , (       d  f       N= fNr   r:  r  r   r=   )r  r   r]   r   r  r  r  r   rN  rO  r*   r'   r+   )rK   r  r  r  r  rq   r,   s          r/   "test_custom_schema_shape_inferenceATestCustomSchemaShapeInference.test_custom_schema_shape_inference-,  s    a&((< t||;;<!!%BG< = **,		!!&) 	e8 			##FKK1E1Ev}}U =<s   C$$
C2c                   SnSnSnSS/nU R                  XX45      nU R                  [        R                  R                  5         U R                  XQX#U5        S S S 5        U R                  5       nU R                  5       n[        R                  R                  U5        [        R                  R                  U5        U R                  XQX#U5        [        R                  R                  UR                  UR                  UR                  5        [        R                  R                  UR                  UR                  UR                  5        g ! , (       d  f       N= fr  )r  r   r]   r   r  r  r  r  r   rN  rO  r*   r'   r+   )rK   r  r  r  r  rq   custom_op_schemadummy_graph_schemas           r/   'test_dummy_graph_schema_shape_inferenceFTestCustomSchemaShapeInference.test_dummy_graph_schema_shape_inferenceC,  s   a&**1"> t||;;<!!%BG< =  446!88:		!!"23		!!"45 	e8 			##!!**##	

 			####,,%%	
% =<s   E
E c                  ^ ^ SnSnSnS/nT R                  XX45      nT R                  5       nUR                  5       mSUU 4S jjnUR                  U5        [        R
                  R                  U5        T R                  XQX#U5        [        R
                  R                  UR                  UR                  UR                  5        g )Nr   r:  r  r   c                  > T" U 5        TR                  U R                  S5      5        TR                  U R                  S5      5        TR	                  U R                  S5      5        TR                  [        5         TR	                  U R                  S5      5        S S S 5        TR                  U R                  S5      5        TR	                  U R                  S5      5        TR                  [        5         TR	                  U R                  S5      5        S S S 5        TR                  [        R                  R                  5         U R                  S5        S S S 5        TR                  U R                  S5      5        TR                  [        5         TR                  U R                  S5      5        S S S 5        TR                  U R                  S5      5        TR                  [        5         TR                  U R                  S5      5        S S S 5        TR                  U R!                  S5      5        TR                  [        5         U R!                  S5        S S S 5        TR                  U R#                  S5      5        TR                  [        5         U R#                  S5        S S S 5        TR                  U R%                  S5      5        TR                  [        5         U R%                  S5        S S S 5        TR'                  U R)                  5       S5        TR'                  U R+                  5       S5        g ! , (       d  f       GN= f! , (       d  f       GNN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNH= f! , (       d  f       GN= f! , (       d  f       N= f)Nznot-exist-attrr   r=   r$   r   r_  )assertIsNoner  r  	has_inputr	  r   	TypeError
has_outputr]   r^   r   r  r  RuntimeErrorget_input_sparse_datar  r  get_symbolic_inputr  r  r  r  )r  raw_funcrK   s    r/   r  dTestCustomSchemaShapeInference.test_invalid_field_in_inference_func.<locals>.schema_shape_infer_funcn,  s   SMc//0@ABOOCMM!,-S]]1-.""9-  r!23 .OOCNN1-.S^^A./""9-  !34 .""4#7#7#F#FG223CD Hc0034""<0!!#"4"4R"89 1c77:;""<0!!#";";B"?@ 1  !3!3A!67""<0""2& 1c44Q78""<0&&r* 1  !4!4Q!78""<0##B' 1S//115S002A61 .- .-GG 10 10 10 10 10s`   ?!M=!M%M7!N	<!NN-)N?8O
M"%
M47
N	
N
N*-
N<?
O
Or  )r  r  %get_type_and_shape_inference_functionr  r]   r   rN  r  rO  r*   r'   r+   )	rK   r  r  r  r  rq   r,   r  r  s	   `       @r/   $test_invalid_field_in_inference_funcCTestCustomSchemaShapeInference.test_invalid_field_in_inference_funcd,  s    #((<**,??A	7 	7> 	445LM		!!&) 	e8 			##FKK1E1Ev}}Urg   r?   Nro  )F)r   r   r   r   r~  __annotations__r  r  r  r  r  r  r  r  r  r  r  r  r  r   r?   rg   r/   r}  r}  +  se    $NC$++JIsR
@D%N
G
V,
B0Vrg   r}  __main__r=   )	verbosity)r,   r   r   zset[int])r6   r   r   zlist[tuple[str, int]])=
__future__r   r  rx  rv  typingr   r   numpyr   r   google.protobufr   r   onnx.shape_inferencer]   r   r	   r
   r   r   r   r   r   r   r   r   r   r   	onnx.defsr   r   r   r   r   onnx.helperr   r   r   r   r   r   r    onnx.parserr!   collections.abcr"   r0   get_all_schemasr*   r+   	frozensetr1   r  r8   TestCaser:   r   r}  r   main)r,   s   0r/   <module>r     s  
 #    %   ' '        $(	 &&(:( KK&--+A&+I!JKK(:6 "K x00 K \`j)1 `j)FUIV%= IVX zMMA ib:s   /D