
    bIg:             
         U d dl mZ d dlZd dlZd dlmZmZ d dlZd dl	Z	d dl
m
Z
 d dlZd dlmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZ d dl m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& d dl'm(Z( dd	Z) ejT                         D  ci c]'  } | jV                  | jX                   e- e)|             f) c} Z.d
e/d<   ddZ0 G d dejb                        Z2 G d de2      Z3e4dk(  r ejj                  d       yyc c} w )    )annotationsN)AnySequence)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_nodemake_opsetidmake_tensormake_tensor_sequence_value_infomake_tensor_value_info)parse_graphc                    t               }t        | j                  dd      D ]G  }	 |j                  t	        j
                  | j                  || j                        j                         I |S # t        $ r Y  |S w xY w)Nr   )	setrangesince_versionaddr   
get_schemanamedomainr   )schemaversionsversions      [/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/test/shape_inference_test.pyget_available_versionsr-   1   sv    H--q"5 	LLWfmmDRR O  	O	s   AA..	A<;A<z%dict[str, tuple[str, frozenset[int]]]ALL_OP_VERSIONSc                    t         |    \  }}|st        d|        t        |      }|D cg c]  }|dkD  s	|t        k7  rd| |f c}S c c}w )Nz#No versions available for operator    r+   )r.   
ValueErrorsortedr   )op_namer(   versions_setr*   r+   s        r,   all_versions_forr5   C   st    *73FL>wiHIIl#H  	
  Q;&K/ gY	
	 	 	s   Ac                  p    e Zd Z	 d	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 d	dZ	 	 	 	 	 	 	 	 d
dZ	 	 	 	 	 	 ddZd Zy)TestShapeInferenceHelperNc                $   |g }|D ch c]  }|j                    }}g }|D ]  }t        |t              r|d d \  }	}
t        | }n|t        j
                  }
}	t        |      }|	|v r|j                  |       W|j                  |       |j                  t        d|	z   |
d             |j                  t        d|	z   t        j                  d             t        dd|	z   d|	z   g|	g      g|d d  t        j                  |d|g ||	      S c c}w )
N   SEED_ UNKNOWN_SHAPE_NReshaper   test)initializer
value_info)r'   
isinstancetupler   r   	UNDEFINEDr   appendINT64r   r   
make_graph)selfseed_valuesnodesrA   r@   xnames_in_initializerinput_value_infos
seed_value	seed_name
proto_typeseed_value_infos               r,   _make_graphz$TestShapeInferenceHelper._make_graphU   sG    K0;<1<< & 	J*e,(22A%	:"8*"E(2K4I4I:	">z"J00!((9!!/2!((*7Y+>
BO "((*(94k6G6G ! 9,.>.JK"bq	'	4   #!
 	
?  =s   Dc                    |j                  dd      }t        |t              rd|d<   t        j                  |fi |}n|}t
        j                  j                  |d|      }t        j                  |       |S )N	data_propFz	onnx-testproducer_nameT)strict_moderT   )
poprB   r   r   
make_modelonnxshape_inferenceinfer_shapesr   check_model)rH   graph_or_modelkwargsrT   
orig_modelinferred_models         r,   	_inferredz"TestShapeInferenceHelper._inferred   sz     JJ{E2	nj1&1F?#**>DVDJ'J--::DI ; 
 	N+    c                    t        |t              r|n|j                  }|D ch c]  }|j                   }}|j                  D cg c]  }|j                  |vs| c}|z   } | j
                  |fi |}t        |j                  j                        }t        |d       }t        |d       }t        |      t        |      k(  sJ t        ||      D ]+  \  }	}
| j                  |	j                  |
j                         - y c c}w c c}w )Nc                    | j                   S r=   r'   rK   s    r,   <lambda>z;TestShapeInferenceHelper._assert_inferred.<locals>.<lambda>   s
     rb   )keyc                    | j                   S r=   re   rf   s    r,   rg   z;TestShapeInferenceHelper._assert_inferred.<locals>.<lambda>   s
    !&& rb   )rB   r   graphr'   rA   ra   listr2   lenzip_compare_value_infostype)rH   r]   visr^   rj   rK   names_in_visr`   inferred_visv
inferred_vs              r,   _assert_inferredz)TestShapeInferenceHelper._assert_inferred   s     .*5 %% 	
 ),,1,,**IQaffL.HqICO'A&AN00;;<S./l0@A3x3|,,,, l3 	?MAz%%affjoo>	? -Is   DDDc                   |j                  d      r|j                  d      sJ |j                  j                  d      sJ |j                  j                  d      sJ |j                  j                  |j                  j                  k(  sJ |j                  j                  d      |j                  j                  d      k(  sJ |j                  j                  d      rt        |j                  j                  j
                        t        |j                  j                  j
                        k(  sJ t        |j                  j                  j
                        D ]  \  }}|j                  j                  j
                  |   }|j                  r(|j                  |j                  k(  rOJ d| d| d       |j                  |j                  k(  rwJ d| d| d        y y |j                  d      rR|j                  d      sJ |j                  j                  }|j                  j                  }| j                  ||       y |j                  d      rR|j                  d      sJ |j                  j                  }|j                  j                  }| j                  ||       y |j                  d      r}|j                  d      sJ |j                  j                  |j                  j                  k(  sJ | j                  |j                  j                  |j                  j                         y |t        j                          k(  r|t        j                          k(  sJ y t#        dt%        |            )	Ntensor_type	elem_typeshape
sequence_typeoptional_typemap_typez6Unrecognized value info type in _compare_value_infos: )HasFieldrw   rx   rl   ry   dim	enumerate	dim_param	dim_valuer{   rn   r|   r}   key_type
value_typerY   r   NotImplementedErrorstr)rH   vi_typeinferred_vi_typedim_ir   inferred_dimviinferred_vis           r,   rn   z-TestShapeInferenceHelper._compare_value_infos   s7    M*#,,];;;&&//<<<#//88EEE##--1A1M1M1W1WWW&&//!--66w?@ @ @ ""++G47..44889S$0066::>    #,G,?,?,E,E,I,I"J 
@JE3#3#?#?#E#E#I#I%#PL}}MM\-C-CC@y+;*<B?@C  MM\-C-CC@y+;*<B?@C
@	 5 o.#,,_===&&00B*88BBK%%b+6o.#,,_===&&00B*88BBK%%b+6j)#,,Z888##,,0@0@0I0IIII%%  ++-=-F-F-Q-Q ((#t~~'7777%H#g, rb   c                4    |rt        j                  |       y y r=   )pytestskip)rH   	conditionreasons      r,   skipIfzTestShapeInferenceHelper.skipIf   s    KK rb   r=   )
rI   z5Sequence[str | tuple[str, TensorProto.DataType, Any]]rJ   zlist[NodeProto]rA   list[ValueInfoProto]r@   zSequence[TensorProto] | Nonereturnr   )r]   GraphProto | ModelProtor^   r   r   r	   )r]   r   rp   r   r^   r   r   None)r   r   r   r   r   r   )__name__
__module____qualname__rR   ra   ru   rn   r   r;   rb   r,   r7   r7   T   s     59/
J/
 /
 )	/

 2/
 
/
b5AD	?/? "? 	?
 
?*1 14=1	1f rb   r7   c                  4   e Zd Zd,dZd-dZ ej                   ed            d,d       Z ej                   ed            d,d       Z	 ej                   ed            d,d       Z
 ej                   ed            d,d       Z ej                   ed            d,d       Z ej                   ed            d,d	       Z ej                   ed            d,d
       Z	 	 	 	 	 	 d.dZ ej                   ed            d,d       Z	 	 	 	 	 	 	 	 d/dZ ej                   ed            d,d       Z ej                   ed            d,d       Z ej                   ed             ej*                  d      d,d              Z ej                   ed            d,d       Z ej                   ed            d,d       Z ej                   ed            d,d       Z ej                   ed            d,d       Z ej                   ed            d,d       Z ej                   ed            d,d       Z ej                   ed            d,d       Z ej                   ed            d,d       Z ej                   ed            d,d       Z ej                   ed            d,d        Z  ej                   ed            d,d!       Z! ej                   ed"            d,d#       Z" ej                   ed"            d,d$       Z# ej                   ed"            d,d%       Z$ ej                   ed"            d,d&       Z% ej                   ed"            d,d'       Z& ej                   ed"            d,d(       Z' ej                   ed"            d,d)       Z( ej                   ed"            d,d*       Z) ej                   ed+            d,d,       Z* ej                   ed+            d,d-       Z+ ej                   ed.            d,d/       Z, ej                   ed.            d,d0       Z- ej                   ed.            d,d1       Z. ej                   ed.            d,d2       Z/ ej                   ed.            d,d3       Z0 ej                   ed4            d,d5       Z1 ej                   ed4            d,d6       Z2 ej                   ed4            d,d7       Z3 ej                   ed4            d,d8       Z4 ej                   ed4            d,d9       Z5 ej                   ed4            d,d:       Z6 ej                   ed4            d,d;       Z7 ej                   ed4            d,d<       Z8 ej                   ed4            d,d=       Z9 ej                   ed4            d,d>       Z: ej                   ed4            d,d?       Z; ej                   ed4            d,d@       Z< ej                   ed4            d,dA       Z= ej                   edB            d,dC       Z> ej                   edB            d,dD       Z? ej                   edB            d,dE       Z@ ej                   edB            d,dF       ZA ej                   edB            d,dG       ZB ej                   edB            d,dH       ZC ej                   edI            d,dJ       ZD ej                   edK            d,dL       ZE ej                   edK            d,dM       ZF ej                   edK            d,dN       ZG ej                   edO            d,dP       ZH ej                   edO            d,dQ       ZI ej                   edR            d,dS       ZJd,dTZK ej                   edR            d,dU       ZLd,dVZM ej                   edW            d,dX       ZN ej                   edW            d,dY       ZO ej                   edZ            d,d[       ZP ej                   edZ            d,d\       ZQ ej                   ed]            d,d^       ZR ej                   ed_            d,d`       ZS ej                   ed_            d,da       ZT ej                   edb            d,dc       ZU ej                   edb            d,dd       ZVd,deZWd,dfZXd,dgZYd,dhZZd,diZ[d,djZ\d,dkZ]d,dlZ^d,dmZ_d,dnZ`d,doZad,dpZbd,dqZcd,drZdd,dsZed,dtZfd,duZgd,dvZhd,dwZid,dxZjd,dyZkd,dzZld,d{Zmd,d|Znd,d}Zod,d~Zpd,dZqd,dZrd,dZsd,dZtd,dZud,dZvd,dZwd,dZxd,dZyd,dZzd,dZ{d,dZ|d,dZ}d,dZ~d,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd0dZ	 	 	 	 	 	 d0dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZ	 	 	 	 	 	 	 	 	 	 d1dZd,dZ	 	 	 	 	 	 	 	 	 	 d1dZd,dZ	 d2	 	 	 	 	 	 	 	 	 	 	 d3dZd,dZ	 	 	 	 	 	 	 	 	 	 d1dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dÄZd,dĄZd,dńZd,dƄZd,dǄZd,dȄZd,dɄZd,dʄZd,d˄Zd,d̄Zd,d̈́Zd,d΄Zd,dτZd,dЄZd,dфZÐd,d҄ZĐd,dӄZŐd,dԄZƐd,dՄZǐd,dքZȐd,dׄZɐd,d؄Zʐd,dلZːd,dڄZ̐d,dۄZ͐d,d܄Zΐd,d݄Zϐd,dބZАd,d߄Zѐd,dZҐd,dZӐd,dZԐd,dZՐd,dZ֐d,dZאd,dZؐd,dZِd,dZڐd,dZېd,dZܐd,dZݐd,dZސd,dZߐd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,d Zd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,d	Zd,d
Zd,dZd,dZd,dZd,dZ d,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZ	d,dZ
d,dZd,dZd,dZd,dZd,dZd,dZd,dZd,d Zd,d!Zd,d"Zd,d#Zd,d$Zd,d%Zd,d&Zd,d'Zd,d(Zd,d)Zd,d*Zd,d+Zd,d,Z	 	 	 	 	 	 d.d-Zd,d.Z 	 	 	 	 	 	 	 	 d/d/Z!d,d0Z"	 	 	 	 	 	 d.d1Z#d,d2Z$ ej                  e%jL                  jN                  e%jL                  jP                  e%jL                  jR                  g      d,d3       Z*d,d4Z+d,d5Z,d,d6Z-d,d7Z.d,d8Z/ ej*                  d      d,d9       Z0 ej                  e%jL                  jN                  e%jL                  jP                  e%jL                  jR                  g      d,d:       Z1d,d;Z2d,d<Z3d,d=Z4d,d>Z5d,d?Z6d,d@Z7d,dAZ8d,dBZ9 ejt                  e;dC      d,dD       Z< ejt                  e;dC      d,dE       Z=d,dFZ>d,dGZ?d,dHZ@ ej                  e;r	 edI      ng dJK      d,dL       ZA ej                  e;r	 edI      ng dJK      d,dM       ZB ej                  e;r	 edI      ng dJK      	 	 d,dN       ZC	 	 	 	 	 	 	 	 	 	 d4dOZDd,dPZEd,dQZFd,dRZGd,dSZHd,dTZId,dUZJd,dVZKd,dWZLd,dXZMd,dYZNd,dZZOd,d[ZPd,d\ZQd,d]ZRd,d^ZSd,d_ZTd,d`ZUd,daZVd,dbZWd,dcZXd,ddZYd,deZZd,dfZ[d,dgZ\d,dhZ]d,diZ^d,djZ_d,dkZ`d,dlZad,dmZbd,dnZcd,doZdd,dpZed,dqZfd,drZgd,dsZhd,dtZid,duZjd,dvZkd,dwZld,dxZmd,dyZnd,dzZod,d{Zpd,d|Zqd,d}Zrd,d~Zsd,dZtd,dZud,dZvd,dZwd,dZxd,dZyd,dZzd,dZ{d,dZ|d,dZ}d,dZ~d,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZ	 	 d,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZ	 	 d,dZd,dZ	 	 d,dZ	 	 d,dZ	 	 d,dZ	 	 d,dZ	 	 d,dZ	 	 d,dZd,dZ	 	 d,dZ	 	 d,dZd,dZd,dZ	 	 d,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZ	 	 d,dZd,dZd,dZd,dZd,dZd,dZd,dZd,dZd Zd,dZd,dZd,dZd,dZd,dÄZd,dĄZd,dńZd,dƄZd,dǄZd,dȄZd,dɄZd,dʄZd,d˄Zd,d̄Zd,d̈́Zd,d΄ZÐd,dτZĐd,dЄZŐd,dфZƐd,d҄Zǐd,dӄZȐd,dԄZɐd,dՄZʐd,dքZːd,dׄZ̐d,d؄Z͐d,dلZΐd,dڄZ ej                   ed۫            d,d܄       Z ej                   ed۫            d,d݄       Z ej                   ed۫            d,dބ       Z ej                   ed۫            d,d߄       Z ej                   ed۫            d,d       ZԐd,dZՐd,dZ֐d,dZאd,dZؐd,dZِd,dZڐd,dZېd,dZܐd,dZݐd,dZސd,dZߐd,dZd,dZd Zd Zd Zd Zd Zd Zd Zd Z ej                   ej                   ed      d      D  c
g c]  \  \  }}\  }}}}}}||||||||f c
}}}}}}}}}       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d5d       Z ej                   ej                   ed      d      D  c
g c]  \  \  }}\  }}}}}}||||||||f c
}}}}}}}}}       	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d5d       Z ej                  g d      d6d       Z ej                  g d      d6d       Z ej                  ddg      d7d        Z ej                  ddg      	 	 	 	 	 	 d7d       Z ej                  ddg      	 	 	 	 	 	 d7d       Zd,dZd,dZd Zd Zd Zd Zd	 Zd
 Zd Zd Zd Z ejt                  e;dC      d,d       Z ejt                  e;dC      d,d       Z ej                  e&jN                  e&j                   e&jP                  g       ejt                  e;dC      d,d              Z ej                  dgdz   ede&j                   ddgdz         ede&j                   ddgdz        ddgdz   ede&jN                  ddgdz         ede&j                   ddgdz        ddgdz   ede&j                   ddgdz         ede&j                   ddgdz        ddgdz   ede&j                   ddgdz         ede&jN                  ddgdz        dg       ejt                  e;dC      	 	 d,d              Z ejt                  e;dC      d,d       Z ejt                  e;dC      d,d       Z ejt                  e;dC      d,d        Z ejt                  e;dC      d,d!       Z ejt                  e;dC      d,d"       Zd,d#Z	d,d$Z
d,d%Zd& Zd' Zd( Zd) Zd* Zy+c c
}}}}}}}}} w c c
}}}}}}}}} w (8  TestShapeInferencec                    | j                  dgg g       }| j                  t        j                  j                  | j
                  |       y )Ny)rR   assertRaisesrY   rZ   InferenceErrorra   rH   rj   s     r,   test_empty_graphz#TestShapeInference.test_empty_graph   s:      #B/$..==t~~uUrb   c                    | j                  dt        j                  dfgt        |ddfi |gg       }| j	                  |t        dt        j                  d      g       y )NrK         r0   r   rR   r   FLOATr   ru   r   )rH   opr^   rj   s       r,   _identity_propz!TestShapeInference._identity_prop   sd      ;$$j12r3.v./

 	*30A0A:NO	
rb   	Transposec           
         | j                  dt        j                  dfgt        ddgdgg d      gg       }| j	                  |t        dt        j                  d      gt        j                  t        |      g       y 	NXr9      r   r   Y   r   r9   permr   r9   r   opset_imports	rR   r   r   r   ru   r   r   r   r   rH   _r+   rj   s       r,   test_transposez!TestShapeInference.test_transpose   s}      ;$$i01{SEC5yAB

 	#C):):IFG!..{GDE 	 	
rb   c           
     4   | j                  dt        j                  dfgt        ddgdgg d      gt	        dt        j                  d       g      }| j                  |t	        dt        j                  d      gt        j                  t        |      g       y r   )	rR   r   r   r   r   ru   r   r   r   r   s       r,   test_transpose_preexistingz-TestShapeInference.test_transpose_preexisting   s      ;$$i01{SEC5yAB#C):):DAB

 	#C):):IFG!..{GDE 	 	
rb   c                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr   r;   r   r   r   r   r   s       r,   test_transpose_scalarz(TestShapeInference.test_transpose_scalar  s{      ;$$b)*{SEC512
 	#C):):B?@!..{GDE 	 	
rb   c           
     4   | j                  dt        j                  dfgt        ddgdgg d      gt	        dt        j
                  d      g      }| j                  |t	        dt        j                  d      gt        j                  t        |      g	       y )
Nr   r   r   r   r   r   )r   abr   r   )
rR   r   r   r   r   rD   ru   r   r   r   r   s       r,   test_transpose_partialz)TestShapeInference.test_transpose_partial  s      ;$$i01{SEC5yAB#C)>)>NO

 	#C):):IFG!..{GDE 	 	
rb   c           
        | j                  dt        j                  dfgt        ddgdgg d      gt	        dt        j                  d      g      }| j                  t        j                  j                  | j                  |       y )Nr   r   r   r   r   r   )r0   r0   r0   )
rR   r   r   r   r   r   rY   rZ   r   ra   rH   r   rj   s      r,   *test_transpose_preexisting_incorrect_shapez=TestShapeInference.test_transpose_preexisting_incorrect_shape&  ss      ;$$i01{SEC5yAB#C):):IFG

 	$..==t~~uUrb   c           
        | j                  dt        j                  dfgt        ddgdgg d      gt	        dt        j
                  d      g      }| j                  t        j                  j                  | j                  |       y )Nr   r   r   r   r   r   r   )rR   r   r   r   r   STRINGr   rY   rZ   r   ra   r   s      r,   )test_transpose_preexisting_incorrect_typez<TestShapeInference.test_transpose_preexisting_incorrect_type/  ss      ;$$i01{SEC5yAB#C););YGH

 	$..==t~~uUrb   c           
         | j                  dt        j                  dfgt        ddgdgg d      gg       }| j	                  t
        j                  j                  | j                  |       y )Nr   r   r   r   )r   r   r   r   	rR   r   r   r   r   rY   rZ   r   ra   r   s      r,   &test_transpose_incorrect_repeated_permz9TestShapeInference.test_transpose_incorrect_repeated_perm8  sa      ;$$i01{SEC5yAB

 	$..==t~~uUrb   c                2   t        j                  t        j                  t        j                  |            j	                  |      t        j                  t        j                  |            j	                  |            j
                  }| j                  dt        j                  |fdt        j                  |fgt        dddgdg      gg       }| j                  |t        dt        j                  |      gt        j                  t        |      g       y NrK   r   MatMulzr   )npmatmularangeprodreshapery   rR   r   r   r   ru   r   r   r   r   rH   r+   shape1shape2expected_out_shaperj   s         r,    _make_matmul_test_all_dims_knownz3TestShapeInference._make_matmul_test_all_dims_knownA  s      YYIIbggfo&..v6IIbggfo&..v6
 % 	   ;$$f-[5F5F/OPx#scU34

 	#C):):<NOP!..{GDE 	 	
rb   r   c                   | j                  |dd       | j                  |dd       | j                  |dd       | j                  |dd       | j                  |dd       | j                  |dd       | j                  |dd       | j                  |dd	       | j                  |d
d	       | j                  |dd       | j                  |dd	       y )Nr9   r   r9   r9   r   )r0   r9   r9   r   r   r9   r9   r   r   r   r9   r   r9   r   )r   r   r9   r0   r   r   r9   r   r   r9   r   )r   rH   r   r+   s      r,   test_matmul_all_dims_knownz-TestShapeInference.test_matmul_all_dims_knownS  s    --gtTB--gvvF--gvvF--gvvF--gvvF--gtVD--gvtD--gy)L--gy)L--g|\R--gvyIrb   c                   | j                  dt        j                  |fdt        j                  |fgt        dddgdg      gg       }| j	                  |t        dt        j                  |      gt        j                  t        |      g       y r   r   r   s         r,   _make_matmul_test_allow_unknownz2TestShapeInference._make_matmul_test_allow_unknownb  s       ;$$f-[5F5F/OPx#scU34

 	#C):):<NOP!..{GDE 	 	
rb   c                   | j                  |ddd       | j                  |ddd       | j                  |ddd       | j                  |ddd       | j                  |d	dd       | j                  |d	d
d       | j                  |ddd       | j                  |ddd       | j                  |dd d        | j                  |d d d        y Nr=   r;   r   r   )r9   r   )r   r   )r   r   )r   N)Nr   r   )r   r9   r0   r   r   r0   )r   r   r   r9   r   r   r   r0   )r   r   s      r,   test_matmul_allow_unknownz,TestShapeInference.test_matmul_allow_unknownp  s    ,,WgwK,,WdGRH,,WdHfM,,WfhQ,,Wi8T,,WihW,,Y[	
 	,,\;	
 	,,WdD$G,,WdD$Grb   Castc           	        | j                  dt        j                  dfgt        ddgdgt        j                        gg       }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r9   r   r   r   r   tor   )
rR   r   r   r   UINT8ru   r   r   r   r   r   s       r,   	test_castzTestShapeInference.test_cast  s      ;$$i01vuse0A0ABC

 	#C):):IFG!..{GDE 	 	
rb   zIssue #5960c           	         | j                  dt        j                  dfgt        ddgdgt        j                        gg       }| j                  t        j                  j                  | j                  |       y )NrK   r   r   r   r   )
rR   r   r   r   
COMPLEX128r   rY   rZ   r   ra   r   s       r,   test_cast_to_complexz'TestShapeInference.test_cast_to_complex  si    
   ;$$i01vuse0F0FGH
 	$..==t~~uUrb   CastLikec                   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg       }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r   tNr   r   r   )
rR   r   r   FLOAT16r   ru   r   r   r   r   r   s       r,   test_cast_likez!TestShapeInference.test_cast_like  s      ;$$i038K8KV2TUzC:u56

 	#C)<)<iHI!..{GDE 	 	
rb   Col2Imc                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddg      gg t        dt        j                  dd	      t        dt        j                  dd
      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Ninput)r   r0   r0   output_shaper   kernel_shaper  r  r  r  outputr0   r0   r   r0   r@   r   r   r0   r0   r   rR   r   r   rF   r   r   ru   r   r   r   r   r   s       r,   test_col2imz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 	 	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddgd	d	g
      gg t        dt        j                  dd      t        dt        j                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  )r   	   r   r  r   r  r  r  r  r9   stridesr  r   r   r
  r  r   r  r   s       r,   test_col2im_stridesz&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 	 	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddgg d	
      gg t        dt        j                  dd      t        dt        j                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  )r   r0      r  r   r  r  r  r  )r   r   r   r   padsr  r	  r
  r  r   r  r   s       r,   test_col2im_padsz#TestShapeInference.test_col2im_pads  s      +++Z8!2!2D9!2!2D9 =J%	 NK,=,=tVLNK,=,=tVL ! 
( 	#Hk.?.?NO!..{GDE 	 	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddgd	d
g      gg t        dt        j                  dd      t        dt        j                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  )r   r   r0   r  r   r  r  r  r  r   r0   	dilations   r  r9   r9   r
  )r   r   r  r  r   r  r   s       r,   test_col2im_dilationsz(TestShapeInference.test_col2im_dilations  s      +++Y7!2!2D9!2!2D9 =J !f	 NK,=,=tVLNK,=,=tVL ! 
( 	#Hk.?.?NO!..{GDE 	 	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddg      gg t        dt        j                  dd	      t        dt        j                  dd
      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  )r   
      r  r   r  r  r  r  r   r   r0   )r   r   r0   r
  r   r9   r   r   r0   r   r  r   s       r,   test_col2im_5dz!TestShapeInference.test_col2im_5d  s      +++[9!2!2D9!2!2D9 G(
 NK,=,=tYONK,=,=tYO ! 
" 	#Hk.?.?QR!..{GDE 	 	
rb   Concatc           	     "   | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      gt        j                  t        |      g
       y )NrK   r   r   )   r   r   r&  r   r   axis)r  r   r   r   r   r   s       r,   test_concatzTestShapeInference.test_concat.        ;$$i038I8I92UVx#scU;<

 	#C):):IFG!..{GDE 	 	
rb   c           	         | j                  dt        j                  dfddt        j                  dfgt        dg ddgd	
      gg       }| j	                  t
        j                  j                  | j                  |       y )NrK   r   r   r   NNNr&  rK   r   r   outr   r)  r   r   s      r,   test_concat_missing_shapez,TestShapeInference.test_concat_missing_shape;  sw      k''3k'');<
 x5'BC
 	$..==t~~uUrb   c           	     "   | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      gt        j                  t        |      g	       y )
NrK   r9   r9   r9   r   r&  r   r9   r)  )r9   r9   r   r   r   r   s       r,   test_concat_3d_axis_2z(TestShapeInference.test_concat_3d_axis_2H  r,  rb   c           	     "   | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      gt        j                  t        |      g
       y )NrK   r   r9   r   )r   r   r&  r   r   r)  )r   r0   r   r   r   s       r,   test_concat_paramz$TestShapeInference.test_concat_paramU  s      ;$$h/#{7H7H(1STx#scU;<

 	#C):):HEF!..{GDE 	 	
rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r6  r&  r   r   r)  r   r   r   s       r,   test_concat_param_single_inputz1TestShapeInference.test_concat_param_single_inputb  s}      ;$$h/0x#A67

 	#C):):HEF!..{GDE 	 	
rb   r>   c                H   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfgt        dddgdg      gg       }| j                  |t        dt        j                  d	      gt        j                  t        |      g
       y )N   z'Rank inference is added from Version 14rK   r   ry   r   r>   r   NNr   )r   rR   r   r   rF   r   ru   r   r   r   r   r   s       r,   %test_reshape_dynamic_shape_known_rankz8TestShapeInference.test_reshape_dynamic_shape_known_ranko  s    GbL"KL  ;$$i07K<M<Mt2TUy3.3%89

 	#C):):LIJ!..{GDE 	 	
rb   c                   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg       }| j                  |t        dt        j                  d       gt        j                  t        |      g       y )NrK   r   ry   Mr>   r   r   
rR   r   r   rF   r   ru   r   r   r   r   r   s       r,   #test_reshape_dynamic_shape_symbolicz6TestShapeInference.test_reshape_dynamic_shape_symbolic}  s      ;$$i07K<M<Mv2VWy3.3%89

 	#C):):DAB!..{GDE 	 	
rb   c                   | j                  dt        j                  dfdt        j                  d fgt	        dddgdg      gg       }| j                  |t        dt        j                  d       gt        j                  t        |      g       y )NrK   r   ry   r>   r   r   rA  r   s       r,   "test_reshape_dynamic_unknown_shapez5TestShapeInference.test_reshape_dynamic_unknown_shape  s      ;$$i07K<M<Mt2TUy3.3%89

 	#C):):DAB!..{GDE 	 	
rb   c                X   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g	       y )
NrK   r   ry   r   r>   r   r      r
  r   rR   r   r   rF   r   r   ru   r   r   r   r   r   s       r,   test_reshape_static_shapez,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 	 	
rb   c                X   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      gt        j                  t        |      g
       y )NrK   r   ry   r   r>   r   )r   r   r!   r
  r   r   rH  r   s       r,   "test_reshape_static_shape_inferredz5TestShapeInference.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 	 	
rb   c                X   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g	       y )
NrK   r   r   r   ry   r   r>   r   r   r   r   r
  r   rH  r   s       r,   test_reshape_static_shape_zeroz1TestShapeInference.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 	 	
rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfgt        dddgdgd	
      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr;  z"allowzero is added from Version 14rK   r   r   r   ry   r   r>   r   r   	allowzerorN  r
  r   )r   rR   r   r   rF   r   r   ru   r   r   r   r   r   s       r,   #test_reshape_static_shape_allowzeroz6TestShapeInference.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 	 	
rb   c                   | j                  dt        j                  dfgt        dg dgt	        dt        j
                  dd            t        dddgd	g      gg       }| j                  |t        dt        j
                  d      t        d	t        j                  d      gt        j                  t        |      g
       y )NrK   r   Constantry   r   rF  valuer>   r   r   )rR   r   r   r   r   rF   ru   r   r   r   r   r   s       r,   "test_reshape_static_shape_constantz5TestShapeInference.test_reshape_static_shape_constant  s      ;$$i01I%g{/@/@$O	 )c7^cU; 
 	&w0A0A4H&sK,=,=vF "..{GDE 	 	
rb   Upsamplec                    dk(  r j                  dt        j                  dfgt        ddgdgg d      gg        j	                  t        dt        j                  d      gt        j                  t              g	       y  j                  dt        j                  dfd
t        j                  dfgt        ddd
gdg      gg t        d
t        j                  dd      g       fd}dk(  r |        y  j                  t        j                  j                        5 } |        d d d        j                  }dt!        |      v sJ y # 1 sw Y   %xY w)Nr(  rK   r9   r   r   r0   rZ  r         ?皙??ffffff?scalesr9   r   r   r  r   rc  r   r
  c                     j                   t        dt        j                  d      gt	        j
                  t              g       y Nr   rd  r   ru   r   r   INT32r   r   r   rj   rH   r+   s   r,   call_inferencez8TestShapeInference.test_upsample.<locals>.call_inference  A    %%+C1B1BLQR#)#6#6{G#L"M & rb   r  Upsample is deprecated)rR   r   ri  r   ru   r   r   r   r   r   r   r   rY   r   ValidationError	exceptionr   rH   r   r+   rk  cmro  rj   s   ` `   @r,   test_upsamplez TestShapeInference.test_upsample  s\   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 %"$%LL	/3y>AAA% %s   (EEc                    dk(  r j                  dt        j                  dfgt        ddgdgg d      gg        j	                  t        dt        j                  d      gt        j                  t              g	       y  j                  dt        j                  d
fdt        j                  dfgt        dddgdg      gg t        dt        j                  dt        j                  g dd      j                         d      g       fd}dk(  r |        y  j                  t        j                   j"                        5 } |        d d d        j$                  }dt'        |      v sJ y # 1 sw Y   %xY w)Nr(  rK   r   rZ  r          @r_  gffffff@ra  rb  r9   r   r  r  r   r\  rc  re  r]  <f4dtypeTvalsrawr
  c                     j                   t        dt        j                  d      gt	        j
                  t              g       y rg  rh  rj  s   r,   rk  zATestShapeInference.test_upsample_raw_data.<locals>.call_inference5  rl  rb   r  rm  )rR   r   ri  r   ru   r   r   r   r   r   r   r   arraytobytesr   rY   r   rn  ro  r   rp  s   ` `   @r,   test_upsample_raw_dataz)TestShapeInference.test_upsample_raw_data  sy   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 %"$%LL	/3y>AAA% %s   E;;FExpandc                X   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      gt        j                  t        |      g
       y )NrK   r   r   ry   r   r  r   )r9   r   r  r
  r9   r   r  r   rR   r   ri  rF   r   r   ru   r   r   r   r   r   s       r,   test_expandzTestShapeInference.test_expandE  s      ;$$f-9J9JD/QRx#w#78$Wk.?.?yQR	 ! 
 	#C):):IFG!..{GDE 	 	
rb   c                X   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g	       y )
NrK   r;   ry   r   r  r   )r   rG  r
  r   r  r   s       r,   test_expand_scalar_inputz+TestShapeInference.test_expand_scalar_inputS  s      ;$$b)G[5F5F+MNx#w#78$Wk.?.?vNO	 ! 
 	#C):):FCD!..{GDE 	 	
rb   c                   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dt        j                  ddgd	
      j                         d      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r  ry   r   r  r   r   r   <i8rx  Trz  r
  r   r   r   )rR   r   ri  rF   r   r   r   r~  r  ru   r   r   r   r   r   s       r,   test_expand_raw_dataz'TestShapeInference.test_expand_raw_dataa  s      ;$$f-9J9JD/QRx#w#78%%1a&6>>@	 ! 
 	#C):):FCD!..{GDE 	 	
rb   c                "   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg g       }| j                  |t        dt        j                  d      gt        j                  t        |      g	       y )
NrK   r   r9   Nry   r   r  r   r
  )Nr9   Nr   
rR   r   ri  rF   r   ru   r   r   r   r   r   s       r,   test_expand_dynamic_shapez,TestShapeInference.test_expand_dynamic_shapew  s      k''6+++T2 x#w#78 ! 
 	#C):):OLM!..{GDE 	 	
rb   c                "   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg g       }| j                  |t        dt        j                  d       gt        j                  t        |      g       y )	NrK   r  ry   )unk__0r  r   r
  r   r  r   s       r,   test_expand_symbolic_shapez-TestShapeInference.test_expand_symbolic_shape  s      k''6+++[9 x#w#78 ! 
 	#C):):DAB!..{GDE 	 	
rb   Resizec                   |dk(  r| j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g	      }| j                  |t        dt        j                  d
      gt        j                  t        |      g       y |dk(  r| j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddg      gg t        dt        j                  dd      g	      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddg      gg t        dt        j                  dd      g	      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr!  rK   r\  rc  re  r  r   r]  r
  rd  r      roirG  sizesrK   r  rc  r  )r   r0   r  r(  rK   r   r  )rR   r   ri  r   r   r   ru   r   r   r   r   rF   r   s       r,   test_resize_sizez#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 " rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfdt        j
                  dfgt        d	g d
dgd      gg t        dt        j
                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )N   axes is from Version 18rK   r\  r  re  r  r   r  r  r   r   axesr  r(  r
  )r9   r   r  r(  r   r   rR   r   ri  r   rF   r   r   ru   r   r   r   r   r   s       r,   test_resize_size_axes_2_3z,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 	 	
rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfdt        j
                  dfgt        d	g d
dgd      gg t        dt        j
                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  r  rK   r\  r  re  r  r   r  r  r   r   r9   r  r  r
  )r9   r   r(  r  r   r  r   s       r,   test_resize_size_axes_3_2z,TestShapeInference.test_resize_size_axes_3_2  r  rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfdt        j
                  dfgt        d	g d
dgd      gg t        dt        j
                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  +keep_aspect_ratio_policy is from Version 18rK   r   r0   r  re  r  r   r  r  r   
not_largerkeep_aspect_ratio_policyr  r
  )r   r  r   r  r   s       r,   test_resize_size_not_largerz.TestShapeInference.test_resize_size_not_larger  s    bL9	
   k''0))40+++T2 -E-9	 $Wk.?.?vNO ! 
" 	#C):):FCD!..{GDE 	 	
rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfdt        j
                  dfgt        d	g d
dgdd      gg t        dt        j
                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  3axes & keep_aspect_ratio_policy are from Version 18rK   r\  r  re  r  r   r  r  r   r   r  r  r  r  r
  )r9   r   r   r  r   r  r   s       r,   $test_resize_size_axes_2_3_not_largerz7TestShapeInference.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 	 	
rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfdt        j
                  dfgt        d	g d
dgd      gg t        dt        j
                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  r  rK   r  r  re  r  r   r  r  r   not_smallerr  r  r
  )r  r!  r   r  r   s       r,   test_resize_size_not_smallerz/TestShapeInference.test_resize_size_not_smaller4  s    bL9	
   k''0))40+++T2 -E-:	 $Wk.?.?vNO ! 
" 	#C):):GDE!..{GDE 	 	
rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfdt        j
                  dfgt        d	g d
dgdd      gg t        dt        j
                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  r  rK   r\  r  re  r  r   r  r  r   r   r  r  r  r
  )r9   r   r  r!  r   r  r   s       r,   %test_resize_size_axes_2_3_not_smallerz8TestShapeInference.test_resize_size_axes_2_3_not_smallerQ  s    bLA	
   k''6))40+++T2 -E-: $Wk.?.?vNO! ! 
$ 	#C):):MJK!..{GDE 	 	
rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        d	g d
dg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  roi input is from Version 11rK   r\  r  r  rc  re  r  rK   r  rc  r   r]  r
  rd  r   r   rR   r   ri  r   r   r   ru   r   r   r   r   r   s       r,   test_resize_scalez$TestShapeInference.test_resize_scaleo  s    GbL"@A  k''6))40;,,d3
 x!7#?@Hk&7&7?ST ! 
 	#C):):LIJ!..{GDE 	 	
rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        d	g d
dgd      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  r  rK   r\  r  r  rc  r   r  r  r   r   r  )r`  ra  r
  rd  r   r  r   s       r,   test_resize_scale_axes_2_3z-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 	 	
rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        d	g d
dgd      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  r  rK   r\  r  r  rc  r   r  r  r   r  r  )ra  r`  r
  rd  r   r  r   s       r,   test_resize_scale_axes_3_2z-TestShapeInference.test_resize_scale_axes_3_2  r  rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        d	g d
dg      gg t        dt        j                  dt        j                  g dd      j                         d      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  r  rK   r   r  r  rc  re  r  r  r   rt  rw  rx  Trz  r
  rv  r   )r   rR   r   ri  r   r   r   r   r~  r  ru   r   r   r   r   r   s       r,   test_resize_scale_raw_dataz-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 	 	
rb   c                   | j                  |dk  d       | j                  dt        j                  dfdt        j                  dfdt        j                  dfd	t        j
                  d
fgt        dg ddg      gg t        dt        j                  dt        j                  g dd      j                         d      t        d	t        j
                  d
t        j                  g d      j                         d      g      }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )Nr  r  rK   r   r  r  rc  re  r  r   r  r  r   rt  rw  rx  Trz  r  r
  rv  r   )r   rR   r   ri  r   rF   r   r   r   r~  r  ru   r   r   r   r   r   s       r,   +test_resize_scale_and_size_but_one_is_emptyz>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 	 	
rb   c                   | j                  |dk7  d       | j                  dt        j                  dfdt        j                  dfdt        j                  dfd	t        j
                  d
fgt        dg ddg      gg t        d	t        j
                  d
t        j                  g dd      j                         d      g      }| j                  |t        dt        j                  d      gt        j                  d|      g       y )Nr  z#This test only works for Version 11rK   r   r  r  rc  r  r  re  r  r  r   )r9   r  rG  r!  r  rx  Trz  r
  r  r   )r   rR   r   ri  r   rF   r   r   r   r~  r  ru   r   r   r   r   s       r,   #test_resize_opset11_scales_is_emptyz6TestShapeInference.test_resize_opset11_scales_is_empty  s    GrM#HI   k''6))40;,,d3+++T2	 x!@3%HI%%%Ugi
 ! 
, 	#C):):MJK!..r7;< 	 	
rb   Shapec                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r   r  r   r   r   
rR   r   r   r   ru   r   rF   r   r   r   r   s       r,   
test_shapezTestShapeInference.test_shape	  s{      ;$$i01wu-.

 	#C):):DAB!..{GDE 	 	
rb   c           	     &   | j                  |dk  d       | j                  dt        j                  dfgt	        ddgdgd      gg       }| j                  |t        dt        j                  d	      gt        j                  t        |      g
       y )Nr  !start and end are from Version 15rK   r   r  r   r   startr   r   r   rR   r   r   r   ru   r   rF   r   r   r   r   s       r,   test_shape_start_1z%TestShapeInference.test_shape_start_1  s    GbL"EF  ;$$i01wuA67

 	#C):):DAB!..{GDE 	 	
rb   c           	     &   | j                  |dk  d       | j                  dt        j                  dfgt	        ddgdgd      gg       }| j                  |t        dt        j                  d	      gt        j                  t        |      g
       y )Nr  r  rK   r   r  r   r   endr   r   r  r   s       r,   test_shape_end_1z#TestShapeInference.test_shape_end_1$  s    GbL"EF  ;$$i01wu!45

 	#C):):DAB!..{GDE 	 	
rb   c           	     &   | j                  |dk  d       | j                  dt        j                  dfgt	        ddgdgd      gg       }| j                  |t        dt        j                  d	      gt        j                  t        |      g
       y )Nr  r  rK   r   r  r   r!   r  r  r   r  r   s       r,   test_shape_negative_startz,TestShapeInference.test_shape_negative_start2      GbL"EF  ;$$i01wuB78

 	#C):):DAB!..{GDE 	 	
rb   c           	     &   | j                  |dk  d       | j                  dt        j                  dfgt	        ddgdgd      gg       }| j                  |t        dt        j                  d	      gt        j                  t        |      g
       y )Nr  r  rK   r   r  r   r  r   r   r  r   s       r,   test_shape_clip1z#TestShapeInference.test_shape_clip1@  r  rb   c           	     &   | j                  |dk  d       | j                  dt        j                  dfgt	        ddgdgd      gg       }| j                  |t        dt        j                  d	      gt        j                  t        |      g
       y )Nr  r  rK   r   r  r   r!  r  r   r   r  r   s       r,   test_shape_clip2z#TestShapeInference.test_shape_clip2N  s    GbL"EF  ;$$i01wu"56

 	#C):):DAB!..{GDE 	 	
rb   Sizec                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r   r  r   r;   r   r  r   s       r,   	test_sizezTestShapeInference.test_size\  sz      ;$$i01IfsecU4S3TVX
 	#C):):B?@!..{GDE 	 	
rb   Gatherc                   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg       }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )	NrK   r   r   ir   r  r   r   r   
rR   r   r   rF   r   ru   r   r   r   r   r   s       r,   test_gatherzTestShapeInference.test_gatherg  s      ;$$f-[5F5F/MNx#scU34

 	#C):):FCD!..{GDE 	 	
rb   c           	     "   | j                  dt        j                  dfdt        j                  dfgt	        dddgdgd      gg       }| j                  |t        dt        j                  d	      gt        j                  t        |      g
       y )NrK   )r   r   r0   r  r   r  r   r   r)  )r   r   r9   r0   r   r  r   s       r,   test_gather_axis1z$TestShapeInference.test_gather_axis1t  s      ;$$i038I8I62RSx#scU;<

 	#C):):LIJ!..{GDE 	 	
rb   c                   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg       }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r   r  r;   r  r   r   r  r   s       r,   test_gather_into_scalarz*TestShapeInference.test_gather_into_scalar  s      ;$$d+c;3D3Db-IJx#scU34

 	#C):):B?@!..{GDE 	 	
rb   GatherElementsc           	     "   | j                  dt        j                  dfdt        j                  dfgt	        dddgdgd      gg       }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )	NrK   r  r  r  r   r   r)  r   r  r   s       r,   test_gather_elementsz'TestShapeInference.test_gather_elements        ;$$f-[5F5F/OP'#scUCD

 	#C):):FCD!..{GDE 	 	
rb   c           	     "   | j                  dt        j                  dfdt        j                  dfgt	        dddgdgd      gg       }| j                  |t        dt        j                  d      gt        j                  t        |      g	       y )
NrK   r  r  r   r  r   r   r)  r   r  r   s       r,   test_gather_elements_axis0z-TestShapeInference.test_gather_elements_axis0  r  rb   Scatterc                   |dk\  r_| j                  t        j                  j                        5 }| j	                  |       d d d        j
                  }dt        |      v sJ y | j	                  |       y # 1 sw Y   7xY wNr  zScatter is deprecated)r   rY   r   rn  _test_scatterro  r   rH   r   r+   rq  ro  s        r,   test_scatterzTestShapeInference.test_scatter  so    b=""4<<#?#?@ ,B""7+,I*c)n<<<w', ,   A77B c                B   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddg      gg       }| j                  |t        dt        j                  d      gt        j                  t        |      g	       y )
NrK   r  r  r   ur  rK   r  r  r   r   r  rH   r+   rj   s      r,   r  z TestShapeInference._test_scatter  s      k''0k''0k''0
 y/C59:
 	#C):):FCD!..{GDE 	 	
rb   c                   |dk\  r_| j                  t        j                  j                        5 }| j	                  |       d d d        j
                  }dt        |      v sJ y | j	                  |       y # 1 sw Y   7xY wr  )r   rY   r   rn  _test_scatter_axis1ro  r   r  s        r,   test_scatter_axis1z%TestShapeInference.test_scatter_axis1  so    b=""4<<#?#?@ 2B((12I*c)n<<<$$W-2 2r  c           	     F   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddgd	
      gg       }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r	  r  r   r  r  r  r   r   r)  r   r  r  s      r,   r  z&TestShapeInference._test_scatter_axis1  s      k''0k''0k''0
 y/C5qAB
 	#C):):FCD!..{GDE 	 	
rb   ScatterElementsc                B   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddg      gg       }| j                  |t        dt        j                  d      gt        j                  t        |      g	       y )
NrK   r  r  r   r  r  r  r   r   r  r   s       r,   test_scatter_elementsz(TestShapeInference.test_scatter_elements  s      k''0k''0k''0
 (/C5AB
 	#C):):FCD!..{GDE 	 	
rb   c           	     F   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddgd	
      gg       }| j                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r	  r  r   r  r  r  r   r   r)  r   r  r   s       r,   test_scatter_elements_axis1z.TestShapeInference.test_scatter_elements_axis1  s      k''0k''0k''0
 (/C5qIJ
 	#C):):FCD!..{GDE 	 	
rb   	ScatterNDc                B   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	g      gg       }| j                  |t        d	t        j                  d      gt        j                  t        |      g
       y )NrK   r   r0   r  indicesr   r   r9   updatesr   r   r  r	  )rK   r  r  r   r   r  r   s       r,   test_scatterndz!TestShapeInference.test_scatternd   s      k''3K--y9K--y9
 {$?#GH
 	#C):):IFG!..{GDE 	 	
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        d	ddgd
g      t	        dg ddg      gg       }| j                  |t        d
t        j                  d       t        dt        j                  d       gt        j                  t        |      g       y )NrK   r  r  r  r  r  ry   r?  r>   
x_reshapedr	  )r  r  r  r   r   r  r   s       r,   test_scatternd_noshapez)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 	 	
rb   Squeezec                Z   |dk(  r}| j                  dt        j                  dfgt        dddg d      gg       }| j	                  |t        dt        j                  d      gt        j                  t        |      g	       y | j                  dt        j                  dfd
t        j                  dfgt        ddd
gd      gg t        d
t        j                  dd      g      }| j	                  |t        dt        j                  d      gt        j                  t        |      g	       y )Nr  rK   r   r   r   r   r9   r   r  r   )r   r9   r   r0   r  r  r   r  re  r
  )rR   r   r   r   ru   r   r   r   r   rF   r   r   s       r,   test_squeezez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 " rb   StringConcatc                   | j                  dt        j                  dfdt        j                  dfgt        dddgd      gg       }| j	                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r   r   r  r   r   	rR   r   r   r   ru   r   r   r   r   r   s       r,   test_stringconcatz$TestShapeInference.test_stringconcatJ        k(()4k(()4 ~Sz378
 	#C););YGH!..{GDE 	 	
rb   c                   | j                  dt        j                  dfdt        j                  dfgt        dddgd      gg       }| j	                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r   r   )r   r   r   r  r   r   r  r   s       r,   test_stringconcat_broadcastingz1TestShapeInference.test_stringconcat_broadcastingZ  r  rb   RegexFullMatchc           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   rd  r  r   ^[A-Z][a-z]*$patternr   
rR   r   r   r   ru   r   BOOLr   r   r   r   s       r,   test_regex_full_matchz(TestShapeInference.test_regex_full_matchj  s      ;%%|45'#?OPQ

 	#C)9)9<HI!..{GDE 	 	
rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      gt        j                  t        |      g       y )NrK   r;   r  r   r!  r"  r   r$  r   s       r,   !test_regex_full_match_empty_shapez4TestShapeInference.test_regex_full_match_empty_shapew  s      ;%%r*+'#?OPQ

 	#C)9)92>?!..{GDE 	 	
rb   c                    | j                  dt        j                  dfgt        ddgd      gg       }t	               }d|_        d|_        | j                  |t        dt        j                  d      g       y )NrK   r  r  r   r  r  r  )	rR   r   r   r   r   r(   r+   ru   r   rH   rj   operatorsetids      r,   test_squeeze_no_axes_opset11z/TestShapeInference.test_squeeze_no_axes_opset11  s~      k'');< y3%-.
 +,! "*30A0A6JK	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgd      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      g       y )
NrK   r  r  re  	Unsqueezer   )r   r   r   r0   r
  )r   r   r   r   r9   r   rR   r   r   rF   r   r   ru   r   r   s     r,   test_unsqueeze_regularz)TestShapeInference.test_unsqueeze_regular  s      ;$$f-8I8I4/PQ{S&M378$V[->->lST	 ! 
 	*30A0ACUVW	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgd      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      g       y )
NrK   r#  r  r   r.  r   )r   r   r
  r   r   r   r0   r   r/  r   s     r,   test_unsqueeze_unsorted_axesz/TestShapeInference.test_unsqueeze_unsorted_axes  s      ;$$i06;;L;Ld2ST{S&M378$V[->->fMN	 ! 
 	*30A0A?ST	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgd      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      g       y )
NrK   r#  r  r   r.  r   )r   r!   r
  r2  r/  r   s     r,   test_unsqueeze_negative_axesz/TestShapeInference.test_unsqueeze_negative_axes  s      ;$$i06;;L;Ld2ST{S&M378$V[->->gNO	 ! 
 	*30A0A?ST	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgd      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d      g       y )	NrK   r;   r  r.  r   )r!   r
  r  r/  r   s     r,   test_unsqueeze_scalarz(TestShapeInference.test_unsqueeze_scalar  s      ;$$b)FK4E4Er+JK{S&M378$V[->->EJK	 ! 
 	*30A0A4HI	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddg      gg       }| j                  |t        dt        j                  d	      g       y )
NrK   )r   r9   r   startsr  endsSlicerK   r9  r:  r   r.  rR   r   r   rF   r   ru   r   r   s     r,   test_slice_without_input_shapez1TestShapeInference.test_slice_without_input_shape  s      k''5;,,d3**D1
 w 7#?@
 	*30A0ACUVW	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddg      gg t        dt        j                  dt        j                  d	d
gd      j                         d      t        dt        j                  dd      g      }| j                  |t        dt        j                  d      g       y )NrK   r  r9  r   r:  r;  r<  r   r   r   r  rx  Trz  r  r
  r   rR   r   r   rF   r   r   r   r~  r  ru   r   r   s     r,   test_slice_with_input_shapez.TestShapeInference.test_slice_with_input_shape  s      k''0;,,d3**D1
 w 7#?@%%1a&6>>@ FK$5$5tVD	 ! 
& 	*30A0A6JK	
rb   c                |   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddg      gg t        dt        j                  dd	      t        dt        j                  dd
      g      }| j                  |t        dt        j                  d      g       y )NrK   )r   r   r   r9  r   r:  r;  r<  r   )r   r   r   rM  r
  )r   Nr   r/  r   s     r,   1test_slice_with_input_shape_containing_dim_paramszDTestShapeInference.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 ! 
 	e&<S+BSBSUa&b%cdrb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  d fdt        j                  dfgt	        dg d	d
g      gg t        dt        j                  dd      t        dt        j                  dd      t        dt        j                  dd      g      }| j                  |t        d
t        j                  d      g       y )NrK   r0   r  r(  r9  r   r:  r  stepsr;  rK   r9  r:  r  rF  r   rQ  )r9   r  r  )r   r   r   r
  r   r9   r9   r/  r   s     r,   !test_slice_with_input_shape_stepsz4TestShapeInference.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	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  d fgt	        dg d	d
g      gg t        dt        j                  dd      t        dt        j                  dd      t        dt        j                  dd      g      }| j                  |t        d
t        j                  d      g       y )NrK   )r   r  r9   r9  r   r:  r  rF  r;  rG  r   r   r   r  )r   r9   r
  )r   r  r9   r/  r   s     r,    test_slice_with_input_shape_axesz3TestShapeInference.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	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	      gg t        dt        j                  dd
      t        dt        j                  dd      t        dt        j                  dd
      g      }| j                  |t        d	t        j                  d      g       y )NrK   r  r9  r   r:  r  r;  rK   r9  r:  r  r   rK  r  r
  r   r/  r   s     r,   test_slice_unsorted_axesz+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	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	      gg t        dt        j                  dd
      t        dt        j                  dd      t        dt        j                  dd      g      }| j                  |t        d	t        j                  d      g       y NrK   r  r9  r   r:  r  r;  rN  r   rK  )   iU  r   r   r
  r  r/  r   s     r,   test_slice_giant_numberz*TestShapeInference.test_slice_giant_number3  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	
rb   c                .   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg d	d
      gg t        dt        j                  dd      t        dt        j                  dd      t        dt        j                  dd      t        dt        j                  dd      g      }| j                  |t        d
t        j                  d      g       y )NrK   r  r9  r   r:  r  rF  r;  rG  r   rK  )rR  rR  rS  )r   rR  r
  r   r/  r   s     r,   test_slice_giant_stepz(TestShapeInference.test_slice_giant_stepG  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	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	      gg t        dt        j                  dd
      t        dt        j                  dd      t        dt        j                  dd      g      }| j                  |t        d	t        j                  d      g       y )NrK   r  r9  r   r:  r  r;  rN  r   rK  )rR  r!   rS  r
  r   r/  r   s     r,   test_slice_negative_endz*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 ! 
" 	e&<S+BSBSU[&\%]^rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	      gg t        dt        j                  dd
      t        dt        j                  dd      t        dt        j                  dd      g      }| j                  |t        d	t        j                  d      g       y )NrK   r  r9  r   r:  r  r;  rN  r   )r   )rR  r   rS  r
  r  r/  r   s     r,   test_slice_negative_startz,TestShapeInference.test_slice_negative_startq  s      k''0;,,d3**D1**D1	 w ?EFk//w FK$5$5tXFFK$5$5tVD ! 
" 	e&<S+BSBSU[&\%]^rb   c                .   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg d	d
      gg t        dt        j                  dd      t        dt        j                  dd      t        dt        j                  dd      t        dt        j                  dd      g      }| j                  |t        d
t        j                  d      g       y )NrK   r  r9  r   r:  r  rF  r;  rG  r   r   r   )rR  r   rS  )r   r!   r
  r   r/  r   s     r,   test_slice_negative_stepz+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 ! 
& 	e&<S+BSBSU[&\%]^rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	      gg t        dt        j                  dd      t        dt        j                  dd
      t        dt        j                  dd      g      }| j                  |t        d	t        j                  d      g       y )NrK   r6  r9  r  r:  r  r;  rN  r   )rR  r
  )r   r   r/  r   s     r,   test_slice_variable_copyz+TestShapeInference.test_slice_variable_copy  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 ! 
 	e&<S+BSBSU]&^%_`rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	      gg t        dt        j                  dd
      t        dt        j                  dd      t        dt        j                  dd      g      }| j                  |t        d	t        j                  d      g       y rQ  )rR   r   DOUBLEri  r   r   ru   r   r   s     r,   test_slice_variable_input_typesz2TestShapeInference.test_slice_variable_input_types  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	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdg dg dg d	
      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   r   r0   r  r(  r   r0   r   r9   r   r   Convr   r   r   r   r   r   r   rH  r   r   r9   r  r  r  r   r0   r   r   r   r   r   s     r,   	test_convzTestShapeInference.test_conv  s      k''9k''9
 #J+'%	 
" 	*30A0A?ST	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgddg      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r   r   )2   r   r9   rg  r   r   r  )r   rn  r   r   r   s     r,   test_conv_1d_simplez&TestShapeInference.test_conv_1d_simple  s{      k''4k''4 vSz31#>?
 	*30A0A;OP	
rb   c           
         | j                  dt        j                  dfdt        j                  dfgt        dddgdg d      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r   r   rG  rG  rG  r   rn  r   r   r   r   rg  r   r   r9   r   r  r   rn  r  r   r9   r   r   s     r,   test_conv_dilationsz&TestShapeInference.test_conv_dilations  s|      k'')9:k'')9: vSz3)DE
 	*30A0ACTUV	
rb   c           
         | j                  dt        j                  dfdt        j                  dfgt        dddgdg d      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   rq  r   rr  rg  r   rs  r  r   rn  r  r   r9   r   r   s     r,   test_conv_stridesz$TestShapeInference.test_conv_strides  s|      k'')9:k'')9: vSz3	BC
 	*30A0ACTUV	
rb   c           
         | j                  dt        j                  dfdt        j                  dfgt        dddgdg d      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r   r   r(  r  r   r   rr  rg  r   r   r   r9   r   r   r9   r  r   rn  r  r  r  r   r   s     r,   test_conv_padsz!TestShapeInference.test_conv_pads  s}      k'')9:k'')9: vSz35GHI
 	*30A0ACTUV	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   rz  r   rn  r   r   r   r9   rg  r   
SAME_UPPER)auto_pad)r   rn  r(  r  r   r   r   s     r,   test_conv_auto_padz%TestShapeInference.test_conv_auto_pad  s|      k'')9:k'')9: vSz3FG
 	*30A0ACTUV	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgddg d	      gg       }| j	                  |t        dt        j                  d
      g       y )NrK   rz  r   r  rg  r   r  r9   r9   r   r  r  )r   rn  r   r   r   r   r   s     r,   test_conv_auto_padsz&TestShapeInference.test_conv_auto_pads  s      k'')9:k'')9:
 S#JlI
 
 	*30A0ACTUV	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgddg d	      gg       }| j	                  |t        dt        j                  d
      g       y )NrK   )r   r   A   @   ?   r   r  rg  r   r  r   )r  r  )r   rn  r  r  r  r   r   s     r,   test_conv_auto_pad_dilationz.TestShapeInference.test_conv_auto_pad_dilation)  s      k'')<=k'')9:
 S#Jli
 
 	#C):):<PQR	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   rq  r   r   r   rG  rG  rG  rg  r   r   groupr   r   r   r   r   r   r   s     r,   test_conv_groupz"TestShapeInference.test_conv_group;  s{      k'')9:k''9 vSz3a89
 	*30A0ACSTU	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgddg      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r   r   )rn  r   r0   rg  r   r9   r  )r   rn  r   r   r   s     r,   test_conv_only_one_posz)TestShapeInference.test_conv_only_one_posH  s{      k''4k''4 vSz3<=
 	*30A0A;OP	
rb   c           
         | j                  dt        j                  dfdt        j                  dfgt        dddgdg d      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r   r   Nr  r   r   rr  rg  r   r{  r  r   rn  Nr  r  r   r   s     r,   test_conv_partial_missing_shapez2TestShapeInference.test_conv_partial_missing_shapeU  sz      k'')<=k'')9: vSz35GHI
 	e&<S+BSBSUi&j%klrb   c           
         | j                  dt        j                  dfdt        j                  dfgt        dddgdg d      gg       }| j	                  |t        dt        j                  d       g       y )	NrK   rz  r   rn  r   Nr   r   rg  r   r{  r  r   r   s     r,   &test_conv_partial_missing_weight_shapez9TestShapeInference.test_conv_partial_missing_weight_shape`  s|      k'')9:k'')<= vSz35GHI
 	*30A0A4HI	
rb   c                    | j                  dt        j                  dfgt        ddgddg dg d      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   rz  AveragePoolr   r  )r   r   r9   r  r  r  r  )r   r   r   r   r   r   r   s     r,   test_average_pool_auto_padsz.TestShapeInference.test_average_pool_auto_padsm  su      ;$$&678!E)!*%	 
 	*30A0ACSTU	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgddg      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r0   r   r   r   r  r   r9   r  r  r0   r   r9   r9   r   r   s     r,    test_average_pool_with_dilationsz3TestShapeInference.test_average_pool_with_dilations  sy      ;$$l34!C53%q!fQRTUPV
 
 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgdddgddgddg      gg       }| j	                  |t        dt        j                  d	      g       y )
Nr   r  r  r   r  r9   r   r  r  r  r  r  r   r   s     r,   Atest_average_pool_with_same_upper_padding_and_stride_and_dilationzTTestShapeInference.test_average_pool_with_same_upper_padding_and_stride_and_dilation  s      ;$$l34!EE)"#QF !f
 
 	*30A0A<PQ	
rb   c                &    | j                  d       y )NRelur   rH   s    r,   	test_reluzTestShapeInference.test_relu  s    F#rb   c                &    | j                  d       y )NIdentityr  r  s    r,   test_identityz TestShapeInference.test_identity  s    J'rb   c           	     \   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      t        d	dgd
g      gg       }| j	                  |t        dt        j                  d      t        d
t        j                  d      g       y )Ninput1r   input2input3r9   r0   r   SequenceConstructr  r  r  in_sequencer  output_sequencer9   Nr   rR   r   r   r   ru   r   r   s     r,   test_identity_sequencez)TestShapeInference.test_identity_sequence  s      ;,,i8;,,i8;,,i8 ')G- *}o8I7JK	 
 	/{?P?PR^_/%{'8'8,	
rb   c           	     p   | j                  dt        j                  dfgt        ddgdg      t        ddgdg      gg       }t	        j
                  t        j                  d      }t	        j                  |      }| j                  |t	        j                  d|      t	        j                  d|      g       y )N	in_tensorr   Optionalin_optionalr  output_optional)	rR   r   r   r   r   make_tensor_type_protomake_optional_type_protoru   make_value_info)rH   rj   tensor_type_protooptional_type_protos       r,   test_identity_optionalz)TestShapeInference.test_identity_optional  s      ;,,i89*{mm_E*}o8I7JK 
 #99+:K:KYW$==>OP&&}6IJ&&'8:MN	
rb   c           
     *   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      t        d	dgd
g      t        dd
gdg      gg       }t	        j
                  t        j                  d      }t	        j                  |      }t	        j                  |      }| j                  |t	        j                  d|      t	        j                  d
|      t	        j                  d|      g       y )Nr  r   r  r  r  r  r  r  r  r  r  r  r  )
rR   r   r   r   r   r  make_sequence_type_protor  ru   r  )rH   rj   r  sequence_type_protor  s        r,   test_identity_optional_sequencez2TestShapeInference.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	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   r   Addr   r   r   s     r,   test_addzTestShapeInference.test_add  w      k''4k''4 usCj#./
 	*30A0A:NO	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   r   Powr   r   r   s     r,   test_powzTestShapeInference.test_pow  r  rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r9   r   r   r   BitShiftr   RIGHT	directionrR   r   UINT32r   ru   r   r   s     r,   test_bitshiftz TestShapeInference.test_bitshift	  sy      k(()4k(()4 zC:sgFG
 	*30B0BINO	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   )   r   r   r   r  r  r   r  r  r  r   s     r,    test_bitshift_broadcast_to_firstz3TestShapeInference.test_bitshift_broadcast_to_first	  st      ;%%z2S+:L:Ld4STzC:sgFG

 	*30B0BJOP	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r  r   r  r  r   r  r  r  r   s     r,   !test_bitshift_broadcast_to_secondz4TestShapeInference.test_bitshift_broadcast_to_second#	  st      ;%%t,sK4F4F	.RSzC:sgFG

 	*30B0BINO	
rb   c                &    | j                  d       y )NSumr  r  s    r,   test_sum_singlez"TestShapeInference.test_sum_single-	  s    E"rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   r   r   r  r/  r0  r   r   s     r,   test_sum_multiz!TestShapeInference.test_sum_multi0	  s      k''4k''4k''4
 uow78
 	*5+2C2CZPQ	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg dd	g      gg       }| j	                  |t        d	t        j                  d
      g       y )NrK   )r   r   r0   r   r   r   r   r   )r   r   r  r/  r0  r   r   r   s     r,   test_sum_multi_broadcastingz.TestShapeInference.test_sum_multi_broadcasting>	  s      k''4k''5k''2
 uow78
 	*5+2C2CZPQ	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   )r   r   r0   r   r  r  r0  r   r   r   s     r,   test_sum_broadcasting_paramz.TestShapeInference.test_sum_broadcasting_paramL	  sy      k''5k''5 usCj5'23
 	*5+2C2C[QR	
rb   c           
         | j                  g t        dg dgt        j                  d      gg       }| j	                  |t        dt        j                  d      g       y )NRandomNormalr0  r#  )ry  ry   )rR   r   r   rb  ru   r   r   s     r,   test_random_normalz%TestShapeInference.test_random_normalY	  sf      "G%,,# 
 	*5+2D2DiPQ	
rb   c                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r   RandomNormalLiker0  r   r   s     r,   test_random_normal_likez*TestShapeInference.test_random_normal_likek	  sd      ;$$i01)C55':;

 	*5+2C2CYOP	
rb   c           	         | j                  dt        j                  dfgt        ddgdgt        j                        gg       }| j                  |t        dt        j                  d      g       y )Nr   r   r  r0  rx  rR   r   r   r   rb  ru   r   r   s     r,   "test_random_normal_like_with_dtypez5TestShapeInference.test_random_normal_like_with_dtypeu	  su      ;$$i01&EG%,,	 
 	*5+2D2DiPQ	
rb   c                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  	Bernoullir0  r   r   s     r,   test_bernoulliz!TestShapeInference.test_bernoulli	  sa      ;$$f-.{SEE734

 	e&<UKDUDUW]&^%_`rb   c           	         | j                  dt        j                  dfgt        ddgdgt        j                        gg       }| j                  |t        dt        j                  d      g       y )NrK   r   r  r0  rx  r  r   s     r,   test_bernoulli_with_dtypez,TestShapeInference.test_bernoulli_with_dtype	  ss      ;$$i01EG%,,	 
 	e&<UKDVDVXa&b%cdrb   c                    | j                  d|dfd|dfgt        |ddgd      gg       }| j                  |t        dt        j
                  d      g       y )NrK   r   r   r   rR   r   ru   r   r   r%  rH   r   
input_typerj   s       r,   _logical_binary_opz%TestShapeInference._logical_binary_op	  sf      :z*S*j,IJrC:s+,

 	*30@0@*MN	
rb   c                    | j                  d|dfd|dfgt        |ddgd      gg       }| j                  |t        dt        j
                  d      g       y )NrK   r	  r   r   r   r  r  s       r,   $_logical_binary_op_with_broadcastingz7TestShapeInference._logical_binary_op_with_broadcasting	  sh       :v&j*(EFrC:s+,

 	*30@0@*MN	
rb   c                    | j                  dt        j                         | j                  dt        j                         y )NAndr  r   r%  r  r  s    r,   test_logical_andz#TestShapeInference.test_logical_and	  .    {'7'7811%9I9IJrb   c                    | j                  dt        j                         | j                  dt        j                         y )NOrr   r  s    r,   test_logical_orz"TestShapeInference.test_logical_or	  s.    k&6&6711$8H8HIrb   c                    | j                  dt        j                         | j                  dt        j                         y )NXorr   r  s    r,   test_logical_xorz#TestShapeInference.test_logical_xor	  r  rb   c                    | j                  dt        j                         | j                  dt        j                         y )NGreaterr   r  s    r,   test_greaterzTestShapeInference.test_greater	  s.    	;+;+;<11)[=M=MNrb   c                    | j                  dt        j                         | j                  dt        j                         y )NLessr   r  s    r,   	test_lesszTestShapeInference.test_less	  s.    (8(8911&+:J:JKrb   c                    | j                  dt        j                         | j                  dt        j                         y NEqualr   r  s    r,   
test_equalzTestShapeInference.test_equal	  s.    )9)9:11';;K;KLrb   c                    | j                  dt        j                         | j                  dt        j                         y r  )r  r   r   r  r  s    r,   test_equal_stringz$TestShapeInference.test_equal_string	  s.    ););<11';;M;MNrb   c                    | j                  dt        j                  dfgt        ddgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   Notr   )rR   r   r%  r   ru   r   r   s     r,   test_logical_notz#TestShapeInference.test_logical_not	  s`      ;##Z01IecUC4P3QSU
 	*30@0@*MN	
rb   c                    | j                  dt        j                         | j                  dt        j                         y )NLessOrEqualr   r  s    r,   test_less_or_equalz%TestShapeInference.test_less_or_equal	  s.    {/?/?@11-AQAQRrb   c                    | j                  dt        j                         | j                  dt        j                         y )NGreaterOrEqualr   r  s    r,   test_greater_or_equalz(TestShapeInference.test_greater_or_equal	  s0     0+2B2BC112BKDTDTUrb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r9   r   r   r0   Flattenr   r9   r)  )r     r   r   s     r,   test_flattenzTestShapeInference.test_flatten	  se      ;$$l34y3%#Q78

 	*30A0A7KL	
rb   c                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r   r   )r9   <   r   r   s     r,   test_flatten_default_axisz,TestShapeInference.test_flatten_default_axis	  sc      ;$$l34y3%#/0

 	*30A0A7KL	
rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r   r   r   r)  )r   x   r   r   s     r,   test_flatten_zero_axisz)TestShapeInference.test_flatten_zero_axis	  se      ;$$l34y3%#Q78

 	*30A0A8LM	
rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   )r9   r   r   r0   r   r   r9   r)  )Nr!  r   r   s     r,   test_flatten_unknown_dimz+TestShapeInference.test_flatten_unknown_dim	  sc      ;$$n56y3%#Q78

 	e&<S+BSBSU_&`%abrb   c           	         d}| j                  dt        j                  dfgt        ddgdg|      gg       }| j	                  |t        dt        j                  d      g       y )Nr!  rK   r9   r   d   r-  SpaceToDepthr   	blocksizer9   ,  r!  r!  r   rH   r   rj   s      r,   test_space_to_depthz&TestShapeInference.test_space_to_depth
  sl      ;$$&678~useqAB

 	*30A0ACSTU	
rb   c           	         d}| j                  dt        j                  dfgt        ddgdg|      gg       }| j	                  |t        dt        j                  d      g       y )Nr!  rK   )r9   r   r-  r-  r.  r   r/  )r9   Nr!  r!  r   r3  s      r,   test_space_to_depth_unknown_dimz2TestShapeInference.test_space_to_depth_unknown_dim
  si      ;$$&89:~useqAB

 	e&<S+BSBSUf&g%hirb   c           
         d}| j                  dt        j                  dfgt        ddgdg|d      gg       }| j	                  |t        dt        j                  d      g       y )	Nr!  rK   r1  DepthToSpacer   DCR)r0  moder,  r   r3  s      r,   test_depth_to_spacez&TestShapeInference.test_depth_to_space
  sn      ;$$&678~usequMN

 	*30A0ACSTU	
rb   c                f   | j                  dt        j                  |||ffdt        j                  d||ffdt        j                  d||ffgt        dg dddg|	      gg       }| j	                  |t        dt        j                  |d||f      t        dt        j                  d||f      g       y )
NrK   wr   rRNNrK   r=  r>  alllasthidden_sizer   rH   seqlen	batchsizeinpsize
hiddensizerj   s         r,   _rnn_forwardzTestShapeInference._rnn_forward$
  s       k''&)W)EFk''!Z)ABk''!Z)DE ?UFO
 
 	&;,,vq)Z.P 'K--9j/I	
	
rb   c                ,    | j                  dddd       y Nr      r!  r   )rJ  r  s    r,   test_rnn_forwardz#TestShapeInference.test_rnn_forward@
  s    "b"a(rb   c                h   | j                  dt        j                  |||ffdt        j                  d||ffdt        j                  d||ffgt        dg dddg|d	
      gg       }| j	                  |t        dt        j                  |d||f      t        dt        j                  d||f      g       y )NrK   r=  r9   r>  r?  r@  rA  rB  bidirectional)rD  r  r   rE  s         r,   _rnn_bidirectionalz%TestShapeInference._rnn_bidirectionalC
  s       k''&)W)EFk''!Z)ABk''!Z)DE #FO *- 
" 	&;,,vq)Z.P 'K--9j/I	
	
rb   c                V    | j                  dddd       | j                  ddddd       y )Nr  rM  r!  r   rP  )_rnn_layoutr  s    r,   test_rnn_layoutz"TestShapeInference.test_rnn_layoutc
  s,    RQ'RQ8rb   c                ~   | j                  dt        j                  |||ffdt        j                  d||ffdt        j                  d||ffgt        dg dddg|d|	      gg       }|d
k(  rd}nd}| j	                  |t        dt        j                  ||||f      t        dt        j                  |||f      g       y )NrK   r=  r   r>  r?  r@  rA  rB  )rD  layoutr  rP  r9   r   )rH   rF  rG  rH  rI  r  rj   num_directionss           r,   rS  zTestShapeInference._rnn_layoutg
  s       k'')VW)EFk''!Z)ABk''!Z)DE #FO *'	 !
$ 'NN&%%
C
 'K--	>:/V		
rb   c                ,    | j                  dddd       y rL  )rQ  r  s    r,   test_rnn_bidirectionalz)TestShapeInference.test_rnn_bidirectional
  s    BA.rb   c                   | j                  dt        j                  |||ffdt        j                  dd|z  |ffdt        j                  dd|z  |ffgt        dg dg d|	      gg       }| j	                  |t        d
t        j                  |d||f      t        dt        j                  d||f      t        dt        j                  d||f      g       y )NrK   r=  r   r   r>  LSTMr@  )rA  hiddenrB  rC  rA  r\  rB  r   rE  s         r,   _lstm_forwardz TestShapeInference._lstm_forward
  s       k''&)W)EFk''!Q^W)EFk''!Q^Z)HI #- *	 
  	&;,,vq)Z.P 'k//!Y
1K 'K--9j/I
	
rb   c                ,    | j                  dddd       y rL  )r]  r  s    r,   test_lstm_forwardz$TestShapeInference.test_lstm_forward
  s    2r2q)rb   c                4   | j                  dt        j                  dfgt        dddgddg      gg t	        dt        j
                  dd      g	      }| j                  |t        dt        j                  d
      t        dt        j
                  d
      g       y )NrK   r   r   r0   r!  TopKkr   r   r  r   r
  )r   r   r0   r9   rR   r   r   r   r   rF   ru   r   r   s     r,   test_topk_default_axisz)TestShapeInference.test_topk_default_axis
  s      ;$$m45vSzC:67$S+*;*;T4HI	 ! 
 	&sK,=,=|L&sK,=,=|L	
rb   c                8   | j                  dt        j                  dfgt        dddgddgd      gg t	        dt        j
                  d	d
      g      }| j                  |t        dt        j                  d      t        dt        j
                  d      g       y )NrK   ra  rb  rc  r   r   r9   r)  r  r   r
  )r   r   r9   r!  rd  r   s     r,   	test_topkzTestShapeInference.test_topk
  s      ;$$m45vSzC:A>?$S+*;*;T4HI	 ! 
 	&sK,=,=}M&sK,=,=}M	
rb   c                   | j                  dt        j                  dfgt        dddgddgd      gg t	        dt        j
                  d	t        j                  d
gd      j                         d      g      }| j                  |t        dt        j                  d      t        dt        j
                  d      g       y )NrK   ra  rb  rc  r   r   r9   r)  r  r   r  rx  Trz  r
  )r   r   r   r!  )rR   r   r   r   r   rF   r   r~  r  ru   r   r   s     r,   test_topk_raw_dataz%TestShapeInference.test_topk_raw_data
  s      ;$$m45vSzC:A>?%%1#U3;;=	 ! 
 	&sK,=,=}M&sK,=,=}M	
rb   c           	     "   | j                  dt        j                  dfdt        j                  dfgt	        dddgddgd	      gg       }| j                  |t        dt        j                  d
      t        dt        j                  d
      g       y )NrK   ra  rc  r  rb  r   r   r9   r)  )NNNNr=  r   s     r,   +test_topk_missing_k_value_output_rank_checkz>TestShapeInference.test_topk_missing_k_value_output_rank_check
  s      ;$$m4sK<M<Mt6TUvSzC:A>?

 	&sK,=,=?WX&**,D	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  d fgt        dg ddg      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r(  r0   r   r0   r  r   Gemmr/  r0  r(  r  r   r   s     r,   	test_gemmzTestShapeInference.test_gemm   s      k''0k''1k''.
 v89
 	*5+2C2CWMN	
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  d fgt        dg ddgd	
      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r0   r(  r   rn  r   ro  r/  r0  r   )transArp  r   r   s     r,   test_gemm_transAz#TestShapeInference.test_gemm_transA        k''0k''1k''.
 vBC
 	*5+2C2CWMN	
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  d fgt        dg ddgd	
      gg       }| j	                  |t        dt        j                  d      g       y )NrK   rm  r   r  r0   r   ro  r/  r0  r   )transBrp  r   r   s     r,   test_gemm_transBz#TestShapeInference.test_gemm_transB  rv  rb   c           
        | j                  dt        j                  dfdt        j                  dfdt        j                  d fgt        dg ddgd	d	
      gg       }| j	                  |t        dt        j                  d      g       y )NrK   rs  r   rx  r   ro  r/  r0  r   )rt  ry  rp  r   r   s     r,   test_gemm_transA_and_transBz.TestShapeInference.test_gemm_transA_and_transB*  s      k''0k''1k''.
 v!LM
 	*5+2C2CWMN	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   )   r(  r   )r(     ro  r0  )r~  r  r   r   s     r,   test_gemm_no_biasz$TestShapeInference.test_gemm_no_bias8  st      ;$$g.k6G6G0QRvSzE734

 	*5+2C2CXNO	
rb   c                4   | j                  dt        j                  dfgt        ddddd      gg t	        dt        j
                  d	d      g
      }t               }d|_        d|_        | j                  |t        dt        j                  d      g|g       y )NrK      r   r  ReduceL1r   r   r   r  keepdimsr  r   r
  r  r~  r  r   rR   r   r   r   r   rF   r   r(   r+   ru   r   r*  s      r,   #test_reduce_op_shape_2_axis_opset13z6TestShapeInference.test_reduce_op_shape_2_axis_opset13B  s      ;$$k23z3&1EF$V[->->fMN	 ! 
 +,! "#C):):EBC(/ 	 	
rb   c                Z   | j                  dt        j                  dfdt        j                  dfgt	        dddgdd      gg t        dt        j                  dd	      g
      }t               }d|_        d|_        | j                  |t        dt        j                  d      g|g       y )NrK   r  r  r   r  r   r   r  r   r
  r  r  r  r   rR   r   r   rF   r   r   r   r(   r+   ru   r   r*  s      r,   #test_reduce_op_shape_2_axis_opset18z6TestShapeInference.test_reduce_op_shape_2_axis_opset18S  s      ;$$k2V[=N=NPT4UVzC=#BC$V[->->fMN	 ! 
 +,! "#C):):EBC(/ 	 	
rb   c           
         | j                  dt        j                  dfgt        ddddd      gg g       }t	        d	d
      }| j                  |t        dt        j                  d      g|g       y )NrK   r  r   r  r  r   r  r   r  r
  r  r~  r(   r+   r  r   r  r   )rR   r   r   r   r   ru   r   r*  s      r,    test_reduce_op_empty_set_opset13z3TestShapeInference.test_reduce_op_empty_set_opset13d  s      ;$$k23z3$CD	 ! 
 +"bA#C):):KHI(/ 	 	
rb   c                D   | j                  dt        j                  dfdt        j                  dfgt	        dddgdd      gg t        dt        j                  dd      g	      }t        d
d      }| j                  |t        dt        j                  d      g|g       y )NrK   r  r  r  r  r   r   r  r
  r  r  r  r  r   )	rR   r   r   rF   r   r   r   ru   r   r*  s      r,    test_reduce_op_empty_set_opset18z3TestShapeInference.test_reduce_op_empty_set_opset18r  s      ;$$k2V[=N=NPT4UVzC=#BC$V[->->dKL	 ! 
 +"bA#C):):KHI(/ 	 	
rb   c                4   | j                  dt        j                  dfgt        ddddd      gg t	        dt        j
                  d	d      g
      }t               }d|_        d|_        | j                  |t        dt        j                  d      g|g       y )NrK   r  r  r   r   r   r  r  r   r
  r  r~  r  r   r   r   r  r*  s      r,   &test_reduce_op_shape_keep_dims_opset13z9TestShapeInference.test_reduce_op_shape_keep_dims_opset13  s      ;$$k23z3&1EF$V[->->fMN	 ! 
 +,! "#C):):JGH(/ 	 	
rb   c                Z   | j                  dt        j                  dfdt        j                  dfgt	        dddgdd      gg t        dt        j                  dd	      g
      }t               }d|_        d|_        | j                  |t        dt        j                  d      g|g       y )NrK   r  r  r   r  r   r   r  r   r
  r  r  r  r   r  r*  s      r,   &test_reduce_op_shape_keep_dims_opset18z9TestShapeInference.test_reduce_op_shape_keep_dims_opset18  s      ;$$k2V[=N=NPT4UVzC=#BC$V[->->fMN	 ! 
 +,! "#C):):JGH(/ 	 	
rb   c                    | j                  dt        j                  dfgt        ddd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   rM  r   r   s     r,   "test_reduce_op_shape_default_valuez5TestShapeInference.test_reduce_op_shape_default_value  s_      ;$$k23z3,-

 	*30A0A9MN	
rb   c           	         | j                  dt        j                  dfgt        dddd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   r   r  r;   r   r   s     r,   -test_reduce_op_shape_no_axes_do_not_keep_dimsz@TestShapeInference.test_reduce_op_shape_no_axes_do_not_keep_dims  sa      ;$$k23z3a89

 	*30A0A2FG	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgd      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      g       y )
NrK   r  r  r   r  r   )r!   rZ  r
  r  r/  r   s     r,   "test_reduce_op_shape_negative_axisz5TestShapeInference.test_reduce_op_shape_negative_axis  s      ;$$k2V[=N=NPT4UVzC=#67$V[->->hOP	 ! 
 	*30A0A:NO	
rb   c           
         | j                  dt        j                  dfgt        ddddd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  ArgMaxr   r   r*  r  r  rR   r   r   r   ru   r   rF   r   s     r,   test_argmax_shapez$TestShapeInference.test_argmax_shape  sc      ;$$k23xcA>?

 	*30A0A;OP	
rb   c           
         | j                  dt        j                  dfgt        ddddd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   r   r  )r   r  r  r   s     r,   test_argmax_shape_keepdimsz-TestShapeInference.test_argmax_shape_keepdims  sc      ;$$k23xcA>?

 	*30A0A7KL	
rb   c                    | j                  dt        j                  dfgt        ddd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   )r   r   r  r  r   s     r,   test_argmax_shape_default_valuez2TestShapeInference.test_argmax_shape_default_value  s^      ;$$k23i#s6S5TVX
 	*30A0A:NO	
rb   c           	         | j                  dt        j                  dfgt        dddd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   rZ  r)  r  r  r   s     r,   test_argmax_shape_negative_axisz2TestShapeInference.test_argmax_shape_negative_axis  sa      ;$$k23xc34

 	*30A0A;OP	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdg      gg       }| j	                  |t        dt        j                  d      g       y )Ndatar#  ratior;   Dropoutr0  r   r   s     r,   test_dropoutzTestShapeInference.test_dropout  s       %% +++R0 y67"3eW=>
  	&%%
	
rb   c                .    | j                  dddd       y )NLRN      ?r   )alphabetasizer  r  s    r,   test_LRNzTestShapeInference.test_LRN  s    E3Q?rb   c           	     T   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        dg d	d
g      gg       }| j	                  |t        d
t        j                  d      g       y )NrK   re  scalere  r   meanvarBatchNormalizationrK   r  r   r  r  r0  r   r   s     r,   test_batch_normz"TestShapeInference.test_batch_norm  s      k''9+++T2k''.**D1))40 (*Lug
 
 	*5+2C2C_UV	
rb   c           	     T   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        dg d	d
g      gg       }| j	                  |t        d
t        j                  d      g       y )NrK      r  r  r   r  r  r  r  r0  r   r   s     r,   test_batch_norm_rank1z(TestShapeInference.test_batch_norm_rank1  s      k''0+++T2k''.**D1))40 (*Lug
 
 	*5+2C2CVLM	
rb   c           	     f   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        d	g d
dg      gg       }| j	                  t
        j                  j                  | j                  |       y )NrK   r  r  r   r   r  r  r  r  r  r0  r   r   s     r,   test_batch_norm_invalidz*TestShapeInference.test_batch_norm_invalid0  s      k''0+++V4k''.**D1))40 (*Lug
 
 	$..==t~~uUrb   c           
         | j                  dt        j                  dfgt        ddgddgdd      gg       }| j	                  |t        dt        j                  d	      t        dt        j                  d	      g       y )
NrK   r   Splitr   r   r!   r9   r*  num_outputsr  r   r   s     r,   test_split_negative_axisz+TestShapeInference.test_split_negative_axisB  s}      ;$$f-.wSzJK

 	&sK,=,=vF&sK,=,=vF	
rb   c                \   | j                  dt        j                  dfdt        j                  dfgt	        dddgddgd	      gg t        dt        j                  dd
      g      }| j                  |t        dt        j                  d      t        dt        j                  d      g       y )NrK   r   splitr   r  r   r   r   r)  r  r
  r   r   r/  r   s     r,   test_split_with_split_attributez2TestShapeInference.test_split_with_split_attributeP  s      ;$$f-9J9JD/QRwgc
CD$Wk.?.?vNO	 ! 
 	&sK,=,=vF&sK,=,=vF	
rb   c                \   | j                  dt        j                  dfdt        j                  dfgt	        dddgddgd	      gg t        dt        j                  dd
      g      }| j                  |t        dt        j                  d      t        dt        j                  d      g       y )NrK   )r9   r   r   r  r   r  r   r   r   r)  r  r
  )r9   Nr   r/  r   s     r,   1test_split_with_split_attribute_unknown_split_dimzDTestShapeInference.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	
rb   c           
         | j                  dt        j                  dfgt        ddgddgdd      gg       }| j	                  |t        dt        j                  d	      t        dt        j                  d	      g       y )
NrK   rE  r  r   r   r   r9   r  r0   r   r(  r   r   s     r,   test_split_from_GLUz&TestShapeInference.test_split_from_GLUq  s}      ;$$i01wSzqIJ

 	&sK,=,=yI&sK,=,=yI	
rb   c           
     2   | j                  dt        j                  dfgt        ddgg ddd      gg       }| j	                  |t        dt        j                  d	      t        d
t        j                  d	      t        dt        j                  d      g       y )NrK   )rG  r9   r  r   r   r   r   r   r  r   r  r   r   r  r   r   s     r,   test_split_uneven_split_2dz-TestShapeInference.test_split_uneven_split_2d  s      ;$$f-.wQANO

 	&sK,=,=vF&sK,=,=vF&sK,=,=vF	
rb   c           
     2   | j                  dt        j                  dfgt        ddgg ddd      gg       }| j	                  |t        dt        j                  d	      t        d
t        j                  d	      t        dt        j                  d      g       y )NrK   )r9   r(  r   r  r  r   r   r  r   r9   r   r   r   r   r9   r   r   r   r   s     r,   test_split_uneven_split_3dz-TestShapeInference.test_split_uneven_split_3d  s      ;$$i01wQANO

 	&sK,=,=yI&sK,=,=yI&sK,=,=yI	
rb   c           
     N   | j                  dt        j                  dfgt        ddgddgdd      t        d	dgd
g      gg       }| j	                  |t        dt        j                  d      t        dt        j                  d      t        d
t        j                  d      g       y )NrK   rE  r  r   r   r   r9   r  Sigmoidr   r  r   r   s     r,   test_GLU_partialz#TestShapeInference.test_GLU_partial  s      ;$$i01'C53*1!L)cUSE2 
 	&sK,=,=yI&sK,=,=yI&sK,=,=yI	
rb   c                   | j                  dt        j                  dfgt        ddgddgdd      t        d	dgd
g      t        ddd
gdg      gg       }| j	                  |t        dt        j                  d      t        dt        j                  d      t        d
t        j                  d      t        dt        j                  d      g       y )NrK   rE  r  r   r   r   r9   r  r  r   Mulr   r  r   r   s     r,   test_GLUz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		
rb   c                    | j                  dt        j                  dfgt        ddgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   r0   Softmaxr   r   r   s     r,   test_softmax_2dz"TestShapeInference.test_softmax_2d  `      ;$$f-.9seS1Q0RTV
 	*30A0A6JK	
rb   c                    | j                  dt        j                  dfgt        ddgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   r   r   s     r,   test_softmax_3dz"TestShapeInference.test_softmax_3d  a      ;$$i01y3%-.

 	*30A0A9MN	
rb   c                    | j                  dt        j                  dfgt        ddgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  Hardmaxr   r   r   s     r,   test_hardmax_2dz"TestShapeInference.test_hardmax_2d  r  rb   c                    | j                  dt        j                  dfgt        ddgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   r   r   s     r,   test_hardmax_3dz"TestShapeInference.test_hardmax_3d  r  rb   c                    | j                  dt        j                  dfgt        ddgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  
LogSoftmaxr   r   r   s     r,   test_logsoftmax_2dz%TestShapeInference.test_logsoftmax_2d  sa      ;$$f-.|cUC01

 	*30A0A6JK	
rb   c                    | j                  dt        j                  dfgt        ddgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   r   r   s     r,   test_logsoftmax_3dz%TestShapeInference.test_logsoftmax_3d  sa      ;$$i01|cUC01

 	*30A0A9MN	
rb   c           	         | j                  dt        j                  dfgt        ddgdd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   r!   r)  r   r   s     r,    test_logsoftmax_3d_negative_axisz3TestShapeInference.test_logsoftmax_3d_negative_axis  sc      ;$$i01|cUCb9:

 	*30A0A9MN	
rb   c           
         | j                  dt        j                  dfgt        ddgdgddg      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r  MaxPoolr   r9   r  r0   r   r   r   r   r   s     r,   test_maxpoolzTestShapeInference.test_maxpool  si      ;$$l34y3%#aVDE

 	*30A0A<PQ	
rb   c           
         | j                  dt        j                  dfgt        ddgddgddg      gg       }| j	                  |t        dt        j                  d      t        dt        j                  d      g       y )	Nr   r  r  r   Zr9   r  r  r  r   s     r,   test_maxpool_with_indicesz,TestShapeInference.test_maxpool_with_indices  s      ;$$l34y3%#s1a&IJ

 	&sK,=,=|L&sK,=,=|L	
rb   c           
         | j                  dt        j                  dfgt        ddgdgg d      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r0   r   r   r   r   r  r   r3  r  r0   r   r   r   r   r   r   s     r,   test_maxpool_3Dz"TestShapeInference.test_maxpool_3D  se      ;$$o67y3%#YGH

 	*30A0A?ST	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgg d      gg       }| j	                  |t        dt        j                  d      g       y )	Nr   r  r  r   r9   r   r   r9   r9   r  r  r0   r   r  r  r   r   s     r,   test_maxpool_with_paddingz,TestShapeInference.test_maxpool_with_padding'  sr      ;$$l34use1a&|
 
 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgg dddg      gg       }| j	                  |t        dt        j                  d      g       y )	Nr   r  r  r   r9   r  r  r  r  r  r   r   s     r,   $test_maxpool_with_padding_and_stridez7TestShapeInference.test_maxpool_with_padding_and_stride5  s}      ;$$l34EE"#Q%F	 
 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgddgd      gg       }| j	                  |t        dt        j                  d      g       y )	Nr   rM     #   r	  r  r   r9   Fr  r  	ceil_mode)rM  r  r  r  r   r   s     r,   test_maxpool_with_floor_modez/TestShapeInference.test_maxpool_with_floor_modeH  s      ;$$&789EE"#QF#	 
 	*30A0ACTUV	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgddgd      gg       }| j	                  |t        dt        j                  d      g       y )	Nr   r  r  r   r9   Tr
  )rM  r  r  r  r   r   s     r,   test_maxpool_with_ceil_modez.TestShapeInference.test_maxpool_with_ceil_mode[  s      ;$$&789EE"#QF"	 
 	*30A0ACTUV	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgddgd      gg       }| j	                  |t        dt        j                  d	      g       y )
Nr   r   r   r   r   r  r   r   r9   Tr
  r  r   r   s     r,   test_maxpool_ceilz$TestShapeInference.test_maxpool_ceiln  s}      ;$$l34EE"#QF"	 
 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgddg      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r  r  r   r9   r  r  r   r   s     r,   test_maxpool_with_dilationsz.TestShapeInference.test_maxpool_with_dilations  sq      ;$$l34y3%#aVPQSTvVW

 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgdddgddg      gg       }| j	                  |t        dt        j                  d      g       y )	Nr   r  r  r   r  r9   r  r  r   r   s     r,   /test_maxpool_with_same_upper_padding_and_stridezBTestShapeInference.test_maxpool_with_same_upper_padding_and_stride  }      ;$$l34EE)"#QF	 
 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgdddgddgddg      gg       }| j	                  |t        dt        j                  d	      g       y )
Nr   r  r  r   r  r9   r   r  r  r   r   s     r,   <test_maxpool_with_same_upper_padding_and_stride_and_dilationzOTestShapeInference.test_maxpool_with_same_upper_padding_and_stride_and_dilation        ;$$l34EE)"#QF !f
 
 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgdddgddg      gg       }| j	                  |t        dt        j                  d      g       y )	Nr   r  r  r   r  r9   r   r  r   r   s     r,   3test_maxpool_with_same_upper_padding_and_stride_onezFTestShapeInference.test_maxpool_with_same_upper_padding_and_stride_one  r  rb   c                    | j                  dt        j                  dfgt        ddgdgdddgddg      gg       }| j	                  |t        dt        j                  d      g       y )	Nr   r0   r   r  r  r  r   
SAME_LOWERr9   r  r0   r   r0   r0   r   r   s     r,   /test_maxpool_with_same_lower_padding_and_stridezBTestShapeInference.test_maxpool_with_same_lower_padding_and_stride  r  rb   c                    | j                  dt        j                  dfgt        ddgdgdddgddgddg      gg       }| j	                  |t        dt        j                  d	      g       y )
Nr   r  r  r   r  r9   r   r  r  r   r   s     r,   <test_maxpool_with_same_lower_padding_and_stride_and_dilationzOTestShapeInference.test_maxpool_with_same_lower_padding_and_stride_and_dilation  r  rb   c                    | j                  dt        j                  dfgt        ddgdgdddgddg      gg       }| j	                  |t        dt        j                  d	      g       y )
Nr   r  r  r   r  r9   r   r  r0   r   r   r   r   r   s     r,   3test_maxpool_with_same_lower_padding_and_big_stridezFTestShapeInference.test_maxpool_with_same_lower_padding_and_big_stride  r  rb   c           
         | j                  dt        j                  dfgt        ddgdgddg      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r  r  r   r9   r  r  r   r   s     r,   test_averagepoolz#TestShapeInference.test_averagepool  si      ;$$l34}secU!QHI

 	*30A0A<PQ	
rb   c           
         | j                  dt        j                  dfgt        ddgdgg d      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r  r  r   r3  r  r  r   r   s     r,   test_averagepool_3Dz&TestShapeInference.test_averagepool_3D	  se      ;$$o67}secUKL

 	*30A0A?ST	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgg d      gg       }| j	                  |t        dt        j                  d      g       y )	Nr   r  r  r   r9   r  r   r  r   r   s     r,   test_averagepool_with_paddingz0TestShapeInference.test_averagepool_with_padding  sr      ;$$l34!C53%q!f<
 
 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgg dddg      gg       }| j	                  |t        dt        j                  d      g       y )	Nr   r  r  r   r9   r  r  r  r   r   s     r,   (test_averagepool_with_padding_and_stridez;TestShapeInference.test_averagepool_with_padding_and_stride!  s}      ;$$l34!EE"#Q%F	 
 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgddgd      gg       }| j	                  |t        dt        j                  d	      g       y )
Nr   r  r  r   r   r9   Tr
  r  r   r   s     r,   test_averagepool_ceilz(TestShapeInference.test_averagepool_ceil4  s}      ;$$l34!EE"#QF"	 
 	*30A0A<PQ	
rb   c           
         | j                  dt        j                  dfgt        ddgdgddg      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r  LpPoolr   r9   r  r  r   r   s     r,   test_lppoolzTestShapeInference.test_lppoolG  si      ;$$l34x#QFCD

 	*30A0A<PQ	
rb   c           
         | j                  dt        j                  dfgt        ddgdgg d      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r  r1  r   r3  r  r  r   r   s     r,   test_lppool_3Dz!TestShapeInference.test_lppool_3DQ  se      ;$$o67x#IFG

 	*30A0A?ST	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgg d      gg       }| j	                  |t        dt        j                  d      g       y )	Nr   r  r1  r   r9   r  r   r  r   r   s     r,   test_lppool_with_paddingz+TestShapeInference.test_lppool_with_padding[  sk      ;$$l34x#QFVW

 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgg dddg      gg       }| j	                  |t        dt        j                  d      g       y )	Nr   r  r1  r   r9   r  r  r  r   r   s     r,   #test_lppool_with_padding_and_stridez6TestShapeInference.test_lppool_with_padding_and_stridee  s}      ;$$l34EE"#Q%F	 
 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgddgddg      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r  r1  r   r9   r  r  r   r   s     r,   test_lppool_with_dilationsz-TestShapeInference.test_lppool_with_dilationsx  sp      ;$$l34x#QFqRSfUV

 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdgdddgddgddg      gg       }| j	                  |t        dt        j                  d	      g       y )
Nr   r  r1  r   r  r9   r   r  r  r   r   s     r,   ;test_lppool_with_same_upper_padding_and_stride_and_dilationzNTestShapeInference.test_lppool_with_same_upper_padding_and_stride_and_dilation  s      ;$$l34EE)"#QF !f
 
 	*30A0A<PQ	
rb   c           
         | j                  dt        j                  dfdt        j                  dfgt	        dddgdgddg      gg       }| j                  |t        dt        j                  d	      g       y )
Nr   r  rois)r9   r0   
MaxRoiPoolr   r9   )pooled_shape)r9   r   r9   r9   r=  r   s     r,   test_roipoolzTestShapeInference.test_roipool  s      k''6**F3 |c6]SEAOP
 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   re  LpNormalizationr0  r   r   s     r,   test_lp_normzTestShapeInference.test_lp_norm  sd      ;$$o67(3%%9:

 	*5+2C2C_UV	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   re  r  re  r   InstanceNormalization)rK   r  r   r0  r   r   s     r,   test_instance_normz%TestShapeInference.test_instance_norm  s      k''9+++T2k''.
 .0CeWMN
 	*5+2C2C_UV	
rb   c                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r  GlobalMaxPoolr   r$  r   r   s     r,   test_global_maxpoolz&TestShapeInference.test_global_maxpool  sc      ;$$l34u56

 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r  GlobalAveragePoolr   r$  r   r   s     r,   test_global_averagepoolz*TestShapeInference.test_global_averagepool  sd      ;$$l34*SEC59:

 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r  GlobalLpPoolr   r$  r   r   s     r,   test_global_lppoolz%TestShapeInference.test_global_lppool  sc      ;$$l34~use45

 	*30A0A<PQ	
rb   c           
         | j                  dt        j                  dfdt        j                  dfgt        dddgdddg      gg       }| j	                  |t        dt        j                  d	      g       y )
Nr      0   r  r  WrT  rM  r   r   ConvTransposer   r9   r  )rS  rM  !   rX  r   r   s     r,   test_conv_transposez&TestShapeInference.test_conv_transpose  s      k'')9:k''8 c
C!QHI
 	*30A0ACSTU	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdddgg d	      gg       }| j	                  |t        dt        j                  d
      g       y )Nr   rR  rU  rV  rW  r   r9   r  )r  r  rS  rM  r   r   r   r   s     r,   test_conv_transpose_with_padsz0TestShapeInference.test_conv_transpose_with_pads  s      k'')9:k''8
 #c3Zq!f<
 
 	*30A0ACSTU	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdddgg dd	d	g
      gg       }| j	                  |t        dt        j                  d      g       y )Nr   rR  rU  rV  rW  r   r9   r  $   )r  r  r  )rS  rM  r^  r^  r   r   s     r,   %test_conv_transpose_with_output_shapez8TestShapeInference.test_conv_transpose_with_output_shape  s      k'')9:k''8
 ##JF%"$b	 
" 	*30A0ACSTU	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdddgddgg d	
      gg       }| j	                  |t        dt        j                  d      g       y )Nr   rR  rU  )rT  rM  NNrW  r   r   r9   r  )r  r  r  r[  r   r   s     r,   %test_conv_transpose_with_kernel_shapez8TestShapeInference.test_conv_transpose_with_kernel_shape  s      k'')9:k'')=>
 ##J"#QF%	 
" 	*30A0ACSTU	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdddgg dd	d	g
      gg       }| j	                  |t        dt        j                  d      g       y )Nr   rR  rU  rV  rW  r   r9   r  r   )r  r  r  )rS  rM  "   rc  r   r   s     r,   "test_conv_transpose_with_dilationsz5TestShapeInference.test_conv_transpose_with_dilations#  s      k'')9:k''8
 ##JF% !f	 
" 	*30A0ACSTU	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdddgg dd	      gg       }| j	                  |t        dt        j                  d
      g       y )Nr   rR  rU  rV  rW  r   r9   r  )r  r  r  )rS  r  r   r   r   r   s     r,   test_conv_transpose_with_groupz1TestShapeInference.test_conv_transpose_with_group9  s      k'')9:k''8
 ##JF%	 
" 	*30A0ACSTU	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdddgg ddd	d	g
      gg       }| j	                  |t        dt        j                  d      g       y )Nr   rR  rU  rV  rW  r   r9   r  r^  )r  r  r  r  )rS  r  r^  r^  r   r   s     r,   /test_conv_transpose_with_group_and_output_shapezBTestShapeInference.test_conv_transpose_with_group_and_output_shapeO  s      k'')9:k''8
 ##JF%"$b
 !
$ 	*30A0ACSTU	
rb   c                r   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg dd	d
ddgg d      gg       }| j	                  t
        j                  j                  t
        j                  j                  t        j                  |      d       y )Nr   r  rU  r   r   r   r   Br  rW  )r   rU  rk  r   r  r   )r   r   r   r   )r  r  r  TrV   )rR   r   r   r   r   rY   rZ   r   r[   r   rX   r   s     r,   +test_conv_transpose_with_pads_and_auto_padsz>TestShapeInference.test_conv_transpose_with_pads_and_auto_padsf  s      k''6k''6k''. ##)F%	 !
$ 	  //  --e$	 	 	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgddddg	      gg       }| j	                  |t        dt        j                  d
      g       y )Nr   rR  rU  rV  rW  r   r  r9   r  )rS  rM  rM  rM  r   r   s     r,   test_conv_transpose_auto_padsz0TestShapeInference.test_conv_transpose_auto_pads  s      k'')9:k''8
 ##J)F 
  	*30A0ACSTU	
rb   c           
         | j                  dt        j                  dfgt        dddg d      gg       }| j	                  |t        dt        j                  d      g       y )Nr   rR  MeanVarianceNormalizationr   )r   r9   r   r  r   r   s     r,   test_mvn_function_output_shapez1TestShapeInference.test_mvn_function_output_shape  sd      ;$$&6782C9MN

 	*30A0ACSTU	
rb   c                   d}d}d}d}t        dt        j                  d       t        dt        j                  d       g}t        dt        j                  d       t        dt        j                  d       g}t        j                  t        d	dgdg      t        d	dgdg      gd
||      }| j                  dt        j                  ||ffdt        j                  |||ffgt        dg dddgd|      gg       }| j                  |t        dt        j                  ||f      t        dt        j                  |||f      gt        j                  t        d      g       y )Nr   sequencer9   r   loop_state_inr  loop_state_outr  r  subgraphloop_state_orig
scan_inputScan)r  rx  ry  loop_state_finalscan_outputnum_scan_inputsbodyrG  r   r   r   rD   r   rG   r   rR   r   ru   r   r   )	rH   
batch_sizeseq_len
input_sizeloop_state_sizerM   output_value_infosrw  rj   s	            r,   	test_scanzTestShapeInference.test_scan  s   

 #?K4I4I4P"7K,A,A4H

 ##3[5J5JDQ"8[-B-BDI

 $$*&7:J9KL*wi(< 
   "K$5$5
O7TU{00:w
2ST
 9'7$%! 
" 	&&(9(9J;X '!;#4#4z7J6W	 "..{A>? 	 	
rb   c           
        d}d}d}t        dt        j                  d       t        dt        j                  d       g}t        dt        j                  d       t        dt        j                  d       g}t        j                  t        ddgdg      t        ddgdg      gd	||      }| j                  d
t        j                  |ffdt        j                  ||ffgt        dd
dgddgd|      gg       }| j                  |t        dt        j                  |f      t        dt        j                  ||f      gt        j                  t        d      g       y )Nrt  r9   r   ru  r  rv  r  r  rw  rx  ry  rz  r{  r|  r   r}  r  r   r  )rH   r  r  r  rM   r  rw  rj   s           r,   test_scan_opset9z#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07J2GH
 &5'7$%! 
" 	&&(9(9O;M '!;#4#4w
6K	 "..{A>? 	 	
rb   c                   d}d}d}d}t        dt        j                  d       t        dt        j                  d       g}t        dt        j                  d       t        dt        j                  d       g}t        j                  t        d	dgdg      t        d	dgdg      gd
||      }| j                  dt        j                  |ffdt        j                  |||ffgt        dddgddgd|dg      gg       }| j                  |t        dt        j                  |f      t        dt        j                  |||f      gt        j                  t        d      g       y )Naxis0rt  r9   r   ru  r  rv  r  r  rw  rx  ry  rz  r{  r|  r   )r~  r  scan_input_axesr  r   r  	rH   
axis_0_lenr  r  r  rM   r  rw  rj   s	            r,   test_scan_opset9_axesz(TestShapeInference.test_scan_opset9_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:w
2ST
 &5'7$%!%&C	 
$ 	&&(9(9O;M '!;#4#4w
J6W	 "..{A>? 	 	
rb   c                   d}d}d}d}t        dt        j                  d       t        dt        j                  d       g}t        dt        j                  d       t        dt        j                  d       g}t        j                  t        d	dgdg      t        d	dgdg      gd
||      }| j                  dt        j                  |ffdt        j                  |||ffgt        dddgddgd|dgdg      gg       }| j                  |t        dt        j                  |f      t        dt        j                  |||f      gt        j                  t        d      g       y )Nr  rt  r9   r   ru  r  rv  r  r  rw  rx  ry  rz  r{  r|  r   r~  r  r  scan_output_axesr  r   r  r  s	            r,   test_scan_opset9_output_axesz/TestShapeInference.test_scan_opset9_output_axesN  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:w
2ST
 &5'7$%!%&C&'S
 !
& 	&&(9(9O;M '!;#4#4z7J6W	 "..{A>? 	 	
rb   c                   d}d}d}d}t        dt        j                  d       t        dt        j                  d       g}t        dt        j                  d       t        dt        j                  d       g}t        j                  t        d	dgdg      t        d	dgdg      gd
||      }| j                  dt        j                  |ffdt        j                  |||ffgt        dddgddgd|dgdg      gg       }| j                  |t        dt        j                  |f      t        dt        j                  |||f      gt        j                  t        d      g       y )Nr  rt  r9   r   ru  r  rv  r  r  rw  rx  ry  rz  r{  r|  r   rZ  r  r  r   r  r  s	            r,   test_scan_opset9_negative_axesz1TestShapeInference.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:w
2ST
 &5'7$%!%'D&(T
 !
& 	&&(9(9O;M '!;#4#4z7J6W	 "..{A>? 	 	
rb   c           
     Z   t        j                  t        dddgdg      gdg t        dt        j
                  d       g      }t        j                  t        dddgdg      gd	g t        dt        j
                  d       g      }| j                  d
t        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        dd
gdg||      gg       }| j                  |t        dt        j                  d      gt        t        d      g       y )Nr  current_value	add_valuethen_outputthen_subgraphSub	sub_valueelse_outputelse_subgraphcondr  If	if_outputthen_branchelse_branchr!  r   )r   rG   r   r   r   rD   rR   r%  r   ru   r   r   rH   r  r  rj   s       r,   test_if_ver1z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 	 	
rb   c           
     8   t        j                  t        dddgdg      gdg t        dt        j
                  d       g      }t        j                  t        dddgdg      gd	g t        dt        j
                  d       g      }| j                  d
t        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        dd
gdg||      gg       }| j                  |t        dt        j                  d      g       y )Nr  r  r  r  r  r  r  r  r  r  r  r  r  r  
r   rG   r   r   r   rD   rR   r%  r   ru   r  s       r,   test_ifz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	
rb   c           
     8   t        j                  t        dddgdg      gdg t        dt        j
                  d      g      }t        j                  t        dddgd	g      gd
g t        d	t        j
                  d      g      }| j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        ddgdg||      gg       }| j                  |t        dt        j                  d      g       y )Nr  r  r  r  r  r  r  r  r  r  r0   r  r  r  r  r=   r  r  s       r,   3test_if_with_different_shapes_in_then_else_brancheszFTestShapeInference.test_if_with_different_shapes_in_then_else_branches  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 - - !
& 	e&<[+J[J[]d&e%fgrb   c           
     <   t        d      }t        d      }| j                  dt        j                  dfdt        j                  dfdt        j
                  dfgt        ddgd	g||
      gg       }| j                  |t        d	t        j                  d       g       y )NzQthen_graph () => (then_output) { then_output = ReduceSum <keepdims=0> (X, axes) }zKelse_graph () => (else_output) { else_output = ReduceSum <keepdims=0> (X) }r  r  r   r   rG  r  r  r  r  r  	r   rR   r   r%  r   rF   r   ru   r   rH   
then_graph
else_graphrj   s       r,   test_if_no_shape_in_then_branchz2TestShapeInference.test_if_no_shape_in_then_branch>  s     _

 !Y

   ))40k''4**D1 H M * * 
" 	e&<[+J[J[]a&b%cdrb   c           
     <   t        d      }t        d      }| j                  dt        j                  dfdt        j                  dfdt        j
                  dfgt        ddgd	g||
      gg       }| j                  |t        d	t        j                  d       g       y )NzKthen_graph () => (then_output) { then_output = ReduceSum <keepdims=0> (X) }zQelse_graph () => (else_output) { else_output = ReduceSum <keepdims=0> (X, axes) }r  r  r   r  r  r  r  r  r  r  s       r,   test_if_no_shape_in_else_branchz2TestShapeInference.test_if_no_shape_in_else_branchX  s     Y

 !_

   ))40k''4**D1 H M * * 
" 	e&<[+J[J[]a&b%cdrb   c           
     ^   t        j                  t        j                  dg      }t        j                  |      }t        j
                  d|      }t        j                  t        ddgdg      gdg |g      }t        j                  t        j                  dg      }t        j                  |      }t        j
                  d|      }t        j                  t        dd	gdg      gd
g |g      }| j                  dt        j                  dfdt        j                  dfd	t        j                  dfgt        ddgdg||      gg       }	t        j                  t        j                  d      }
t        j                  |
      }t        j
                  d|      }| j                  |	|g       y )Nr   rx   ry   then_optional_outputr  then_tensor_valuer  r0   else_optional_outputelse_tensor_valuer  r  r  r  r  r  r  r=   )r   r  r   rD   r  r  rG   r   rR   r%  r   ru   )rH   then_tensor_protothen_optional_type_protothen_optional_vir  else_tensor_protoelse_optional_type_protoelse_optional_vir  rj   output_tensor_protooutput_optional_type_protooutput_optional_vis                r,   <test_if_with_different_optional_shapes_in_then_else_brancheszOTestShapeInference.test_if_with_different_optional_shapes_in_then_else_branchesr  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&8%9:rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdddgddg      gg       }| j	                  |t        dt        j                  d      g       y )	NxTr  xI	MaxUnpoolr   r9   r  r  r  r   r   s     r,   )test_maxunpool_shape_without_output_shapez<TestShapeInference.test_maxunpool_shape_without_output_shape  s      {((,7{((,7
 $s!QRSUVQW
 
 	*30A0A<PQ	
rb   c                L   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddd	d	gd	d	g
      gt	        dt        j                  d       g      }| j                  |t	        dt        j                  d       g       y )Nr  r  r  r  re  r  )r  r  r  r   r9   r  )rR   r   r   r   r   ru   r   s     r,   &test_maxunpool_shape_with_output_shapez9TestShapeInference.test_maxunpool_shape_with_output_shape  s      {((,7{((,7!2!2D9 0"#QF $C):):DAB
" 	*30A0A4HI	
rb   c                
   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	      gg       }| j                  |t        d	t        j                  d
      g       y )Nr  r  depthr;   valuesr   OneHotr  r  r  r   )r9   r9   NrR   r   rF   r   r   ru   r   r   s     r,   test_onehot_without_axisz+TestShapeInference.test_onehot_without_axis  s      K--v6+++R0;,,d3
 x!?EF
 	e&<S+BSBSUa&b%cdrb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	d
      gg       }| j                  |t        d	t        j                  d      g       y )Nr  r9   r   r0   r  r  r  r   r  r  r   r   r)  )r9   Nr   r0   r  r   s     r,   test_onehot_with_axisz(TestShapeInference.test_onehot_with_axis  s      K--y9+++T2;,,d3
 x!?1MN
 	e&<S+BSBSUd&e%fgrb   c                D   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	      gg t        dt        j                  dd
      g      }| j                  |t        d	t        j                  d      g       y )Nr  r  r  r;   r  r   r  r  r      r
  )r9   r9   r  rR   r   rF   r   r   r   ru   r   r   s     r,   test_onehot_without_axis_2z-TestShapeInference.test_onehot_without_axis_2  s      K--v6+++R0;,,d3
 x!?EF$Wk.?.?VLM ! 	
 	e&<S+BSBSU`&a%bcrb   c                H   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	d
      gg t        dt        j                  dd      g      }| j                  |t        d	t        j                  d      g       y )Nr  r  r  r  r  r   r  r  r   r   r)  r  r
  )r9   r  r   r0   r  r   s     r,   test_onehot_with_axis_2z*TestShapeInference.test_onehot_with_axis_2  s      K--y9+++T2;,,d3
 x!?1MN$Wk.?.?vNO ! 	
 	e&<S+BSBSUc&d%efrb   c           	     .   t        dt        j                  d      t        dt        j                  d       t        dt        j                  d      g}t        dt        j                  d       t        dt        j                  d       t        dt        j                  d	      g}t        j                  t        d
dgdg      t        d
dgdg      t        d
dgdg      gd||      }| j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  d	fgt        dg dddg|      gg       }| j                  |t        dt        j                  d       t        dt        j                  d      g       y )Niter_num_inr  cond_inru  r;   cond_outrv  r  r   r  outer_scope_inputrw  max_trip_count	cond_origrx  r   Loop)r  r  rx  r{  loop_outputr  Nr   
r   r   rF   rD   r   r   rG   r   rR   ru   rH   rM   r  rw  rj   s        r,   	test_loopzTestShapeInference.test_loop  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		
rb   c           	     P   t        dt        j                  d      t        dt        j                  d       g}t        dt        j                  d       t        dt        j                  d      g}t        j                  t        ddgdg      t        ddgdg      gd	||      }| j                  d
t        j                  dfdt        j                  dfdt        j                  dfgt        dd
dgdg|      gg       }| j                  |t        dt        j                  d      g       y )Nr  r  r  r  r  r   r  r  rw  r  r  r  r  r  r  r  r  s        r,   test_loop_no_statez%TestShapeInference.test_loop_no_stateE  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	
rb   c                \   | j                  g t        dg dgt        dt        j                  dd            t        ddgdgt        dt        j
                  d	d
            gg       }| j                  |t        dt        j                  d      t        dt        j
                  d      g       y )NrV  ry   r   r#  rW  ConstantOfShaper   rX  r  r   rR   r   r   r   rF   ri  ru   r   r   s     r,   %test_constantofshape_with_input_shapez8TestShapeInference.test_constantofshape_with_input_shapen  s      I%g{/@/@$	R	 %IE%g{/@/@$M	 !
$ 	&w0A0A4H&sK,=,=yI	
rb   c                    | j                  dt        j                  dfgt        ddgdgt	        dt        j
                  dd            gg       }| j                  |t        dt        j
                  d	      g       y )
Nry   r   r  r   rX  r  r   rW  r.  rR   r   rF   r   r   r   ru   r   r   s     r,   (test_constantofshape_without_input_shapez;TestShapeInference.test_constantofshape_without_input_shape  s      {(($/0%IE%g{/@/@$M	 
 	*30A0ACUVW	
rb   c                    | j                  dt        j                  dfgt        ddgdgt	        dt        j
                  dd            gg       }| j                  |t        dt        j
                  d	      g       y )
Nry   r  r  r   rX  r  r   rW  r;   r  r   s     r,   /test_constantofshape_without_input_shape_scalarzBTestShapeInference.test_constantofshape_without_input_shape_scalar  s      {(($/0%IE%g{/@/@$M	 
 	*30A0A2FG	
rb   c                \   | j                  g t        dg dgt        dt        j                  dd            t        ddgdgt        dt        j
                  dd	            gg       }| j                  |t        dt        j                  d      t        dt        j
                  d      g       y )
NrV  ry   r  r  rW  r  r   rX  r   r  r   s     r,   $test_constantofshape_with_shape_zeroz7TestShapeInference.test_constantofshape_with_shape_zero  s      I%g{/@/@$M	 %IE%g{/@/@$M	 !
$ 	&w0A0A4H&sK,=,=tD	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdg dg dg d	
      gg       }| j	                  |t        dt        j                  d      g       y )NrK   re  r   rf  ConvIntegerr   rh  rH  ri  rj  rk  rR   r   r   r   ru   r   ri  r   s     r,   test_convintegerz#TestShapeInference.test_convinteger  s      k''9k''9
 !#J+'%	 
" 	*30A0A?ST	
rb   c           
     6   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg d	d
g d      gg       }| j                  |t        d
t        j                  d      g       y )NrK   rq  r   rr  x_zero_pointr;   y_zero_pointr  rK   r   r  r  r   rs  r  rt  rR   r   r   INT8r   ru   r   ri  r   s     r,   test_convinetger_dilationsz-TestShapeInference.test_convinetger_dilations  s      k'')9:k&&(89!2!2B7!2!2B7	 !>'	 
" 	*30A0ACTUV	
rb   c           
     6   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg d	d
g d      gg       }| j                  |t        d
t        j                  d      g       y )NrK   rq  r   rr  r  r;   r  r  r   r   rs  r  rw  )rR   r   r  r   r   ru   r   ri  r   s     r,   test_convinteger_stridesz+TestShapeInference.test_convinteger_strides  s      k&&(89k&&(89!2!2B7!2!2B7	 !>%	 
" 	*30A0ACTUV	
rb   c           
         | j                  dt        j                  dfdt        j                  dfgt	        dddgdg d      gg       }| j                  |t        dt        j                  d	      g       y )
NrK   rz  r   rr  r  r   r{  r  r|  r  r   s     r,   test_convineteger_padsz)TestShapeInference.test_convineteger_pads  s}      k'')9:k&&(89 }sCj#<NOP
 	*30A0ACTUV	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   rq  r   r  r  r   r   r  r  )rR   r   r  r   ru   r   ri  r   s     r,   test_convineteger_groupz*TestShapeInference.test_convineteger_group  s{      k&&(89k&&8 }sCj#Q?@
 	*30A0ACSTU	
rb   c           
     6   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        dg d	d
g d      gg       }| j	                  |t        d
t        j                  d      g       y )NrK   r  r   rr  r  r;   r  r  r   r   r{  r  r  r  r   s     r,   'test_convineteger_partial_missing_shapez:TestShapeInference.test_convineteger_partial_missing_shape"  s      k'')<=k'')9:!2!2B7!2!2B7	 !>+	 
" 	e&<S+BSBSUi&j%klrb   c           
         | j                  dt        j                  dfdt        j                  dfgt        dddgdg d      gg       }| j	                  |t        dt        j                  d       g       y )	NrK   rz  r   r  r  r   r{  r  r  r   s     r,   .test_convineteger_partial_missing_weight_shapezATestShapeInference.test_convineteger_partial_missing_weight_shape6  s|      k'')9:k'')<= }sCj#<NOP
 	*30A0A4HI	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfd
t        j                  dfdt        j                  dfgt	        dg ddg dg dg d      gg       }| j                  |t        dt        j                  d      g       y )NrK   re  x_scaler;   r  r=  rf  w_scalew_zero_pointy_scaler  QLinearConvrK   r  r  r=  r  r  r  r  r   rh  rH  ri  rj  rk  rR   r   r   r   r   ru   r   r   s     r,   test_qlinearconvz#TestShapeInference.test_qlinearconvC  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	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfd
t        j                  dfdt        j                  dfgt	        dg ddg d      gg       }| j                  |t        dt        j                  d      g       y )NrK   rq  r  r;   r  r=  rr  r  r  r  r  r  r  r   rs  r  rt  r  r   s     r,   test_qlinearconv_dilationsz-TestShapeInference.test_qlinearconv_dilationsh  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	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfd
t        j                  dfdt        j                  dfgt	        dg ddg d      gg       }| j                  |t        dt        j                  d      g       y )NrK   rq  r  r;   r  r=  rr  r  r  r  r  r  r  r   rs  r  rw  rR   r   r  r   r   ru   r   r   s     r,   test_qlinearconv_stridesz+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	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfd
t        j                  dfdt        j                  dfgt        dg ddg d      gg       }| j                  |t        dt        j                  d      g       y )NrK   rz  r  r;   r  r=  rr  r  r  r  r  r  r  r   r{  r  r|  )rR   r   r   r   r  r   ru   r   r   s     r,   test_qlinearconv_padsz(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	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfd
t        j                  dfdt        j                  dfgt	        dg ddd      gg       }| j                  |t        dt        j                  d      g       y )NrK   rq  r  r;   r  r=  r  r  r  r  r  r  r  r   r   r  r  r  r   s     r,   test_qlinearconv_groupz)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	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfd
t        j                  dfdt        j                  dfgt	        dg ddg d      gg       }| j                  |t        dt        j                  d      g       y )NrK   r  r  r;   r  r=  rr  r  r  r  r  r  r  r   r{  r  r  r  r   s     r,   &test_qlinearconv_partial_missing_shapez9TestShapeInference.test_qlinearconv_partial_missing_shape  s      k'')<=K--r2!2!2B7k'')9:K--r2!2!2B7K--r2!2!2B7	 !	 +" 9
< 	e&<S+BSBSUi&j%klrb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfd
t        j                  dfdt        j                  dfgt	        dg ddg d      gg       }| j                  |t        dt        j                  d       g       y )NrK   rz  r  r;   r  r=  r  r  r  r  r  r  r  r   r{  r  r  r   s     r,   -test_qlinearconv_partial_missing_weight_shapez@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	
rb   c                   t        j                  t        j                  t        j                  |            j	                  |      t        j                  t        j                  |            j	                  |            j
                  }| j                  dt        j                  |fdt        j                  dfdt        j                  dfdt        j                  |fdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfgt        d
g ddg      gg       }| j                  |t        dt        j                  |      g       y Nr   a_scaler;   a_zero_pointr   b_scaleb_zero_pointr  r  QLinearMatMul)r   r&  r'  r   r(  r)  r  r  r   )r   r   r   r   r   ry   rR   r   r   r   r   ru   r   rH   r   r   r   rj   s        r,   _make_qlinearmatmul_testz+TestShapeInference._make_qlinearmatmul_test8  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	
rb   c                    | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       y )	Nr   r   r   r   r   r   r   r   )r,  r  s    r,   test_qlinearmatmulz%TestShapeInference.test_qlinearmatmul`  b    %%dD1%%ff5%%dF3%%fd3%%lLA%%fi8rb   c                   | j                  dt        j                  |fdt        j                  dfdt        j                  dfdt        j                  |fdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfgt	        d
g ddg      gg       }| j                  |t        dt        j                  |      g       y r%  r  r+  s        r,   &_make_qlinearmatmul_test_allow_unknownz9TestShapeInference._make_qlinearmatmul_test_allow_unknownh  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	
rb   c                   | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  d	dd       | j                  d	d
d       | j                  ddd       | j                  ddd       | j                  d dd        | j                  d d d        y r   )r1  r  s    r,    test_qlinearmatmul_allow_unknownz3TestShapeInference.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$Erb   c                D   t        j                  t        j                  t        j                  |            j	                  |      t        j                  t        j                  |            j	                  |            j
                  }| j                  dt        j                  |fdt        j                  |fdt        j                  dfdt        j                  dfgt        dg ddg      gg       }| j                  |t        dt        j                  |      g       y )	NArk  r'  r;   r)  MatMulInteger)r5  rk  r'  r)  r   )r   r   r   r   r   ry   rR   r   r   r   ru   r   ri  r+  s        r,   _make_matmulinteger_testz+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	
rb   c                    | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       y )Nr   r   r   r   r   r   r   )r7  r  s    r,   test_matmulintegerz%TestShapeInference.test_matmulinteger  r/  rb   c                    | j                  d|dfd|dfdt        j                  dfgt        dg ddg      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r   r  r;   r  QuantizeLinearrK   r  r  r   rR   r   r   r   ru   r   rH   rx   rj   s      r,   test_quantizelinearz&TestShapeInference.test_quantizelinear  s}       i,Ir*!2!2B7
 ')IC5QR
 	*30A0A:NO	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   r  r;   r;  r   rR   r   r   r   ru   r   r   r   s     r,   test_quantizelinear_default_zpz1TestShapeInference.test_quantizelinear_default_zp  sw      ;$$j1I{?P?PRT3UV'#y)9C5AB

 	*30A0A:NO	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dg ddg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   r  r;   r;  )rK   r  r  r   rA  r   s     r,   "test_quantizelinear_optional_inputz5TestShapeInference.test_quantizelinear_optional_input  ss      ;$$j1I{?P?PRT3UV')=uEF

 	*30A0A:NO	
rb   c           	        | j                  dt        j                  dfdt        j                  dfgt        dddgdgt        j                        gg       }| j                  |t        dt        j                  d      g       y NrK   r#  r  r;   r;  r   output_dtype)rR   r   r   r   UINT4ru   r   r   s     r,    test_quantizelinear_output_dtypez3TestShapeInference.test_quantizelinear_output_dtype  s      ;$$i09k>O>OQS2TU$)$E!,!2!2	 
 	*30A0A9MN	
rb   c           	     ,   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddgt        j                  	      gg       }| j                  |t        dt        j                  d      g       y 
NrK   r#  r  r;   r  r;  r<  r   rG  )rR   r   r   UINT16r   ru   r   r   s     r,   #test_quantizelinear_zp_output_dtypez6TestShapeInference.test_quantizelinear_zp_output_dtype  s      k''3K--r2!3!3R8 $4E!,!3!3	 
  	*30B0BINO	
rb   c           	     >   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddgt        j
                  	      gg       }| j                  t        j                  j                  | j                  |       y rL  )rR   r   r   rM  r   INT4r   rY   rZ   r   ra   r   s     r,   .test_quantizelinear_zp_output_dtype_conflictedzATestShapeInference.test_quantizelinear_zp_output_dtype_conflicted  s      k''3K--r2!3!3R8 $4E!,!1!1	 
" 	  //NN	
rb   c           	        | j                  dt        j                  dfdt        j                  dfgt        dddgdgt        j                        gg       }| j                  t        j                  j                  | j                  |       y rF  )
rR   r   r   r   r   r   rY   rZ   r   ra   r   s     r,   (test_quantizelinear_invalid_output_dtypez;TestShapeInference.test_quantizelinear_invalid_output_dtype  s       ;$$i09k>O>OQS2TU$)$E!,!4!4	 
 	  //NN	
rb   c                    | j                  dt        j                  dfd|dfdt        j                  dfgt        dg ddg      gg       }| j	                  |t        d|d      g       y )	NrK   r   r  r;   r  DequantizeLinear)rK   r  r  r   r=  r>  s      r,   test_dequantizelinearz(TestShapeInference.test_dequantizelinear5  s}       k''4Ir*!2!2B7
 )+KcUST
 	*3	:FG	
rb   c           
     ,   | j                  dt        j                  dfgt        ddgg d      gg       }| j	                  |t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      g       y )	NrK   r   DynamicQuantizeLinear)r   r  r  r   r  r;   r  rA  r   s     r,   test_dynamicquantizelinearz-TestShapeInference.test_dynamicquantizelinearF  s      ;$$j12+cU4T
 
 	&sK,=,=zJ&y+2C2CRH&~{7H7H"M	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg       }| j                  |t        dt        j                  d      g       y )NrK   r  sequence_lensr  ReverseSequencer   r=  r   s     r,   test_reversesequencez'TestShapeInference.test_reversesequenceY  s{      k''3 +"3"3T: (3*@3%HI
 	*30A0A9MN	
rb   c                `   | j                  dt        j                  dfgt        ddgg d      gg       }| j	                  |t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      t        d	t        j                  d      g       y )
Nr   r9   r   r9   Uniquer   r  inverse_indicescountsr   r=   r  rb  rc  r  r   s     r,   test_unique_without_axisz+TestShapeInference.test_unique_without_axisf  s      ;$$i01x#(UVW

 	&sK,=,=wG&y+2C2CWM&'8+:K:KWU&x1B1BGL		
rb   c                d   | j                  dt        j                  dfgt        ddgg dd      gg       }| j	                  |t        dt        j                  d      t        d	t        j                  d
      t        dt        j                  d
      t        dt        j                  d
      g       y )Nr   r_  r`  ra  r   r)  r   )r9   Nr9   r  r=   rb  rc  r  r   s     r,   test_unique_with_axisz(TestShapeInference.test_unique_with_axisv  s      ;$$i01EA	 
 	&sK,=,=|L&y+2C2CWM&'8+:K:KWU&x1B1BGL		
rb   c                   | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )Nr   r  Detr   r;   )r   r0   r  r(  r(  r  r   r   s     r,   test_detzTestShapeInference.test_det  s      ;$$f-.53%#1O0PRT
 	*30A0A2FG	
   ;$$o67usecU+,

 	*30A0A9MN	
rb   c                "   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      g       y )
NrK   r  repeatsr   Tiler   rs  r
  r   r!  r  r/  r   s     r,   	test_tilezTestShapeInference.test_tile  s      ;$$i09k>O>OQU2VWvY/#78$Y0A0A4ST	 ! 
 	*30A0A;OP	
rb   c                p   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dt        j                  g dd	      j                         d
      g      }| j                  |t        dt        j                  d      g       y )NrK   r  rk  r   rl  r   rs  r  rx  Trz  r
  rm  r@  r   s     r,   test_tile_raw_input_dataz+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	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg       }| j                  |t        dt        j                  d      g       y )NrK   r  rk  r   rl  r   r.  r=  r   s     r,   test_tile_rank_inferencez+TestShapeInference.test_tile_rank_inference  st      ;$$i09k>O>OQU2VWvY/#78

 	e&<S+BSBSUg&h%ijrb   z-ONNX_ML required to test ai.onnx.ml operatorsc                V   | j                  dt        j                  dfgt        ddgddgt        ddgddgd	d
g      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      gt        t        d	      t        t        d      g       y )NrK   r  LinearClassifierr   r   g-C6J?g-C6Jru  r   r9   r(   coefficients
interceptsclasslabels_intsr  r   r  r   
rR   r   r   r   r   ru   r   rF   r   r   r   s     r,   test_linearclassifier_1D_inputz1TestShapeInference.test_linearclassifier_1D_input  s      ;$$d+,&E#J)"('!2 #Sz&'V
 
 	&sK,=,=tD&sK,=,=vF
 ^Q/["- 	 
	
rb   c                V   | j                  dt        j                  dfgt        ddgddgt        g dg dg d	      gg       }| j                  |t        dt        j                  d
      t        dt        j                  d      gt        t        d      t        t        d      g       y )NrK   r  rt  r   r   )皙?皙?g333333?皙?r  g333333?)ru  ru  g      @rs  ru  re  r  r   r  r   ry  r   s     r,   test_linearclassifier_2D_inputz1TestShapeInference.test_linearclassifier_2D_input  s      ;$$f-.&E#J)!?.%.
 
 	&sK,=,=tD&sK,=,=vF
 ^Q/["- 	 
	
rb   c           
        | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	gd
d      gg       }| j                  |t        d	t        j                  d      g       y )NrK   r   CHrU  r>  num_roisr   batch_indicesr  RoiAlignrK   r>  r  r   r!  r0   )output_heightoutput_width)r  r  r!  r0   r=  r   s     r,   test_roialign_symbolicz)TestShapeInference.test_roialign_symbolic  s      k'')=>**O< +"3"3]C 2E"$!" 
" 	e&<S+BSBSUm&n%oprb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	g      gg       }| j                  |t        d	t        j                  d
      g       y )NrK   r  r>  r  r  r  r  r  r   )r  r  r   r   r=  r   s     r,   test_roialign_symbolic_defaultsz2TestShapeInference.test_roialign_symbolic_defaults  s      k'')=>**O< +"3"3]C
 z#AC5IJ
 	e&<S+BSBSUl&m%norb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	g      gg       }| j                  |t        d	t        j                  d
      g       y )NrK   r  r>  r  r  )r  r  r  r   )r  r  r   r   r=  r   s     r,   test_roialign_num_roisz)TestShapeInference.test_roialign_num_rois  s      k'')=>**O< +"3"3U;
 z#AC5IJ
 	e&<S+BSBSUd&e%fgrb   LabelEncoderT)skip_on_emptyc                   | j                  |dk  d       g d}g d}g d}| j                  dt        j                  dfgt	        ddgd	gt
        ||
      gg       }| j                  |t        d	t        j                  d      gt        t
        |      t        t        d      g       | j                  dt        j                  dfgt	        ddgd	gt
        ||      gg       }| j                  |t        d	t        j                  d      gt        t
        |      t        t        d      g       | j                  dt        j                  dfgt	        ddgd	gt
        ||      gg       }| j                  |t        d	t        j                  d      gt        t
        |      t        t        d      g       | j                  dt        j                  dfgt	        ddgd	gt
        ||      gg       }| j                  |t        d	t        j                  d      gt        t
        |      t        t        d      g       | j                  dt        j                  dfgt	        ddgd	gt
        ||      gg       }| j                  |t        d	t        j                  d      gt        t
        |      t        t        d      g       | j                  dt        j                  dfgt	        ddgd	gt
        ||      gg       }| j                  |t        d	t        j                  d      gt        t
        |      t        t        d      g       y )Nr9   z7keys_* attributes were introduced in ai.onnx.ml opset 2)r5  mr   )g{GW@g      B@g     X)r"     V   rK   r  r   r  r   )r(   keys_stringsvalues_int64sr  r   r   )r(   keys_int64svalues_stringsr   )r(   keys_floatsr  r  )r(   r  values_floatsr;   )r(   r  r  r   )r(   r  r  )r   rR   r   r   r   r   ru   r   rF   r   r   r   )rH   r   r+   string_list
float_list
int64_listrj   s          r,   test_label_encoder_string_int64z2TestShapeInference.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["- 	 	
rb   c                   | j                  |dk  d       t        dt        j                  dgg d      }t        dt        j                  dgg d      }| j                  dt        j                  dfgt        d	dgd
gt        ||t        dt        j                  dgdg            gg       }| j                  |t        d
t        j                  d      gt        t        |      t        t        d      g       y )Nr   z7tensor attributes were introduced in ai.onnx.ml opset 4keys_tensorr   r   ccdddvalues_tensorr   r9   r   r   rK   r@  Nr   r"  r  r   default_tensorr   r   r(   r  r  r  r  r   )r   r   r   r   rF   rR   r   r   ru   r   r   r   )rH   r   r+   
key_tensorr  rj   s         r,   $test_label_encoder_tensor_attributesz7TestShapeInference.test_label_encoder_tensor_attributes  s    	aKR	
 !;--s4K

 $[..\
   ;%%'9:;"EE) *"/#.(+*;*;aS1#$
 
" 	#C):):<NOP^W5["- 	 	
rb   c                .   | j                  |dk  d       t        dt        j                  dgg d      }t        dt        j                  dgg d      }t        t        |      t        t        d      g}| j                  dt        j                  d	fgt        d
dgdgt        ||t        dt        j                  dgdg            gg       }| j                  t        j                  j                  | j                  ||       | j                  dt        j                  d	fgt        d
dgdgt        |g dt        dt        j                  ddgddg            gg       }| j                  t        j                  j                  | j                  ||       y )Nr   z2tensor attributes introduced in ai.onnx.ml opset 4r  r  r  r  r  rK   r  r  r   r  r   r   r  r   r9   )r(   r  r  r  )r   r   r   r   rF   r   r   r   rR   r   r   rY   rZ   r   ra   )rH   r   r+   r  r  r   rj   s          r,   ;test_label_encoder_tensor_attributes_invalid_configurationszNTestShapeInference.test_label_encoder_tensor_attributes_invalid_configurations  s    	GaK!UV ;--s4K

 $[..\

 1b)
   ;%%'9:;"EE) *"/#.(+*<*<qcA3$
 
$ 	  //NN'	 	 	
   ;%%'9:;"EE) *#:#.(+*<*<q!fq!f$
 
$ 	  //NN'	 	 	
rb   c                d   t               }|j                  j                  |       t        |      }|j                  j                  t        j                  dt        j                  |f|             |j                  j                  t        j                  dt        j                  ||             |S )Nspvalspind)r   dimsextendrl   r  CopyFromr   r   r   rF   r  )rH   ry   r  indices_shaper  sparsennzs          r,   make_sparsezTestShapeInference.make_sparse,  s     #$5!&kw(9(9C66J	
 	w(9(9='R	
 rb   c           	         dg}| j                  |g ddgg d      }| j                  g t        dg dg|      gg       }| j                  |t	        dt
        j                  |      g       y )Nr-  )r~  r     r   )r     Q   rV  r   )sparse_value)r  rR   r   ru   r   r   rF   )rH   y_shapey_valuerj   s       r,   test_constant_sparsez'TestShapeInference.test_constant_sparse>  sn    %""7L1#{K  :rC5wGH"
 	e&<S+BSBSU\&]%^_rb   c           	         | j                  g t        dg dgd      gg       }| j                  |t        dt        j
                  g       g       y )NrV  r   *   )	value_int)rR   r   ru   r   r   rF   r   s     r,   test_constant_value_intz*TestShapeInference.test_constant_value_intF  sQ      :rC5B?@"
 	*30A0A2FG	
rb   c           
         g d}| j                  g t        dg dg|      gg       }| j                  |t        dt        j
                  t        |      g      g       y )Nrs  rV  r   )
value_ints)rR   r   ru   r   r   rF   rl   )rH   r  rj   s      r,   test_constant_value_intsz+TestShapeInference.test_constant_value_intsN  s]    
  :rC5ZHI2
 	*30A0AC
OCTUV	
rb   c           	         | j                  g t        dg dgd      gg       }| j                  |t        dt        j
                  g       g       y )NrV  r   gQ?)value_float)rR   r   ru   r   r   r   r   s     r,   test_constant_value_floatz,TestShapeInference.test_constant_value_floatW  sQ      :rC5dCDb
 	*30A0A2FG	
rb   c           
         g d}| j                  g t        dg dg|      gg       }| j                  |t        dt        j
                  t        |      g      g       y )N)r^  r_  g333333?rV  r   )value_floats)rR   r   ru   r   r   r   rl   )rH   r  rj   s      r,   test_constant_value_floatsz-TestShapeInference.test_constant_value_floats_  s^    &  :rC5|LMr
 	*30A0ACDUCVWX	
rb   c           	         | j                  g t        dg dgd      gg       }| j                  |t        dt        j
                  g       g       y )NrV  r   zString value)value_string)rR   r   ru   r   r   r   r   s     r,   test_constant_value_stringz-TestShapeInference.test_constant_value_stringh  sR      :rC5~NOQS
 	*30B0BBGH	
rb   c           
         g d}| j                  g t        dg dg|      gg       }| j                  |t        dt        j
                  t        |      g      g       y )N)onr  rK   rV  r   )value_strings)rR   r   ru   r   r   r   rl   )rH   r  rj   s      r,   test_constant_value_stringsz.TestShapeInference.test_constant_value_stringsp  s_    ,  :rC5NOQS
 	#C););c->P=QRS	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      gg t	        dt        j                  dd      t	        dt        j                  dd	      t	        dt        j                  dd
      g      }| j                  |t        dt        j                  d
      g       y )Nr  r;   limitdeltaRanger  r  r  r  r  r  r   r
  )rR   r   r   r   r   ru   r   r   s     r,   
test_rangezTestShapeInference.test_rangez  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	
rb   c                |   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      gg t	        dt        j                  dd      t	        dt        j                  dd	      g
      }| j                  |t        dt        j                  d      g       y )Nr  r;   r  r  r  r  r  r  r  r
  r=   )rR   r   ri  r   r   ru   r   r   s     r,   test_range_rank_inferencez,TestShapeInference.test_range_rank_inference  s      +++R0+++R0+++R0
 w ;hZHIG[%6%6DAG[%6%6DA ! 
 	e&<X{GXGXZa&b%cdrb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg       }| j                  |t        dt        j                  d      g       y )NrK   r  r  r   GatherNDr   r  r=  r   s     r,   test_gatherndz TestShapeInference.test_gathernd  sv      ;$$i09k>O>OQU2VWzC#3cU;<

 	*30A0A4HI	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt	        dddgdgd      gg       }| j                  |t        dt        j                  d	      g       y )
NrK   r3  r  r   r  r   r   )
batch_dimsr  r=  r   s     r,   test_gathernd_batchdim_1z+TestShapeInference.test_gathernd_batchdim_1  s|      k''3K--v6 zC#3cUqIJ
 	*30A0A6JK	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   r*  r  CumSumr   r   r   s     r,   test_cumsumzTestShapeInference.test_cumsum  sr      ;$$f-8I8I4/PQx#v45

 	*30A0A6JK	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdg      gg       }| j	                  |t        dt        j                  d      g       y )Nboxesr   r   r   scores)r   r0   r   NonMaxSuppressionr   r  r  r   s     r,   test_nonmaxsuppressionz)TestShapeInference.test_nonmaxsuppression  sy      +++Y7;,,i8 *Wh,?#GH
 	e&<S+BSBSU^&_%`arb   c                    | j                  g t        dg dg      gg       }| j                  |t        dt        j
                  d       g       y )NSequenceEmptyr  )rR   r   ru   r   r   r   r   s     r,   test_sequence_emptyz&TestShapeInference.test_sequence_empty  sJ      ihZ&P%QSUVe&EhP[PaPacg&h%ijrb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      gg       }| j	                  |t        dt        j                  d      g       y )Nr  r   r  r  r  r  r  r  r   s     r,   test_sequence_constructz*TestShapeInference.test_sequence_construct  s      ;,,i8;,,i8;,,i8 '2&' 
 	/%{'8'8)	
rb   c                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )Nr  r   r  r  r  r   s     r,   !test_sequence_construct_one_inputz4TestShapeInference.test_sequence_construct_one_input  sk      ))956*XJ9J8KLM

 	/%{'8'8)	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      gg       }| j	                  |t        dt        j                  d       g       y )	Nr  r   r  r   r  r  r  r  r  r   s     r,   !test_sequence_construct_diff_rankz4TestShapeInference.test_sequence_construct_diff_rank  s      ;,,i8;,,f5;,,f5 '2&' 
 	/%{'8'8$	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg dd	g      gg       }| j	                  |t        d	t        j                  d
      g       y )Nr  r   r  r  r  r  r  r  r  r9   r   Nr  r   s     r,   %test_sequence_construct_diff_dim_sizez8TestShapeInference.test_sequence_construct_diff_dim_size  s      ;,,i8;,,i8;,,i8 '2&' 
 	/%{'8'8,	
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      t        d	ddgd
g      gg       }| j	                  |t        dt        j                  d      t        d
t        j                  d      g       y )Nr  r   r  r  input4r  r  r  SequenceInsertr  r  r   s     r,   test_sequence_insertz'TestShapeInference.test_sequence_insert'  s      ;,,i8;,,i8;,,i8;,,i8	 ')G- $}h&?BSAT	 
" 	/!;#4#4i 0%{'8'8)	
	
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        dg dd	g      t        d
d	dgdg      gg       }| j	                  |t        d	t        j                  d      t        dt        j                  d       g       y )Nr  r   r  r  r  r   r  r  r  r  r  r  r   s     r,   test_sequence_insert_diff_rankz1TestShapeInference.test_sequence_insert_diff_rankE  s      ;,,i8;,,i8;,,i8;,,f5	 ')G- $}h&?BSAT	 
" 	/!;#4#4i 0%{'8'8$	
	
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        dg d	d
g      t        dd
dgdg      gg       }| j	                  |t        d
t        j                  d      t        dt        j                  d      g       y )Nr  r   r  r  r  r  r9   r0   r9   r  r  r  r  r  r  r9   NNr  r   s     r,   test_sequence_insert_diff_shapez2TestShapeInference.test_sequence_insert_diff_shapec  s      ;,,i8;,,i8;,,i8;,,i8	 ')G- $}h&?BSAT	 
" 	/{?P?PR^_/%{'8'8/	
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	g      t	        d
d	dgdg      gg       }| j                  |t        d	t        j                  d      t        dt        j                  d      g       y )Nr  r   r  r  indr;   r  r  r  
SequenceAtr  rR   r   r   rF   r   ru   r   r   r   s     r,   test_sequence_atz#TestShapeInference.test_sequence_at  s      ;,,i8;,,i8;,,i8))2.	 ')G- ,(>
K	 
 	/!;#4#4i 'x1B1BIN		
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg d	d
g      t	        dd
dgdg      gg       }| j                  |t        d
t        j                  d       t        dt        j                  d       g       y )Nr  r   r  r   r  r  r;   r  r  r  r  r  r  r   s     r,   test_sequence_at_unknown_shapez1TestShapeInference.test_sequence_at_unknown_shape  s      ;,,i8;,,f5;,,i8))2.	 ')G- ,(>
K	 
 	/{?P?PRVW&x1B1BDI	
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg d	d
g      t	        dd
dgdg      gg       }| j                  |t        d
t        j                  d      t        dt        j                  d      g       y )Nr  r   r  r  r  r  r;   r  r  r  r  r  r  r  r   s     r,   !test_sequence_at_unknown_dim_sizez4TestShapeInference.test_sequence_at_unknown_dim_size  s      ;,,i8;,,i8;,,i8))2.	 ')G- ,(>
K	 
 	/{?P?PR^_&x1B1BLQ	
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg dd	g      t	        d
d	dgdg      gg       }| j                  |t        d	t        j                  d      t        dt        j                  d      g       y )Nr  r   r  r  r  r;   r  r  r  SequenceEraser  rR   r   r   rF   r   ru   r   r   s     r,   test_sequence_erasez&TestShapeInference.test_sequence_erase  s      ;,,i8;,,i8;,,i8))2.	 ')G- /M5+ADUCVW	 
 	/!;#4#4i 0%{'8'8)	
	
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg d	d
g      t	        dd
dgdg      gg       }| j                  |t        d
t        j                  d      t        dt        j                  d      g       y )Nr  r9   r   rK   r  r  )r9   r0   rK   r  r;   r  r  r  r  r  r9   NrK   r  r   s     r,   !test_sequence_erase_diff_dim_sizez4TestShapeInference.test_sequence_erase_diff_dim_size  s      ;,,k:;,,k:;,,k:))2.	 ')G- /M5+ADUCVW	 
 	/{?P?PR`a/%{'8'8.	
rb   c           	     \   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      t        ddgd	g      gg       }| j	                  |t        dt        j                  d      t        d	t        j                  d
      g       y )Nr  r  r  r  r  r  r  SequenceLengthrl   r;   )rR   r   r   r   ru   r   r   rF   r   s     r,   test_sequence_lengthz'TestShapeInference.test_sequence_length  s      ;,,k:;,,k:;,,k: ')G- *]OeWE	 
 	/!;#4#4k 'uk.?.?D		
rb   c                "   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      g       y )
Nr  r  r   r  r   SplitToSequencer  r  r
  r  rR   r   r   ri  r   r   ru   r   r   s     r,   test_split_to_sequencez)TestShapeInference.test_split_to_sequence  s      {((&1G[=N=NPT3UV(7G*<?P>QRS$Wk.?.?vNO	 ! 
 	/%{'8'8&	
rb   c                "   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      g       y )
Nr  r  r  r;   r  r  r   r
  r   r  r   s     r,   test_split_to_sequence_scalarz0TestShapeInference.test_split_to_sequence_scalar(  s      {((&1G[=N=NPR3ST(7G*<?P>QRS$Wk.?.?TJK	 ! 
 	/%{'8'8&	
rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )Nr  r  r  r  r   r  r]  r  r   s     r,   test_split_to_sequence_keepdimsz2TestShapeInference.test_split_to_sequence_keepdims8  sn      {((&12(7)6G5HSTUV

 	/%{'8'8&	
rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )Nr  r  r  r  r   r  re  r  r   s     r,   #test_split_to_sequence_not_keepdimsz6TestShapeInference.test_split_to_sequence_not_keepdimsG  sn      {((&12(7)6G5HSTUV

 	/%{'8'8$	
rb   c                &   | j                  dt        j                  dfdt        j                  dfgt	        dddgdgd      gg t        dt        j                  dd	      g
      }| j                  |t        dt        j                  d      g       y )Nr  r  r  r   r  r  r   r  r  r
  r  r  r   s     r,   &test_split_to_sequence_ignore_keepdimsz9TestShapeInference.test_split_to_sequence_ignore_keepdimsV  s      {((&1G[=N=NPT3UV%g&&'	 $Wk.?.?vNO ! 
 	/%{'8'8&	
rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )Nr  r  r  r  r   r)  r  r  r   s     r,   test_split_to_sequence_axisz.TestShapeInference.test_split_to_sequence_axism  sm      {((&12(7)6G5HqQR

 	/%{'8'8&	
rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )Nr  r  r  r  rZ  r)  r]  r  r   s     r,   test_split_to_sequence_neg_axisz2TestShapeInference.test_split_to_sequence_neg_axis|  sm      {((&12(7)6G5HrRS

 	/%{'8'8&	
rb   c                "   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      g       y )
Nr  r  r  r   r  r  r  r
  Nr   r  r   s     r,   "test_split_to_sequence_split_sizesz5TestShapeInference.test_split_to_sequence_split_sizes  s      {((&1G[=N=NPT3UV(7G*<?P>QRS$Wk.?.?yQR	 ! 
 	/%{'8'8)	
rb   c                "   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      g       y )
Nr  r  r  r;   r  r  re  r
  r+  r  r   s     r,   $test_split_to_sequence_non_divisiblez7TestShapeInference.test_split_to_sequence_non_divisible  s      {((&1G[=N=NPR3ST(7G*<?P>QRS$Wk.?.?TJK	 ! 
 	/%{'8'8)	
rb   c           
     `   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      t        ddgd	gd
      gg       }| j	                  |t        dt        j                  d      t        d	t        j                  d      g       y )Nr  r  r  r  r  r  r  ConcatFromSequencer0  r   r)  )Nr   rK   rR   r   r   r   ru   r   r   r   s     r,   test_concat_from_sequencez,TestShapeInference.test_concat_from_sequence  s      ;,,k:;,,k:;,,k: ')G- .%qQ	 
 	/!;#4#4k 'uk.?.?P		
rb   c           
     `   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      t        d	dgd
gd      gg       }| j	                  |t        dt        j                  d       t        d
t        j                  d       g       y )Nr  r  r  r   r  r  r  r  r0  r0  r   r)  r1  r   s     r,   'test_concat_from_sequence_unknown_shapez:TestShapeInference.test_concat_from_sequence_unknown_shape  s      ;,,k:;,,f5;,,k: ')G- .%qQ	 
 	/{?P?PRVW&uk.?.?F	
rb   c           
     `   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      t        d	dgd
gd      gg       }| j	                  |t        dt        j                  d      t        d
t        j                  d      g       y )Nr  r  r  r9   r   rK   r  r  r  r  r0  r0  r   r)  r  NNrK   r1  r   s     r,   *test_concat_from_sequence_unknown_dim_sizez=TestShapeInference.test_concat_from_sequence_unknown_dim_size  s      ;,,k:;,,k:;,,k: ')G- .%qQ	 
 	/{?P?PR`a&uk.?.?ARS	
rb   c           
     `   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      t        d	dgd
gd      gg       }| j	                  |t        dt        j                  d      t        d
t        j                  d      g       y )Nr  r  r  r6  r  r  r  r  r0  r0  r9   r)  r  r  r1  r   s     r,   test_concat_from_sequence_axisz1TestShapeInference.test_concat_from_sequence_axis  s      ;,,k:;,,k:;,,k: ')G- .%qQ	 
 	/{?P?PR`a&uk.?.?Q	
rb   c           
     `   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      t        d	dgd
gd      gg       }| j	                  |t        dt        j                  d      t        d
t        j                  d      g       y )Nr  r  r  r6  r  r  r  r  r0  r0  r)  r  r7  r1  r   s     r,   "test_concat_from_sequence_neg_axisz5TestShapeInference.test_concat_from_sequence_neg_axis	  s      ;,,k:;,,k:;,,k: ')G- .%rR	 
 	/{?P?PR`a&uk.?.?ARS	
rb   c                b   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      t        ddgd	gd
d      gg       }| j	                  |t        dt        j                  d      t        d	t        j                  d      g       y )Nr  r  r  r  r  r  r  r0  r0  r9   r   r*  new_axis)r9   r   NrK   r1  r   s     r,   "test_concat_from_sequence_new_axisz5TestShapeInference.test_concat_from_sequence_new_axis   s      ;,,k:;,,k:;,,k: ')G- (=/E7UV	 
  	/!;#4#4k 'uk.?.?ARS		
rb   c                b   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dg ddg      t        ddgd	gd
d      gg       }| j	                  |t        dt        j                  d      t        d	t        j                  d      g       y )Nr  r  r  r  r  r  r  r0  r0  r!   r   r?  )r9   r   rK   Nr1  r   s     r,   &test_concat_from_sequence_neg_new_axisz9TestShapeInference.test_concat_from_sequence_neg_new_axis;  s      ;,,k:;,,k:;,,k: ')G- (=/E7VW	 
  	/!;#4#4k 'uk.?.?ARS		
rb   c           	        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg d	d
dgt
              gg       }| j                  |t        d
t        j                  d      t        dt        j                  d      gt        j                  t        d      t        j                  t
        d      g       y )NRr;   Tr   r   Gr  Adagrad)rE  rF  r   rG  r  X_newH_newr(   r"  r   r   rR   r   r   rF   r   r   ru   r   r   r   r   r   s     r,   test_adagradzTestShapeInference.test_adagradV  s      k'',k'',k''0k''0k''0 -g&:	 !
& 	&w0A0A6J&w0A0A6J
 ##K4##$CQG 	 
	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfd
t        j                  dfdt        j                  dfgt	        dg dg dt
              gg       }| j                  |t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      gt        j                  t        d      t        j                  t
        d      g       y )NrE  r;   rF  X1r   X2r  G1G2H1H2rH  )rE  rF  rO  rP  rQ  rR  rS  rT  )X1_newX2_newH1_newH2_newrK  rU  rV  rW  rX  r"  r   r   rL  r   s     r,   test_adagrad_multiplez(TestShapeInference.test_adagrad_multiplev  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 	 	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg d	d
dgddddt
              gg       }| j                  |t        d
t        j                  d      t        dt        j                  d      gt        j                  t        d      t        j                  t
        d      g       y )NrE  r;   rF  r   r   rG  VMomentum)rE  rF  r   rG  r[  rI  V_new?r^  {Gz?standardr  r  norm_coefficientr:  r(   r"  r   r   rL  r   s     r,   test_momentumz TestShapeInference.test_momentum  s     k'',k'',k''0k''0k''0 -g&%)#:	 )
, 	&w0A0A6J&w0A0A6J
 ##K4##$CQG 	 
	
rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfd
t        j                  dfdt        j                  dfgt	        dg dg dddddt
              gg       }| j                  |t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      gt        j                  t        d      t        j                  t
        d      g       y )NrE  r;   rF  rO  r   rP  r  rQ  rR  V1V2r\  )rE  rF  rO  rP  rQ  rR  re  rf  )rU  rV  V1_newV2_newr^  r^  r_  nesterovra  rU  rV  rg  rh  r"  r   r   rL  r   s     r,   test_momentum_multiplez)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 	 	
rb   c                8   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        d	g d
g dt
        ddd      gg       }t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      g}| j                  ||t        t
        d      t        t        d      g       y )NrE  r;   rF  r   r   rG  r[  r  Adam)rE  rF  r   rG  r[  r  )rI  r]  rJ  r^  r^  r_  r(   r  r  rb  rI  r]  rJ  r   r"  r   
rR   r   r   rF   r   r   r   ru   r   r   rH   rj   infoss      r,   	test_adamz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@["- 	 	
rb   c                d   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfd	t        j                  dfd
t        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfg
t	        dg dg dt
        ddd      gg       }t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      g}| j                  ||t        t
        d      t        t        d      g       y )NrE  r;   rF  rO  r   rP  r  rQ  rR  re  rf  rS  rT  rl  )
rE  rF  rO  rP  rQ  rR  re  rf  rS  rT  )rU  rV  rg  rh  rW  rX  r^  r^  r_  rm  rU  rV  rg  rh  rW  rX  r   r"  r   rn  ro  s      r,   test_adam_multiplez%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@["- 	 	
rb   c           
         | j                  dt        j                  dfgt        dddg d      gg       }| j	                  |t        dt        j                  d      gt        j                  t        d      g	       y )
NrK   r   Nr9   Padr   r   r   r   r   r   r   r  r   Nr   r!  r   r   r   s     r,   test_pad_opset10z#TestShapeInference.test_pad_opset10<  sz      ;$$l34uc3-?@A

 	#C):):LIJ!..{B?@ 	 	
rb   c                    | j                  dt        j                  dfgt        dddg ddd      gg       }| j	                  |t        dt        j                  d	      gt        j                  t        d
      g       y )NrK   )r9   r   r   r   rv  r   )r   r   r   r   r   r   r   r9   constantru  )r  r:  rX  )r9   r   r  r(  r!  r   r   r   s     r,   test_constant_pad_2d_opset10z/TestShapeInference.test_constant_pad_2d_opset10H  s      ;$$l341#	 
 	#C):):MJK!..{B?@ 	 	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgd      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d	      g       y )
NrK   ru  r  r  rv  r   rw  r
  rx  r/  r   s     r,   test_padzTestShapeInference.test_pad]  s      ;$$l3fk>O>OQU5VWusFmS12%%		 ! 
( 	e&<S+BSBSUa&b%cdrb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg       }| j                  |t        dt        j                  d      g       y )NrK   r  r  r   r  r   r=  r   s     r,   test_gatherelements_basicz,TestShapeInference.test_gatherelements_basict  sv      ;$$d+i9J9JD-QR'#y)9C5AB

 	*30A0A4HI	
rb   c                    | j                  dt        j                  dfdt        j                  d fgt	        dddgdg      gg       }| j                  |t        dt        j                  d       g       y )NrK   r  r  r  r   r=  r   s     r,   )test_gatherelements_indices_missing_shapez<TestShapeInference.test_gatherelements_indices_missing_shape~  sy      k''.K--t4 '#y)9C5AB
 	e&<S+BSBSUY&Z%[\rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  Einsumr   zij->jiequationr  r   r   s     r,   test_einsum_transposez(TestShapeInference.test_einsum_transpose  c      ;$$f-.x#AB

 	e&<S+BSBSU[&\%]^rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r  r   r  r   i,i->r  r;   r   r   s     r,   test_einsum_dotz"TestShapeInference.test_einsum_dot  t      ;$$d+c;3D3Dd-KLx#scUWEF

 	e&<S+BSBSUW&X%YZrb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r;   r   r  r   z,->r  r   r   s     r,   test_einsum_scalarz%TestShapeInference.test_einsum_scalar  st      ;$$b)C1B1BB+GHx#scUUCD

 	e&<S+BSBSUW&X%YZrb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r  r   )r(  r  r  r   zij,ab->ijabr  )r   r0   r(  r  r   r   s     r,   test_einsum_outer_prodz)TestShapeInference.test_einsum_outer_prod  st      ;$$f-[5F5F/OPx#scU]KL

 	e&<S+BSBSUa&b%cdrb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   zi j->i r  r   r   r   s     r,   test_einsum_sum_along_dimz,TestShapeInference.test_einsum_sum_along_dim  sc      ;$$f-.x#	BC

 	e&<S+BSBSUY&Z%[\rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   )r   r   r   r  r   z... ii ->... ir  r  r   r   s     r,   test_einsum_ellipsisz'TestShapeInference.test_einsum_ellipsis  sd      ;$$i01x#8HIJ

 	e&<S+BSBSU[&\%]^rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r   r   r9   r   r0   r  r   ...ij,...jk->...ikr  r  r   r   s     r,   test_einsum_ellipsis_2z)TestShapeInference.test_einsum_ellipsis_2  sw      ;$$i038I8I92UVx#scU=QRS

 	*30A0A9MN	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r   r   r  r  r   z...ij,...jkr  r  r   r   s     r,   test_einsum_ellipsis_3z)TestShapeInference.test_einsum_ellipsis_3  sv      ;$$i038I8I92UVx#scU]KL

 	*30A0A9MN	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r  r   )rM  r   r0   r  r   r  r  )rM  r   r0   r   r   s     r,   test_einsum_ellipsis_broadcastz1TestShapeInference.test_einsum_ellipsis_broadcast  sw      ;$$i038I8I:2VWx#scU=QRS

 	*30A0A:NO	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   )r0   r  r(  rG  r   )rG  r  r!  r  r   zabcd,dfg->abcfgr  )r0   r  r(  r  r!  r   r   s     r,   test_einsum_contractionz*TestShapeInference.test_einsum_contraction  s}      k''6k''4 x#scU=NOP
 	#C):):<LMN	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r#  r   r  r  r   z
ijk,ik->jkr  r  r   r   s     r,   test_einsum_contraction_2z,TestShapeInference.test_einsum_contraction_2  sv      ;$$i038I8I62RSx#scU\JK

 	*30A0A6JK	
rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   )r0   r9   r   r   )r0   r   r   r  r   zbij , b jk-> bikr  )r0   r9   r   r   r   s     r,   test_einsum_batch_matmulz+TestShapeInference.test_einsum_batch_matmul  su      ;$$i038I8I92UVx#scU=OPQ

 	e&<S+BSBSU^&_%`arb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r   r   r  r  r   zij,klr  )r9   r   r   r   r   r   s     r,   test_einsum_left_hand_eqnz,TestShapeInference.test_einsum_left_hand_eqn  st      ;$$f-[5F5F/OPx#scUWEF

 	e&<S+BSBSUa&b%cdrb   c           	     "   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  t
        j                  j                  | j                  |       y )NrK   r   r   r   r  zi,...j, k, l-> ir  r   r   s     r,    test_einsum_incorrect_num_inputsz3TestShapeInference.test_einsum_incorrect_num_inputs  s      k''0k''0k''0
 x#scU=OPQ
 	$..==t~~uUrb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   r  r   r  r  r   r   s     r,   test_einsum_view_A1z&TestShapeInference.test_einsum_view_A1  sc      ;$$d+,x#<=

 	e&<S+BSBSUY&Z%[\rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   r  r   zi->r  r;   r   r   s     r,   test_einsum_sum_A1z%TestShapeInference.test_einsum_sum_A1  sc      ;$$d+,x#>?

 	e&<S+BSBSUW&X%YZrb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r   r   r  r   zi,i->ir  r   r   s     r,   -test_einsum_element_wise_multiplication_A1_B1z@TestShapeInference.test_einsum_element_wise_multiplication_A1_B1  sv       ;$$d+c;3D3Dd-KLx#scUXFG

 	e&<S+BSBSUY&Z%[\rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r   r   r  r   r  r  r;   r   r   s     r,   test_einsum_inner_product_A1_B1z2TestShapeInference.test_einsum_inner_product_A1_B1%  r  rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r   r   r  r   zi,j->ijr  r  r   r   s     r,   test_einsum_outer_product_A1_B1z2TestShapeInference.test_einsum_outer_product_A1_B1-  st      ;$$d+c;3D3Dd-KLx#scUYGH

 	e&<S+BSBSU[&\%]^rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   zij->ijr  r   r   s     r,   test_einsum_view_A2z&TestShapeInference.test_einsum_view_A25  r  rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   ijr  r   r   s     r,   test_einsum_view_A2_2z(TestShapeInference.test_einsum_view_A2_2=  c      ;$$f-.x#=>

 	e&<S+BSBSU[&\%]^rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   jir  r   r   s     r,   test_einsum_transpose_A2z+TestShapeInference.test_einsum_transpose_A2E  r  rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   zji->ijr  r   r   s     r,   test_einsum_transpose_A2_to_ijz1TestShapeInference.test_einsum_transpose_A2_to_ijM  r  rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   zii->ir  r   r   r   s     r,   test_einsum_diag_A2z&TestShapeInference.test_einsum_diag_A2U  c      ;$$f-.x#@A

 	e&<S+BSBSUY&Z%[\rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   zii->r  r;   r   r   s     r,   test_einsum_trace_A2z'TestShapeInference.test_einsum_trace_A2]  c      ;$$f-.x#?@

 	e&<S+BSBSUW&X%YZrb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   zij->r  r;   r   r   s     r,   test_einsum_sum_A2z%TestShapeInference.test_einsum_sum_A2e  r  rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   zij->jr  r   r   r   s     r,   test_einsum_sum_columns_A2z-TestShapeInference.test_einsum_sum_columns_A2m  se       ;$$f-.x#@A

 	e&<S+BSBSUY&Z%[\rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  r   zij->ir  r   r   r   s     r,   test_einsum_sum_rows_A2z*TestShapeInference.test_einsum_sum_rows_A2w  r  rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r   r  r   z	ij,ij->ijr  r   r   s     r,   -test_einsum_element_wise_multiplication_A2_B2z@TestShapeInference.test_einsum_element_wise_multiplication_A2_B2  v       ;$$f-[5F5F/OPx#scU[IJ

 	e&<S+BSBSU[&\%]^rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r   r  r   z	ij,ji->ijr  r   r   s     r,   7test_einsum_element_wise_multiplication_A2_B2_transposezJTestShapeInference.test_einsum_element_wise_multiplication_A2_B2_transpose  r  rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r   r  r   zij,jkr  r   r   s     r,   'test_einsum_matrix_multiplication_A2_B2z:TestShapeInference.test_einsum_matrix_multiplication_A2_B2  sv       ;$$f-[5F5F/OPx#scUWEF

 	e&<S+BSBSU[&\%]^rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r   r  r   z	ij,jk->ikr  r   r   s     r,   -test_einsum_matrix_multiplication_A2_B2_to_ikz@TestShapeInference.test_einsum_matrix_multiplication_A2_B2_to_ik  r  rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r   r  r   zbij,bjk->bikr  r   r   s     r,   'test_einsum_matrix_multiplication_A3_B3z:TestShapeInference.test_einsum_matrix_multiplication_A3_B3  v       ;$$i038I8I92UVx#scU^LM

 	e&<S+BSBSU^&_%`arb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r   r  r   zbij,bkj->bikr  r   r   s     r,   1test_einsum_matrix_multiplication_A3_B3_transposezDTestShapeInference.test_einsum_matrix_multiplication_A3_B3_transpose  r  rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r   r  r   z	ij,kj->ikr  r   r   s     r,   test_einsum_inner_product_A2_B2z2TestShapeInference.test_einsum_inner_product_A2_B2  st      ;$$f-[5F5F/OPx#scU[IJ

 	e&<S+BSBSU[&\%]^rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r  r   r  r   z
ij,kj->ikjr  )r   r   r   r   r   s     r,   $test_einsum_row_multiplication_A2_B2z7TestShapeInference.test_einsum_row_multiplication_A2_B2  sv       ;$$f-[5F5F/OPx#scU\JK

 	e&<S+BSBSU^&_%`arb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r  r   r  r   zij,kl->ijklr  )r   r   r   r   r   r   s     r,   &test_einsum_value_multiplication_A2_B2z9TestShapeInference.test_einsum_value_multiplication_A2_B2  sv       ;$$f-[5F5F/OPx#scU]KL

 	e&<S+BSBSUa&b%cdrb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r;   r   r  r  r   z,ij->ijr  r   r   s     r,   test_einsum_scalar_times_arrayz1TestShapeInference.test_einsum_scalar_times_array  st      ;$$b)C1B1BF+KLx#scUYGH

 	e&<S+BSBSU[&\%]^rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r  r   r   r  r   zij,j->ir  r   r   s     r,   test_einsum_matrix_vector_A2_B1z2TestShapeInference.test_einsum_matrix_vector_A2_B1  st      ;$$f-[5F5F/MNx#scUYGH

 	e&<S+BSBSUY&Z%[\rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r  r   r  r   zii,ii->ir  r   r   r   s     r,   %test_einsum_diag_multiplication_A2_B2z8TestShapeInference.test_einsum_diag_multiplication_A2_B2  sv       ;$$f-[5F5F/OPx#scUZHI

 	e&<S+BSBSUY&Z%[\rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r  r   r  r   zii,ii->r  r;   r   r   s     r,   "test_einsum_diag_dot_product_A2_B2z5TestShapeInference.test_einsum_diag_dot_product_A2_B2  st      ;$$f-[5F5F/OPx#scUYGH

 	e&<S+BSBSUW&X%YZrb   c           	         d\  }}| j                  dt        j                  ||ffdt        j                  |ffgt	        dddgdgd      gg       }| j                  |t        dt        j                  |f      g       y )Nr  r  targetNegativeLogLikelihoodLosslossnone	reductionr=  rH   r   r  rj   s       r,   (test_negative_log_likehood_shape_is_NCddz;TestShapeInference.test_negative_log_likehood_shape_is_NCdd  s    1  {((1a&1Hk>O>ORSQU3VW/h'H$	 
 	e&<V[EVEVYZX\&]%^_rb   c           	     $   d\  }}| j                  dt        j                  ||ffdt        j                  |ffdt        j                  |ffgt	        dg ddgd	      gg       }| j                  |t        dt        j                  |f      g       y )
Nr  r  r  weightr  r  r  r  r  r  r  r=  r  s       r,   2test_negative_log_likehood_shape_is_NC_with_weightzETestShapeInference.test_negative_log_likehood_shape_is_NC_with_weight	  s    1  +++aV4;,,qd3;,,qd3 /1H$	 
  	e&<V[EVEVYZX\&]%^_rb   c           	         d\  }}| j                  dt        j                  ||ffdt        j                  |ffgt	        dddgdgd      gg       }| j                  |t        dt        j                  d      g       y )	Nr  r  r  r  r  r  r  r;   r=  r  s       r,   5test_negative_log_likehood_shape_is_NC_reduction_meanzHTestShapeInference.test_negative_log_likehood_shape_is_NC_reduction_mean  s    1  {((1a&1Hk>O>ORSQU3VW/h'H$	 
 	e&<V[EVEVXZ&[%\]rb   c           	     "   d\  }}| j                  dt        j                  ||ffdt        j                  |ffdt        j                  |ffgt	        dg ddgd	      gg       }| j                  |t        dt        j                  d
      g       y )Nr  r  r  r  r  r  r  r  r  r;   r=  r  s       r,   Atest_negative_log_likehood_shape_is_NC_with_weight_reduction_meanzTTestShapeInference.test_negative_log_likehood_shape_is_NC_with_weight_reduction_mean-  s    1  +++aV4;,,qd3;,,qd3 /1H$	 
  	e&<V[EVEVXZ&[%\]rb   c           
        d\  }}}}| j                  dt        j                  ||||ffdt        j                  |||ffgt	        dddgdgd      gg       }| j                  |t        dt        j                  |||f      g       y )Nr   r   r0   r  r  r  r  r  r  r  r=  rH   r   r  d1d2rj   s         r,   *test_negative_log_likehood_shape_is_NCd1d2z=TestShapeInference.test_negative_log_likehood_shape_is_NCd1d2A  s    !1b"  +++aB^<;,,q"bk:
 /h'H$	 
 	e&<V[EVEVYZ\^`bXc&d%efrb   c           
     4   d\  }}}}| j                  dt        j                  ||||ffdt        j                  |||ffdt        j                  |ffgt	        dg ddgd	      gg       }| j                  |t        dt        j                  |||f      g       y )
Nr  r  r  r  r  r  r  r  r  r=  r  s         r,   6test_negative_log_likehood_shape_is_NCd1d2_with_weightzITestShapeInference.test_negative_log_likehood_shape_is_NCd1d2_with_weightT  s    !1b"  +++aB^<;,,q"bk:;,,qd3 /1H$	 
  	e&<V[EVEVYZ\^`bXc&d%efrb   c           	        d\  }}}}| j                  dt        j                  ||||ffdt        j                  |||ffgt	        dddgdgd      gg       }| j                  |t        dt        j                  d      g       y )	Nr  r  r  r  r  sumr  r;   r=  r  s         r,   8test_negative_log_likehood_shape_is_NCd1d2_reduction_sumzKTestShapeInference.test_negative_log_likehood_shape_is_NCd1d2_reduction_sumh  s    !1b"  +++aB^<;,,q"bk:
 /h'H#	 
 	e&<V[EVEVXZ&[%\]rb   c           	     .   d\  }}}}| j                  dt        j                  ||||ffdt        j                  |||ffdt        j                  |ffgt	        dg ddgd	      gg       }| j                  |t        dt        j                  d
      g       y )Nr  r  r  r  r  r  r  r  r  r;   r=  r  s         r,   Etest_negative_log_likehood_shape_is_NCd1d2_with_weight_reduction_meanzXTestShapeInference.test_negative_log_likehood_shape_is_NCd1d2_with_weight_reduction_mean{  s     "1b"  +++aB^<;,,q"bk:;,,qd3 /1H$	 
  	e&<V[EVEVXZ&[%\]rb   c           	     h   d\  }}}}| j                  dt        j                  |||ffdt        j                  ||dz   |ffdt        j                  |ffdt        j                  dfgt	        dg d	dgd
      gg       }| j                  t        j                  j                  | j                  |       y )Nr  r  r  r   r  r  r;   r  r  r  r  )
rR   r   r   rF   r   r   rY   rZ   r   ra   r  s         r,   6test_negative_log_likehood_input_target_shape_mismatchzITestShapeInference.test_negative_log_likehood_input_target_shape_mismatch  s    !1b"  +++aR[9;,,q"q&"o>;,,qd3**B/	 /1H$	 
" 	$..==t~~uUrb   c           
     \   d\  }}}}| j                  dt        j                  ||||ffdt        j                  |||ffdt        j                  |dz   ffdt        j                  |||ffgt	        dg ddgd	
      gg       }| j                  t        j                  | j                  |       y )Nr  r  r  r  r   r  r  r  r  r  )	rR   r   r   rF   r   r   r   rn  ra   r  s         r,   6test_negative_log_likehood_input_weight_shape_mismatchzITestShapeInference.test_negative_log_likehood_input_weight_shape_mismatch  s    !1b"  +++aB^<;,,q"bk:;,,q1uh7**QBK8	 /1H$	 
" 	'114>>5Irb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   r   r   r   SoftmaxCrossEntropyLossr   r  r  r   r   s     r,   test_softmax_cross_entropy_nonez2TestShapeInference.test_softmax_cross_entropy_none  su      ;$$f-[5F5F/MN03*sevVW

 	e&<S+BSBSUY&Z%[\rb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r   r   r   r  r   r  r  r;   r   r   s     r,   test_softmax_cross_entropy_meanz2TestShapeInference.test_softmax_cross_entropy_mean  su      ;$$f-[5F5F/MN03*sevVW

 	e&<S+BSBSUW&X%YZrb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )	NrK   )r9   r   r0   rG  r   )r9   r0   rG  r  r   r  r  r   r   s     r,   &test_softmax_cross_entropy_none_NCD1D2z9TestShapeInference.test_softmax_cross_entropy_none_NCD1D2  sz      k''6k''3 03*sevVW
 	e&<S+BSBSU^&_%`arb   c           	         | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg       }| j	                  |t        dt        j                  d	      g       y )
NrK   r  r   r  r  r   r  r  r;   r   r   s     r,   &test_softmax_cross_entropy_mean_NCD1D2z9TestShapeInference.test_softmax_cross_entropy_mean_NCD1D2  sz      k''6k''3 03*sevVW
 	e&<S+BSBSUW&X%YZrb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )Nr   rR  Celur   ru  )r  r   r   s     r,   test_celu_function_output_shapez2TestShapeInference.test_celu_function_output_shape  sg      ;$$&678vuse378

 	*30A0ACSTU	
rb   c                   t        dddgd      g}|g }n^d}|D ]  }||z  }	 t        |      D cg c]  }d }}t        dt        j                  ||      t        dt        j                  ||      g}|g }	nJt        j                  dt        j                  |      t        j                  dt        j                  |      g}	t        j                  |d|	g |g       }
t        j                  |
      S c c}w )	Nr  rK   r   r   r           r?   )inputsoutputsr@   rA   )	r   r#   r   r   r   r   r   rG   rX   )rH   initializer_shapeinput_shaperJ   r@   r  dr  r{  r  rj   s              r,   !prepare_input_initializer_tensorsz4TestShapeInference.prepare_input_initializer_tensors  s	   53*c23$KD&  ax !&t-AC-D-C!2!24EtLC!2!24EtLK F --c;3D3DkR--c;3D3DkRF
 !!#
   ''+ .s   	C3c                   d}| j                  |d       }t        j                  j                  |d      }|j                  j
                  j                         }|j                  j                  j                  j                  d   j                  |j                  j                  j                  j                  d   j                  f}||k(  sJ y )NrG  r(  Trl  r   r   )r  rY   rZ   r[   rj   rA   rW   ro   rw   ry   r   r   )rH   r  original_modelr`   z_tenorz_shapes         r,   3test_infer_with_initializer_without_input_above_ir4zFTestShapeInference.test_infer_with_initializer_without_input_above_ir4
  s     #??@QSWX--:: ; 

 !&&11557LL$$**..q1;;LL$$**..q1;;
 ++++rb   c                   d}d}| j                  ||      }d|_        t        j                  j	                  |d      }|j
                  j                  j                         }|j                  j                  j                  j                  d   j                  |j                  j                  j                  j                  d   j                  f}|dk(  sJ y )	Nr  r<  r   Trl  r   r   r   r   )r  
ir_versionrY   rZ   r[   rj   rA   rW   ro   rw   ry   r   r   )rH   r  r  r  r`   r  r  s          r,   3test_infer_with_initializer_without_input_below_ir4zFTestShapeInference.test_infer_with_initializer_without_input_below_ir4  s     #"??{
 %&!--:: ; 
 !&&11557LL$$**..q1;;LL$$**..q1;;

 &   rb   c                    d}d}| j                  ||      }| j                  t        j                  j                  t        j                  j
                  |d       y )Nr  r  Trl  r  r   rY   rZ   r   r[   rH   r  r  r  s       r,   %test_infer_initializer_input_mismatchz8TestShapeInference.test_infer_initializer_input_mismatch1  s[    "??{
 	  //  --	 	 	
rb   c                r    d}d}| j                  ||      }t        j                  j                  |d       y Nr  r<  Trl  r  rY   rZ   r[   r&  s       r,   1test_infer_initializer_input_consistency_all_nonezDTestShapeInference.test_infer_initializer_input_consistency_all_none@  s=    ""??{
 	)).d)Krb   c                r    d}d}| j                  ||      }t        j                  j                  |d       y )Nr  Nr(  Trl  r*  r&  s       r,   4test_infer_initializer_input_consistency_single_nonezGTestShapeInference.test_infer_initializer_input_consistency_single_noneI  s=    "??{
 	)).d)Krb   c                    d}d}| j                  ||      }| j                  t        j                  j                  t        j                  j
                  |d       y )N)rG  r(  r  r-  Trl  r%  r&  s       r,   6test_infer_initializer_input_consistency_differnt_rankzITestShapeInference.test_infer_initializer_input_consistency_differnt_rankR  s[    %??{
 	  //  --	 	 	
rb   c                    d}d}| j                  ||      }t        j                  j                  |j	                         d       y r)  )r  rY   rZ   r[   SerializeToStringr&  s       r,   <test_infer_initializer_input_consistency_all_none_serializedzOTestShapeInference.test_infer_initializer_input_consistency_all_none_serialized`  sM     #"??{
 	)),,.D 	* 	
rb   c                "   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg t        dt        j                  dd      g      }| j                  |t        dt        j                  d      g       y )	NrK   r#  rc  r;   Trilur   r   r
  r/  r   s     r,   test_trilu_upperz#TestShapeInference.test_trilu_upperm  s      ;$$i038I8I22NOwc
SE23$S+*;*;RFG	 ! 
 	e&<S+BSBSU^&_%`arb   c                &   | j                  dt        j                  dfdt        j                  dfgt	        dddgdgd      gg t        dt        j                  dd	      g
      }| j                  |t        dt        j                  d      g       y )NrK   r#  rc  r;   r5  r   r   upperr!  r
  r/  r   s     r,   test_trilu_lowerz#TestShapeInference.test_trilu_lowerv  s      ;$$i038I8I22NOwc
SE;<$S+*;*;RGH	 ! 
 	e&<S+BSBSU^&_%`arb   c                &   | j                  dt        j                  dfdt        j                  dfgt        dddgdgd      gg t	        dt        j                  dd	      g
      }| j                  |t        dt        j                  d      g       y )NrK   )r   r0   rc  r;   r5  r   r   r8  r  r
  )rR   r   rF   r   r   ru   r   r   s     r,   test_trilu_upper_zeroz(TestShapeInference.test_trilu_upper_zero  s      ;$$f-[5F5F/KLwc
SE;<$S+*;*;RFG	 ! 
 	e&<S+BSBSU[&\%]^rb   c           	         | j                  dt        j                  dfgt        ddgdgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   )r   r   r0   r5  r   r   r8  )rR   r   ri  r   ru   r   r   s     r,   test_trilu_lower_onez'TestShapeInference.test_trilu_lower_one  sc      ;$$i01wuA67

 	e&<S+BSBSU^&_%`arb   c           
        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        dg d	g d
d      gg       }| j	                  |t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      g       y NrK   re  r  re  r   
input_mean	input_varr  rK   r  r   rB  rC  r0  output_mean
output_varr   training_moder0  rF  rG  r   r   s     r,   test_batch_norm_trainz(TestShapeInference.test_batch_norm_train  s      k''9+++T2k''.{00$7k//6 (B8"#	 !
$ 	&uk.?.?Q&}k6G6GN&|[5F5FM	
rb   c           
        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        dg d	g d
d      gg       }| j	                  |t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      g       y )NrK   )r   r  r0   r  r(  r  r  r   rB  rC  r  rD  rE  r   rH  r0  rF  rG  r   r   s     r,   test_batch_norm_train_dim_paramz2TestShapeInference.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	
rb   c           
        | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt	        dg d	g d
d      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      g       y rA  )rR   r   r   r   r   ru   r   r   s     r,   $test_batch_norm_train_with_diff_typez7TestShapeInference.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	
rb   c           	     X   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        dg d	d
gd      gg       }| j	                  |t        d
t        j                  d      g       y )NrK   re  r  re  r   rB  rC  r  rD  r0  r   rH  r   r   s     r,   test_batch_norm_testz'TestShapeInference.test_batch_norm_test  s      k''9+++T2k''.{00$7k//6 (BG"#	 !
$ 	e&<UKDUDUWf&g%hirb   c           	     X   | j                  dt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfdt        j                  dfgt        d	g d
dgd      gg       }| j	                  |t        dt        j                  d      g       y )NrK   )r   r   NNNr  re  r   rB  r=   rC  r  rD  r0  r   rH  r   r   s     r,   test_batch_norm_test_no_dimz.TestShapeInference.test_batch_norm_test_no_dim  s      k'')AB+++T2k''.{00':k//6 (BG"#	 !
$ 	e&<UKDUDUWo&p%qrrb   c           
        | j                  dt        j                  d fdt        j                  d fdt        j                  d fdt        j                  dfdt        j                  dfgt        dg dg d	d
      gg       }| j	                  |t        dt        j                  d       t        dt        j                  d      t        dt        j                  d      g       y )NrK   r  r   rB  rL  rC  r  rD  )r0  running_meanrunning_varr   rH  r0  rU  rV  r   r   s     r,   test_batch_norm_train_no_shapez1TestShapeInference.test_batch_norm_train_no_shape  s      k''.+++T2k''.{00&9k//8 (B:"#	 !
$ 	&uk.?.?F&~{7H7H&Q&}k6G6GP	
rb   c                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r=   NonZeror0  )r   Nr  r   s     r,   test_nonzerozTestShapeInference.test_nonzero*  sa      ;$$g./y3%%12

 	e&<UKDUDUW`&a%bcrb   c                    | j                  dt        j                  d fgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   rY  r0  r<  r  r   s     r,   test_nonzero_no_shapez(TestShapeInference.test_nonzero_no_shape2  s`      ;$$d+,ySEE7/S.TVX
 	e&<UKDUDUWc&d%efrb   c           	         | j                  dt        j                  dfgt        ddgdg      gt	        dt        j
                  d      g      }| j                  |t	        dt        j
                  d      g       y )NrK   r   rY  r   )NNZ)r   r^  )rR   r   r   r   r   rF   ru   r   s     r,   test_nonzero_existing_dim_paramz2TestShapeInference.test_nonzero_existing_dim_param8  ss      ;$$d+,y3%#/0#C):):LIJ

 	e&<S+BSBSU^&_%`arb   c                    | j                  dt        j                  dfgt        ddgdg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r;   rY  r0  )r   Nr  r   s     r,   test_nonzero_scalarz&TestShapeInference.test_nonzero_scalar@  s`      ;$$b)*Yy3%%-Q,RTV
 	e&<UKDUDUW`&a%bcrb   c           	        t        j                  t        j                  g d      }t        j                  |      }t        j
                  d|      }| j                  g t        dg dg|      gg       }| j                  ||g       y )Nrs  r  r  r'   
type_protor  ro   	r   r  r   r   r  r  rR   r   ru   rH   r  r  optional_val_inforj   s        r,   $test_optional_construct_empty_tensorz7TestShapeInference.test_optional_construct_empty_tensorF  s    "99!''y
 %==>OP"22&9
   :rH:<MNOQS
 	e&7%89rb   c           	     >   t        j                  t        j                  g d      }t        j                  |      }t        j
                  |      }t        j                  d|      }| j                  g t        dg dg|      gg       }| j                  ||g       y )Nrs  r  r  rc  r  re  )
r   r  r   ri  r  r  r  rR   r   ru   )rH   r  r  r  rh  rj   s         r,   &test_optional_construct_empty_sequencez9TestShapeInference.test_optional_construct_empty_sequenceS  s    "99!''y
 %==>OP$==>QR"22"/B
   z2(9':ATUV

 	e&7%89rb   c                6   t        j                  t        j                  g d      }t        j                  |      }t        j
                  d|      }| j                  dt        j                  dfgt        ddgdg      gg       }| j                  ||g       y )Nr   r  r  rc  r  r  rf  rg  s        r,   test_optional_construct_tensorz1TestShapeInference.test_optional_construct_tensorc  s    "99!''y
 %==>OP"22&9
   ))956zH:z:;

 	e&7%89rb   c           	        t        j                  t        j                  g d      }t        j                  |      }t        j
                  d|      }t        j                  |      }t        j
                  d|      }| j                  dt        j                  dfgt        ddgdg      t        ddgdg      gg       }| j                  |||g       y )	N)r9   r   r   r  input_sequencerc  r  r  r  r  )
r   r  r   rF   r  r  r  rR   r   ru   rH   r  r  sequence_val_infor  rh  rj   s          r,    test_optional_construct_sequencez3TestShapeInference.test_optional_construct_sequencer  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 
 	e&79J%KLrb   c           	        t        j                  t        j                  g d      }t        j                  |      }t        j
                  d|      }| j                  dt        j                  dfgt        ddgdg      t        ddgdg      gg       }| j                  ||t        dt        j                  d	      g       y )
Nr   r  rt  rc  r  r  OptionalHasElementr  r;   )r   r  r   r   r  r  rR   r   ru   r   r%  rg  s        r,    test_optional_tensor_has_elementz3TestShapeInference.test_optional_tensor_has_element  s    "99!''y
 %==>OP"22(;
   ))956*xj:,?.xjI 
 	 6xAQAQSU VW	
rb   c           
        t        j                  t        j                  g d      }t        j                  |      }t        j
                  d|      }t        j                  |      }t        j
                  d|      }| j                  dt        j                  dfgt        ddgdg      t        ddgdg      t        d	dgd
g      gg       }| j                  |||t        d
t        j                  d      g       y )N)r   r   r   r  rt  rc  optionalr  r  r  rt  r  r;   )r   r  r   r   r  r  r  rR   r   ru   r   r%  rp  s          r,   "test_optional_sequence_has_elementz5TestShapeInference.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	
rb   c                   t        j                  t        j                  g d      }t        j                  d|      }| j                  dt        j                  dfgt        ddgdg      gg       }| j                  ||g       y )Nr9   r   r   r  r  rc  r  OptionalGetElement)r   r  r   rb  r  rR   r   ru   )rH   r  output_tensor_val_inforj   s       r,   test_tensor_get_elementz*TestShapeInference.test_tensor_get_element  s    "99!((	
 "(!7!7&7"
   {))956.	H:F 
 	e&<%=>rb   StringSplitc           	     :   t        dt        j                  d      }t        dt        j                  d      }| j	                  dt        j                  dfgt        ddgddg      g||g      }| j                  |||gt        j                  t        |      g       y )N
substrings)r9   Nlengthr   rK   r~  r   
r   r   r   rF   rR   r   ru   r   r   r   rH   r   r+   r  r  rj   s         r,   test_string_split_basicz*TestShapeInference.test_string_split_basic  s    +


 (+2C2CTJ  k(($/ }selH-EFG 
 	 !..{GDE 	 	
rb   c           	     :   t        dt        j                  d      }t        dt        j                  d      }| j	                  dt        j                  dfgt        ddgddg      g||g      }| j                  |||gt        j                  t        |      g       y )Nr  )r5  Nr  )r5  rK   r~  r   r  r  s         r,   test_string_split_symbolicz-TestShapeInference.test_string_split_symbolic  s    +


 (+2C2CVL  k((&1 }selH-EFG 
 	 !..{GDE 	 	
rb   c           	     >   t        dt        j                  d      }t        dt        j                  d      }| j	                  dt        j                  dfgt        ddgddgd      g||g      }| j                  |||gt        j                  t        |      g	       y )
Nr  )r9   r   r   Nr  r   rK   r~  r9   maxsplitr   r  r  s         r,   test_string_split_nestedz+TestShapeInference.test_string_split_nested  s    ++,,o

 (+2C2CYO  k(()4 }selH-EPQRS 
 	 !..{GDE 	 	
rb   c           	     >   t        dt        j                  d      }t        dt        j                  d      }| j	                  dt        j                  dfgt        ddgddgd      g||g      }| j                  |||gt        j                  t        |      g	       y )
Nr  r=   r  r;   rK   r~  r9   r  r   r  r  s         r,   (test_string_split_zero_dimensional_inputz;TestShapeInference.test_string_split_zero_dimensional_input   s    +L+:L:LgV
'+2C2CRH  k(("- }selH-EPQRS 
 	 !..{GDE 	 	
rb   c           	     >   t        dt        j                  d      }t        dt        j                  d      }| j	                  dt        j                  dfgt        ddgddgd      g||g      }| j                  |||gt        j                  t        |      g	       y )
Nr  )r@  r   r   Nr  )r@  r   r   rK   r~  r9   r  r   r  r  s         r,   test_string_split_empty_inputz0TestShapeInference.test_string_split_empty_input   s    ++,,.?

 (+2C2C[Q  k((+6 }selH-EPQRS 
 	 !..{GDE 	 	
rb   c           	        t        j                  t        j                  g d      }t        j                  d|      }t        j
                  |      }t        j                  d|      }| j                  dt        j                  dfgt        ddgdg      t        ddgdg      gg       }| j                  |||g       y )	Nrz  r  r  rc  rw  r  r  r{  )	r   r  r   rb  r  r  rR   r   ru   )rH   r  tensor_val_intor  rh  rj   s         r,    test_optional_tensor_get_elementz3TestShapeInference.test_optional_tensor_get_element.   s    "99!((	
 !00&7
 %==>OP"22(;
   **I67*xj:,?.xjI 
 	e&7%IJrb   c           
        t        j                  t        j                  g d      }t        j                  |      }t        j
                  d|      }t        j                  |      }t        j
                  d|      }t        j
                  d|      }| j                  dt        j                  dfgt        ddgdg      t        d	dgdg      t        d
dgdg      gg       }| j                  ||||g       y )N)r9   r   r   r  rt  rc  rw  r  r  r  r  r{  )
r   r  r   ri  r  r  r  rR   r   ru   )rH   r  r  sequence_val_intor  rh  output_val_intorj   s           r,   "test_optional_sequence_get_elementz5TestShapeInference.test_optional_sequence_get_elementC   s   "99!''y
 %==>OP"22(;
 %==>QR"22(;
 !00&9
   ))956-zJ<H*zlZLA.xjI
 
 	e&79JO%\]rb   c                   | j                  dt        j                  dfdt        j                  dfdt        j                  dfgt	        dg ddg      gg       }| j                  |t        dt        j                  d      g       y )Nr  r:  rK   r   Where)r  rK   r   r0  )rR   r   r%  BFLOAT16r   ru   r   r   s     r,   test_where_bfloatz$TestShapeInference.test_where_bfloat]   s      ))51k**E2k**E2
 w 2UG<=
 	e&<UKDXDXZ_&`%abrb   c                   t        j                  t        j                  dg t        j                  dt        j
                  d       gt        ddgdg      gt        j                  t        j                  ddgt        j                        d	      g
            }| j                  t        j                  j                  t        j                  j                   |d       t        j                  j!                  |      }| j#                  |j$                  j&                  d   j(                  j*                  j-                  d             y )Ngraph_with_unsupported_typer   ry   r  rK   r   r   rx  re   r'   r  r  rJ   r@   rj   Trl  r   ry   )r   rX   rG   r   r   r   r   r   
from_arrayr   r~  int32r   rY   rZ   r   r[   assertFalserj   r  ro   rw   r~   )rH   modelr`   s      r,   ,test_parse_data_with_unsupported_tensor_typez?TestShapeInference.test_parse_data_with_unsupported_tensor_typei   s   !!##211#{7H7HPTU !!2SEC5AB !++BHHaV288,LSVW
 	  //  --	 	 	
 --::5A  ''*//;;DDWM	
rb   c                   t        j                  t        j                  dg t        j                  dt        j
                  d       gt        ddgdg      gt        j                  t        j                  ddgt        j                        d	      g
            }t        j                  |j                  j                  d   _        | j!                  t"        j$                  j&                  t"        j$                  j(                  |d       t"        j$                  j)                  |      }| j+                  |j                  j,                  d   j.                  j0                  j3                  d             | j5                  dt        j6                  dfdt        j8                  dfgt        dddgdgd      gg t;        dt        j8                  dd      g      }| j=                  |t        dt        j6                  d      g       y )Ngraph_with_undefined_typer   r  r  rK   r   r   rx  re   r  r  r   Trl  ry   rQ  r   r>   r   rR  rN  r
  )r   rX   rG   r   r   r   r   r   r  r   r~  int64rD   rj   r@   	data_typer   rY   rZ   r   r[   r  r  ro   rw   r~   rR   r   rF   r   ru   )rH   r  r`   rj   s       r,   *test_parse_data_with_undefined_tensor_typez=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	
rb   c                J   d\  }}}}| j                  dt        j                  |ddffdt        j                  dfgt	        dddgdgd	
      gg t        dt        j                  d||||f      g      }| j                  |t        dt        j                  |||df      g       y )Nr  thetar9   r   r  re  
AffineGridgridr   )align_cornersr
  r/  )rH   r   r  r  rU  rj   s         r,   test_affinegrid_2dz%TestShapeInference.test_affinegrid_2d   s    
1a  +++aAY7**D1
  f%H"#	 $V[->->q!QPQlST ! 
  	*6;3D3Dq!QPQlST	
rb   c                L   d\  }}}}}| j                  dt        j                  |ddffdt        j                  dfgt	        dddgdg      gg t        dt        j                  d|||||f      g	      }| j                  |t        dt        j                  ||||df      g       y )
N)r9   r   r   r0   r  r  r   r   r  r  r  r  r
  r/  )rH   r   r  Dr  rU  rj   s          r,   test_affinegrid_3dz%TestShapeInference.test_affinegrid_3d   s    %1aA  +++aAY7**D1
  f%H $V[->->q!QPQSToVW ! 
 	*6;3D3Dq!QPQSToVW	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgdgddd	
      gg       }| j                  |t        dt        j                  d      g       y )NrK   rj  r  )r   r   r   r9   
GridSampler   nearestborderr   r:  padding_moder  r=  r   s     r,   test_gridsample_2dz%TestShapeInference.test_gridsample_2d   s      k''6**L9
  &ME"!)"#	 
" 	*30A0A<PQ	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgdgddd	
      gg       }| j                  |t        dt        j                  d      g       y )NrK   )r   r   r   r   r   r  )r   r   r9   r   r   r  r   r  r  r   r  )r   r   r   r9   r   r=  r   s     r,   test_gridsample_3dz%TestShapeInference.test_gridsample_3d   s      k''9**O<
  &ME"!)"#	 
" 	*30A0A?ST	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   r  r  )r   H_outW_outr9   r  r   )r   r  r  r  r   r   s     r,   test_gridsample_2d_defaultsz.TestShapeInference.test_gridsample_2d_defaults!  s      k'')=>**,FG |c6]SE:;
 	&**,H	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt        dddgdg      gg       }| j	                  |t        dt        j                  d      g       y )NrK   )r   r  r  r  rU  r  )r   D_outr  r  r   r  r   )r   r  r  r  r  r   r   s     r,   test_gridsample_3d_defaultsz.TestShapeInference.test_gridsample_3d_defaults!  s      k'')BC**,OP |c6]SE:;
 	&**,Q	
rb   c           
         | j                  dt        j                  dfdt        j                  dfgt        dddgdgdd	      gg       }| j	                  |t        dt        j                  d      g       y )
NrK   )r   r  NNr  )r   NNr9   r  r   linearr  r:  r  r   r   s     r,   test_gridsample_2d_no_dimz,TestShapeInference.test_gridsample_2d_no_dim'!  s      k'')?@**,@A
  &ME!!) 
  	#C):):<RST	
rb   c           
         | j                  dt        j                  dfdt        j                  dfgt        dddgdgdd	      gg       }| j	                  |t        dt        j                  d      g       y )
NrK   )r   r  NNNr  )r   NNNr   r  r   r  r  r  r   r   s     r,   test_gridsample_3d_no_dimz,TestShapeInference.test_gridsample_3d_no_dim=!  s      k'')EF**,FG
  &ME!!) 
  	&**,H	
rb   c           
        t        dt        j                  d      g}t        dt        j                  d      g}t        j                  t        ddgdg      gd||      }| j                  dt        j                  dfdt        j                  dfdt        j                  dfgt        d	g d
dg      t        ddgdg|      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      g       y )Nr  )   r  r   r  r  
body_graphr  r  r  r  r  r  SequenceMapout_sequencer  	r   r   r   r   rG   r   rR   ru   r   rH   rM   r  r  rj   s        r,   %test_sequence_map_identity_known_dimsz8TestShapeInference.test_sequence_map_identity_known_dimsW!  s'   "7K,=,=}M
 #8[->->N
 &&zG9xj9:	

   ;,,m<;,,m<;,,m< ')G- !M?^4D:	 
  	/!;#4#4m 0"K$5$5}	
	
rb   c           
        t        dt        j                  d      g}t        dt        j                  d      g}t        j                  t        ddgdg      gd||      }| j                  dt        j                  dfdt        j                  d	fd
t        j                  dfgt        dg ddg      t        ddgdg|      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      g       y )Nr  r  rU  r   r  r  r  r  )rR  r2  r   r  )r-  rR  r   r  )r0   r   r   r  r  r  r  r  r  NNr   r  r  s        r,   'test_sequence_map_identity_unknown_dimsz: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	
	
rb   c                d   t        j                  t        dg ddg      t        dg ddg      gdt        j                   j	                  dt        j
                  j                  d      gt        j                   j	                  dt        j
                  j                  d	      t        j                   j	                  dt        j
                  j                  d
      gt        dt
        j                  dd      t        dt
        j                  dd      t        dt
        j                  dd      t        dt
        j                  dd      t        dt
        j                  dd      g      }| j                  dt
        j                  dfdt
        j                  dfdt
        j                  dfgt        dg ddg      t        ddgd d!g|"      gg       }| j                  |t        dt
        j                  d#      t        d t
        j                  d	      t        d!t
        j                  d
      g       y )$Nr;  rK   starts1ends1r  r  y1rK   starts2ends2r  r  y2r  rK   r  )r!  r!  r   )r   (   r   r  r   rS  r  r!  r  r!  r!  r  r  r   r  rJ   r'   r  r  r@   r  r  i6  r   r  n      r   r  Z   r  r   r  r  r  r  out_sequence1out_sequence2r  r  r   rG   r   rY   r   r   r   r   rF   rR   ru   r   rH   r  rj   s      r,   'test_sequence_map_slice_outs_known_dimsz: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
	
rb   c                d   t        j                  t        dg ddg      t        dg ddg      gdt        j                   j	                  dt        j
                  j                  d      gt        j                   j	                  dt        j
                  j                  d	      t        j                   j	                  dt        j
                  j                  d
      gt        dt
        j                  dd      t        dt
        j                  dd      t        dt
        j                  dd      t        dt
        j                  dd      t        dt
        j                  dd      g      }| j                  dt
        j                  dfdt
        j                  dfdt
        j                  dfgt        dg ddg      t        ddgd d!g|"      gg       }| j                  |t        dt
        j                  d#      t        d t
        j                  d#      t        d!t
        j                  d#      g       y )$Nr;  r  r  r  r  r  rK   r  )rS  W1r   )rT  W2r   r  r   rS  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_sequence_map_slice_outs_unknown_dimsz<TestShapeInference.test_sequence_map_slice_outs_unknown_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
	
rb   c           
        t        j                  t        ddgdg      gdt        j                   j	                  dt        j
                  j                  d      gt        j                   j	                  dt        j
                  j                  d      g      }| j                  dt
        j                  d	fd
t
        j                  dfdt
        j                  dfgt        dg ddg      t        ddgdg|      gg       }| j                  |t        dt
        j                  d      t        dt
        j                  d      g       y )Nr  rK   ry   r  )r  rU  r  r   )rJ   r'   r  r  r  r  r  r  r  r  r  r  r  r  shapesr  r  )r   rG   r   rY   r   r   r   rF   rR   ru   r   r  s      r,   'test_sequence_map_different_tensor_typez: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		
rb   c                H   | j                  g t        dg dgt        dt        j                  dd            t        ddgdg      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      g       | j                  g t        dg dgt        dt        j                  dd            t        ddgdgd	      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      g       y )
NrV  ry   r;   r:  rW  HammingWindowr   r   periodicrR   r   r   r   rF   ru   r   r   r   s     r,   test_hammingwindowz%TestShapeInference.test_hammingwindowO"  s*     I%g{/@/@"eL	 /G9se< 
 	&w0A0A2F&sK,=,=uE	
   I%g{/@/@"eL	 /G9seaH 
 	&w0A0A2F&sK,=,=uE	
rb   c                H   | j                  g t        dg dgt        dt        j                  dd            t        ddgdg      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      g       | j                  g t        dg dgt        dt        j                  dd            t        ddgdgd	      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      g       y )
NrV  ry   r;   r:  rW  
HannWindowr   r   r  r  r   s     r,   test_hannwindowz"TestShapeInference.test_hannwindowz"  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	
rb   c                H   | j                  g t        dg dgt        dt        j                  dd            t        ddgdg      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      g       | j                  g t        dg dgt        dt        j                  dd            t        ddgdgd	      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      g       y )
NrV  ry   r;   r:  rW  BlackmanWindowr   r   r  r  r   s     r,   test_blackmanwindowz&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	
rb   DFT))reals_default_axisr9   r0   r   NNNr  )reals_axis_0r   r0   r!  r   r   r   r   r   r0   r!  r9   )reals_axis_1r  r   r   r   r  )reals_axis_2r  r9   r   r   r  )reals_axis_negr  rZ  r   r   r  )reals_axis_0_onesidedr  r   r   r   )r9   r0   r!  r9   )reals_axis_1_onesidedr  r   r   r   )r   r   r!  r9   )reals_axis_2_onesidedr  r9   r   r   r   r0   r  r9   )reals_axis_neg_onesidedr  rZ  r   r   r  )complex_default_axisr  NNNr  )complex_onesidedr  r   r   N)r9   r   r9   )real_inverser  r   Nr   r  )complex_inverser  r   Nr   r  c	                   i }	|||	d<   |||	d<   |dk  r|||	d<   t        dddgdgfi |	g}
g }nv|dk\  sJ |Yt        d	g dgt        dt        j                  d
|f            t        dg ddgfi |	g}
t	        dt        j                  d
      g}nt        dg ddgfi |	g}
g }| j                  g t        d	g dgt        dt        j                  |t        j                  |t        j                        j                                     g|
g       }| j                  |t	        dt        j                  |      g|t	        dt        j                  |      t        j                  t        |      g       y )Nonesidedinverser!  r*  r  r  r  r  rV  r;   rW  r  r  r*  r  r  r  rx  r   r   r   r   rF   r   rR   r   r   onesfloat32flattenru   r   r   r   )rH   r   r+   _test_aspectr  r*  r  r  expected_shape
attributesrJ   value_infosrj   s                r,   test_dftzTestShapeInference.test_dft"  s   f 
%-Jz"$+Jy!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 	 	
rb   ))r   r  NNNr9   r  r9   )r  r  r   r   r   )r  r0   r!  r9   )r  r  r   r   r   )r   r  r!  r9   )r  r  r9   r   r   r   r0   r  r9   )r  r  rZ  r   r   r   )r  r  r   r   r   )   r0   r!  r9   )r	  r  r   r   r   )r   r!  r!  r9   )r
  r  r9   r   r   r   r0   r!  r9   )r  r  rZ  r   r   r"  )r  r  NNNr  )r  r  r   r   N)r9   r!  r9   )r  r  r   Nr   r  )r  r  r   Nr   r  c	                   i }	|||	d<   |||	d<   d}
|dk  r`|||	d<   t        dg dgt        dt        j                  d|
f      	      t        d
ddgdgfi |	g}t	        dt        j                  d      g}n|dk\  sJ |t        dg dgt        dt        j                  d|f      	      t        dg dgt        dt        j                  d|
f      	      t        d
g ddgfi |	g}t	        dt        j                  d      t	        dt        j                  d      g}nXt        dg dgt        dt        j                  d|
f      	      t        d
g ddgfi |	g}t	        dt        j                  d      g}| j                  g t        dg dgt        dt        j                  |t        j                  |t        j                        j                               	      g|g       }| j                  |t	        dt        j                  |      g|t	        dt        j                  |      t        j                  t        |      g       y )Nr  r  r  r!  r*  rV  
dft_lengthr;   rW  r  r  r  r  r$  r*  )r  r$  r  rx  r   r  )rH   r   r+   r  r  r*  r  r  r  r  r$  rJ   r  rj   s                 r,   test_dft_dft_lengthz&TestShapeInference.test_dft_dft_length>#  s   f 
%-Jz"$+Jy!
R<%)
6"!N%$k&7&7j]	 %'<!88*S
S
E 2,@Q@QSUVWKb= =")&+2C2CR$Q	 "%)(+*;*;R*	 e%Dxj_T^_$ +<9J9JBO*6;3D3DbI "%)(+*;*;R*	 e%@8*[PZ[
 +<9J9JBO
   I%#))#2::>FFH		
  !
$ 	&w0A0A;O 'x1B1BNS
 "..{GDE 	 	
rb   ))rB  r   )last_negativer!   )out_of_ranger   )out_of_range_negativer  c                @   | j                  g t        dg dgt        dt        j                  dt        j                  dt
        j                        j                                     t        dddgdgd	|
      gg       }| j                  t        j                  j                        5  | j                  |t        dt        j                  d      t        dt        j                  d      gt        j                   t"        d      g       d d d        y # 1 sw Y   y xY w)NrV  r  r9   r0   r0   r9   rx  rW  r  r  r  r   )r  r*  r9   r   r0   r9   r  r   )rR   r   r   r   r   r   r  r  r  r   rY   rZ   r   ru   r   r   r   r   rH   r   r*  rj   s       r,   test_dft_invalid_axis_opset17z0TestShapeInference.test_dft_invalid_axis_opset17#  s      I%#))$BJJ?GGI		
 %'2
QTR !
$ t33BBC 	!!*7K4E4E|T*8[5F5FU  &22;CD " 	 	 	s   )A"DDc                   | j                  g t        dg dgt        dt        j                  dt        j                  dt
        j                        j                                     t        dg dgt        dt        j                  d|f            t        dg d	d
g      gg       }| j                  t        j                  j                        5  | j                  |t        dt        j                  d      t        dt        j                  d      t        d
t        j                  d      gt!        j"                  t$        d      g       d d d        y # 1 sw Y   y xY w)NrV  r  r+  rx  rW  r*  r;   r  r  r  r,  r!  r   )rR   r   r   r   r   r   r  r  r  rF   r   rY   rZ   r   ru   r   r   r   r   r-  s       r,   test_dft_invalid_axis_opset20z0TestShapeInference.test_dft_invalid_axis_opset20#  s9      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 " 		 		 		s   A<EE)real)r9   r0   r0   r   )complexr+  c                   | j                  dt        j                  dfgt        dg dgt	        dt        j
                  |t        j                  |t        j                        j                                     t        dg dd	g      gg       }| j                  |t        dt        j
                  |      t        d	t        j
                  d
      gt        j                  t        d      g       y )Nr*  r;   rV  r  rx  rW  r  r  r  r+  r!  r   rR   r   rF   r   r   r   r   r  r  r  ru   r   r   r   r   rH   r   ry   rj   s       r,   test_dft_dynamic_axis_opset20z0TestShapeInference.test_dft_dynamic_axis_opset20$  s       k'',-I%#))RZZ8@@B		
 %!6
C !
$ 	&w0A0A5I&x1B1BLQ "..{B?@ 	 	
rb   c                   | j                  dt        j                  dfgt        dg dgt	        dt        j
                  |t        j                  |t        j                        j                                     t        dg dgt	        dt        j                  dt        j                  dgt        j                                    t        d	g d
dgd      gg       }| j                  |t        dt        j
                  |      t        dt        j                  d      t        dt        j
                  d      gt        j                  t         d      g       y )Nr*  r;   rV  r  rx  rW  r$  r  r  r%  r  r   r  NNNr9   r!  r   )rR   r   rF   r   r   r   r   r  r  r  r~  r  ru   r   r   r   r   r5  s       r,   1test_dft_dynamic_axis_onesided_dft_length_opset20zDTestShapeInference.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?@ 	 
	
rb   c                   | j                  dt        j                  dfgt        dg dgt	        dt        j
                  |t        j                  |t        j                        j                                     t        dg dd	gd
      gg       }| j                  |t        dt        j
                  |      t        d	t        j
                  d      gt        j                  t        d      g       y )Nr*  r;   rV  r  rx  rW  r  r  r  r   r8  r9  r!  r   r4  r5  s       r,   &test_dft_dynamic_axis_onesided_opset20z9TestShapeInference.test_dft_dynamic_axis_onesided_opset20t$  s       k'',-I%#))RZZ8@@B		
 %!6
QO !
$ 	&w0A0A5I&k//1F "..{B?@ 	 		
rb   c                   | j                  g t        dg dgt        dt        j                  dt        j                  dt
        j                        j                                     t        dddgdgd	
      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      gt        j                  t        d      g       y )NrV  r  r+  rx  rW  r  r  r  r   r8  r,  r  r   rR   r   r   r   r   r   r  r  r  ru   r   r   r   r   r   s     r,   &test_dft_onesided_default_axis_opset17z9TestShapeInference.test_dft_onesided_default_axis_opset17$  s      I%#))$BJJ?GGI		
 %'2
QG !
$ 	&w0A0A<P&x1B1BLQ "..{B?@ 	 	
rb   c                   | j                  g t        dg dgt        dt        j                  dt        j                  dt
        j                        j                                     t        dg ddgd	
      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      gt        j                  t        d      g       y )NrV  r  r+  rx  rW  r  r  r  r   r8  )r9   r0   r   r9   r!  r   r>  r   s     r,   &test_dft_onesided_default_axis_opset20z9TestShapeInference.test_dft_onesided_default_axis_opset20$  s      I%#))$BJJ?GGI		
 %!2XJK !
$ 	&w0A0A<P&x1B1BLQ "..{B?@ 	 	
rb   c                   | j                  g t        dg dgt        dt        j                  dd            t        dg dgt        dt        j
                  dd            t        dg d	gt        d	t        j
                  d
d            t        dg ddg      gg       }| j                  |t        dt        j                  d      t        dt        j
                  d      t        d	t        j
                  d
      t        dt        j                  d      g       | j                  g t        dg dgt        dt        j                  dd            t        dg dgt        dt        j
                  dd            t        dg d	gt        d	t        j
                  d
d            t        dg dgt        dt        j
                  dd
            t        dg ddg      gg       }| j                  |t        dt        j                  d      t        dt        j
                  d      t        d	t        j
                  d
      t        dt        j
                  d      t        dt        j                  d      g       | j                  g t        dg dgt        dt        j                  dd            t        dg dgt        dt        j
                  dd            t        dg dgt        dt        j
                  dd
            t        dg ddg      gg       }| j                  |t        dt        j                  d      t        dt        j
                  d      t        dt        j
                  d      t        dt        j                  d      g       y )NrV  signal)r9   r!  r   )r   r   r   r   r   r   r   r   r   r   r9   r9   r9   r9   r9   r   r   r   r   r   rW  
frame_stepr;   r   windowr  r$  STFT)rC  rD  rE  r  r,  frame_length)rC  rD  r  rG  )rR   r   r   r   r   rF   ru   r   r   s     r,   test_stft_realsz"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		
rb   c                >   | j                  g t        dg dgt        dt        j                  dd            t        dg dgt        dt        j                  dd            t        dg dgt        dt        j                  dd            t        dg d	gt        d	t        j
                  dd
            t        dg dgt        dt        j
                  dd            t        dg ddg      gg       }| j                  |t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      t        d	t        j
                  d      t        dt        j
                  d      t        dt        j
                  d      g       y )NrV  num_mel_binsr;   r:  rW  r$  r  sample_ratelower_edge_hertzg      $@upper_edge_hertzg      Y@MelWeightMatrixrJ  r$  rK  rL  rN  r  r  r!  )rR   r   r   r   rF   r   ru   r   r   s     r,   test_melweightmatrixz'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
	
rb   c                ^   | j                  g t        dg dgt        dt        j                  dd            t        dg dgt        dt        j                  dd            t        dg dgt        dt        j                  dd            t        dg d	gt        d	t        j
                  dd
            t        dg dgt        dt        j
                  dd            t        dg ddgt        j                        gg       }| j                  |t        dt        j                  d      t        dt        j                  d      t        dt        j                  d      t        d	t        j
                  d      t        dt        j
                  d      t        dt        j                  d      g       y )NrV  rJ  r;   r:  rW  r$  r  rK  rL  rM  rN  rO  rP  rQ  r  )output_datatyperR  )	rR   r   r   r   rF   r   rb  ru   r   r   s     r,   )test_melweightmatrix_with_output_datatypez<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
	
rb   c                `   | j                  dt        j                  dfdt        j                  dfgt	        dddgdgddg	      gg t        dt        j                  dd
      g      }| j                  |t        dt        j                  d      gt        j                  t        d      g       y )N
input_data)r!  r!  r   ry   r   CenterCropPadr   r   r   r  r!  rG  r
  r!  rG  r   r  r   r  r   s     r,   test_center_crop_pad_hwc_cropz0TestShapeInference.test_center_crop_pad_hwc_crop%        {00+>+++T2 w(?#aQRVTU$Wk.?.?wOP ! 
 	#C):):JGH!..{B?@ 	 	
rb   c                `   | j                  dt        j                  dfdt        j                  dfgt	        dddgdgddg	      gg t        dt        j                  dd
      g      }| j                  |t        dt        j                  d      gt        j                  t        d      g       y )NrX  )r   r!  r!  ry   r   rY  r   r   r9   r  rZ  r
  )r   r!  rG  r  r   r  r   s     r,   test_center_crop_pad_chw_cropz0TestShapeInference.test_center_crop_pad_chw_crop%  r]  rb   c                `   | j                  dt        j                  dfdt        j                  dfgt	        dddgdgddg	      gg t        dt        j                  dd
      g      }| j                  |t        dt        j                  d      gt        j                  t        d      g       y )NrX  )r!  r!  r   ry   r   rY  r   r   r   r  r!  rG  r
  )r!  rG  r   r  r   r  r   s     r,    test_center_crop_pad_hwc_croppadz3TestShapeInference.test_center_crop_pad_hwc_croppad%  r]  rb   c                `   | j                  dt        j                  dfdt        j                  dfgt	        dddgdgddg	      gg t        dt        j                  dd
      g      }| j                  |t        dt        j                  d      gt        j                  t        d      g       y )NrX  )r   r!  r!  ry   r   rY  r   r   r9   r  ra  r
  )r   r!  rG  r  r   r  r   s     r,    test_center_crop_pad_chw_croppadz3TestShapeInference.test_center_crop_pad_chw_croppad&  r]  rb   c                   | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg       }| j                  |t        dt        j                  d       gt        j                  t        d      g       y )	NrX  r  ry   r   rY  r   r  r   r  r   s     r,   (test_center_crop_pad_without_input_shapez;TestShapeInference.test_center_crop_pad_without_input_shape&  s      {00&9+++T2 w(?#GH
 	#C):):DAB!..{B?@ 	 	
rb   c                `   | j                  dt        j                  dfdt        j                  dfgt	        dddgdgddg	      gg t        dt        j                  dd
      g      }| j                  |t        dt        j                  d      gt        j                  t        d      g       y )NrX  )r!  rU  r   ry   r   rY  r   r   r   r  rZ  r
  r[  r  r   r  r   s     r,   ;test_center_crop_pad_with_input_shape_containing_dim_paramszNTestShapeInference.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?@ 	 	
rb   c           	        t        ddgdgt              }| j                  dt        j                  dfg|gg       }| j                  |t        dt        j                  d      gt        t        d      t        t        d      g       | j                  dt        j                  d	fg|gg       }| j                  |t        dt        j                  d	      gt        t        d      t        t        d      g       y )
NCategoryMapperrK   r   rK  r   r   r  r   )r   r0   r   )
r   r   rR   r   rF   ru   r   r   r   r   )rH   cat	graph_int	graph_strs       r,   test_category_mapperz'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/["- 	 	
rb   c           	        t        ddgdgt        d      }| j                  dt        j                  dfg|gg       }| j                  |t        dt        j                  d      gt        t        d      t        t        d	      g
       y )NTreeEnsembleRegressorrK   r   r0   )r(   	n_targetsr   r   r   r0   r   r  r   )
r   r   rR   r   rb  ru   r   r   r   r   rH   treerj   s      r,   test_tree_ensemble_regressorz/TestShapeInference.test_tree_ensemble_regressorb&  s    #EE!
   ;%%w/0F

 	#C):):GDE^Q/["- 	 	
rb   c                   d}d}t        ddgdgt        ddg|z  t        d||ft        t	        |                  t        dt
        j                  |fdg|z        dg|z  dg|z  dg|z  dg|z  t        d	|d
dddt        j                  dddg      dg|z  t        d||fdg|z        dg      }| j                  d|dfg|gg       }| j                  |t        d|d      gt        t        d      t        t        d      g       y )Nr0   r  TreeEnsemblerK   r   r   nodes_splitsnodes_modesmembership_values)r(  r  r|  r}  r~  r  r^  leaf_weightsr   )r(   rq  nodes_featureidsry  rz  nodes_truenodeidsnodes_falsenodeidsnodes_trueleafsnodes_falseleafsr{  leaf_targetidsr|  
tree_roots
Batch SizeFeatures)r  r0   r  r   )r   r   r   rk   r#   r   r   r   nanrR   ru   r   r   r   )rH   ry  interior_nodesleavesru  rj   s         r,   test_tree_ensemblez%TestShapeInference.test_tree_ensembley&  s]    EE!S>1$!U>*+	 $!!!n$	  !cN2 !s^3C.0S>1)#c3S#6	 3<$^UVIsV|Ts? 
D   5456F
 	#C0ABC^Q/["- 	 	
rb   r   r  r|  )r  r   r  ry  r  r0   )r~  r|  ry  )r  r  c                j   d}d}t        ddgdgt        ddg|z  |t        dt        j                  |fdg|z        |dg|z  dg|z  dg|z  dg|z  |dg      }| j                  dt        j                  d	fg|gg       }| j                  t        j                  j                  | j                  |       y )
Nr0   r  rx  rK   r   r   rz  )r(   rq  r}  ry  rz  r~  r  r  r  r  r|  r  r  )r   r   r   r   r   rR   rb  r   rY   rZ   r   ra   )rH   r~  r|  ry  r  r  ru  rj   s           r,   .test_tree_ensemble_fails_if_invalid_attributeszATestShapeInference.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

 	$..==t~~uUrb   c           	     N   t        ddgddgg dt              }| j                  dt        j                  dfg|gg       }| j                  |t        dt        j                  d      t        dt        j                  d	      gt        t        d
      t        t        d      g       y )NTreeEnsembleClassifierrK   r   r   )r   r   r9   r   r   )classlabels_int64sr(   rr  )r   rs  r   r  r   )r   r   rR   r   rb  ru   r   rF   r   r   r   rt  s      r,   test_tree_ensemble_classifierz0TestShapeInference.test_tree_ensemble_classifier&  s    $E#J.!
   ;%%w/0F

 	&sK,=,=uE&sK,=,=wG
 ^Q/["- 	 
	
rb   c                R   t        dddgdgt              }dD ]  \  }}| j                  dt        j                  dfdt        j                  |fg|gg       }| j                  |t        dt        j                  dd	|f      gt        t        d      t        t        d
      g        y )NArrayFeatureExtractorrK   r   r   rK  ))r   r9   )r;   r  )r   r   r#  r   r   r  r   	r   r   rR   r   rF   ru   r   r   r   )rH   node
axes_shapeexpectedrj   s        r,   test_array_feature_extractorz/TestShapeInference.test_array_feature_extractor'  s    ##JE!	
%
 	 J
 $$+++Y7+++Z8 E !!'[->->Ax@PQR 3 b1 " 	rb   c           	        t        ddgdgt              }| j                  dt        j                  dfg|gg       }| j                  |t        dt        j                  d      gt        t        d      t        t        d      g       y )	N	BinarizerrK   r   rK  r#  r   r  r   r  )rH   r  rj   s      r,   test_binarizerz!TestShapeInference.test_binarizer6'  s    EE!	
   k''3 F
 	#C):):IFG^Q/["- 	 	
rb   c           
        | j                  dt        j                  dfgt        ddgdgg dd      gg       }| j	                  |t        dt        j                  d      gt        t        d	      t        t        d
      g       y )Nr  )r9   r   r   OneHotEncoderr  r  
ai.onnx.ml)cats_int64sr(   r9   r   r   r   r   r  r   )
rR   r   rF   r   ru   r   r   r   r   r   r   s     r,   test_one_hot_encoderz'TestShapeInference.test_one_hot_encoderN'  s      {((+67#IJ ,' 
 	#Hk.?.?PQ^Q/["- 	 	
rb   c                   dg dit         j                  j                  fdg dit         j                  j                  ff}|D ]3  \  }}| j	                  ||      5  | j                  ||       d d d        5 y # 1 sw Y   @xY w)Nr  rs  classlabels_strings)r   r   c)attrsr  )rY   r   rF   r   subTestzip_map_test_case)rH   paramsr  r  s       r,   test_zip_mapzTestShapeInference.test_zip_mapf'  s     #I.0@0@0F0FG#_5t7G7G7N7NO
 "( 	:E:EjA :&&uj9: :	:: :s   A::B	c           	        | j                  dt        j                  dfgt        ddgdgfi |ddigg       }t        j
                  j                  |t        j
                  j                  t        j                  d            }| j                  |t        j
                  j                  dt        j
                  j                  |            gt        t        d      t        t        d	      g
       y )Nr  )r   r   ZipMapr  r(   r  r;   r   r  r   )rR   r   r   r   rY   r   make_map_type_protor  ru   r  r  r   r   r   )rH   r  r  rj   typs        r,   r  z$TestShapeInference.zip_map_test_casep'  s      {(((34IJ 	
 ( 
 kk--::;;L;LbQ
 	++dkkBB3G ^Q/["- 	 	
rb   c                    | j                  dt        j                  dfdt        j                  dfgt	        dddgdg      gg       }| j                  |t        dt        j                  d      g       y )Nr  r  r   r=   Compressr  rR   r   rF   r%  r   ru   r   r   s     r,   test_compress_without_axisz-TestShapeInference.test_compress_without_axis'  sx      +++^<k..8 zG[#9H:FG
 	e&<X{GXGXZa&b%cdrb   c           	         | j                  dt        j                  dfdt        j                  dfgt	        dddgdgd      gg       }| j                  |t        dt        j                  d	      g       y )
Nr  r  r   r=   r  r  r!   r)  )r9   r   r   Nr  r   s     r,   test_compress_with_axisz*TestShapeInference.test_compress_with_axis'  sz      +++^<k..8 zG[#9H:BOP
 	e&<X{GXGXZk&l%mnrb   c                   d}t         j                  j                  |      }t        j                  dddg g       }t         j                  j                  |       | j                  t         j                  j                        5  t         j                  j                  |d       d d d        t         j                  j                  |j                  |j                  |j                         y # 1 sw Y   IxY w)Nz
            <
                ir_version: 7,
                opset_import: ["" : 1]
            >
            agraph (X, Y) => (Z)
            {
                Z = CustomOp(X, Y)
            }
           CustomOpr  r   )r  r  T)rY   parserparse_modelr   r   register_schemar   rZ   r   r[   deregister_schemar'   r$   r(   )rH   r  r  	op_schemas       r,   (test_check_type_when_schema_has_empty_ioz;TestShapeInference.test_check_type_when_schema_has_empty_io'  s    	 ''.MM
	 			!!),t33BBC 	;  --eT:	;		##NNI33Y5E5E	
	; 	;s   !C--C6c                B   d}t         j                  j                  |      }| j                  t         j                  j
                        5  t         j                  j                  |d       t         j                  j                  |       d d d        y # 1 sw Y   y xY w)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	rY   r  r  r   rZ   r   r   r\   r[   rH   modeltxtr  s      r,   #test_issue_layer_normalization_6187z6TestShapeInference.test_issue_layer_normalization_6187'  y     ''1t33BBC 	5LL$$Ut$<  --e4	5 	5 	5   ABBc                B   d}t         j                  j                  |      }| j                  t         j                  j
                        5  t         j                  j                  |d       t         j                  j                  |       d d d        y # 1 sw Y   y xY w)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)
        }
        Tr  r  r  s      r,   test_issue_conv_6180z'TestShapeInference.test_issue_conv_6180'  r  r  c                B   d}t         j                  j                  |      }| j                  t         j                  j
                        5  t         j                  j                  |d       t         j                  j                  |       d d d        y # 1 sw Y   y xY w)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)
        }
        Tr  )	rY   r  r  r   r   rn  r\   rZ   r[   r  s      r,   test_issue_gemm_6185z'TestShapeInference.test_issue_gemm_6185'  sw     ''1t||;;< 	5LL$$Ut$<  --e4	5 	5 	5r  c                B   d}t         j                  j                  |      }| j                  t         j                  j
                        5  t         j                  j                  |d       t         j                  j                  |       d d d        y # 1 sw Y   y xY w)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)
        }
        Tr  r  r  s      r,   test_issue_stft_6186z'TestShapeInference.test_issue_stft_6186'  r  r  N)r   r   )r   r   r^   r   r   r   )r   Sequence[int]r   r  r   r   )r   r   r   r   r   r   r   r   )r   r   r  zTensorProto.DataTyper   r   )
rF  intrG  r  rH  r  rI  r  r   r   )forward)rF  r  rG  r  rH  r  rI  r  r  r   r   r   )
ry   r  r  r  r  r  r  r  r   r   )r   r   r+   r  r  r   r  
tuple[int]r*  
int | Noner  r  r  r  r  r  r   r   )r   r   r*  r  r   r   )r   r   ry   ztuple[int, ...]r   r   (  r   r   r   r   r   r   expandr5   r   r   r   r   r   r   r   r   r   r   r   r   unittestr   r   r   r  r  r  r  r%  r+  r1  r4  r7  r9  r=  rB  rD  rI  rK  rO  rT  rY  rr  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,  r0  r3  r5  r7  r>  rA  rC  rI  rL  rO  rT  rV  rX  r[  r^  r`  rc  rl  ro  ru  rx  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*  r4  r6  r;  rJ  rN  rQ  rT  rS  rY  r]  r_  re  rg  ri  rk  rq  ru  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'  r)  r+  r-  r/  r2  r4  r6  r8  r:  r<  rA  rD  rG  rJ  rM  rP  rY  r\  r_  ra  rd  rf  rh  rm  ro  rr  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  r3  r7  r9  rY   r   r   r   r  r?  rB  rD  rJ  rN  rQ  rS  rV  rY  r]  rd  rf  ri  rn  rp  rr  
skipUnlessr   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.  r2  r4  r8  r:  r=  rA  rC  rM  rY  rc  rj  rq  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  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  r3  r6  r;  r=  r?  rJ  rM  rO  rQ  rS  rW  rZ  r\  r_  ra  ri  rk  rm  rr  ru  rx  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  	itertoolsproductr  r&  r.  r0  r6  r:  r<  r?  rA  rH  rS  rV  r\  r_  rb  rd  rf  rh  rn  rv  rb  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  )	.0r'   r+   test_aspectr  r*  r  r  r  s	   000000000r,   r   r      s4   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X]]V 4V ]*:67

 8

 ]*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 ]*956 7< ]*>:;
 <
 ]*>:;
 <
 ]*+;<=

 >

 ]*+;<=

 >


	
	
	
	


0e 
*
*
(
(
,_(_(_,a$
(
,





"
$

	m

&

($(
2
&
<




#



$

"ae




#7

	

KJKOLMO
SV


c	
j	


&)
47
EH
	
8)

&)
47
EH
	
@9 #*
*
 *
 	*

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

  E
 E
 E
 E
 #E
 
E
O&NE
N ]& #"" '%$	
 $	
w " 	$	
 $	
&Nf
f
 f
 	f

  f
 f
 f
 f
 #f
 
f
O&Nf
P ]	
: ]	
""H ]"%	


8 ]"%	
,
,
,,
	,
,
\ ]"%	


,
	

@
:
:G
R>
@?
B
 
 
 
 

$ X"QR 
 S 
D X"QR
 S
, ];,,k.@.@+BUBUVWX"QR2
 S X2
h ] '(S1W +"K$6$6qcAg! !,"K$6$6qcAg! '(S1W +"K$5$5taS1W! !,"K$6$6qcAg! '(S1W +"K$6$6sRx! !,"K$6$6qcAg! '(S1W +"K$6$6qcAg! !,"K$5$5taS1W!9%	
'P X"QR$V
 
$V SQ'R$VL X"QR
 S
2 X"QR S: X"QR
 S
. X"QR
 S
. X"QR: S:
<	e	o
65555w($	
 $	
\$	
 $	
s   U=Ag*W9Ag7r   __main__r9   )	verbosity)r)   r   r   zset[int])r3   r   r   zlist[tuple[str, int]])6
__future__r   r  r  typingr   r   numpyr   r   r   onnx.shape_inferencerY   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   onnx.parserr   r-   get_all_schemasr'   r(   	frozensetr.   __annotations__r5   TestCaser7   r   r   main)r)   s   0r,   <module>r     s   
 #       '       $	 '$&&(: KK&--+A&+I!JKK:6 "K x00 K \W\51 W\5tx zHMMA }:s   ,C5