
    /j=                      U d dl mZ d dlZd dlZd dlZd dlmZmZ d dlZ	d dl
Z
d dlm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)m*Z* d d	l+m,Z, erd d
l-m.Z. d dZ/d  ej0                    D             Z1de2d<   d!dZ3 G d dej4                  Z5 G d de5          Z6 G d de5          Z7e8dk    r ej9        d           dS dS )"    )annotationsN)TYPE_CHECKINGAny)text_format)parameterized)ONNX_ML
GraphProto
ModelProto	NodeProtoOperatorSetIdProtoSparseTensorProtoTensorProto	TypeProtoValueInfoProtocheckerdefshelpernumpy_helper)AI_ONNX_PREVIEW_TRAINING_DOMAINONNX_DOMAINONNX_ML_DOMAINOpSchemaSchemaError)make_empty_tensor_value_info
make_graph	make_nodemake_opsetidmake_tensormake_tensor_sequence_value_infomake_tensor_value_info)parse_graph)Sequenceschemar   returnset[int]c                    t                      }t          | j        dd          D ]L}	 |                    t	          j        | j        || j                  j                   <# t          $ r Y  nw xY w|S )Nr   )	setrangesince_versionaddr   
get_schemanamedomainr   )r#   versionsversions      c/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/test/shape_inference_test.pyget_available_versionsr2   7   s    H-q"55  	LLWfmDDR     	 	 	EE	Os   8A!!
A/.A/c           	     `    i | ]+}|j         |j        t          t          |                    f,S  )r-   r.   	frozensetr2   ).0r#   s     r1   
<dictcomp>r7   C   sD     : : : K&-+A&+I+I!J!JK: : :    z%dict[str, tuple[str, frozenset[int]]]ALL_OP_VERSIONSop_namestrlist[tuple[str, int]]c                    t           |          \  }|st          d|            t          |          }fd|D             S )Nz#No versions available for operator c                @    g | ]}|d k    st           k    d| |fS )   r0   )r   )r6   r0   r.   s     r1   
<listcomp>z$all_versions_for.<locals>.<listcomp>N   sL     	 	 	
  Q;;&K//  g	
 0//r8   )r9   
ValueErrorsorted)r:   versions_setr/   r.   s      @r1   all_versions_forrD   I   sl    *73FL JHwHHIIIl##H	 	 	 	
  	 	 	 	r8   c                  8    e Zd Z	 dddZddZddZddZd ZdS ) TestShapeInferenceHelperNseed_values5Sequence[str | tuple[str, TensorProto.DataType, Any]]nodeslist[NodeProto]
value_infolist[ValueInfoProto]initializerSequence[TensorProto] | Noner$   r	   c                D   |g }d |D             }g }|D ]}t          |t                    r|d d         \  }}	t          | }
n|t          j        }	}t          |          }
||v r|                    |
           e|                    |
           |                    t          d|z   |	d                     |                    t          d|z   t          j        d                     t          dd|z   d|z   g|g          g|d d<   t          j
        |d	|g ||
          S )Nc                    h | ]	}|j         
S r4   r-   r6   xs     r1   	<setcomp>z7TestShapeInferenceHelper._make_graph.<locals>.<setcomp>d   s    <<<1<<<r8      SEED_r4   UNKNOWN_SHAPE_NReshaper   test)rM   rK   )
isinstancetupler    r   	UNDEFINEDr   appendINT64r   r   r   )selfrG   rI   rK   rM   names_in_initializerinput_value_infos
seed_value	seed_name
proto_typeseed_value_infos              r1   _make_graphz$TestShapeInferenceHelper._make_graph[   s    K<<<<< & 	 	J*e,, K(22A2%	:"8*"E(2K4I:	">z"J"J000!((9999!!/222!((*7Y+>
BOO   "((*(94k6G    ! 9,.>.JK" bqb		  #!
 
 
 	
r8   graph_or_modelGraphProto | ModelProtokwargsr   r
   c                    |                     dd          }t          |t                    rd|d<   t          j        |fi |}n|}t
          j                            |d|          }t          j	        |           |S )N	data_propFz	onnx-testproducer_nameT)strict_moderl   )
popr[   r	   r   
make_modelonnxshape_inferenceinfer_shapesr   check_model)r`   rh   rj   rl   
orig_modelinferred_models         r1   	_inferredz"TestShapeInferenceHelper._inferred   s     JJ{E22	nj11 	(&1F?#*>DDVDDJJ'J-::DI ; 
 
 	N+++r8   visNonec                  	 t          |t                    r|n|j        }d |D             		fd|j        D             |z   } | j        |fi |}t          |j        j                  }t          |d           }t          |d           }t          |          t          |          k    sJ t          ||d          D ]%\  }}| 	                    |j
        |j
                   &d S )Nc                    h | ]	}|j         
S r4   rQ   rR   s     r1   rT   z<TestShapeInferenceHelper._assert_inferred.<locals>.<setcomp>   s    ,,,1,,,r8   c                &    g | ]}|j         v|S r4   rQ   )r6   rS   names_in_viss     r1   r@   z=TestShapeInferenceHelper._assert_inferred.<locals>.<listcomp>   s%    IIIQafL.H.Hq.H.H.Hr8   c                    | j         S rX   rQ   rS   s    r1   <lambda>z;TestShapeInferenceHelper._assert_inferred.<locals>.<lambda>   s     r8   )keyc                    | j         S rX   rQ   r   s    r1   r   z;TestShapeInferenceHelper._assert_inferred.<locals>.<lambda>   s    !& r8   T)strict)r[   r	   graphrK   rw   listrB   lenzip_compare_value_infostype)
r`   rh   rx   rj   r   rv   inferred_visv
inferred_vr}   s
            @r1   _assert_inferredz)TestShapeInferenceHelper._assert_inferred   s    .*55&NN% 	
 -,,,,IIII%*IIICO'AA&AAN0;<<S..///l0@0@AAA3xx3|,,,,,, l4@@@ 	? 	?MAz%%afjo>>>>	? 	?r8   vi_typer   inferred_vi_typec                0   |                     d          r|                     d          sJ |j                             d          sJ |j                             d          sJ |j        j        |j        j        k    sJ |j                             d          |j                             d          k    sJ |j                             d          rt          |j        j        j                  t          |j        j        j                  k    sJ t          |j        j        j                  D ]h\  }}|j        j        j        |         }|j        r"|j        |j        k    sJ d| d| d            E|j        |j        k    sJ d| d| d            gd S d S |                     d          rG|                     d          sJ |j	        j        }|j	        j        }| 
                    ||           d S |                     d          rG|                     d          sJ |j        j        }|j        j        }| 
                    ||           d S |                     d          r_|                     d          sJ |j        j        |j        j        k    sJ | 
                    |j        j        |j        j                   d S |t          j                    k    r|t          j                    k    sJ d S t#          dt%          |                    )	Ntensor_type	elem_typeshape
sequence_typeoptional_typemap_typez6Unrecognized value info type in _compare_value_infos: )HasFieldr   r   r   r   dim	enumerate	dim_param	dim_valuer   r   r   r   key_type
value_typerq   r   NotImplementedErrorr;   )r`   r   r   dim_ir   inferred_dimviinferred_vis           r1   r   z-TestShapeInferenceHelper._compare_value_infos   s    M** .	#,,];;;;;&//<<<<<#/88EEEEE#-1A1M1WWWWW&// !-66w??@ @ @ @ "++G44 7.4899S$06:> >     #,G,?,E,I"J"J 
 
JE3#3#?#E#I%#PL} "}0FFFF@@@,<@@@  GFFF  #}0FFFF@@@,<@@@  GFFF 
 
 o.. 	#,,_=====&0B*8BK%%b+66666o.. 	#,,_=====&0B*8BK%%b+66666j)) 	#,,Z88888#,0@0IIIII%% +-=-F-Q     ((((#t~'7'7777777%H#g,,  r8   c                6    |rt          j        |           d S d S rX   )pytestskip)r`   	conditionreasons      r1   skipIfzTestShapeInferenceHelper.skipIf   s*     	 K	  	 r8   rX   )
rG   rH   rI   rJ   rK   rL   rM   rN   r$   r	   )rh   ri   rj   r   r$   r
   )rh   ri   rx   rL   rj   r   r$   ry   )r   r   r   r   r$   ry   )__name__
__module____qualname__rg   rw   r   r   r   r4   r8   r1   rF   rF   Z   s         59/
 /
 /
 /
 /
b   ? ? ? ?*1 1 1 1f         r8   rF   c                  8   e Zd ZdvdZdwdZ ej         ed	                    dvd
            Z ej         ed	                    dvd            Z	 ej         ed	                    dvd            Z
 ej         ed	                    dvd            Z ej         ed	                    dvd            Z ej         ed	                    dvd            Z ej         ed	                    dvd            ZdxdZ ej         ed                    dvd            ZdydZ ej         ed                    dvd            Z ej         ed                    dvd            Z ej         ed                     ej        d          dvd                        Z ej         ed                    dvd            Z ej         ed                     dvd!            Z ej         ed                     dvd"            Z ej         ed                     dvd#            Z ej         ed                     dvd$            Z ej         ed                     dvd%            Z ej         ed                     dvd&            Z ej         ed'                    dvd(            Z ej         ed'                    dvd)            Z ej         ed'                    dvd*            Z  ej         ed'                    dvd+            Z! ej         ed'                    dvd,            Z" ej         ed-                    dvd.            Z# ej         ed-                    dvd/            Z$ ej         ed-                    dvd0            Z% ej         ed-                    dvd1            Z& ej         ed-                    dvd2            Z' ej         ed3                    dvd4            Z( ej         ed3                    dvd5            Z) ej         ed3                    dvd6            Z* ej         ed3                    dvd7            Z+ ej         ed3                    dvd8            Z, ej         ed3                    dvd9            Z- ej         ed3                    dvd:            Z. ej         ed3                    dvd;            Z/ ej         ed<                    dvd=            Z0 ej         ed<                    dvd>            Z1 ej         ed?                    dvd@            Z2 ej         ed?                    dvdA            Z3 ej         ed?                    dvdB            Z4 ej         ed?                    dvdC            Z5 ej         ed?                    dvdD            Z6 ej         edE                    dvdF            Z7 ej         edG                    dvdH            Z8 ej         edE                    dvdI            Z9 ej         edE                    dvdJ            Z: ej         edE                    dvdK            Z; ej         edE                    dvdL            Z< ej         edE                    dvdM            Z= ej         edE                    dvdN            Z> ej         edE                    dvdO            Z? ej         edE                    dvdP            Z@ ej         edE                    dvdQ            ZA ej         edE                    dvdR            ZB ej         edE                    dvdS            ZC ej         edE                    dvdT            ZD ej         edU                    dvdV            ZE ej         edU                    dvdW            ZF ej         edU                    dvdX            ZG ej         edU                    dvdY            ZH ej         edU                    dvdZ            ZI ej         edU                    dvd[            ZJ ej         ed\                    dvd]            ZK ej         ed^                    dvd_            ZL ej         ed^                    dvd`            ZM ej         ed^                    dvda            ZN ej         edb                    dvdc            ZO ej         edb                    dvdd            ZP ej         ede                    dvdf            ZQdvdgZR ej         ede                    dvdh            ZSdvdiZT ej         edj                    dvdk            ZU ej         edj                    dvdl            ZV ej         edm                    dvdn            ZW ej         edm                    dvdo            ZXdvdpZY ej         edq                    dvdr            ZZ ej         eds                    dvdt            Z[ ej         eds                    dvdu            Z\ ej         edv                    dvdw            Z] ej         edv                    dvdx            Z^dvdyZ_dvdzZ`dvd{Zadvd|Zbdvd}Zcdvd~ZddvdZedvdZfdvdZgdvdZhdvdZidvdZjdvdZkdvdZldvdZmdvdZndvdZodvdZpdvdZqdvdZrdvdZsdvdZtdvdZudvdZvdvdZwdvdZxdvdZydvdZzdvdZ{dvdZ|dvdZ}dvdZ~dvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdzdZdzdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdÄZdvdĄZdvdńZdvdƄZd{d̄Zdvd̈́Zd{d΄ZdvdτZ	 d|d}d҄ZdvdӄZd{dԄZdvdՄZdvdքZdvdׄZdvd؄ZdvdلZdvdڄZdvdۄZdvd܄Zdvd݄ZdvdބZdvd߄ZdvdZdvdZdvdZdvdZdvdZdvdZdvdZÐdvdZĐdvdZŐdvdZƐdvdZǐdvdZȐdvdZɐdvdZʐdvdZːdvdZ̐dvdZ͐dvdZΐdvdZϐdvdZАdvdZѐdvdZҐdvdZӐdvdZԐdvdZՐdvdZ֐dvdZאdvdZؐdvdZِdvdZڐdvdZېdvdZܐdvd ZݐdvdZސdvdZߐdvdZdvdZdvdZdvdZdvdZdvdZdvd	Zdvd
ZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvd Zdvd!Zdvd"Zdvd#Z dvd$Zdvd%Zdvd&Zdvd'Zdvd(Zdvd)Zdvd*Zdvd+Zdvd,Z	dvd-Z
dvd.Zdvd/Zdvd0Zdvd1Zdvd2Zdvd3Zdvd4Zdvd5Zdvd6Zdvd7Zdvd8Zdvd9Zdvd:Zdvd;Zdvd<Zdvd=Zdvd>Zdvd?Zdvd@ZdvdAZdvdBZdvdCZ dvdDZ!dvdEZ"dvdFZ#dvdGZ$dvdHZ%dvdIZ&dvdJZ'dvdKZ(dvdLZ)dvdMZ*dvdNZ+dvdOZ,dvdPZ-dvdQZ.dxdRZ/dvdSZ0dydTZ1dvdUZ2dxdVZ3dvdWZ4 ej        e5j6        j7        e5j6        j8        e5j6        j9        g          dvdX            Z:dvdYZ;dvdZZ<dvd[Z=dvd\Z>dvd]Z? ej        d          dvd^            Z@ ej        e5j6        j7        e5j6        j8        e5j6        j9        g          dvd_            ZAdvd`ZBdvdaZCdvdbZDdvdcZEdvddZFdvdeZGdvdfZHdvdgZI ejJ        eKdh          dvdi            ZL ejJ        eKdh          dvdj            ZMdvdkZNdvdlZOdvdmZPdvdnZQdvdoZR ej        eKr edp          ng dqr          dvds            ZS ej        eKr edp          ng dqr          dvdt            ZT ej        eKr edp          ng dqr          dvdu            ZUd~d{ZVdvd|ZWdvd}ZXdvd~ZYdvdZZdvdZ[dvdZ\dvdZ]dvdZ^dvdZ_dvdZ`dvdZadvdZbdvdZcdvdZddvdZedvdZfdvdZgdvdZhdvdZidvdZjdvdZkdvdZldvdZmdvdZndvdZodvdZpdvdZqdvdZrdvdZsdvdZtdvdZudvdZvdvdZwdvdZxdvdZydvdZzdvdZ{dvdZ|dvdZ}dvdZ~dvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdÄZdvdĄZdvdńZdvdƄZdvdǄZdvdȄZdvdɄZdvdʄZdvd˄Zdvd̄Zdvd̈́Zdvd΄ZdvdτZdvdЄZdvdфZdvd҄ZdvdӄZdvdԄZdvdՄZdvdքZdvdׄZdvd؄ZdvdلZdvdڄZdvdۄZdvd܄Zdvd݄ZdvdބZdvd߄ZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZÐdvdZĐdvdZŐdvdZƐdvdZǐdvdZȐd ZɐdvdZʐdvdZːdvdZ̐dvdZ͐dvdZΐdvdZϐdvdZАdvdZѐdvdZҐdvdZӐdvdZԐdvdZՐdvdZ֐dvdZאdvdZؐdvdZِdvdZڐdvd ZېdvdZܐdvdZݐdvdZސdvdZߐdvdZdvdZdvdZdvdZdvd	Zdvd
Z ej         ed                    dvd            Z ej         ed                    dvd            Z ej         ed                    dvd            Z ej         ed                    dvd            Z ej         ed                    dvd            ZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZdvdZd Zd Zd  Zd! Zd" Zd# Zd$ Zd% Z ej        d&  e j         ed'          d(          D                       dd3            Z ej        d4  e j         ed'          d5          D                       dd6            Z ej        g d7          dd8            Z ej        g d7          dd9            Zdvd:Zdvd;Zdvd<Zdvd=Z	 ej        d>d?g          ddA            Z
 ej        d>g          ddB            Z ej        d>g          ddC            ZdvdDZdvdEZdF ZdG ZdH ZdI ZdJ ZdK ZdL ZdM ZdN Z ejJ        eKdh          dvdO            Z ej        g dPdQdRgfg dPdSfdSg dTfdUg           ejJ        eKdh          dvdV                        Z ejJ        eKdh          dvdW            Z ej        e6j7        e6j        e6j8        g           ejJ        eKdh          dvdX                        Z ej        dYgdZz   ed[e6j        d\d]gd^z             ed_e6j        d`d]gdaz            fdYgdaz   ed[e6j7        d\d]gd^z             ed_e6j        d`d]gdaz            fdYgdaz   ed[e6j        dbd]gdcz             ed_e6j        d`d]gdaz            fdYgdaz   ed[e6j        d\d]gd^z             ed_e6j7        d`d]gdaz            fg           ejJ        eKdh          dvdd                        Z ejJ        eKdh          dvde            Z ejJ        eKdh          dvdf            Z  ejJ        eKdh          dvdg            Z! ejJ        eKdh          dvdh            Z" ej        g dPg dTfdUg           ejJ        eKdh          dvdi                        Z# ejJ        eKdh          dvdj            Z$dvdkZ%dvdlZ&dvdmZ'dn Z(do Z)dp Z*dq Z+dr Z, ej         eds                    dt             Z-dvduZ.dSS (  TestShapeInferencer$   ry   c                    |                      dgg g           }|                     t          j        j        | j        |           d S )Ny)rg   assertRaisesrq   rr   InferenceErrorrw   r`   r   s     r1   test_empty_graphz#TestShapeInference.test_empty_graph   sA      #B//$.=t~uUUUUUr8   opr;   rj   r   c                    |                      dt          j        dfgt          |ddfi |gg           }|                     |t          dt          j        d          g           d S )NrS         r?   r   rg   r   FLOATr   r   r    )r`   r   rj   r   s       r1   _identity_propz!TestShapeInference._identity_prop   s      ;$j12r3..v../
 

 	*30A:NNO	
 	
 	
 	
 	
r8   	Transposec           
        |                      dt          j        dfgt          ddgdgg d          gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S 	NXrU      r   r   Y   r   rU   permr   rU   r   opset_imports	rg   r   r   r   r   r    r   r   r   r`   _r0   r   s       r1   test_transposez!TestShapeInference.test_transpose   s      ;$i01{SEC5yyyAAAB
 

 	#C):IFFG!.{GDDE 	 	
 	
 	
 	
 	
r8   c           
     F   |                      dt          j        dfgt          ddgdgg d          gt	          dt          j        d           g          }|                     |t	          dt          j        d          gt          j        t          |          g           d S r   )	rg   r   r   r   r    r   r   r   r   r   s       r1   test_transpose_preexistingz-TestShapeInference.test_transpose_preexisting  s      ;$i01{SEC5yyyAAAB#C):DAAB
 

 	#C):IFFG!.{GDDE 	 	
 	
 	
 	
 	
r8   c                
   |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )Nr   r4   r   r   r   r   r   s       r1   test_transpose_scalarz(TestShapeInference.test_transpose_scalar  s      ;$b)*{SEC5112
 
 	#C):B??@!.{GDDE 	 	
 	
 	
 	
 	
r8   c           
     F   |                      dt          j        dfgt          ddgdgg d          gt	          dt          j        d          g          }|                     |t	          dt          j        d          gt          j        t          |          g	           d S )
Nr   r   r   r   r   r   )r   abr   r   )
rg   r   r   r   r    r]   r   r   r   r   r   s       r1   test_transpose_partialz)TestShapeInference.test_transpose_partial  s      ;$i01{SEC5yyyAAAB#C)>NNO
 

 	#C):IFFG!.{GDDE 	 	
 	
 	
 	
 	
r8   c           
        |                      dt          j        dfgt          ddgdgg d          gt	          dt          j        d          g          }|                     t          j        j        | j	        |           d S )Nr   r   r   r   r   r   )r?   r?   r?   )
rg   r   r   r   r    r   rq   rr   r   rw   r`   r   r   s      r1   *test_transpose_preexisting_incorrect_shapez=TestShapeInference.test_transpose_preexisting_incorrect_shape,  s      ;$i01{SEC5yyyAAAB#C):IFFG
 

 	$.=t~uUUUUUr8   c           
        |                      dt          j        dfgt          ddgdgg d          gt	          dt          j        d          g          }|                     t          j        j	        | j
        |           d S )Nr   r   r   r   r   r   r   )rg   r   r   r   r    STRINGr   rq   rr   r   rw   r   s      r1   )test_transpose_preexisting_incorrect_typez<TestShapeInference.test_transpose_preexisting_incorrect_type5  s      ;$i01{SEC5yyyAAAB#C);YGGH
 

 	$.=t~uUUUUUr8   c           
         |                      dt          j        dfgt          ddgdgg d          gg           }|                     t
          j        j        | j        |           d S )Nr   r   r   r   )r   r   r   r   	rg   r   r   r   r   rq   rr   r   rw   r   s      r1   &test_transpose_incorrect_repeated_permz9TestShapeInference.test_transpose_incorrect_repeated_perm>  sq      ;$i01{SEC5yyyAAAB
 

 	$.=t~uUUUUUr8   shape1Sequence[int]shape2c                8   t          j        t          j        t          j        |                                        |          t          j        t          j        |                                        |                    j        }|                     dt          j        |fdt          j        |fgt          dddgdg          gg           }| 
                    |t          dt          j        |          gt          j        t          |          g           d S NrS   r   MatMulzr   )npmatmularangeprodreshaper   rg   r   r   r   r   r    r   r   r   r`   r0   r   r   expected_out_shaper   s         r1    _make_matmul_test_all_dims_knownz3TestShapeInference._make_matmul_test_all_dims_knownG  s     YIbgfoo&&..v66Ibgfoo&&..v66
 
  	   ;$f-[5F/OPx#scU334
 

 	#C):<NOOP!.{GDDE 	 	
 	
 	
 	
 	
r8   r   c                    |                      |dd           |                      |dd           |                      |dd           |                      |dd           |                      |dd           |                      |dd           |                      |dd           |                      |dd	           |                      |d
d	           |                      |dd           |                      |dd	           d S )NrU   r   rU   rU   r   )r?   rU   rU   r   r   rU   rU   r   r   r   rU   r   rU   r   )r   r   rU   r?   r   r   rU   r   r   rU   r   )r   r`   r   r0   s      r1   test_matmul_all_dims_knownz-TestShapeInference.test_matmul_all_dims_knownY  s   --gtTBBB--gvvFFF--gvvFFF--gvvFFF--gvvFFF--gtVDDD--gvtDDD--gy)LLL--gy)LLL--g|\RRR--gvyIIIIIr8   r   c                (   |                      dt          j        |fdt          j        |fgt          dddgdg          gg           }|                     |t          dt          j        |          gt          j        t          |          g           d S r   r   r   s         r1   _make_matmul_test_allow_unknownz2TestShapeInference._make_matmul_test_allow_unknownh  s       ;$f-[5F/OPx#scU334
 

 	#C):<NOOP!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |ddd           |                      |ddd           |                      |ddd           |                      |ddd           |                      |d	dd           |                      |d	d
d           |                      |ddd           |                      |ddd           |                      |dd d            |                      |d d d            d S NrX   r4   r   r   )rU   r   )r   r   )r   r   )r   N)Nr   r   )r   rU   r?   r   r   r?   )r   r   r   rU   r   r   r   r?   )r   r   s      r1   test_matmul_allow_unknownz,TestShapeInference.test_matmul_allow_unknownv  s   ,,WgwKKK,,WdGRHHH,,WdHfMMM,,WfhQQQ,,Wi8TTT,,WihWWW,,Y[	
 	
 	
 	,,\;	
 	
 	
 	,,WdD$GGG,,WdD$GGGGGr8   Castc           	     "   |                      dt          j        dfgt          ddgdgt          j                  gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   rU   r   r   r  r   tor   )
rg   r   r   r   UINT8r   r    r   r   r   r   s       r1   	test_castzTestShapeInference.test_cast  s      ;$i01vuse0ABBBC
 

 	#C):IFFG!.{GDDE 	 	
 	
 	
 	
 	
r8   zIssue #5960c           	         |                      dt          j        dfgt          ddgdgt          j                  gg           }|                     t          j        j        | j	        |           d S )NrS   r  r  r   r  )
rg   r   r   r   
COMPLEX128r   rq   rr   r   rw   r   s       r1   test_cast_to_complexz'TestShapeInference.test_cast_to_complex  sr    
   ;$i01vuse0FGGGH
 
 	$.=t~uUUUUUr8   CastLikec                (   |                      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          gt          j        t          |          g           d S )NrS   r  tNr  r   r   )
rg   r   r   FLOAT16r   r   r    r   r   r   r   s       r1   test_cast_likez!TestShapeInference.test_cast_like  s      ;$i038KV2TUzC:u556
 

 	#C)<iHHI!.{GDDE 	 	
 	
 	
 	
 	
r8   BitCastc           	     "   |                      dt          j        dfgt          ddgdgt          j                  gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   r  r  r   r  r   
rg   r   r   r   INT32r   r    r   r   r   r   s       r1   test_bitcast_same_sizez)TestShapeInference.test_bitcast_same_size  s       ;$i01y3%#;3DEEEF
 

 	#C):IFFG!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     "   |                      dt          j        dfgt          ddgdgt          j                  gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   r4   r  r   r  r   r  r   s       r1   test_bitcast_scalarz&TestShapeInference.test_bitcast_scalar  s       ;$b)*y3%#;3DEEEF
 

 	#C):B??@!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     "   |                      dt          j        dfgt          ddgdgt          j                  gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS      r  r   r  r   )
rg   r   r   r   UINT32r   r    r   r   r   r   s       r1   test_bitcast_1dz"TestShapeInference.test_bitcast_1d  s       ;$d+,y3%#;3EFFFG
 

 	#C);TBBC!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     "   |                      dt          j        dfgt          ddgdgt          j                  gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   r   r?   r  r   r  r   )
rg   r   DOUBLEr   r_   r   r    r   r   r   r   s       r1   test_bitcast_double_to_int64z/TestShapeInference.test_bitcast_double_to_int64  s       ;%v./y3%#;3DEEEF
 

 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     "   |                      dt          j        dfgt          ddgdgt          j                  gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   r      r  r   r  r   )
rg   r   INT8r   r	  r   r    r   r   r   r   s       r1   test_bitcast_int8_to_uint8z-TestShapeInference.test_bitcast_int8_to_uint8  s       ;#V,-y3%#;3DEEEF
 

 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     "   |                      dt          j        dfgt          ddgdgt          j                  gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   r   r  r   r  r   )
rg   r   r  r   INT16r   r    r   r   r   r   s       r1   test_bitcast_float16_to_int16z0TestShapeInference.test_bitcast_float16_to_int16  s       ;&/0y3%#;3DEEEF
 

 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   Col2Imc                   |                      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          }|                     |t          dt          j        d          gt          j	        t          |          g           d S )Ninput)r   r?   r?   output_shaper   kernel_shaper-  r/  r0  r1  outputr?   r?   r   r?   rM   r   r   r?   r?   r   rg   r   r   r_   r   r   r   r    r   r   r   r   s       r1   test_col2imzTestShapeInference.test_col2im  s      ++Y7!2D9!2D9 GGG( 
 NK,=tVLLNK,=tVLL ! 
 
" 	#Hk.?NNO!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          dt          j        d          gt          j	        t          |          g           d S )Nr/  )r   	   r   r0  r   r1  r-  r2  r3  rU   stridesr4  r   r   r6  r7  r   r8  r   s       r1   test_col2im_stridesz&TestShapeInference.test_col2im_strides  s      ++Y7!2D9!2D9 ===JF	   NK,=tVLLNK,=tVLL ! 
 
( 	#Hk.?NNO!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          dt          j        d          gt          j	        t          |          g           d S )Nr/  )r   r?      r0  r   r1  r-  r2  r3  )r   r   r   r   padsr4  r5  r6  r7  r   r8  r   s       r1   test_col2im_padsz#TestShapeInference.test_col2im_pads7  s      ++Z8!2D9!2D9 ===J%	   NK,=tVLLNK,=tVLL ! 
 
( 	#Hk.?NNO!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          dt          j        d          gt          j	        t          |          g           d S )Nr/  )r   r   r?   r0  r   r1  r-  r2  r3  r   r?   	dilationsr'  r'  rU   rU   r6  )r   r   r'  r'  r   r8  r   s       r1   test_col2im_dilationsz(TestShapeInference.test_col2im_dilationsS  s      ++Y7!2D9!2D9 ===J !f	   NK,=tVLLNK,=tVLL ! 
 
( 	#Hk.?NNO!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          dt          j        d          gt          j	        t          |          g           d S )Nr/  )r   
      r0  r   r1  r-  r2  r3  r   r   r?   )r   r   r?   r6  r   rU   r   r   r?   r   r8  r   s       r1   test_col2im_5dz!TestShapeInference.test_col2im_5do  s      ++[9!2D9!2D9 GGG( 
 NK,=tYOONK,=tYOO ! 
 
" 	#Hk.?QQR!.{GDDE 	 	
 	
 	
 	
 	
r8   Concatc           	     ,   |                      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	          gt          j        t          |          g
           d S )NrS   r  r   )   r   r   rQ  r   r   axis)r;  r   r   r   r   r   s       r1   test_concatzTestShapeInference.test_concat        ;$i038I92UVx#scU;;;<
 

 	#C):IFFG!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfddt          j        dfgt          dg ddgd	
          gg           }|                     t
          j        j        | j        |           d S )NrS   r  r   r   NNNrQ  rS   r   r   outr   rT  r   r   s      r1   test_concat_missing_shapez,TestShapeInference.test_concat_missing_shape  s      k'3k');<
 x5'BBBC
 
 	$.=t~uUUUUUr8   c           	     ,   |                      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          gt          j        t          |          g	           d S )
NrS   rU   rU   rU   r   rQ  r   rU   rT  )rU   rU   r   r   r   r   s       r1   test_concat_3d_axis_2z(TestShapeInference.test_concat_3d_axis_2  rW  r8   c           	     ,   |                      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	          gt          j        t          |          g
           d S )NrS   r   rU   r   )r   r   rQ  r   r   rT  )r   r?   r   r   r   s       r1   test_concat_paramz$TestShapeInference.test_concat_param  s      ;$h/#{7H(1STx#scU;;;<
 

 	#C):HEEF!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	        |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   ra  rQ  r   r   rT  r   r   r   s       r1   test_concat_param_single_inputz1TestShapeInference.test_concat_param_single_input  s      ;$h/0x#A6667
 

 	#C):HEEF!.{GDDE 	 	
 	
 	
 	
 	
r8   rY   c                \   |                      |dk     d           |                     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	          gt          j	        t          |          g
           d S )N   z'Rank inference is added from Version 14rS   r  r   r   rY   r   NNr   )r   rg   r   r	  r_   r   r   r    r   r   r   r   s       r1   %test_reshape_dynamic_shape_known_rankz8TestShapeInference.test_reshape_dynamic_shape_known_rank  s    GbL"KLLL  ;$i07K<Mt2TUy3.3%889
 

 	#C):LIIJ!.{GDDE 	 	
 	
 	
 	
 	
r8   c                (   |                      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           gt          j        t          |          g           d S )NrS   r  r   MrY   r   r   
rg   r   r	  r_   r   r   r    r   r   r   r   s       r1   #test_reshape_dynamic_shape_symbolicz6TestShapeInference.test_reshape_dynamic_shape_symbolic  s      ;$i07K<Mv2VWy3.3%889
 

 	#C):DAAB!.{GDDE 	 	
 	
 	
 	
 	
r8   c                (   |                      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           gt          j        t          |          g           d S )NrS   r  r   rY   r   r   rl  r   s       r1   "test_reshape_dynamic_unknown_shapez5TestShapeInference.test_reshape_dynamic_unknown_shape  s      ;$i07K<Mt2TUy3.3%889
 

 	#C):DAAB!.{GDDE 	 	
 	
 	
 	
 	
r8   c                b   |                      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          }|                     |t          dt          j        d          gt          j	        t          |          g	           d S )
NrS   r  r   r   rY   r   r   r  r6  r   rg   r   r	  r_   r   r   r   r    r   r   r   r   s       r1   test_reshape_static_shapez,TestShapeInference.test_reshape_static_shape  s      ;$i07K<Mt2TUy3.3%889$Wk.?vNNO	 ! 
 
 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   c                b   |                      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          }|                     |t          dt          j        d	          gt          j	        t          |          g
           d S )NrS   r  r   r   rY   r   )r   r   r'   r6  r   r   rr  r   s       r1   "test_reshape_static_shape_inferredz5TestShapeInference.test_reshape_static_shape_inferred  s      ;$i07K<Mt2TUy3.3%889$Wk.?zRRS	 ! 
 
 	#C):IFFG!.{GDDE 	 	
 	
 	
 	
 	
r8   c                b   |                      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          }|                     |t          dt          j        d          gt          j	        t          |          g	           d S )
NrS   r   r   r   r   r   rY   r   r   r   r   r6  r   rr  r   s       r1   test_reshape_static_shape_zeroz1TestShapeInference.test_reshape_static_shape_zero  s      ;$i07K<Mt2TUy3.3%889$Wk.?yQQR	 ! 
 
 	#C):IFFG!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |dk     d           |                     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          }|                     |t          dt          j        d          gt          j
        t          |          g           d S )Nrf  z"allowzero is added from Version 14rS   r   r   r   r   r   rY   r   r   	allowzerorx  r6  r   )r   rg   r   r	  r_   r   r   r   r    r   r   r   r   s       r1   #test_reshape_static_shape_allowzeroz6TestShapeInference.test_reshape_static_shape_allowzero  s    GbL"FGGG  k'3++T2 y3.3%1EEEF$Wk.?yQQR ! 
 
 	#C):IFFG!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          t          d	t          j        d          gt          j	        t          |          g
           d S )NrS   r  Constantr   r   rq  valuerY   r   r   )rg   r   r	  r   r   r_   r   r    r   r   r   r   s       r1   "test_reshape_static_shape_constantz5TestShapeInference.test_reshape_static_shape_constant-  s      ;$i01I%g{/@$OO	   )c7^cU;; 
 
 	&w0A4HH&sK,=vFF ".{GDDE 	 	
 	
 	
 	
 	
r8   Upsamplec                    dk    r                      dt          j        dfgt          ddgdgg d          gg                                t          dt          j        d          gt          j        t                    g	           d S                       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 |             d S                      t          j        j                  5 } |             d d d            n# 1 swxY w Y   |j        }dt!          |          v sJ d S )NrS  rS   rU   r   r   r?   r  r         ?皙??ffffff?scalesrU   r   r   r;  r   r  r   r6  c                                           t          dt          j        d          gt	          j        t                    g           d S Nr   r  r   r   r    r   r  r   r   r   r   r`   r0   s   r1   call_inferencez8TestShapeInference.test_upsample.<locals>.call_inference_  U    %%+C1BLQQR#)#6{G#L#L"M &     r8   r;  Upsample is deprecated)rg   r   r  r   r   r    r   r   r   r   r   r   rq   r   ValidationError	exceptionr;   r`   r   r0   r  cmr  r   s   ` `   @r1   test_upsamplez TestShapeInference.test_upsampleE  s   a<<$${(,78:use<P<P<PQQQR E
 !!'[->MMN%2;HHI "      $$++\:{0$7 :X>>?+*;TCWXX % 
 
E       !||      &&t|'CDD %"N$$$% % % % % % % % % % % % % % %L	/3y>>AAAAAAs   2E		EEc                4    dk    r                      dt          j        dfgt          ddgdgg d          gg                                t          dt          j        d          gt          j        t                    g	           d S                       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                                          d          g           fd}dk    r |             d S                      t          j        j                  5 } |             d d d            n# 1 swxY w Y   |j        }dt'          |          v sJ d S )NrS  rS   r  r  r          @r  gffffff@r  r  rU   r   r;  r;  r   r  r  r  r  <f4dtypeTvalsrawr6  c                                           t          dt          j        d          gt	          j        t                    g           d S r  r  r  s   r1   r  zATestShapeInference.test_upsample_raw_data.<locals>.call_inference  r  r8   r;  r  )rg   r   r  r   r   r    r   r   r   r   r   r   arraytobytesr   rq   r   r  r  r;   r  s   ` `   @r1   test_upsample_raw_dataz)TestShapeInference.test_upsample_raw_datao  s0   a<<$${(,78:use<P<P<PQQQR E
 !!'[->MMN%2;HHI "      $$++\:{0$7 :X>>? #)X&:&:&:%HHHPPRR    %  E$       !||      &&t|'CDD %"N$$$% % % % % % % % % % % % % % %L	/3y>>AAAAAAs   E33E7:E7Expandc                b   |                      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          }|                     |t          dt          j        d	          gt          j	        t          |          g
           d S )NrS   r   r   r   r   r  r   )rU   r   r'  r6  rU   r   r'  r   rg   r   r  r_   r   r   r   r    r   r   r   r   s       r1   test_expandzTestShapeInference.test_expand  s      ;$f-9JD/QRx#w#778$Wk.?yQQR	 ! 
 
 	#C):IFFG!.{GDDE 	 	
 	
 	
 	
 	
r8   c                b   |                      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          }|                     |t          dt          j        d          gt          j	        t          |          g	           d S )
NrS   r4   r   r   r  r   )r   r  r6  r   r  r   s       r1   test_expand_scalar_inputz+TestShapeInference.test_expand_scalar_input  s      ;$b)G[5F+MNx#w#778$Wk.?vNNO	 ! 
 
 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      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	
                                          d          g          }| 	                    |t          dt          j        d          gt          j        t          |          g           d S )NrS   r  r   r   r  r   r   r   <i8r  Tr  r6  r   r   r   )rg   r   r  r_   r   r   r   r  r  r   r    r   r   r   r   s       r1   test_expand_raw_dataz'TestShapeInference.test_expand_raw_data  s      ;$f-9JD/QRx#w#778%1a&666>>@@  	 ! 
 
 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   c                ,   |                      dt          j        dfdt          j        dfgt	          dddgdg          gg g           }|                     |t          dt          j        d          gt          j        t          |          g	           d S )
NrS   r   rU   Nr   r   r  r   r6  )NrU   Nr   
rg   r   r  r_   r   r   r    r   r   r   r   s       r1   test_expand_dynamic_shapez,TestShapeInference.test_expand_dynamic_shape  s      k'6++T2 x#w#778 ! 
 
 	#C):OLLM!.{GDDE 	 	
 	
 	
 	
 	
r8   c                ,   |                      dt          j        dfdt          j        dfgt	          dddgdg          gg g           }|                     |t          dt          j        d           gt          j        t          |          g           d S )	NrS   r  r   )unk__0r  r   r6  r   r  r   s       r1   test_expand_symbolic_shapez-TestShapeInference.test_expand_symbolic_shape  s      k'6++[9 x#w#778 ! 
 
 	#C):DAAB!.{GDDE 	 	
 	
 	
 	
 	
r8   Resizec                   |dk    r|                      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	          }|                     |t          dt          j        d
          gt          j	        t          |          g           d S |dk    r|                      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	          }|                     |t          dt          j        d          gt          j	        t          |          g           d S |                      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	          }|                     |t          dt          j        d          gt          j	        t          |          g           d S )NrL  rS   r  r  r  r  r   r  r6  r  r      roir  sizesrS   r  r  r  )r   r?   r'  rS  rS   r   r  )rg   r   r  r   r   r   r   r    r   r   r   r_   r   s       r1   test_resize_sizez#TestShapeInference.test_resize_size  s   b==$$++\:{0$7 8c8_se<<=+*;TCWXX % 
 
E !!'[->MMN%2;HHI "     
 ]]$$++\:K-t4{0$7k/6	 8%D%D%DseLLM):D,OO %  E !!'[->MMN%2;HHI "      $$++\:K-t4k/6
 8%>%>%>FFG):D,OO %  E !!'[->MMN%2;HHI "     r8   RMSNormalizationc           	     ,   |                      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          gt          j        t          |          g	           d S )
Nr   r  CHWscale)r  r  r  r   rU   rT  r   r   r   s       r1   test_rms_normalizationz)TestShapeInference.test_rms_normalization-  s      k')=>++Z8 )C>C5qIIIJ
 
 	#C):<PQQR!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |dk     d           |                     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          }|                     |t          dt          j        d          gt          j        t          |          g           d S )N   axes is from Version 18rS   r  r  r  r  r   r  r  r   r   axesr'  rS  r6  )rU   r   r'  rS  r   r   rg   r   r  r   r_   r   r   r   r    r   r   r   r   s       r1   test_resize_size_axes_2_3z,TestShapeInference.test_resize_size_axes_2_3=      GbL";<<<  k'6)40++T2
 x!:!:!:SEOOOP$Wk.?vNNO ! 	
 	
 	#C):LIIJ!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |dk     d           |                     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          }|                     |t          dt          j        d          gt          j        t          |          g           d S )Nr  r  rS   r  r  r  r  r   r  r  r   r   rU   r  r  r6  )rU   r   rS  r'  r   r  r   s       r1   test_resize_size_axes_3_2z,TestShapeInference.test_resize_size_axes_3_2P  r  r8   c                   |                      |dk     d           |                     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          }|                     |t          dt          j        d          gt          j        t          |          g           d S )Nr  +keep_aspect_ratio_policy is from Version 18rS   r"  r  r  r  r   r  r  r   
not_largerkeep_aspect_ratio_policyrH  r6  r&  r   r  r   s       r1   test_resize_size_not_largerz.TestShapeInference.test_resize_size_not_largerc  s   bL9	
 	
 	
   k'0)40++T2 ---E-9	   $Wk.?vNNO ! 
 
" 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |dk     d           |                     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          }|                     |t          dt          j        d          gt          j        t          |          g           d S )Nr  3axes & keep_aspect_ratio_policy are from Version 18rS   r  r  r  r  r   r  r  r   r   r  r  r  rH  r6  )rU   r   r   r'  r   r  r   s       r1   $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NO! ! 
 
$ 	#C):LIIJ!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |dk     d           |                     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          }|                     |t          dt          j        d          gt          j        t          |          g           d S )Nr  r  rS   r"  r  r  r  r   r  r  r   not_smallerr  rH  r6  )r'  rL  r   r  r   s       r1   test_resize_size_not_smallerz/TestShapeInference.test_resize_size_not_smaller  s   bL9	
 	
 	
   k'0)40++T2 ---E-:	   $Wk.?vNNO ! 
 
" 	#C):GDDE!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |dk     d           |                     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          }|                     |t          dt          j        d          gt          j        t          |          g           d S )Nr  r  rS   r  r  r  r  r   r  r  r   r   r  r  rH  r6  )rU   r   r'  rL  r   r  r   s       r1   %test_resize_size_axes_2_3_not_smallerz8TestShapeInference.test_resize_size_axes_2_3_not_smaller  s
   bLA	
 	
 	
   k'6)40++T2 ---E-:   $Wk.?vNNO! ! 
 
$ 	#C):MJJK!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |dk     d           |                     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          }|                     |t          dt          j        d          gt          j
        t          |          g           d S )Nr  roi input is from Version 11rS   r  r  r  r  r  r  rS   r  r  r   r  r6  r  r   r   rg   r   r  r   r   r   r   r    r   r   r   r   s       r1   test_resize_scalez$TestShapeInference.test_resize_scale  s    GbL"@AAA  k'6)40;,d3
 x!7!7!7#??@Hk&7?STT ! 
 
 	#C):LIIJ!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |dk     d           |                     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          }|                     |t          dt          j        d          gt          j
        t          |          g           d S )Nr  r  rS   r  r  r  r  r   r  r  r   r   r  )r  r  r6  r  r   r  r   s       r1   test_resize_scale_axes_2_3z-TestShapeInference.test_resize_scale_axes_2_3      GbL";<<<  k'6)40;,d3
 x!7!7!7#VLLLM$X{/@$
SST ! 	
 	
 	#C):LIIJ!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |dk     d           |                     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          }|                     |t          dt          j        d          gt          j
        t          |          g           d S )Nr  r  rS   r  r  r  r  r   r  r  r   r  r  )r  r  r6  r  r   r  r   s       r1   test_resize_scale_axes_3_2z-TestShapeInference.test_resize_scale_axes_3_2  r  r8   c                   |                      |dk     d           |                     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          	                                d          g          }| 
                    |t          dt          j        d          gt          j        t          |          g           d S )Nr  r  rS   r  r  r  r  r  r  r  r   r  r  r  Tr  r6  r  r   )r   rg   r   r  r   r   r   r   r  r  r   r    r   r   r   r   s       r1   test_resize_scale_raw_dataz-TestShapeInference.test_resize_scale_raw_data  s    GbL"@AAA  k'6)40;,d3
 x!7!7!7#??@%"6"6"6eDDDLLNN   ! 
 
$ 	#C):LIIJ!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |dk     d           |                     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          
                                d          t          d	t          j        d
t          j	        g d          
                                d          g          }|                     |t          dt          j        d          gt          j        t          |          g           d S )Nr  r  rS   r  r  r  r  r  r  r   r  r  r   r  r  r  Tr  r  r6  r  r   )r   rg   r   r  r   r_   r   r   r   r  r  r   r    r   r   r   r   s       r1   +test_resize_scale_and_size_but_one_is_emptyz>TestShapeInference.test_resize_scale_and_size_but_one_is_empty/  sn   GbL"@AAA  k'6)40;,d3++T2	 x!@!@!@3%HHI%"6"6"6eDDDLLNN   %"E222::<<   ! 
 
4 	#C):LIIJ!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |                      |dk    d           |                     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          
                                d          g          }|                     |t          dt          j        d          gt          j        d|          g           d S )Nr  z#This test only works for Version 11rS   r  r  r  r  r  r  r  r  r  r   )rU   r'  r  rL  r  r  Tr  r6  r  r   )r   rg   r   r  r   r_   r   r   r   r  r  r   r    r   r   r   s       r1   #test_resize_opset11_scales_is_emptyz6TestShapeInference.test_resize_opset11_scales_is_emptyR  s0   GrM#HIII   k'6)40;,d3++T2	 x!@!@!@3%HHI%%U  gii  
 ! 
 
, 	#C):MJJK!.r7;;< 	 	
 	
 	
 	
 	
r8   Shapec                
   |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   r  r  r   r   r   
rg   r   r   r   r   r    r_   r   r   r   r   s       r1   
test_shapezTestShapeInference.test_shapes  s      ;$i01wu--.
 

 	#C):DAAB!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     B   |                      |dk     d           |                     dt          j        dfgt	          ddgdgd          gg           }|                     |t          dt          j        d	          gt          j	        t          |          g
           d S )NrA  !start and end are from Version 15rS   r  r  r   r   startr   r   r   rg   r   r   r   r   r    r_   r   r   r   r   s       r1   test_shape_start_1z%TestShapeInference.test_shape_start_1  s    GbL"EFFF  ;$i01wuA6667
 

 	#C):DAAB!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     B   |                      |dk     d           |                     dt          j        dfgt	          ddgdgd          gg           }|                     |t          dt          j        d	          gt          j	        t          |          g
           d S )NrA  r  rS   r  r  r   r   endr   r   r  r   s       r1   test_shape_end_1z#TestShapeInference.test_shape_end_1  s    GbL"EFFF  ;$i01wu!4445
 

 	#C):DAAB!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     B   |                      |dk     d           |                     dt          j        dfgt	          ddgdgd          gg           }|                     |t          dt          j        d	          gt          j	        t          |          g
           d S )NrA  r  rS   r  r  r   r'   r   r  r   r  r   s       r1   test_shape_negative_startz,TestShapeInference.test_shape_negative_start      GbL"EFFF  ;$i01wuB7778
 

 	#C):DAAB!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     B   |                      |dk     d           |                     dt          j        dfgt	          ddgdgd          gg           }|                     |t          dt          j        d	          gt          j	        t          |          g
           d S )NrA  r  rS   r  r  r   r   r   r   r  r   s       r1   test_shape_clip1z#TestShapeInference.test_shape_clip1  r  r8   c           	     B   |                      |dk     d           |                     dt          j        dfgt	          ddgdgd          gg           }|                     |t          dt          j        d	          gt          j	        t          |          g
           d S )NrA  r  rS   r  r  r   rL  r  r   r   r  r   s       r1   test_shape_clip2z#TestShapeInference.test_shape_clip2  s    GbL"EFFF  ;$i01wu"5556
 

 	#C):DAAB!.{GDDE 	 	
 	
 	
 	
 	
r8   Sizec                
   |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   r  r  r   r4   r   r  r   s       r1   	test_sizezTestShapeInference.test_size  s      ;$i01IfsecU4S4S3TVX
 
 	#C):B??@!.{GDDE 	 	
 	
 	
 	
 	
r8   Gatherc                (   |                      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          gt          j        t          |          g           d S )	NrS   r   r   ir   r  r   r   r   
rg   r   r   r_   r   r   r    r   r   r   r   s       r1   test_gatherzTestShapeInference.test_gather  s      ;$f-[5F/MNx#scU334
 

 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     ,   |                      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	          gt          j        t          |          g
           d S )NrS   )r   r   r?   r  r   r  r   r   rT  )r   r   rU   r?   r   r  r   s       r1   test_gather_axis1z$TestShapeInference.test_gather_axis1  s      ;$i038I62RSx#scU;;;<
 

 	#C):LIIJ!.{GDDE 	 	
 	
 	
 	
 	
r8   c                (   |                      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          gt          j        t          |          g           d S )NrS   r   r  r4   r  r   r   r  r   s       r1   test_gather_into_scalarz*TestShapeInference.test_gather_into_scalar  s      ;$d+c;3Db-IJx#scU334
 

 	#C):B??@!.{GDDE 	 	
 	
 	
 	
 	
r8   GatherElementsc           	     ,   |                      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          gt          j        t          |          g           d S )	NrS   rI  r  r  r   r   rT  r   r  r   s       r1   test_gather_elementsz'TestShapeInference.test_gather_elements        ;$f-[5F/OP'#scUCCCD
 

 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     ,   |                      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          gt          j        t          |          g	           d S )
NrS   r>  r  r   r  r   r   rT  r   r  r   s       r1   test_gather_elements_axis0z-TestShapeInference.test_gather_elements_axis0  r!  r8   Scatterc                   |dk    rm|                      t          j        j                  5 }|                     |           d d d            n# 1 swxY w Y   |j        }dt          |          v sJ d S |                     |           d S Nr  zScatter is deprecated)r   rq   r   r  _test_scatterr  r;   r`   r   r0   r  r  s        r1   test_scatterzTestShapeInference.test_scatter  s    b==""4<#?@@ ,B""7+++, , , , , , , , , , , , , , ,I*c)nn<<<<<<w'''''   AAAc                D   |                      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          gt          j        t          |          g	           d S )
NrS   r>  r  r   ur$  rS   r  r,  r   r   r  r`   r0   r   s      r1   r'  z TestShapeInference._test_scatter  s      k'0k'0k'0
 y///C599:
 
 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   c                   |dk    rm|                      t          j        j                  5 }|                     |           d d d            n# 1 swxY w Y   |j        }dt          |          v sJ d S |                     |           d S r&  )r   rq   r   r  _test_scatter_axis1r  r;   r(  s        r1   test_scatter_axis1z%TestShapeInference.test_scatter_axis1-  s    b==""4<#?@@ 2B((1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2I*c)nn<<<<<<$$W-----r*  c           	     H   |                      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          gt          j        t          |          g           d S )NrS   r5  r  r   r,  r$  r-  r   r   rT  r   r  r.  s      r1   r0  z&TestShapeInference._test_scatter_axis18  s      k'0k'0k'0
 y///C5qAAAB
 
 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   ScatterElementsc                D   |                      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          gt          j        t          |          g	           d S )
NrS   r>  r  r   r,  r3  r-  r   r   r  r   s       r1   test_scatter_elementsz(TestShapeInference.test_scatter_elementsH  s      k'0k'0k'0
 (///C5AAB
 
 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     H   |                      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          gt          j        t          |          g           d S )NrS   r5  r  r   r,  r3  r-  r   r   rT  r   r  r   s       r1   test_scatter_elements_axis1z.TestShapeInference.test_scatter_elements_axis1Y  s      k'0k'0k'0
 (///C5qIIIJ
 
 	#C):FCCD!.{GDDE 	 	
 	
 	
 	
 	
r8   	ScatterNDc                D   |                      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          gt          j        t          |          g
           d S )NrS   r   r?   r'  indicesr   r   rU   updatesr   r   r'  r8  )rS   r;  r=  r   r   r  r   s       r1   test_scatterndz!TestShapeInference.test_scatterndj  s      k'3K-y9K-y9
 {$?$?$?#GGH
 
 	#C):IFFG!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	        |                      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           }|                     |t          d
t          j        d           t          dt          j        d           gt          j        t          |          g           d S )NrS   r:  r;  r<  r=  r>  r   rj  rY   
x_reshapedr8  )rA  r;  r=  r   r   r  r   s       r1   test_scatternd_noshapez)TestShapeInference.test_scatternd_noshape{  s       k'3K-y9K-y9++V4	 )c7^l^DD+'K'K'KcUSS 
 
 	&|[5FMM&sK,=tDD ".{GDDE 	 	
 	
 	
 	
 	
r8   c           	     H   |                      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          gt          j        t          d          g           d S )N
past_cache)rU   r     @   update)rU   r  rL  rF  write_indicesr   TensorScatter)rD  rG  rH  present_cacherU   rT     r   r  r   s     r1   test_tensor_scatterz&TestShapeInference.test_tensor_scatter  s      {0/B;,n= +"3T: #===$%	   
 
  	&#[%6 
 ".{B??@ 	 	
 	
 	
 	
 	
r8   Squeezec                x   |dk    r|                      dt          j        dfgt          dddg d          gg           }|                     |t          dt          j        d          gt          j        t          |          g	           d S |                      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          }|                     |t          dt          j        d          gt          j        t          |          g	           d S )Nr  rS   r   r   r   r   rU   r   rM  r   )r   rU   r   r?   r  r  r   r  r  r6  )rg   r   r   r   r   r    r   r   r   r_   r   r   s       r1   test_squeezezTestShapeInference.test_squeeze  sg   b==$${(*<=>9c3\\\BBBC E
 !!'[->GGH%2;HHI "      $$++-?@[.5 9sFmS99:(94NN % 
 
E !!'[->GGH%2;HHI "     r8   StringConcatc                &   |                      dt          j        dfdt          j        dfgt          dddgd          gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   r   r   rQ  r   r   	rg   r   r   r   r   r    r   r   r   r   s       r1   test_stringconcatz$TestShapeInference.test_stringconcat        k()4k()4 ~Sz3778
 
 	#C);YGGH!.{GDDE 	 	
 	
 	
 	
 	
r8   c                &   |                      dt          j        dfdt          j        dfgt          dddgd          gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   r   r   )r   r   r   rQ  r   r   rS  r   s       r1   test_stringconcat_broadcastingz1TestShapeInference.test_stringconcat_broadcasting  rU  r8   RegexFullMatchc           	        |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   r  rX  r   ^[A-Z][a-z]*$patternr   
rg   r   r   r   r   r    BOOLr   r   r   r   s       r1   test_regex_full_matchz(TestShapeInference.test_regex_full_match  s      ;%|45'#?OPPPQ
 

 	#C)9<HHI!.{GDDE 	 	
 	
 	
 	
 	
r8   c           	        |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          gt          j        t          |          g           d S )NrS   r4   rX  r   rZ  r[  r   r]  r   s       r1   !test_regex_full_match_empty_shapez4TestShapeInference.test_regex_full_match_empty_shape  s      ;%r*+'#?OPPPQ
 

 	#C)92>>?!.{GDDE 	 	
 	
 	
 	
 	
r8   c                
   |                      dt          j        dfgt          ddgd          gg           }t	                      }d|_        d|_        |                     |t          dt          j        d          g           d S )NrS   rO  rM  r   r  r  r  	rg   r   r   r   r   r.   r0   r   r    r`   r   operatorsetids      r1   test_squeeze_no_axes_opset11z/TestShapeInference.test_squeeze_no_axes_opset11	  s      k');< y3%--.
 
 +,,! "*30A6JJK	
 	
 	
 	
 	
r8   c                   |                      dt          j        dfgt          ddgd          gg           }t	                      }d|_        d|_        |                     |t          dt          j        d           g|g           d S )NrS   )r   r   r   NrU   r   rM  r   r  r  r   rc  rd  s      r1   *test_squeeze_no_axes_dynamic_input_opset11z=TestShapeInference.test_squeeze_no_axes_dynamic_input_opset11  s      k')>? y3%--.
 
 +,,! "#C):DAAB(/ 	 	
 	
 	
 	
 	
r8   c                *   |                      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          }|                     |t          dt          j        d	          g           d S )
NrS   r  r  r  	Unsqueezer   )r   r   r   r?   r6  )r   r   r   r   rU   r   rg   r   r   r_   r   r   r   r    r   s     r1   test_unsqueeze_regularz)TestShapeInference.test_unsqueeze_regular)  s      ;$f-8I4/PQ{S&M3778$V[->lSST	 ! 
 
 	*30ACUVVW	
 	
 	
 	
 	
r8   c                *   |                      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          }|                     |t          dt          j        d	          g           d S )
NrS   rN  r  r   rj  r   )r   r   r6  r   r   r   r?   r   rk  r   s     r1   test_unsqueeze_unsorted_axesz/TestShapeInference.test_unsqueeze_unsorted_axes4  s      ;$i06;;Ld2ST{S&M3778$V[->fMMN	 ! 
 
 	*30A?SST	
 	
 	
 	
 	
r8   c                *   |                      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          }|                     |t          dt          j        d	          g           d S )
NrS   rN  r  r   rj  r   )r   r'   r6  rn  rk  r   s     r1   test_unsqueeze_negative_axesz/TestShapeInference.test_unsqueeze_negative_axes?  s      ;$i06;;Ld2ST{S&M3778$V[->gNNO	 ! 
 
 	*30A?SST	
 	
 	
 	
 	
r8   c                *   |                      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          }|                     |t          dt          j        d          g           d S )	NrS   r4   r  rj  r   r'   r6  r  rk  r   s     r1   test_unsqueeze_scalarz(TestShapeInference.test_unsqueeze_scalarJ  s      ;$b)FK4Er+JK{S&M3778$V[->EJJK	 ! 
 
 	*30A4HHI	
 	
 	
 	
 	
r8   c                   |                      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	          g           d S )
NrS   )r   rU   r   startsr  endsSlicerS   rv  rw  r   rY  rg   r   r   r_   r   r   r    r   s     r1   test_slice_without_input_shapez1TestShapeInference.test_slice_without_input_shapeU  s      k'5;,d3*D1
 w 7 7 7#??@
 
 	*30ACUVVW	
 	
 	
 	
 	
r8   c                   |                      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                                          d          t          dt          j        dd          g          }| 	                    |t          dt          j        d          g           d S )NrS   r  rv  r   rw  rx  ry  r   r   r   r  r  Tr  rI  r6  r   rg   r   r   r_   r   r   r   r  r  r   r    r   s     r1   test_slice_with_input_shapez.TestShapeInference.test_slice_with_input_shapec  s     k'0;,d3*D1
 w 7 7 7#??@%1a&666>>@@   FK$5tVDD	 ! 
 
& 	*30A6JJK	
 	
 	
 	
 	
r8   c                ~   |                      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          }|                     |t          dt          j        d          g           d S )NrS   )r   r   r   rv  r   rw  rx  ry  r   )r   r   r   rw  r6  )r   Nr   rk  r   s     r1   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 7 7#??@Hk&7yIIFK$5tYGG ! 
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          d
t          j        d          g           d S )NrS   r?   r'  rS  rv  r   rw  r  stepsrx  rS   rv  rw  r  r  r   r{  )rU   r'  r'  )r   r   r   r6  r   rU   rU   rk  r   s     r1   !test_slice_with_input_shape_stepsz4TestShapeInference.test_slice_with_input_shape_steps  s      k'3;,d3*D1*T3++T2 w H H H3%PPQHk&7yIIFK$5tYGGG[%6iHH ! 
 
  	*30A9MMN	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          d
t          j        d          g           d S )NrS   )r   r'  rU   rv  r   rw  r  r  rx  r  r   r   r   rI  )r   rU   r6  )r   r'  rU   rk  r   s     r1    test_slice_with_input_shape_axesz3TestShapeInference.test_slice_with_input_shape_axes  s      k'3;,d3*D1*D1++d4 w H H H3%PPQHk&7vFFFK$5tVDDFK$5tVDD ! 
 
  	*30A9MMN	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          d	t          j        d          g           d S )NrS   r  rv  r   rw  r  rx  rS   rv  rw  r  r   r  rI  r6  r   rk  r   s     r1   test_slice_unsorted_axesz+TestShapeInference.test_slice_unsorted_axes  s      k'0;,d3*D1*D1	 w ? ? ?EEFHk&7vFFFK$5tVDDFK$5tVDD ! 
 
 	*30A6JJK	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          d	t          j        d          g           d S NrS   r  rv  r   rw  r  rx  r  r   r  )   iU  r   r   r6  rI  rk  r   s     r1   test_slice_giant_numberz*TestShapeInference.test_slice_giant_number  s      k'0;,d3*D1*D1	 w ? ? ?EEFHk&7vFFFK$5t\JJFK$5tVDD ! 
 
 	*30A6JJK	
 	
 	
 	
 	
r8   c                    |                      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          }|                     |t          d
t          j        d          g           d S )NrS   r  rv  r   rw  r  r  rx  r  r   r  )r  r  r  )r   r  r6  r   rk  r   s     r1   test_slice_giant_stepz(TestShapeInference.test_slice_giant_step  s     k'0;,d3*D1*D1++T2 w H H H#NNOHk&7vFFFK$5tZHHFK$5tVDDG[%6hGG	 ! 
 
" 	*30A6JJK	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          d	t          j        d          g           d S )NrS   r  rv  r   rw  r  rx  r  r   r  )r  r'   r  r6  r   rk  r   s     r1   test_slice_negative_endz*TestShapeInference.test_slice_negative_end  s      k'0;,d3*D1*D1	 w ? ? ?EEFHk&7vFFK-tY  FK$5tVDD ! 
 
" 	*30A6JJK	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          d	t          j        d          g           d S )NrS   r  rv  r   rw  r  rx  r  r   )r   )r  r   r  r6  rI  rk  r   s     r1   test_slice_negative_startz,TestShapeInference.test_slice_negative_start  s      k'0;,d3*D1*D1	 w ? ? ?EEFk/w  FK$5tXFFFK$5tVDD ! 
 
" 	*30A6JJK	
 	
 	
 	
 	
r8   c                    |                      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          }|                     |t          d
t          j        d          g           d S )NrS   r  rv  r   rw  r  r  rx  r  r   r   r   )r  r   r  )r   r'   r6  r   rk  r   s     r1   test_slice_negative_stepz+TestShapeInference.test_slice_negative_step!  s     k'0;,d3*D1*D1++T2 w H H H#NNOk/v  FK$5tXFFFK$5tVDDG[%6gFF ! 
 
& 	*30A6JJK	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          d	t          j        d          g           d S )NrS   ra  rv  r  rw  r  rx  r  r   )r  r6  )r   r   rk  r   s     r1   test_slice_variable_copyz+TestShapeInference.test_slice_variable_copy9  s      k'2;,d3*D1*D1	 w ? ? ?EEFHk&7tDDFK$5tVDDFK$5tTBB ! 
 
 	*30A8LLM	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          d	t          j        d          g           d S r  )rg   r   r#  r  r   r   r   r    r   s     r1   test_slice_variable_input_typesz2TestShapeInference.test_slice_variable_input_typesM  s      k(&1;,d3*D1*D1	 w ? ? ?EEFHk&7vFFFK$5t\JJFK$5tVDD ! 
 
 	*30BFKKL	
 	
 	
 	
 	
r8   c                    |                      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          }|                     |t          d
t          j        d          g           dS )zGSlice on empty dimension with positive step should produce dim_value=0.rS   r   r'  rv  r  rw  r  r  rx  r  r   r  r6  Nrk  r   s     r1   "test_slice_empty_dim_positive_stepz5TestShapeInference.test_slice_empty_dim_positive_stepa  s     k'0;,d3*D1*D1++T2 w H H H#NNOHk&7tDDFK$5tTBBFK$5tTBBG[%6dCC	 ! 
 
" 	*30A6JJK	
 	
 	
 	
 	
r8   c                    |                      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          }|                     |t          d
t          j        d          g           dS )zIRegression test for issue #7735: std::clamp UB on empty dim with step=-1.rS   r  rv  r  rw  r  r  rx  r  r   r  rs  r6  Nrk  r   s     r1   "test_slice_empty_dim_negative_stepz5TestShapeInference.test_slice_empty_dim_negative_stepx  s     k'0;,d3*D1*D1++T2 w H H H#NNOHk&7tDDFK$5tTBBFK$5tTBBG[%6eDD	 ! 
 
" 	*30A6JJK	
 	
 	
 	
 	
r8   c                z   |                      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dgd	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          t          dt          j        dd          g          }|                     |t          d	t          j        d          t          dt          j        d          g           dS )zEShape(scalar) produces 0-length output; Slice on it should not crash.rS   r4   rv  r  rw  r  r  r  r   rx  )r   rv  rw  r  r  r   r  r6  Nrk  r   s     r1   test_slice_scalar_shape_outputz1TestShapeInference.test_slice_scalar_shape_output  s@     k',;,d3*D1*D1++T2 'C57)44'#O#O#ORUQVWW Hk&7tDDFK$5tTBBFK$5tTBBG[%6dCC	 ! 
 
( 	&w0A4HH&sK,=tDD	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )NrS   r   r   r?   r'  rS  r   r?   r   rU   r   r   Convr   r   r   r   r   r   r   r  r   r   rU   rC  rG  r=  r   r?   r   r   r   r   r   s     r1   	test_convzTestShapeInference.test_conv  s      k'9k'9
 #J+++'ii%II  	 
 
" 	*30A?SST	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfdt          j        dfgt          dddgddg          gg           }|                     |t          dt          j        d	          g           d S )
NrS   r   r   )2   r   rU   r  r   r   rF  )r   r  r   r   r   s     r1   test_conv_1d_simplez&TestShapeInference.test_conv_1d_simple  s      k'4k'4 vSz31#>>>?
 
 	*30A;OOP	
 	
 	
 	
 	
r8   c           
         |                      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	          g           d S )
NrS   r   r   r  r  r  r   r  r   r   r   r   r  r   r   rU   r   rF  r   r  r'  r   rU   r   r   s     r1   test_conv_dilationsz&TestShapeInference.test_conv_dilations  s      k')9:k')9: vSz3)))DDDE
 
 	*30ACTUUV	
 	
 	
 	
 	
r8   c           
         |                      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	          g           d S )
NrS   r  r   r  r  r   r  r<  r   r  r'  r   rU   r   r   s     r1   test_conv_stridesz$TestShapeInference.test_conv_strides  s      k')9:k')9: vSz3			BBBC
 
 	*30ACTUUV	
 	
 	
 	
 	
r8   c           
         |                      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	          g           d S )
NrS   r   r   rS  r'  r   r   r  r  r   r   r   rU   r   r   rU   rB  r   r  r'  r'  r'  r   r   s     r1   test_conv_padsz!TestShapeInference.test_conv_pads  s      k')9:k')9: vSz35G5G5GHHHI
 
 	*30ACTUUV	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   r  r   r  r   r   r   rU   r  r   
SAME_UPPER)auto_pad)r   r  rS  r'  r   r   r   s     r1   test_conv_auto_padz%TestShapeInference.test_conv_auto_pad  s      k')9:k')9: vSz3FFFG
 
 	*30ACTUUV	
 	
 	
 	
 	
r8   c                    |                      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
          g           d S )NrS   r  r   r  r  r   r  rU   rU   r   r  r=  )r   r  r   r   r   r   r   s     r1   test_conv_auto_padsz&TestShapeInference.test_conv_auto_pads	  s      k')9:k')9:
 S#JlIII  
 
 
 	*30ACTUUV	
 	
 	
 	
 	
r8   c                    |                      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
          g           d S )NrS   )r   r   A   rF  ?   r   r  r  r   r  r   )r  rG  )r   r  r  rF  r  r   r   s     r1   test_conv_auto_pad_dilationz.TestShapeInference.test_conv_auto_pad_dilation	  s      k')<=k')9:
 S#Jliii  
 
 
 	#C):<PQQR	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   r  r   r   r   r  r  r  r  r   r   groupr   r   r   r   r   r   r   s     r1   test_conv_groupz"TestShapeInference.test_conv_group'	  s      k')9:k'9 vSz3a8889
 
 	*30ACSTTU	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfdt          j        dfgt          dddgddg          gg           }|                     |t          dt          j        d	          g           d S )
NrS   r   r   )r  r   r?   r  r   rU   r<  )r   r  r   r   r   s     r1   test_conv_only_one_posz)TestShapeInference.test_conv_only_one_pos4	  s      k'4k'4 vSz3<<<=
 
 	*30A;OOP	
 	
 	
 	
 	
r8   c           
         |                      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	          g           d S )
NrS   r   r   Nr'  r   r   r  r  r   r  rB  r   r  Nr'  r'  r   r   s     r1   test_conv_partial_missing_shapez2TestShapeInference.test_conv_partial_missing_shapeA	  s      k')<=k')9: vSz35G5G5GHHHI
 
 	#C):<PQQR	
 	
 	
 	
 	
r8   c           
         |                      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           g           d S )	NrS   r  r   r  r   Nr   r   r  r   r  rB  r   r   s     r1   &test_conv_partial_missing_weight_shapez9TestShapeInference.test_conv_partial_missing_weight_shapeO	  s      k')9:k')<= vSz35G5G5GHHHI
 
 	*30A4HHI	
 	
 	
 	
 	
r8   c                   |                      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
          g           d S )NQ)Bq_num_headsq_seq_length	head_sizeK)r  kv_num_heads
kv_seq_lenr  V)r  r  r  v_head_size	Attention)r  r  r  r   )r  r  r  r  r   r   s     r1   test_attention_4dz$TestShapeInference.test_attention_4d\	  s       %E %D %F$ #OOE  3
 
6 	&%G 		
 		
 		
 		
 		
r8   c                    |                      dt          j        dfgt          ddgddg dg d          gg           }|                     |t          dt          j        d	          g           d S )
NrS   r  AveragePoolr   r  )r   r   rU   r  r  r1  r=  )r   r   r   r   r   r   r   s     r1   test_average_pool_auto_padsz.TestShapeInference.test_average_pool_auto_pads	  s      ;$&678!E)!*%II  	 
 
 	*30ACSTTU	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgddg          gg           }|                     |t          dt          j        d          g           d S )Nr   r?   r   r   r   r  r   rU   r1  rG  r?   r   rU   rU   r   r   s     r1    test_average_pool_with_dilationsz3TestShapeInference.test_average_pool_with_dilations	  s      ;$l34!C53%q!fQRTUPV  
 
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgdddgddgddg          gg           }|                     |t          dt          j        d	          g           d S )
Nr   r  r  r   r  rU   r   r  r1  r=  rG  r  r   r   s     r1   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0A<PPQ	
 	
 	
 	
 	
r8   c                0    |                      d           d S )NRelur   r`   s    r1   	test_reluzTestShapeInference.test_relu	  s    F#####r8   c                0    |                      d           d S )NIdentityr  r  s    r1   test_identityz TestShapeInference.test_identity	  s    J'''''r8   c           	     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gd
g          gg           }|                     |t          dt          j        d          t          d
t          j        d          g           d S )Ninput1r   input2input3rU   r?   r   SequenceConstructr  r   r  in_sequencer  output_sequencerU   Nr   rg   r   r   r   r   r   r   s     r1   test_identity_sequencez)TestShapeInference.test_identity_sequence	  s      ;,i8;,i8;,i8 ')G)G)G-  *}o8I7JKK	 
 
 	/!;#4l  0%{'8, 	
	
 
	
 
	
 
	
 
	
r8   c           	     z   |                      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        |          }|                     |t	          j        d|          t	          j        d|          g           d S )N	in_tensorr   Optionalin_optionalr  output_optional)	rg   r   r   r   r   make_tensor_type_protomake_optional_type_protor   make_value_info)r`   r   tensor_type_protooptional_type_protos       r1   test_identity_optionalz)TestShapeInference.test_identity_optional	  s      ;,i89*{mm_EE*}o8I7JKK 
 
 #9+:KYWW$=>OPP&}6IJJ&'8:MNN	
 	
 	
 	
 	
r8   c           
     (   |                      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        |          }|                     |t	          j	        d|          t	          j	        d
|          t	          j	        d|          g           d S )Nr  r   r   r  r  r  r  r  r  r  r  r  r  )
rg   r   r   r   r   r  make_sequence_type_protor  r   r  )r`   r   r  sequence_type_protor  s        r1   test_identity_optional_sequencez2TestShapeInference.test_identity_optional_sequence	  s7     ;,i8;,i8;,i8 ')G)G)G-  *}oGG*}o8I7JKK 
 
 #9|
 
 %=>OPP$=>QRR&}6IJJ&}6IJJ&'8:MNN	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfdt          j        dfgt          dddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r   r   Addr   r   r   s     r1   test_addzTestShapeInference.test_add

        k'4k'4 usCj#../
 
 	*30A:NNO	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfdt          j        dfgt          dddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r   r   Powr   r   r   s     r1   test_powzTestShapeInference.test_pow
  r  r8   c           	         |                      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          g           d S )NrS   rU   r   r   r   BitShiftr   RIGHT	directionrg   r   r  r   r   r    r   s     r1   test_bitshiftz TestShapeInference.test_bitshift$
  s      k()4k()4 zC:sgFFFG
 
 	*30BINNO	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )	NrS   )   r   r   r   r  r"  r   r#  r$  r&  r   s     r1    test_bitshift_broadcast_to_firstz3TestShapeInference.test_bitshift_broadcast_to_first1
  s      ;%z2S+:Ld4STzC:sgFFFG
 

 	*30BJOOP	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )	NrS   r  r   r!  r"  r   r#  r$  r&  r   s     r1   !test_bitshift_broadcast_to_secondz4TestShapeInference.test_bitshift_broadcast_to_second;
  s      ;%t,sK4F	.RSzC:sgFFFG
 

 	*30BINNO	
 	
 	
 	
 	
r8   c                0    |                      d           d S )NSumr  r  s    r1   test_sum_singlez"TestShapeInference.test_sum_singleE
  s    E"""""r8   c                   |                      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          g           d S )NrS   r   r   r   r.  rZ  r[  r   r   s     r1   test_sum_multiz!TestShapeInference.test_sum_multiH
  s      k'4k'4k'4
 uooow778
 
 	*5+2CZPPQ	
 	
 	
 	
 	
r8   c                   |                      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
          g           d S )NrS   )r   r   r?   r   r   r   r   r   )r   r   r.  rZ  r[  r   r   r   s     r1   test_sum_multi_broadcastingz.TestShapeInference.test_sum_multi_broadcastingV
  s      k'4k'5k'2
 uooow778
 
 	*5+2CZPPQ	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )NrS   )r   r   r?   r   r3  r.  r[  r  r   r   s     r1   test_sum_broadcasting_paramz.TestShapeInference.test_sum_broadcasting_paramd
  s      k'5k'5 usCj5'223
 
 	*5+2C[QQR	
 	
 	
 	
 	
r8   c           
         |                      g t          dg dgt          j        d          gg           }|                     |t          dt          j        d          g           d S )NRandomNormalr[  rN  )r  r   )rg   r   r   r#  r   r    r   s     r1   test_random_normalz%TestShapeInference.test_random_normalq
  s      "G%,#   
 
 	*5+2DiPPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )Nr   r   RandomNormalLiker[  r   r   s     r1   test_random_normal_likez*TestShapeInference.test_random_normal_like
  s}      ;$i01)C55'::;
 

 	*5+2CYOOP	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgt          j                  gg           }|                     |t          dt          j        d          g           d S )Nr   r   r;  r[  r  rg   r   r   r   r#  r   r    r   s     r1   "test_random_normal_like_with_dtypez5TestShapeInference.test_random_normal_like_with_dtype
  s      ;$i01&EG%,	   
 
 	*5+2DiPPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )NrS   r  	Bernoullir[  r   r   s     r1   test_bernoulliz!TestShapeInference.test_bernoulli
  s|      ;$f-.{SEE7334
 

 	*5+2CVLLM	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgt          j                  gg           }|                     |t          dt          j        d          g           d S )NrS   r   rA  r[  r  r>  r   s     r1   test_bernoulli_with_dtypez,TestShapeInference.test_bernoulli_with_dtype
  s      ;$i01EG%,	   
 
 	*5+2DiPPQ	
 	
 	
 	
 	
r8   
input_typeTensorProto.DataTypec                    |                      d|dfd|dfgt          |ddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r   r   r   rg   r   r   r    r   r^  r`   r   rE  r   s       r1   _logical_binary_opz%TestShapeInference._logical_binary_op
  s      :z*S*j,IJrC:s++,
 

 	*30@*MMN	
 	
 	
 	
 	
r8   c                    |                      d|dfd|dfgt          |ddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r5  r   r   r   rH  rI  s       r1   $_logical_binary_op_with_broadcastingz7TestShapeInference._logical_binary_op_with_broadcasting
  s       :v&j*(EFrC:s++,
 

 	*30@*MMN	
 	
 	
 	
 	
r8   c                    |                      dt          j                   |                     dt          j                   d S )NAndrJ  r   r^  rL  r  s    r1   test_logical_andz#TestShapeInference.test_logical_and
  :    {'788811%9IJJJJJr8   c                    |                      dt          j                   |                     dt          j                   d S )NOrrO  r  s    r1   test_logical_orz"TestShapeInference.test_logical_or
  s:    k&677711$8HIIIIIr8   c                    |                      dt          j                   |                     dt          j                   d S )NXorrO  r  s    r1   test_logical_xorz#TestShapeInference.test_logical_xor
  rQ  r8   c                    |                      dt          j                   |                     dt          j                   d S )NGreaterrO  r  s    r1   test_greaterzTestShapeInference.test_greater
  s:    	;+;<<<11)[=MNNNNNr8   c                    |                      dt          j                   |                     dt          j                   d S )NLessrO  r  s    r1   	test_lesszTestShapeInference.test_less
  s:    (899911&+:JKKKKKr8   c                    |                      dt          j                   |                     dt          j                   d S NEqualrO  r  s    r1   
test_equalzTestShapeInference.test_equal
  s:    )9:::11';;KLLLLLr8   c                    |                      dt          j                   |                     dt          j                   d S r_  )rJ  r   r   rL  r  s    r1   test_equal_stringz$TestShapeInference.test_equal_string
  s:    );<<<11';;MNNNNNr8   c                    |                      dt          j        dfgt          ddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r   Notr   )rg   r   r^  r   r   r    r   s     r1   test_logical_notz#TestShapeInference.test_logical_not
  sy      ;#Z01IecUC4P4P3QSU
 
 	*30@*MMN	
 	
 	
 	
 	
r8   c                    |                      dt          j                   |                     dt          j                   d S )NLessOrEqualrO  r  s    r1   test_less_or_equalz%TestShapeInference.test_less_or_equal
  s:    {/?@@@11-AQRRRRRr8   c                    |                      dt          j                   |                     dt          j                   d S )NGreaterOrEqualrO  r  s    r1   test_greater_or_equalz(TestShapeInference.test_greater_or_equal
  s<     0+2BCCC112BKDTUUUUUr8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   rU   r   r   r?   Flattenr   rU   rT  )r'     r   r   s     r1   test_flattenzTestShapeInference.test_flatten
  s      ;$l34y3%#Q7778
 

 	*30A7KKL	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )NrS   rn  ro  r   )rU   <   r   r   s     r1   test_flatten_default_axisz,TestShapeInference.test_flatten_default_axis  s|      ;$l34y3%#//0
 

 	*30A7KKL	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   rn  ro  r   r   rT  )r   x   r   r   s     r1   test_flatten_zero_axisz)TestShapeInference.test_flatten_zero_axis  s      ;$l34y3%#Q7778
 

 	*30A8LLM	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   )rU   r  r   r?   ro  r   rU   rT  )Nrp  r   r   s     r1   test_flatten_unknown_dimz+TestShapeInference.test_flatten_unknown_dim  s      ;$n56y3%#Q7778
 

 	*30A:NNO	
 	
 	
 	
 	
r8   c           	         d}|                      dt          j        dfgt          ddgdg|          gg           }|                     |t          dt          j        d          g           d S )NrL  rS   rU   r   d   r|  SpaceToDepthr   	blocksizerU   ,  rL  rL  r   r`   r   r   s      r1   test_space_to_depthz&TestShapeInference.test_space_to_depth#  s      ;$&678~useqAAAB
 

 	*30ACSTTU	
 	
 	
 	
 	
r8   c           	         d}|                      dt          j        dfgt          ddgdg|          gg           }|                     |t          dt          j        d          g           d S )NrL  rS   )rU   r  r|  r|  r}  r   r~  )rU   NrL  rL  r   r  s      r1   test_space_to_depth_unknown_dimz2TestShapeInference.test_space_to_depth_unknown_dim.  s      ;$&89:~useqAAAB
 

 	*30ACTUUV	
 	
 	
 	
 	
r8   c           
         d}|                      dt          j        dfgt          ddgdg|d          gg           }|                     |t          dt          j        d          g           d S )	NrL  rS   r  DepthToSpacer   DCR)r  moder{  r   r  s      r1   test_depth_to_spacez&TestShapeInference.test_depth_to_space9  s      ;$&678~usequMMMN
 

 	*30ACSTTU	
 	
 	
 	
 	
r8   seqlenint	batchsizeinpsize
hiddensizec                h   |                      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           }|                     |t          dt          j        |d||f          t          dt          j        d||f          g           d S )
NrS   wr   rRNNrS   r  r  alllasthidden_sizer   r`   r  r  r  r  r   s         r1   _rnn_forwardzTestShapeInference._rnn_forwardD  s       k'&)W)EFk'!Z)ABk'!Z)DE ???UFO  
 
 
 	&;,vq)Z.P  'K-9j/I 	
	
 
	
 
	
 
	
 
	
r8   c                6    |                      dddd           d S NrF      rL  r   )r  r  s    r1   test_rnn_forwardz#TestShapeInference.test_rnn_forward`  s"    "b"a(((((r8   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           }|                     |t          dt          j        |d||f          t          dt          j        d||f          g           d S )NrS   r  rU   r  r  r  r  r  bidirectional)r  r%  r   r  s         r1   _rnn_bidirectionalz%TestShapeInference._rnn_bidirectionalc  s       k'&)W)EFk'!Z)ABk'!Z)DE #OOFO *-   
 
" 	&;,vq)Z.P  'K-9j/I 	
	
 
	
 
	
 
	
 
	
r8   c                h    |                      dddd           |                      ddddd           d S )NrF  r  rL  r   r  )_rnn_layoutr  s    r1   test_rnn_layoutz"TestShapeInference.test_rnn_layout  s>    RQ'''RQ88888r8   forwardr%  c                   |                      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}|                     |t          dt          j        ||||f          t          dt          j        |||f          g           d S )NrS   r  r   r  r  r  r  r  )r  layoutr%  r  rU   r   )r`   r  r  r  r  r%  r   num_directionss           r1   r  zTestShapeInference._rnn_layout  s      k')VW)EFk'!Z)ABk'!Z)DE #OOFO *'  	 !
 
$ ''NNN&%
C 
 'K-	>:/V 		
 	
 	
 	
 	
r8   c                6    |                      dddd           d S r  )r  r  s    r1   test_rnn_bidirectionalz)TestShapeInference.test_rnn_bidirectional  s"    BA.....r8   c                   |                      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           }|                     |t          d
t          j        |d||f          t          dt          j        d||f          t          dt          j        d||f          g           d S )NrS   r  r   r   r  LSTMr  )r  hiddenr  r  r  r  r  r   r  s         r1   _lstm_forwardz TestShapeInference._lstm_forward  s"      k'&)W)EFk'!Q^W)EFk'!Q^Z)HI #OO--- *	   
 
  	&;,vq)Z.P  'k/!Y
1K  'K-9j/I 
	
 	
 	
 	
 	
r8   c                6    |                      dddd           d S r  )r  r  s    r1   test_lstm_forwardz$TestShapeInference.test_lstm_forward  s"    2r2q)))))r8   c                F   |                      dt          j        dfgt          dddgddg          gg t	          dt          j        dd          g	          }|                     |t          dt          j        d
          t          dt          j        d
          g           d S )NrS   r   r   r?   rL  TopKkr   r   r  r   r6  )r   r   r?   rU   rg   r   r   r   r   r_   r   r    r   s     r1   test_topk_default_axisz)TestShapeInference.test_topk_default_axis  s      ;$m45vSzC:667$S+*;T4HHI	 ! 
 
 	&sK,=|LL&sK,=|LL	
 	
 	
 	
 	
r8   c                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          }|                     |t          dt          j        d          t          dt          j        d          g           d S )NrS   r  r  r  r   r   rU   rT  r  r   r6  )r   r   rU   rL  r  r   s     r1   	test_topkzTestShapeInference.test_topk  s      ;$m45vSzC:A>>>?$S+*;T4HHI	 ! 
 
 	&sK,=}MM&sK,=}MM	
 	
 	
 	
 	
r8   c                   |                      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                                          d          g          }| 	                    |t          dt          j        d          t          dt          j        d          g           d S )NrS   r  r  r  r   r   rU   rT  r  r   r  r  Tr  r6  )r   r   r   rL  )rg   r   r   r   r   r_   r   r  r  r   r    r   s     r1   test_topk_raw_dataz%TestShapeInference.test_topk_raw_data  s      ;$m45vSzC:A>>>?%1#U333;;==  	 ! 
 
 	&sK,=}MM&sK,=}MM	
 	
 	
 	
 	
r8   c           	     ,   |                      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
          t          dt          j        d
          g           d S )NrS   r  r  r  r  r   r   rU   rT  )NNNNrz  r   s     r1   +test_topk_missing_k_value_output_rank_checkz>TestShapeInference.test_topk_missing_k_value_output_rank_check  s      ;$m4sK<Mt6TUvSzC:A>>>?
 

 	&*,D  '*,D 	
	
 
	
 
	
 
	
 
	
r8   c                   |                      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	          g           d S )
NrS   rS  r?   r   r?   r  r   GemmrZ  r[  rS  r  r   r   s     r1   	test_gemmzTestShapeInference.test_gemm"  s      k'0k'1k'.
 v889
 
 	*5+2CWMMN	
 	
 	
 	
 	
r8   c           	        |                      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          g           d S )NrS   r?   rS  r   r  r   r  rZ  r[  r   )transAr  r   r   s     r1   test_gemm_transAz#TestShapeInference.test_gemm_transA0        k'0k'1k'.
 vBBBC
 
 	*5+2CWMMN	
 	
 	
 	
 	
r8   c           	        |                      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          g           d S )NrS   r  r   r  r?   r   r  rZ  r[  r   )transBr  r   r   s     r1   test_gemm_transBz#TestShapeInference.test_gemm_transB>  r  r8   c           
        |                      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          g           d S )NrS   r  r   r  r   r  rZ  r[  r   )r  r  r  r   r   s     r1   test_gemm_transA_and_transBz.TestShapeInference.test_gemm_transA_and_transBL  s      k'0k'1k'.
 v!LLLM
 
 	*5+2CWMMN	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )NrS   )   rS  r   )rS     r  r[  )r  r  r   r   s     r1   test_gemm_no_biasz$TestShapeInference.test_gemm_no_biasZ  s      ;$g.k6G0QRvSzE7334
 

 	*5+2CXNNO	
 	
 	
 	
 	
r8   c                N   |                      dt          j        dfgt          ddddd          gg t	          dt          j        d	d          g
          }t                      }d|_        d|_        | 	                    |t          dt          j        d          g|g           d S )NrS   rK  r   r  ReduceL1r   r   r   r  keepdimsr  r   r6  r  r  rK  r   rg   r   r   r   r   r_   r   r.   r0   r   r    rd  s      r1   #test_reduce_op_shape_2_axis_opset13z6TestShapeInference.test_reduce_op_shape_2_axis_opset13d  s      ;$k23z3&1EEEF$V[->fMMN	 ! 
 
 +,,! "#C):EBBC(/ 	 	
 	
 	
 	
 	
r8   c                l   |                      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|_        | 	                    |t          dt          j        d          g|g           d S )NrS   r  r  r   r  r   r   r  r   r6  r  r  r  r   rg   r   r   r_   r   r   r   r.   r0   r   r    rd  s      r1   #test_reduce_op_shape_2_axis_opset18z6TestShapeInference.test_reduce_op_shape_2_axis_opset18u  s      ;$k2V[=NPT4UVzC=#BBBC$V[->fMMN	 ! 
 
 +,,! "#C):EBBC(/ 	 	
 	
 	
 	
 	
r8   c           
        |                      dt          j        dfgt          ddddd          gg g           }t	          d	d
          }|                     |t          dt          j        d          g|g           d S )NrS   rK  r   r  r  r   r  r   r  r6  r  r  r.   r0   rK  r   r  r   )rg   r   r   r   r   r   r    rd  s      r1    test_reduce_op_empty_set_opset13z3TestShapeInference.test_reduce_op_empty_set_opset13  s      ;$k23z3$CCCD	 ! 
 
 +"bAAA#C):KHHI(/ 	 	
 	
 	
 	
 	
r8   c                V   |                      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          }|                     |t          dt          j        d          g|g           d S )NrS   r  r  r  r  r   r   r  r6  r  r  r  r  r   )	rg   r   r   r_   r   r   r   r   r    rd  s      r1    test_reduce_op_empty_set_opset18z3TestShapeInference.test_reduce_op_empty_set_opset18  s      ;$k2V[=NPT4UVzC=#BBBC$V[->dKKL	 ! 
 
 +"bAAA#C):KHHI(/ 	 	
 	
 	
 	
 	
r8   c                N   |                      dt          j        dfgt          ddddd          gg t	          dt          j        d	d          g
          }t                      }d|_        d|_        | 	                    |t          dt          j        d          g|g           d S )NrS   r  r  r   r   r   r  r  r   r6  r  r  rK  r   r   r   r  rd  s      r1   &test_reduce_op_shape_keep_dims_opset13z9TestShapeInference.test_reduce_op_shape_keep_dims_opset13  s      ;$k23z3&1EEEF$V[->fMMN	 ! 
 
 +,,! "#C):JGGH(/ 	 	
 	
 	
 	
 	
r8   c                l   |                      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|_        | 	                    |t          dt          j        d          g|g           d S )NrS   r  r  r   r  r   r   r  r   r6  r  r  r  r   r  rd  s      r1   &test_reduce_op_shape_keep_dims_opset18z9TestShapeInference.test_reduce_op_shape_keep_dims_opset18  s      ;$k2V[=NPT4UVzC=#BBBC$V[->fMMN	 ! 
 
 +,,! "#C):JGGH(/ 	 	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddd          gg           }|                     |t          dt          j        d          g           d S )NrS   r  r  r   rw  r   r   s     r1   "test_reduce_op_shape_default_valuez5TestShapeInference.test_reduce_op_shape_default_value  sx      ;$k23z3,,-
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          dddd          gg           }|                     |t          dt          j        d          g           d S )NrS   r  r  r   r   r  r4   r   r   s     r1   -test_reduce_op_shape_no_axes_do_not_keep_dimsz@TestShapeInference.test_reduce_op_shape_no_axes_do_not_keep_dims  s}      ;$k23z3a8889
 

 	*30A2FFG	
 	
 	
 	
 	
r8   c                *   |                      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          }|                     |t          dt          j        d	          g           d S )
NrS   r  r  r   r  r   )r'   r  r6  r  rk  r   s     r1   "test_reduce_op_shape_negative_axisz5TestShapeInference.test_reduce_op_shape_negative_axis  s      ;$k2V[=NPT4UVzC=#667$V[->hOOP	 ! 
 
 	*30A:NNO	
 	
 	
 	
 	
r8   c           
         |                      dt          j        dfgt          ddddd          gg           }|                     |t          dt          j        d          g           d S )NrS   r  ArgMaxr   r   rU  r  r  rg   r   r   r   r   r    r_   r   s     r1   test_argmax_shapez$TestShapeInference.test_argmax_shape  s      ;$k23xcA>>>?
 

 	*30A;OOP	
 	
 	
 	
 	
r8   c           
         |                      dt          j        dfgt          ddddd          gg           }|                     |t          dt          j        d          g           d S )NrS   r  r  r   r   r  )r   r  r  r   s     r1   test_argmax_shape_keepdimsz-TestShapeInference.test_argmax_shape_keepdims  s      ;$k23xcA>>>?
 

 	*30A7KKL	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddd          gg           }|                     |t          dt          j        d          g           d S )NrS   r  r  r   )r   r   r  r  r   s     r1   test_argmax_shape_default_valuez2TestShapeInference.test_argmax_shape_default_value  sw      ;$k23i#s6S6S5TVX
 
 	*30A:NNO	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          dddd          gg           }|                     |t          dt          j        d          g           d S )NrS   r  r  r   r  rT  r  r  r   s     r1   test_argmax_shape_negative_axisz2TestShapeInference.test_argmax_shape_negative_axis  s}      ;$k23xc3334
 

 	*30A;OOP	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )NdatarN  ratior4   Dropoutr[  r   r   s     r1   test_dropoutzTestShapeInference.test_dropout  s       % ++R0 y67"3eW==>
 
  	&% 
	
 	
 	
 	
 	
r8   c                8    |                      dddd           d S )NLRN      ?r   )alphabetasizer  r  s    r1   test_LRNzTestShapeInference.test_LRN'  s%    E3Q?????r8   c           	     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          gg           }|                     |t          d
t          j        d          g           d S )NrS   r  r  r  r   meanvarBatchNormalizationrS   r  r   r  r	  r[  r   r   s     r1   test_batch_normz"TestShapeInference.test_batch_norm*  s      k'9++T2k'.*D1)40 (*L*L*Lug 
 
 
 	*5+2C_UUV	
 	
 	
 	
 	
r8   c           	     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          gg           }|                     |t          d
t          j        d          g           d S )NrS   rE  r  r  r   r  r	  r
  r  r[  r   r   s     r1   test_batch_norm_rank1z(TestShapeInference.test_batch_norm_rank1>  s      k'0++T2k'.*D1)40 (*L*L*Lug 
 
 
 	*5+2CVLLM	
 	
 	
 	
 	
r8   c           	     <   |                      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
          j        j        | j        |           d S )NrS   r  r  r   r   r  r  r	  r
  r  r[  r   r   s     r1   test_batch_norm_invalidz*TestShapeInference.test_batch_norm_invalidR  s      k'0++V4k'.*D1)40 (*L*L*Lug 
 
 
 	$.=t~uUUUUUr8   c           
        |                      dt          j        dfgt          ddgddgdd          gg           }|                     |t          dt          j        d	          t          dt          j        d	          g           d S )
NrS   r   Splitr   r   r'   rU   rU  num_outputsrI  r   r   s     r1   test_split_negative_axisz+TestShapeInference.test_split_negative_axisd  s      ;$f-.wSzJJJK
 

 	&sK,=vFF&sK,=vFF	
 	
 	
 	
 	
r8   c                f   |                      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          }|                     |t          dt          j        d          t          dt          j        d          g           d S )NrS   r   splitr   r  r   r   r   rT  r  r6  r   r   rk  r   s     r1   test_split_with_split_attributez2TestShapeInference.test_split_with_split_attributer  s      ;$f-9JD/QRwgc
CCCD$Wk.?vNNO	 ! 
 
 	&sK,=vFF&sK,=vFF	
 	
 	
 	
 	
r8   c                f   |                      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          }|                     |t          dt          j        d          t          dt          j        d          g           d S )NrS   )rU   r   r   r  r   r  r   r   r   rT  r  r6  )rU   Nr   rk  r   s     r1   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CCD$Wk.?vNNO ! 
 
 	&sK,=~NN&sK,=~NN	
 	
 	
 	
 	
r8   c           
        |                      dt          j        dfgt          ddgddgdd          gg           }|                     |t          dt          j        d	          t          dt          j        d	          g           d S )
NrS   r  r  r   r   r   rU   r  r?   r   rS  r   r   s     r1   test_split_from_GLUz&TestShapeInference.test_split_from_GLU  s      ;$i01wSzqIIIJ
 

 	&sK,=yII&sK,=yII	
 	
 	
 	
 	
r8   c           
     D   |                      dt          j        dfgt          ddgg ddd          gg           }|                     |t          dt          j        d	          t          d
t          j        d	          t          dt          j        d          g           d S )NrS   )r  rU   r  r   r   r   r   r   r  r   r  r   r   rI  r   r   s     r1   test_split_uneven_split_2dz-TestShapeInference.test_split_uneven_split_2d  s      ;$f-.wQANNNO
 

 	&sK,=vFF&sK,=vFF&sK,=vFF	
 	
 	
 	
 	
r8   c           
     D   |                      dt          j        dfgt          ddgg ddd          gg           }|                     |t          dt          j        d	          t          d
t          j        d	          t          dt          j        d          g           d S )NrS   )rU   rS  r   r  r   r   r   r  r   rU   r   r   r   r   rU   r   r   r   r   s     r1   test_split_uneven_split_3dz-TestShapeInference.test_split_uneven_split_3d  s      ;$i01wQANNNO
 

 	&sK,=yII&sK,=yII&sK,=yII	
 	
 	
 	
 	
r8   c           
     h   |                      dt          j        dfgt          ddgddgdd          t          d	dgd
g          gg           }|                     |t          dt          j        d          t          dt          j        d          t          d
t          j        d          g           d S )NrS   r  r  r   r   r   rU   r  Sigmoidr   r  r   r   s     r1   test_GLU_partialz#TestShapeInference.test_GLU_partial  s      ;$i01'C53*1!LLL)cUSE22 
 
 	&sK,=yII&sK,=yII&sK,=yII	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          t          dt          j        d          t          d
t          j        d          t          dt          j        d          g           d S )NrS   r  r  r   r   r   rU   r  r'  r   Mulr   r  r   r   s     r1   test_GLUzTestShapeInference.test_GLU  s      ;$i01'C53*1!LLL)cUSE22%#scU33
 
 
 	&sK,=yII&sK,=yII&sK,=yII&sK,=yII		
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r   r?   Softmaxr   r   r   s     r1   test_softmax_2dz"TestShapeInference.test_softmax_2d  y      ;$f-.9seS1Q1Q0RTV
 
 	*30A6JJK	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r:  r.  r   r   r   s     r1   test_softmax_3dz"TestShapeInference.test_softmax_3d  z      ;$i01y3%--.
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgd          gg           }|                     t
          j        j        | j        |           d S )NrS   r4   r.  r   r   r   s     r1   test_softmax_scalar_invalidz.TestShapeInference.test_softmax_scalar_invalid  e      ;$b)*Yy3%-M-M,NPR
 
 	$.=t~uUUUUUr8   c                    |                      dt          j        dfgt          ddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r-  Hardmaxr   r   r   s     r1   test_hardmax_2dz"TestShapeInference.test_hardmax_2d  r0  r8   c                    |                      dt          j        dfgt          ddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r:  r8  r   r   r   s     r1   test_hardmax_3dz"TestShapeInference.test_hardmax_3d  r3  r8   c                    |                      dt          j        dfgt          ddgd          gg           }|                     t
          j        j        | j        |           d S )NrS   r4   r8  r   r   r   s     r1   test_hardmax_scalar_invalidz.TestShapeInference.test_hardmax_scalar_invalid  r6  r8   c                    |                      dt          j        dfgt          ddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r-  
LogSoftmaxr   r   r   s     r1   test_logsoftmax_2dz%TestShapeInference.test_logsoftmax_2d  sz      ;$f-.|cUC001
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r:  r?  r   r   r   s     r1   test_logsoftmax_3dz%TestShapeInference.test_logsoftmax_3d  sz      ;$i01|cUC001
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgd          gg           }|                     t
          j        j        | j        |           d S )NrS   r4   r?  r   r   r   s     r1   test_logsoftmax_scalar_invalidz1TestShapeInference.test_logsoftmax_scalar_invalid)  se      ;$b)*Y|cUC-P-P,QSU
 
 	$.=t~uUUUUUr8   c           	         |                      dt          j        dfgt          ddgdd          gg           }|                     |t          dt          j        d          g           d S )NrS   r:  r?  r   r'   rT  r   r   s     r1    test_logsoftmax_3d_negative_axisz3TestShapeInference.test_logsoftmax_3d_negative_axis/  s      ;$i01|cUCb999:
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c           
         |                      dt          j        dfgt          ddgdgddg          gg           }|                     |t          dt          j        d          g           d S )Nr   r  MaxPoolr   rU   r1  r?   r   r   r   r   r   s     r1   test_maxpoolzTestShapeInference.test_maxpool9  s      ;$l34y3%#aVDDDE
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c           
        |                      dt          j        dfgt          ddgddgddg          gg           }|                     |t          dt          j        d          t          dt          j        d          g           d S )	Nr   r  rH  r   ZrU   rI  rJ  r  r   s     r1   test_maxpool_with_indicesz,TestShapeInference.test_maxpool_with_indicesC  s      ;$l34y3%#s1a&IIIJ
 

 	&sK,=|LL&sK,=|LL	
 	
 	
 	
 	
r8   c           
         |                      dt          j        dfgt          ddgdgg d          gg           }|                     |t          dt          j        d          g           d S )Nr   r?   r   r   r   r   rH  r   r^  rI  r?   r   r   r   r   r   r   s     r1   test_maxpool_3Dz"TestShapeInference.test_maxpool_3DQ  s      ;$o67y3%#YYYGGGH
 

 	*30A?SST	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgg d          gg           }|                     |t          dt          j        d          g           d S )	Nr   r  rH  r   rU   r   r   rU   rU   r1  rC  r?   r   r'  r'  r   r   s     r1   test_maxpool_with_paddingz,TestShapeInference.test_maxpool_with_padding[  s      ;$l34use1a&|||  
 
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgg dddg          gg           }|                     |t          dt          j        d          g           d S )	Nr   r  rH  r   rU   rT  r1  rC  r=  rJ  r   r   s     r1   $test_maxpool_with_padding_and_stridez7TestShapeInference.test_maxpool_with_padding_and_stridei  s      ;$l34EE"#Q%F  	 
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgddgd          gg           }|                     |t          dt          j        d          g           d S )	Nr   r     #   r^  rH  r   rU   Fr1  r=  	ceil_mode)r  r]  r  r  r   r   s     r1   test_maxpool_with_floor_modez/TestShapeInference.test_maxpool_with_floor_mode|  s      ;$&789EE"#QF#  	 
 
 	*30ACTUUV	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgddgd          gg           }|                     |t          dt          j        d          g           d S )	Nr   r\  rH  r   rU   Tr_  )r  r]  r  r  r   r   s     r1   test_maxpool_with_ceil_modez.TestShapeInference.test_maxpool_with_ceil_mode  s      ;$&789EE"#QF"  	 
 
 	*30ACTUUV	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgddgd          gg           }|                     |t          dt          j        d	          g           d S )
Nr   r   r   r   r   rH  r   r   rU   Tr_  rT  r   r   s     r1   test_maxpool_ceilz$TestShapeInference.test_maxpool_ceil  s      ;$l34EE"#QF"  	 
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgddg          gg           }|                     |t          dt          j        d          g           d S )Nr   r  rH  r   rU   r  r  r   r   s     r1   test_maxpool_with_dilationsz.TestShapeInference.test_maxpool_with_dilations  s      ;$l34y3%#aVPQSTvVVVW
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgdddgddg          gg           }|                     |t          dt          j        d          g           d S )	Nr   r  rH  r   r  rU   r  r  r   r   s     r1   /test_maxpool_with_same_upper_padding_and_stridezBTestShapeInference.test_maxpool_with_same_upper_padding_and_stride        ;$l34EE)"#QF  	 
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgdddgddgddg          gg           }|                     |t          dt          j        d	          g           d S )
Nr   r  rH  r   r  rU   r   r  r  r   r   s     r1   <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0A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgdddgddg          gg           }|                     |t          dt          j        d          g           d S )	Nr   r  rH  r   r  rU   r   r  r   r   s     r1   3test_maxpool_with_same_upper_padding_and_stride_onezFTestShapeInference.test_maxpool_with_same_upper_padding_and_stride_one  rk  r8   c                    |                      dt          j        dfgt          ddgdgdddgddg          gg           }|                     |t          dt          j        d          g           d S )	Nr   r?   r   r;  r;  rH  r   
SAME_LOWERrU   r  r?   r   r?   r?   r   r   s     r1   /test_maxpool_with_same_lower_padding_and_stridezBTestShapeInference.test_maxpool_with_same_lower_padding_and_stride  rk  r8   c                    |                      dt          j        dfgt          ddgdgdddgddgddg          gg           }|                     |t          dt          j        d	          g           d S )
Nr   rr  rH  r   rs  rU   r   r  rt  r   r   s     r1   <test_maxpool_with_same_lower_padding_and_stride_and_dilationzOTestShapeInference.test_maxpool_with_same_lower_padding_and_stride_and_dilation  rn  r8   c                    |                      dt          j        dfgt          ddgdgdddgddg          gg           }|                     |t          dt          j        d	          g           d S )
Nr   r  rH  r   rs  rU   r   r  r?   r   r   r   r   r   s     r1   3test_maxpool_with_same_lower_padding_and_big_stridezFTestShapeInference.test_maxpool_with_same_lower_padding_and_big_stride   rk  r8   c           
         |                      dt          j        dfgt          ddgdgddg          gg           }|                     |t          dt          j        d          g           d S )Nr   r  r  r   rU   rI  rJ  r   r   s     r1   test_averagepoolz#TestShapeInference.test_averagepool3  s      ;$l34}secU!QHHHI
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c           
         |                      dt          j        dfgt          ddgdgg d          gg           }|                     |t          dt          j        d          g           d S )Nr   rP  r  r   r^  rI  rQ  r   r   s     r1   test_averagepool_3Dz&TestShapeInference.test_averagepool_3D=  s      ;$o67}secUKKKL
 

 	*30A?SST	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgg d          gg           }|                     |t          dt          j        d          g           d S )	Nr   r  r  r   rU   rT  rU  rV  r   r   s     r1   test_averagepool_with_paddingz0TestShapeInference.test_averagepool_with_paddingG  s      ;$l34!C53%q!f<<<  
 
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgg dddg          gg           }|                     |t          dt          j        d          g           d S )	Nr   r  r  r   rU   rT  rY  rJ  r   r   s     r1   (test_averagepool_with_padding_and_stridez;TestShapeInference.test_averagepool_with_padding_and_strideU  s      ;$l34!EE"#Q%F  	 
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgddgd          gg           }|                     |t          dt          j        d	          g           d S )
Nr   re  r  r   r   rU   Tr_  rT  r   r   s     r1   test_averagepool_ceilz(TestShapeInference.test_averagepool_ceilh  s      ;$l34!EE"#QF"  	 
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c           
         |                      dt          j        dfgt          ddgdgddg          gg           }|                     |t          dt          j        d          g           d S )Nr   r  LpPoolr   rU   rI  rJ  r   r   s     r1   test_lppoolzTestShapeInference.test_lppool{  s      ;$l34x#QFCCCD
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c           
         |                      dt          j        dfgt          ddgdgg d          gg           }|                     |t          dt          j        d          g           d S )Nr   rP  r  r   r^  rI  rQ  r   r   s     r1   test_lppool_3Dz!TestShapeInference.test_lppool_3D  s      ;$o67x#IIIFFFG
 

 	*30A?SST	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgg d          gg           }|                     |t          dt          j        d          g           d S )	Nr   r  r  r   rU   rT  rU  rV  r   r   s     r1   test_lppool_with_paddingz+TestShapeInference.test_lppool_with_padding  s      ;$l34x#QFVVVW
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgg dddg          gg           }|                     |t          dt          j        d          g           d S )	Nr   r  r  r   rU   rT  rY  rJ  r   r   s     r1   #test_lppool_with_padding_and_stridez6TestShapeInference.test_lppool_with_padding_and_stride  s      ;$l34EE"#Q%F  	 
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgddgddg          gg           }|                     |t          dt          j        d          g           d S )Nr   r  r  r   rU   r  r  r   r   s     r1   test_lppool_with_dilationsz-TestShapeInference.test_lppool_with_dilations  s      ;$l34x#QFqRSfUUUV
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdgdddgddgddg          gg           }|                     |t          dt          j        d	          g           d S )
Nr   r  r  r   r  rU   r   r  r  r   r   s     r1   ;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0A<PPQ	
 	
 	
 	
 	
r8   c           
         |                      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	          g           d S )
Nr   r  rois)rU   r?   
MaxRoiPoolr   rU   )pooled_shape)rU   r   rU   rU   rz  r   s     r1   test_roipoolzTestShapeInference.test_roipool  s      k'6*F3 |c6]SEAOOOP
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )NrS   r  LpNormalizationr[  r   r   s     r1   test_lp_normzTestShapeInference.test_lp_norm  s}      ;$o67(3%%99:
 

 	*5+2C_UUV	
 	
 	
 	
 	
r8   c                   |                      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          g           d S )	NrS   r  r  r  r   InstanceNormalization)rS   r  r   r[  r   r   s     r1   test_instance_normz%TestShapeInference.test_instance_norm  s      k'9++T2k'.
 .0C0C0CeWMMN
 
 	*5+2C_UUV	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )Nr   r  GlobalMaxPoolr   ry  r   r   s     r1   test_global_maxpoolz&TestShapeInference.test_global_maxpool  s|      ;$l34u556
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )Nr   r  GlobalAveragePoolr   ry  r   r   s     r1   test_global_averagepoolz*TestShapeInference.test_global_averagepool  s}      ;$l34*SEC599:
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )Nr   r  GlobalLpPoolr   ry  r   r   s     r1   test_global_lppoolz%TestShapeInference.test_global_lppool  s|      ;$l34~use445
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c           
         |                      dt          j        dfdt          j        dfgt          dddgdddg          gg           }|                     |t          dt          j        d	          g           d S )
Nr      0   r)  r)  r  r  r  r   r   ConvTransposer   rU   r<  )r  r  !   r  r   r   s     r1   test_conv_transposez&TestShapeInference.test_conv_transpose  s      k')9:k'8 c
C!QHHHI
 
 	*30ACSTTU	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfdt          j        dfgt          dddgdddgg d	          gg           }|                     |t          dt          j        d
          g           d S )Nr   r  r  r  r  r   rU   rT  )r=  rC  r  r  r   r   r   r   s     r1   test_conv_transpose_with_padsz0TestShapeInference.test_conv_transpose_with_pads  s      k')9:k'8
 #c3Zq!f<<<  
 
 
 	*30ACSTTU	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )Nr   r  r  r  r  r   rU   rT  $   )r=  rC  r0  )r  r  r  r  r   r   s     r1   %test_conv_transpose_with_output_shapez8TestShapeInference.test_conv_transpose_with_output_shape+  s      k')9:k'8
 ##JF%"$b  	 
 
" 	*30ACSTTU	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )Nr   r  r  )r  r  NNr  r   r   rU   rT  )r1  r=  rC  r  r   r   s     r1   %test_conv_transpose_with_kernel_shapez8TestShapeInference.test_conv_transpose_with_kernel_shapeA  s      k')9:k')=>
 ##J"#QF%  	 
 
" 	*30ACSTTU	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )Nr   r  r  r  r  r   rU   rT  r   )r=  rC  rG  )r  r  "   r  r   r   s     r1   "test_conv_transpose_with_dilationsz5TestShapeInference.test_conv_transpose_with_dilationsW  s      k')9:k'8
 ##JF% !f  	 
 
" 	*30ACSTTU	
 	
 	
 	
 	
r8   c                    |                      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           }|                     |t          dt          j        d
          g           d S )Nr   r  r  r  r  r   rU   rT  )r=  rC  r  )r  rF  r   r   r   r   s     r1   test_conv_transpose_with_groupz1TestShapeInference.test_conv_transpose_with_groupm  s      k')9:k'8
 ##JF%  	 
 
" 	*30ACSTTU	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )Nr   r  r  r  r  r   rU   rT  r  )r=  rC  r  r0  )r  rF  r  r  r   r   s     r1   /test_conv_transpose_with_group_and_output_shapezBTestShapeInference.test_conv_transpose_with_group_and_output_shape  s      k')9:k'8
 ##JF%"$b  
 !
 
$ 	*30ACSTTU	
 	
 	
 	
 	
r8   c                N   |                      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           }|                     t
          j        j        t
          j        j        t          j
        |          d           d S )Nr   rT  r  r   r   r   r   r  r  r  )r   r  r  r   r  r   )r   r   r   r   )r  r=  rC  Trn   )rg   r   r   r   r   rq   rr   r   rs   r   rp   r   s     r1   +test_conv_transpose_with_pads_and_auto_padsz>TestShapeInference.test_conv_transpose_with_pads_and_auto_pads  s      k'6k'6k'. ##OO)F%  	 !
 
$ 	 / -e$$	 	 	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfdt          j        dfgt          dddgddddg	          gg           }|                     |t          dt          j        d
          g           d S )Nr   r  r  r  r  r   r  rU   r  )r  r  r  r  r   r   s     r1   test_conv_transpose_auto_padsz0TestShapeInference.test_conv_transpose_auto_pads  s      k')9:k'8
 ##J)F   
 
  	*30ACSTTU	
 	
 	
 	
 	
r8   c           
         |                      dt          j        dfgt          dddg d          gg           }|                     |t          dt          j        d          g           d S )Nr   r  MeanVarianceNormalizationr   )r   rU   r   r  r   r   s     r1   test_mvn_function_output_shapez1TestShapeInference.test_mvn_function_output_shape  s      ;$&6782C999MMMN
 

 	*30ACSTTU	
 	
 	
 	
 	
r8   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
||          }|                     dt          j        ||ffdt          j        |||ffgt          dg dddgd|          gg           }|                     |t          dt          j        ||f          t          dt          j        |||f          gt          j	        t          d          g           d S )Nr   sequencerU   r   loop_state_inr/  loop_state_outr3  r  subgraphloop_state_orig
scan_inputScan)r  r  r  loop_state_finalscan_outputnum_scan_inputsbodyr  r   r    r   r]   r   r   r   rg   r   r   r   r   )	r`   
batch_sizeseq_len
input_sizeloop_state_sizerb   output_value_infosr  r   s	            r1   	test_scanzTestShapeInference.test_scan  s   

 #?K4I4PP"7K,A4HH

 ##3[5JDQQ"8[-BDII

 $*&7:J9KLL*wi(<< 
 
   "K$5
O7TU{0:w
2ST
 999'7$%!   
 
" 	&&(9J;X  '!;#4z7J6W 	 ".{A>>? 	 	
 	
 	
 	
 	
r8   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	||          }|                     d
t          j        |ffdt          j        ||ffgt          dd
dgddgd|          gg           }|                     |t          dt          j        |f          t          dt          j        ||f          gt          j	        t          d          g           d S )Nr  rU   r   r  r/  r  r3  r  r  r  r  r  r  r  r   r  r;  r   r  )r`   r  r  r  rb   r  r  r   s           r1   test_scan_opset9z#TestShapeInference.test_scan_opset9  s   
 #?K4I4PP"7K,A4HH

 ##3[5JDQQ"8[-BDII

 $*&7:J9KLL*wi(<< 
 
   "K$57IJ{07J2GH
 &5'7$%!   
 
" 	&&(9O;M  '!;#4w
6K 	 ".{A>>? 	 	
 	
 	
 	
 	
r8   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
||          }|                     dt          j        |ffdt          j        |||ffgt          dddgddgd|dg          gg           }|                     |t          dt          j        |f          t          dt          j        |||f          gt          j	        t          d          g           d S )Naxis0r  rU   r   r  r/  r  r3  r  r  r  r  r  r  r  r   )r  r  scan_input_axesr;  r   r  	r`   
axis_0_lenr  r  r  rb   r  r  r   s	            r1   test_scan_opset9_axesz(TestShapeInference.test_scan_opset9_axesG  s   

 #?K4I4PP"7K,A4HH

 ##3[5JDQQ"8[-BDII

 $*&7:J9KLL*wi(<< 
 
   "K$57IJ{0:w
2ST
 &5'7$%!%&C  	 
 
$ 	&&(9O;M  '!;#4w
J6W 	 ".{A>>? 	 	
 	
 	
 	
 	
r8   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
||          }|                     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           }|                     |t          dt          j        |f          t          dt          j        |||f          gt          j	        t          d          g           d S )Nr  r  rU   r   r  r/  r  r3  r  r  r  r  r  r  r  r   r  r  r  scan_output_axesr;  r   r  r  s	            r1   test_scan_opset9_output_axesz/TestShapeInference.test_scan_opset9_output_axes  s   

 #?K4I4PP"7K,A4HH

 ##3[5JDQQ"8[-BDII

 $*&7:J9KLL*wi(<< 
 
   "K$57IJ{0:w
2ST
 &5'7$%!%&C&'S  
 !
 
& 	&&(9O;M  '!;#4z7J6W 	 ".{A>>? 	 	
 	
 	
 	
 	
r8   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
||          }|                     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           }|                     |t          dt          j        |f          t          dt          j        |||f          gt          j	        t          d          g           d S )Nr  r  rU   r   r  r/  r  r3  r  r  r  r  r  r  r  r   r  r  r;  r   r  r  s	            r1   test_scan_opset9_negative_axesz1TestShapeInference.test_scan_opset9_negative_axes  s   

 #?K4I4PP"7K,A4HH

 ##3[5JDQQ"8[-BDII

 $*&7:J9KLL*wi(<< 
 
   "K$57IJ{0:w
2ST
 &5'7$%!%'D&(T  
 !
 
& 	&&(9O;M  '!;#4z7J6W 	 ".{A>>? 	 	
 	
 	
 	
 	
r8   c           
     j   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          }|                     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           }| 	                    |t          dt          j        d          gt          t          d          g           d S )Nr  current_value	add_valuethen_outputthen_subgraphSub	sub_valueelse_outputelse_subgraphcondr  If	if_outputthen_branchelse_branchrL  r   )r   r   r   r    r   r]   rg   r^  r   r   r   r   r`   r  r  r   s       r1   test_if_ver1zTestShapeInference.test_if_ver1  sd   
 )u<}oNNO#M;3H$OOP	
 
 )u<}oNNO#M;3H$OOP	
 
   )40 +"3T:k/6k/6	 H M - -   !
 
& 	#K1BDIIJ'R889 	 	
 	
 	
 	
 	
r8   c           
     >   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          }|                     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           }| 	                    |t          dt          j        d          g           d S )Nr  r  r  r  r  r  r  r  r  r  r  r  r  r  
r   r   r   r    r   r]   rg   r^  r   r   r  s       r1   test_ifzTestShapeInference.test_if   sO   
 )u<}oNNO#M;3H$OOP	
 
 )u<}oNNO#M;3H$OOP	
 
   )40 +"3T:k/6k/6	 H M - -   !
 
& 	*;8I4PPQ	
 	
 	
 	
 	
r8   c           
     >   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          }|                     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           }| 	                    |t          dt          j        d          g           d S )Nr  r  r  r  r  r  r  r  r  r  r?   r  r  r  r  rX   r  r  s       r1   3test_if_with_different_shapes_in_then_else_brancheszFTestShapeInference.test_if_with_different_shapes_in_then_else_branchesJ  sO   
 )u<}oNNO#M;3H$OOP	
 
 )u<}oNNO#M;3H$OOP	
 
   )40 +"3T:k/6k/6	 H M - -   !
 
& 	*;8I7SST	
 	
 	
 	
 	
r8   c           
     N   t          d          }t          d          }|                     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          d	t          j        d           g           d S )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   r  r)  r  r  r  r  	r!   rg   r   r^  r   r_   r   r   r    r`   
then_graph
else_graphr   s       r1   test_if_no_shape_in_then_branchz2TestShapeInference.test_if_no_shape_in_then_brancht  s     _
 

 !Y
 

   )40k'4*D1 H M * *   
 
" 	*;8I4PPQ	
 	
 	
 	
 	
r8   c           
     N   t          d          }t          d          }|                     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          d	t          j        d           g           d S )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       r1   test_if_no_shape_in_else_branchz2TestShapeInference.test_if_no_shape_in_else_branch  s     Y
 

 !_
 

   )40k'4*D1 H M * *   
 
" 	*;8I4PPQ	
 	
 	
 	
 	
r8   c           
     B   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          }|                     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|          }|                     |	|g           d S )Nr   r   r   then_optional_outputr  then_tensor_valuer  r?   else_optional_outputelse_tensor_valuer  r  r  r  r  r  r  rX   )r   r  r   r]   r  r  r   r   rg   r^  r   r   )r`   then_tensor_protothen_optional_type_protothen_optional_vir  else_tensor_protoelse_optional_type_protoelse_optional_vir  r   output_tensor_protooutput_optional_type_protooutput_optional_vis                r1   <test_if_with_different_optional_shapes_in_then_else_brancheszOTestShapeInference.test_if_with_different_optional_shapes_in_then_else_branches  s   
 #9!+
 
 
 $*#BCT#U#U !1"$<
 
 )z$7#8;Q:RSST	
 
 #9!+
 
 
 $*#BCT#U#U !1"$<
 
 )z$7#8;Q:RSST	
 
   )40$k&7>$k&7> H M - -   
 
$ %;!'w
 
 
 &,%D&
 &
" $33
 
 	e&8%9:::::r8   c                    |                      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           }|                     |t          dt          j        d          g           d S )	NxTrT  xI	MaxUnpoolr   rU   r1  r=  re  r   r   s     r1   )test_maxunpool_shape_without_output_shapez<TestShapeInference.test_maxunpool_shape_without_output_shape  s      {(,7{(,7
 $s!QRSUVQW  
 
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c                N   |                      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          }|                     |t	          dt          j        d           g           d S )Nr  rT  r  r0  r  r  )r  r  r0  r   rU   r  )rg   r   r   r   r    r   r   s     r1   &test_maxunpool_shape_with_output_shapez9TestShapeInference.test_maxunpool_shape_with_output_shape  s      {(,7{(,7!2D9 000"#QF   $C):DAAB
 
" 	*30A4HHI	
 	
 	
 	
 	
r8   c                   |                      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
          g           d S )Nr;  rI  depthr4   valuesr   OneHotr;  r!  r"  r   )rU   rU   Nrg   r   r_   r   r   r   r    r   s     r1   test_onehot_without_axisz+TestShapeInference.test_onehot_without_axis  s      K-v6++R0;,d3
 x!?!?!?EEF
 
 	*30A<PPQ	
 	
 	
 	
 	
r8   c           	        |                      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          g           d S )Nr;  rU   r   r?   r!  r  r"  r   r#  r$  r   r   rT  )rU   Nr   r?   r%  r   s     r1   test_onehot_with_axisz(TestShapeInference.test_onehot_with_axis%  s      K-y9++T2;,d3
 x!?!?!?1MMMN
 
 	*30A?SST	
 	
 	
 	
 	
r8   c                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
          g          }|                     |t          d	t          j        d          g           d S )Nr;  rI  r!  r4   r"  r   r#  r$  r      r6  )rU   rU   r,  rg   r   r_   r   r   r   r   r    r   s     r1   test_onehot_without_axis_2z-TestShapeInference.test_onehot_without_axis_23  s      K-v6++R0;,d3
 x!?!?!?EEF$Wk.?VLLM ! 	
 	
 	*30A;OOP	
 	
 	
 	
 	
r8   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 t          dt          j        dd          g          }|                     |t          d	t          j        d          g           d S )Nr;  r(  r!  r  r"  r   r#  r$  r   r   rT  r+  r6  )rU   r,  r   r?   r-  r   s     r1   test_onehot_with_axis_2z*TestShapeInference.test_onehot_with_axis_2B  s      K-y9++T2;,d3
 x!?!?!?1MMMN$Wk.?vNNO ! 	
 	
 	*30A>RRS	
 	
 	
 	
 	
r8   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||          }|                     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           }| 	                    |t          dt          j        d           t          dt          j        d          g           d S )Niter_num_inr  cond_inr  r4   cond_outr  r3  r   r  outer_scope_inputr  max_trip_count	cond_origr  r   Loop)r6  r7  r  r  loop_outputr  Nr   
r    r   r_   r]   r   r   r   r   rg   r   r`   rb   r  r  r   s        r1   	test_loopzTestShapeInference.test_loopQ  s   
 #=+2CTJJ"9k.CTJJ"?K4I2NN
 #:{/DdKK"#3[5JDQQ"8[->EE
 $*ykJ<@@*&7:J9KLL*':&;hZHH
 	
 	
   !;#4d;k/6"K$5t<$k&7>	 FFF'7!	   
 
$ 	&&(94  '}k6GSS		
 	
 	
 	
 	
r8   c           	     `   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	||          }|                     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           }| 	                    |t          dt          j        d          g           d S )Nr2  r  r3  r4  r3  r   r  r5  r  r6  r7  r8  r9  r:  r;  r<  r=  s        r1   test_loop_no_statez%TestShapeInference.test_loop_no_state  sX   "=+2CTJJ"9k.CTJJ

 #:{/DdKK"8[->EE

 $*ykJ<@@*':&;hZHH 
 
   !;#4d;k/6$k&7> %{3"O!	   
 
" 	*=+:KYWWX	
 	
 	
 	
 	
r8   c                ~   |                      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           }|                     |t          dt          j        d          t          dt          j        d          g           d S )Nr  r   r   rN  r  ConstantOfShaper   r  r  r   rg   r   r   r   r_   r  r   r    r   s     r1   %test_constantofshape_with_input_shapez8TestShapeInference.test_constantofshape_with_input_shape  s      I%g{/@$	RR	   %IE%g{/@$MM	   !
 
$ 	&w0A4HH&sK,=yII	
 	
 	
 	
 	
r8   c                   |                      dt          j        dfgt          ddgdgt	          dt          j        dd                    gg           }|                     |t          dt          j        d	          g           d S )
Nr   r   rB  r   r  r  r   r  rY  rg   r   r_   r   r   r	  r   r    r   s     r1   (test_constantofshape_without_input_shapez;TestShapeInference.test_constantofshape_without_input_shape  s      {($/0%IE%g{/@$MM	   
 
 	*30ACUVVW	
 	
 	
 	
 	
r8   c                   |                      dt          j        dfgt          ddgdgt	          dt          j        dd                    gg           }|                     |t          dt          j        d	          g           d S )
Nr   r  rB  r   r  r  r   r  r4   rF  r   s     r1   /test_constantofshape_without_input_shape_scalarzBTestShapeInference.test_constantofshape_without_input_shape_scalar  s      {($/0%IE%g{/@$MM	   
 
 	*30A2FFG	
 	
 	
 	
 	
r8   c                ~   |                      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           }|                     |t          dt          j        d          t          dt          j        d          g           d S )
Nr  r   r  r  r  rB  r   r  r   rC  r   s     r1   $test_constantofshape_with_shape_zeroz7TestShapeInference.test_constantofshape_with_shape_zero  s      I%g{/@$MM	   %IE%g{/@$MM	   !
 
$ 	&w0A4HH&sK,=tDD	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )NrS   r  r   r  ConvIntegerr   r  r  r  r  r  rg   r   r	  r   r   r    r  r   s     r1   test_convintegerz#TestShapeInference.test_convinteger  s      k'9k'9
 !#J+++'ii%II  	 
 
" 	*30A?SST	
 	
 	
 	
 	
r8   c           
     0   |                      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           }|                     |t          d
t          j        d          g           d S )NrS   r  r   r  x_zero_pointr4   y_zero_pointrM  rS   r   rQ  rR  r   r  rF  r  rg   r   r	  r(  r   r   r    r  r   s     r1   test_convinetger_dilationsz-TestShapeInference.test_convinetger_dilations  s      k')9:k&(89!2B7!2B7	 !>>>'ii	   
 
" 	*30ACTUUV	
 	
 	
 	
 	
r8   c           
     0   |                      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           }|                     |t          d
t          j        d          g           d S )NrS   r  r   r  rQ  r4   rR  rM  rS  r   r  r<  r  )rg   r   r(  r	  r   r   r    r  r   s     r1   test_convinteger_stridesz+TestShapeInference.test_convinteger_strides4  s      k&(89k&(89!2B7!2B7	 !>>>%II	   
 
" 	*30ACTUUV	
 	
 	
 	
 	
r8   c           
         |                      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	          g           d S )
NrS   r  r   r  rM  r   r  rB  r  rT  r   s     r1   test_convineteger_padsz)TestShapeInference.test_convineteger_padsJ  s      k')9:k&(89 }sCj#<N<N<NOOOP
 
 	*30ACTUUV	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   r  r   r  rM  r   r   r  r  )rg   r   r(  r   r   r    r  r   s     r1   test_convineteger_groupz*TestShapeInference.test_convineteger_groupW  s      k&(89k&8 }sCj#Q???@
 
 	*30ACSTTU	
 	
 	
 	
 	
r8   c           
     0   |                      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           }|                     |t          d
t          j        d          g           d S )NrS   r  r   r  rQ  r4   rR  rM  rS  r   r  rB  r  rN  r   s     r1   'test_convineteger_partial_missing_shapez:TestShapeInference.test_convineteger_partial_missing_shaped  s      k')<=k')9:!2B7!2B7	 !>>>+++	   
 
" 	#C):<PQQR	
 	
 	
 	
 	
r8   c           
         |                      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           g           d S )	NrS   r  r   r  rM  r   r  rB  rN  r   s     r1   .test_convineteger_partial_missing_weight_shapezATestShapeInference.test_convineteger_partial_missing_weight_shape{  s      k')9:k')<= }sCj#<N<N<NOOOP
 
 	*30A4HHI	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )NrS   r  x_scaler4   rQ  r  r  w_scalew_zero_pointy_scalerR  QLinearConvrS   ra  rQ  r  rb  rc  rd  rR  r   r  r  r  r  r  rg   r   r	  r   r   r   r    r   s     r1   test_qlinearconvz#TestShapeInference.test_qlinearconv  s     k'9K-r2!2B7k'9K-r2!2B7K-r2!2B7	 !	 	 	 +++'ii%II  & =
 
@ 	*30A?SST	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )NrS   r  ra  r4   rQ  r  r  rb  rc  rd  rR  re  rf  r   r  rF  r  rg  r   s     r1   test_qlinearconv_dilationsz-TestShapeInference.test_qlinearconv_dilations  s      k')9:K-r2!2B7k')9:K-r2!2B7K-r2!2B7	 !	 	 	 'ii  " 9
 
< 	*30ACTUUV	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )NrS   r  ra  r4   rQ  r  r  rb  rc  rd  rR  re  rf  r   r  r<  r  rg   r   r(  r   r   r   r    r   s     r1   test_qlinearconv_stridesz+TestShapeInference.test_qlinearconv_strides  s      k&(89K-r2!126k&(89K-r2!126K-r2!126	 !	 	 	 %II  " 9
 
< 	*30@BSTTU	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )NrS   r  ra  r4   rQ  r  r  rb  rc  rd  rR  re  rf  r   r  rB  r  )rg   r   r	  r   r(  r   r   r    r   s     r1   test_qlinearconv_padsz(TestShapeInference.test_qlinearconv_pads  s     k')9:K-r2!2B7k&(89K-r2!126K-r2!2B7	 !	 	 	 +++  " 9
 
< 	*30ACTUUV	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )NrS   r  ra  r4   rQ  r  r  rb  rc  rd  rR  re  rf  r   r   r  r  rl  r   s     r1   test_qlinearconv_groupz)TestShapeInference.test_qlinearconv_group  s      k&(89K-r2!126k&8K-r2!126K-r2!126	 !	 	 	   " 9
 
< 	*30@BRSST	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          g           d S )NrS   r  ra  r4   rQ  r  r  rb  rc  rd  rR  re  rf  r   r  rB  r  rg  r   s     r1   &test_qlinearconv_partial_missing_shapez9TestShapeInference.test_qlinearconv_partial_missing_shape9  s     k')<=K-r2!2B7k')9:K-r2!2B7K-r2!2B7	 !	 	 	 +++  " 9
 
< 	#C):<PQQR	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d           g           d S )NrS   r  ra  r4   rQ  r  r  rb  rc  rd  rR  re  rf  r   r  rB  rg  r   s     r1   -test_qlinearconv_partial_missing_weight_shapez@TestShapeInference.test_qlinearconv_partial_missing_weight_shape]  s      k')9:K-r2!2B7k')<=K-r2!2B7K-r2!2B7	 !	 	 	 +++  " 9
 
< 	*30A4HHI	
 	
 	
 	
 	
r8   c                   t          j        t          j        t          j        |                                        |          t          j        t          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           }|                     |t          dt          j        |          g           d S Nr   a_scaler4   a_zero_pointr   b_scaleb_zero_pointrd  rR  QLinearMatMul)r   rx  ry  r   rz  r{  rd  rR  r   )r   r   r   r   r   r   rg   r   r	  r   r   r   r    r`   r   r   r   r   s        r1   _make_qlinearmatmul_testz+TestShapeInference._make_qlinearmatmul_test  sV     YIbgfoo&&..v66Ibgfoo&&..v66
 
  	   k'0K-r2!2B7k'0K-r2!2B7K-r2!2B7	 #	 	 	 E   7
 
: 	*30ACUVVW	
 	
 	
 	
 	
r8   c                   |                      dd           |                      dd           |                      dd           |                      dd           |                      dd           |                      dd           d S )	Nr   r   r   r   r   r   r   r   )r~  r  s    r1   test_qlinearmatmulz%TestShapeInference.test_qlinearmatmul      %%dD111%%ff555%%dF333%%fd333%%lLAAA%%fi88888r8   c                   |                      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           }|                     |t          dt          j        |          g           d S rw  rg  r}  s        r1   &_make_qlinearmatmul_test_allow_unknownz9TestShapeInference._make_qlinearmatmul_test_allow_unknown  s       k'0K-r2!2B7k'0K-r2!2B7K-r2!2B7	 #	 	 	 E   7
 
: 	*30ACUVVW	
 	
 	
 	
 	
r8   c                   |                      ddd           |                      ddd           |                      ddd           |                      ddd           |                      d	dd           |                      d	d
d           |                      ddd           |                      ddd           |                      d dd            |                      d d d            d S r   )r  r  s    r1    test_qlinearmatmul_allow_unknownz3TestShapeInference.test_qlinearmatmul_allow_unknown  s   33GWbIII33D'2FFF33D(FKKK33FHhOOO33IxRRR33I{HUUU33I{KXXX33+|	
 	
 	
 	33D+tLLL33D$EEEEEr8   c                :   t          j        t          j        t          j        |                                        |          t          j        t          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           }| 
                    |t          dt          j        |          g           d S )	NAr  ry  r4   r{  MatMulInteger)r  r  ry  r{  r   )r   r   r   r   r   r   rg   r   r	  r   r   r    r  r}  s        r1   _make_matmulinteger_testz+TestShapeInference._make_matmulinteger_test  s     YIbgfoo&&..v66Ibgfoo&&..v66
 
  	   k'0k'0!2B7!2B7	 #%O%O%ORUQV 
 
 
 	*30ACUVVW	
 	
 	
 	
 	
r8   c                   |                      dd           |                      dd           |                      dd           |                      dd           |                      dd           |                      dd           d S )Nr   r   r   r   r   r   r   )r  r  s    r1   test_matmulintegerz%TestShapeInference.test_matmulinteger  r  r8   c                    |                      d|dfd|dfdt          j        dfgt          dg ddg          gg           }|                     |t          dt          j        d          g           d S )	NrS   r   rd  r4   rR  QuantizeLinearrS   rd  rR  r   rg   r   r	  r   r   r    r`   r   r   s      r1   test_quantizelinearz&TestShapeInference.test_quantizelinear  s       i,Ir*!2B7
 ')I)I)IC5QQR
 
 	*30A:NNO	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )NrS   r   rd  r4   r  r   rg   r   r   r   r   r    r	  r   s     r1   test_quantizelinear_default_zpz1TestShapeInference.test_quantizelinear_default_zp  s      ;$j1I{?PRT3UV'#y)9C5AAB
 

 	*30A:NNO	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfdt          j        dfgt          dg ddg          gg           }|                     |t          dt          j        d          g           d S )NrS   r   rd  r4   r  )rS   rd  r  r   r  r   s     r1   "test_quantizelinear_optional_inputz5TestShapeInference.test_quantizelinear_optional_input  s      ;$j1I{?PRT3UV')=)=)=uEEF
 

 	*30A:NNO	
 	
 	
 	
 	
r8   c           	     
   |                      dt          j        dfdt          j        dfgt          dddgdgt          j                  gg           }|                     |t          dt          j        d          g           d S NrS   rN  rd  r4   r  r   output_dtype)rg   r   r   r   UINT4r   r    r   s     r1    test_quantizelinear_output_dtypez3TestShapeInference.test_quantizelinear_output_dtype(  s      ;$i09k>OQS2TU$)$E!,!2	   
 
 	*30A9MMN	
 	
 	
 	
 	
r8   c           	     &   |                      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           }|                     |t          dt          j        d          g           d S 
NrS   rN  rd  r4   rR  r  r  r   r  )rg   r   r   UINT16r   r   r    r   s     r1   #test_quantizelinear_zp_output_dtypez6TestShapeInference.test_quantizelinear_zp_output_dtype9  s      k'3K-r2!3R8 $444E!,!3	   
 
  	*30BINNO	
 	
 	
 	
 	
r8   c           	        |                      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           }|                     t          j        j	        | j
        |           d S r  )rg   r   r   r  r   INT4r   rq   rr   r   rw   r   s     r1   .test_quantizelinear_zp_output_dtype_conflictedzATestShapeInference.test_quantizelinear_zp_output_dtype_conflictedN  s      k'3K-r2!3R8 $444E!,!1	   
 
" 	 /N	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfdt          j        dfgt          dddgdgt          j                  gg           }|                     t          j        j        | j	        |           d S r  )
rg   r   r   r   r  r   rq   rr   r   rw   r   s     r1   (test_quantizelinear_invalid_output_dtypez;TestShapeInference.test_quantizelinear_invalid_output_dtypef  s       ;$i09k>OQS2TU$)$E!,!4	   
 
 	 /N	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfd|dfdt          j        dfgt          dg ddg          gg           }|                     |t          d|d          g           d S )	NrS   r   ra  r4   rQ  DequantizeLinear)rS   ra  rQ  r   r  r  s      r1   test_dequantizelinearz(TestShapeInference.test_dequantizelinear}  s       k'4Ir*!2B7
 )+K+K+KcUSST
 
 	*3	:FFG	
 	
 	
 	
 	
r8   c           
     >   |                      dt          j        dfgt          ddgg d          gg           }|                     |t          dt          j        d          t          dt          j        d          t          dt          j        d          g           d S )	NrS   r   DynamicQuantizeLinear)r   rd  rR  r   rd  r4   rR  r  r   s     r1   test_dynamicquantizelinearz-TestShapeInference.test_dynamicquantizelinear  s      ;$j12+cU4T4T4T 
 
 
 	&sK,=zJJ&y+2CRHH&~{7H"MM	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )NrS   r:  sequence_lensr  ReverseSequencer   rz  r   s     r1   test_reversesequencez'TestShapeInference.test_reversesequence  s      k'3 +"3T: (3*@3%HHI
 
 	*30A9MMN	
 	
 	
 	
 	
r8   c                r   |                      dt          j        dfgt          ddgg d          gg           }|                     |t          dt          j        d          t          dt          j        d          t          dt          j        d          t          d	t          j        d          g           d S )
Nr   rU   r   rU   Uniquer   r;  inverse_indicescountsr   rX   r;  r  r  r  r   s     r1   test_unique_without_axisz+TestShapeInference.test_unique_without_axis  s      ;$i01x#(U(U(UVVW
 

 	&sK,=wGG&y+2CWMM&'8+:KWUU&x1BGLL		
 	
 	
 	
 	
r8   c                v   |                      dt          j        dfgt          ddgg dd          gg           }|                     |t          dt          j        d          t          d	t          j        d
          t          dt          j        d
          t          dt          j        d
          g           d S )Nr   r  r  r  r   rT  r   )rU   NrU   r;  rX   r  r  r  r   s     r1   test_unique_with_axisz(TestShapeInference.test_unique_with_axis  s      ;$i01EAAA	   
 
 	&sK,=|LL&y+2CWMM&'8+:KWUU&x1BGLL		
 	
 	
 	
 	
r8   c                   |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )Nr   r>  Detr   r4   )r   r?   r'  rS  rS  r:  r   r   s     r1   test_detzTestShapeInference.test_det  s      ;$f-.53%#1O1O0PRT
 
 	*30A2FFG	
 	
 	
   ;$o67usecU++,
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c                ,   |                      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          }|                     |t          dt          j        d	          g           d S )
NrS   r:  repeatsr   Tiler   r  r6  r   rL  r  rk  r   s     r1   	test_tilezTestShapeInference.test_tile  s      ;$i09k>OQU2VWvY/#778$Y0A4SST	 ! 
 
 	*30A;OOP	
 	
 	
 	
 	
r8   c                   |                      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	                                          d
          g          }| 	                    |t          dt          j        d          g           d S )NrS   r:  r  r   r  r   r  r  r  Tr  r6  r  r}  r   s     r1   test_tile_raw_input_dataz+TestShapeInference.test_tile_raw_input_data  s      ;$i09k>OQU2VWvY/#778%)))5999AACC  	 ! 
 
 	*30A;OOP	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )NrS   r:  r  r   r  r   rY  rz  r   s     r1   test_tile_rank_inferencez+TestShapeInference.test_tile_rank_inference  s      ;$i09k>OQU2VWvY/#778
 

 	*30ACUVVW	
 	
 	
 	
 	
r8   z-ONNX_ML required to test ai.onnx.ml operatorsc                ~   |                      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           }|                     |t          dt          j        d          t          dt          j        d          gt          t          d	          t          t          d          g           d S )NrS   r  LinearClassifierr   r   g-C6J?g-C6Jr  r   rU   r.   coefficients
interceptsclasslabels_intsr  r   r  r   
rg   r   r   r   r   r   r    r_   r   r   r   s     r1   test_linearclassifier_1D_inputz1TestShapeInference.test_linearclassifier_1D_input  s      ;$d+,&E#J)"('!2 #Sz&'V  
 
 
 	&sK,=tDD&sK,=vFF
 ^Q//["-- 	 
	
 
	
 
	
 
	
 
	
r8   c                ~   |                      dt          j        dfgt          ddgddgt          g dg dg d	          gg           }|                     |t          dt          j        d
          t          dt          j        d          gt          t          d          t          t          d          g           d S )NrS   r-  r  r   r   )皙?皙?g333333?皙?r  g333333?)r  r  g      @r  r  r  r  r   r  r   r  r   s     r1   test_linearclassifier_2D_inputz1TestShapeInference.test_linearclassifier_2D_input+  s      ;$f-.&E#J)!?!?!?.%.YY  
 
 
 	&sK,=tDD&sK,=vFF
 ^Q//["-- 	 
	
 
	
 
	
 
	
 
	
r8   c           
        |                      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          g           d S )NrS   r  r  num_roisr   batch_indicesr  RoiAlignrS   r  r  r   rL  r?   )output_heightoutput_width)r  r  rL  r?   rz  r   s     r1   test_roialign_symbolicz)TestShapeInference.test_roialign_symbolicH  s      k')=>*O< +"3]C 222E"$!"   
 
" 	#C):<TUUV	
 	
 	
 	
 	
r8   c                   |                      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
          g           d S )NrS   r  r  r  r  r  r  r  r   )r  r  r   r   rz  r   s     r1   test_roialign_symbolic_defaultsz2TestShapeInference.test_roialign_symbolic_defaults_  s      k')=>*O< +"3]C
 z#A#A#AC5IIJ
 
 	#C):<STTU	
 	
 	
 	
 	
r8   c                   |                      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
          g           d S )NrS   r  r  r  r  )rA  r  r  r   )rA  r  r   r   rz  r   s     r1   test_roialign_num_roisz)TestShapeInference.test_roialign_num_roisn  s      k')=>*O< +"3U;
 z#A#A#AC5IIJ
 
 	*30A?SST	
 	
 	
 	
 	
r8   c                *   |                      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          g           d S )Nr   )r  	num_headsr  r  	cos_cachemax_seq_lenhead_size_div_2	sin_cacheposition_idsr  r  RotaryEmbeddingr   r  r  r  r   rz  r   s     r1   test_rotaryembedding_4dz*TestShapeInference.test_rotaryembedding_4d|  s      k')STk/1STk/1ST!24DE	 %CCCE  
 
  	&*,V 	
 	
 	
 	
 	
r8   c           	     .   |                      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           }|                     |t          d
t          j        d          g           d S )Nr   )r  r  r  r  r  r  r  r  r  r  r   r   )r  rz  r   s     r1   test_rotaryembedding_3dz*TestShapeInference.test_rotaryembedding_3d  s      k')HIk/1STk/1ST!24DE	 %CCCE	   
 
" 	&*,K 	
 	
 	
 	
 	
r8   LabelEncoderT)skip_on_emptyc                   |                      |dk     d           g d}g d}g d}|                     dt          j        dfgt	          ddgd	gt
          ||
          gg           }|                     |t          d	t          j        d          gt          t
          |          t          t          d          g           |                     dt          j        dfgt	          ddgd	gt
          ||          gg           }|                     |t          d	t          j        d          gt          t
          |          t          t          d          g           |                     dt          j        dfgt	          ddgd	gt
          ||          gg           }|                     |t          d	t          j        d          gt          t
          |          t          t          d          g           |                     dt          j        dfgt	          ddgd	gt
          ||          gg           }|                     |t          d	t          j        d          gt          t
          |          t          t          d          g           |                     dt          j        dfgt	          ddgd	gt
          ||          gg           }|                     |t          d	t          j        d          gt          t
          |          t          t          d          g           |                     dt          j        dfgt	          ddgd	gt
          ||          gg           }|                     |t          d	t          j        d          gt          t
          |          t          t          d          g           d S )NrU   z7keys_* attributes were introduced in ai.onnx.ml opset 2)r  mr   )g{GW@g      B@g     X)rM     V   rS   r'  r   r  r   )r.   keys_stringsvalues_int64sr  r   r   )r.   keys_int64svalues_stringsr   )r.   keys_floatsr  r  )r.   r  values_floatsr4   )r.   r  r  r   )r.   r  r  )r   rg   r   r   r   r   r   r    r_   r   r   r   )r`   r   r0   string_list
float_list
int64_listr   s          r1   test_label_encoder_string_int64z2TestShapeInference.test_label_encoder_string_int64  se    	aKR	
 	
 	
 &oo***
!\\
  ;%v./"EE)!,",  	 
 
 	#C):FCCD^W55["-- 	 	
 	
 	
   ;$f-."EE) *#.  	 
 
 	#C);VDDE^W55["-- 	 	
 	
 	
   ;$d+,"EE) *",  	 
 
 	#C):DAAB^W55["-- 	 	
 	
 	
   ;$d+,"EE) *",  	 
 
 	#C):DAAB^W55["-- 	 	
 	
 	
   ;$b)*"EE) *#.  	 
 
 	#C);R@@A^W55["-- 	 	
 	
 	
   ;%v./"EE)!,",  	 
 
 	#C):FCCD^W55["-- 	 	
 	
 	
 	
 	
r8   c                $   |                      |dk     d           t          dt          j        dgg d          }t          dt          j        dgg d          }|                     dt          j        dfgt          d	dgd
gt          ||t          dt          j        dgdg                    gg           }|                     |t          d
t          j        d          gt          t          |          t          t          d          g           d S )Nr   z7tensor attributes were introduced in ai.onnx.ml opset 4keys_tensorr   r   ccdddvalues_tensorr   rU   r   r   rS   rk  Nr   rM  r  r   default_tensorr   r   r.   r   r  r  r  r   )r   r   r   r   r_   rg   r   r   r   r    r   r   )r`   r   r0   
key_tensorr  r   s         r1   $test_label_encoder_tensor_attributesz7TestShapeInference.test_label_encoder_tensor_attributesE  sE    	aKR	
 	
 	
 !;-s4K4K4K
 

 $[.\\\
 
   ;%'9:;"EE) *"/#.(+*;aS1#$ $
 
 
 
 
" 	#C):<NOOP^W55["-- 	 	
 	
 	
 	
 	
r8   c                :   |                      |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}|                     dt          j        d	fgt          d
dgdgt          ||t          dt          j
        dgdg                    gg           }|                     t          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           }|                     t          j        j        | j        ||           d S )Nr   z2tensor attributes introduced in ai.onnx.ml opset 4r   r  r  r  r  rS   r  r  r   r  r   r   r  r   rU   r   r   )r.   r   r  r  )r   r   r   r   r_   r   r   r   rg   r   r  r   rq   rr   r   rw   )r`   r   r0   r	  r  r   r   s          r1   ;test_label_encoder_tensor_attributes_invalid_configurationszNTestShapeInference.test_label_encoder_tensor_attributes_invalid_configurationsl  s    	GaK!UVVV ;-s4K4K4K
 

 $[.\\\
 

 11b))
   ;%'9:;"EE) *"/#.(+*;aS1#$ $
 
 
 
 
$ 	 /N'	 	 	
 	
 	
   ;%'9:;"EE) *#:#:#:#.(+*<q!fsCj$ $
 
 
 
 
$ 	 /N'	 	 	
 	
 	
 	
 	
r8   r   r"  indices_shaper;  r   c                Z   t                      }|j                            |           t          |          }|j                            t          j        dt          j	        |f|                     |j
                            t          j        dt          j	        ||                     |S )Nspvalspind)r   dimsextendr   r"  CopyFromr   r   r   r_   r;  )r`   r   r"  r  r;  sparsennzs          r1   make_sparsezTestShapeInference.make_sparse  s     #$$5!!!&kkw(9C66JJ	
 	
 	
 	w(9='RR	
 	
 	
 r8   c           	         dg}|                      |g ddgg d          }|                     g t          dg dg|          gg           }|                     |t	          dt
          j        |          g           d S )Nr|  )r  r     r   )r;     Q   r  r   )sparse_value)r  rg   r   r   r    r   r_   )r`   y_shapey_valuer   s       r1   test_constant_sparsez'TestShapeInference.test_constant_sparse  s    %""7LLL1#{{{KK  :rC5wGGGH"
 
 	*30A7KKL	
 	
 	
 	
 	
r8   c           	         |                      g t          dg dgd          gg           }|                     |t          dt          j        g           g           d S )Nr  r   *   )	value_int)rg   r   r   r    r   r_   r   s     r1   test_constant_value_intz*TestShapeInference.test_constant_value_int  sp      :rC5B???@"
 
 	*30A2FFG	
 	
 	
 	
 	
r8   c           
         g d}|                      g t          dg dg|          gg           }|                     |t          dt          j        t          |          g          g           d S )Nr  r  r   )
value_ints)rg   r   r   r    r   r_   r   )r`   r$  r   s      r1   test_constant_value_intsz+TestShapeInference.test_constant_value_ints  s    YY
  :rC5ZHHHI2
 
 	*30AC
OOCTUUV	
 	
 	
 	
 	
r8   c           	         |                      g t          dg dgd          gg           }|                     |t          dt          j        g           g           d S )Nr  r   gQ?)value_float)rg   r   r   r    r   r   r   s     r1   test_constant_value_floatz,TestShapeInference.test_constant_value_float  sp      :rC5dCCCDb
 
 	*30A2FFG	
 	
 	
 	
 	
r8   c           
         g d}|                      g t          dg dg|          gg           }|                     |t          dt          j        t          |          g          g           d S )N)r  r  g333333?r  r   )value_floats)rg   r   r   r    r   r   r   )r`   r*  r   s      r1   test_constant_value_floatsz-TestShapeInference.test_constant_value_floats  s    &  :rC5|LLLMr
 
 	*30ACDUDUCVWWX	
 	
 	
 	
 	
r8   c           	         |                      g t          dg dgd          gg           }|                     |t          dt          j        g           g           d S )Nr  r   zString value)value_string)rg   r   r   r    r   r   r   s     r1   test_constant_value_stringz-TestShapeInference.test_constant_value_string  sq      :rC5~NNNOQS
 
 	*30BBGGH	
 	
 	
 	
 	
r8   c           
         g d}|                      g t          dg dg|          gg           }|                     |t          dt          j        t          |          g          g           d S )N)onr1  rS   r  r   )value_strings)rg   r   r   r    r   r   r   )r`   r2  r   s      r1   test_constant_value_stringsz.TestShapeInference.test_constant_value_strings  s    ,,,  :rC5NNNOQS
 
 	#C);c->P>P=QRRS	
 	
 	
 	
 	
r8   c                   |                      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          }|                     |t          dt          j        d
          g           d S )Nr  r4   limitdeltaRanger  r5  r6  r3  r  r  r   r6  )rg   r   r   r   r   r   r    r   s     r1   
test_rangezTestShapeInference.test_range  s      ++R0++R0++R0
 w ; ; ;hZHHIG[%6DAAG[%6DAAG[%6DAA ! 
 
 	*8[5FMMN	
 	
 	
 	
 	
r8   c                   t                      }d|_        t           j        |_        |j                            dg           |                     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          }| 	                    t          j        j        | j        |           d S )Nr6  rU   r  r4   r5  r7  r8  r3  r  r  r6  )r   r-   r   	data_type
int64_datar  rg   r   r   r   rq   rr   r   rw   r`   
bad_tensorr   s      r1   test_range_initializer_invalidz1TestShapeInference.test_range_initializer_invalid  s     !]]
!
*0
$$aS)))  ++R0++R0++R0
 w ; ; ;hZHHIG[%6DAAG[%6DAA ! 
 
 	$.=t~uUUUUUr8   c                   t          dt          j        dt          j        dgd                                          d          }d|_        |                     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          }| 	                    t          j        j        | j        |           d S )Nr6  r4   r  r  r  Tr  r8   r  r5  r7  r8  r3  r  r  r6  )r   r   r   r   r  r  raw_datarg   r   r   rq   rr   r   rw   r=  s      r1   &test_range_initializer_invalid_rawdataz9TestShapeInference.test_range_initializer_invalid_rawdata/  s    !3%u---5577
 
 

 "
  ++R0++R0++R0
 w ; ; ;hZHHIG[%6DAAG[%6DAA ! 
 
 	$.=t~uUUUUUr8   c                ~   |                      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
          }|                     |t          dt          j        d          g           d S )Nr  r4   r5  r6  r7  r8  r3  r  r  r6  rX   )rg   r   r  r   r   r   r    r   s     r1   test_range_rank_inferencez,TestShapeInference.test_range_rank_inferenceL  s      ++R0++R0++R0
 w ; ; ;hZHHIG[%6DAAG[%6DAA ! 
 
 	*8[5FPPQ	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )NrS   r:  r;  r   GatherNDr   r'  rz  r   s     r1   test_gatherndz TestShapeInference.test_gathernd^  s      ;$i09k>OQU2VWzC#3cU;;<
 

 	*30A4HHI	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   r^  r;  r   rF  r   r   )
batch_dimsrI  rz  r   s     r1   test_gathernd_batchdim_1z+TestShapeInference.test_gathernd_batchdim_1h  s      k'3K-v6 zC#3cUqIIIJ
 
 	*30A6JJK	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfdt          j        dfgt          dddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r  rU  r  CumProdr   r   r   s     r1   test_cumprodzTestShapeInference.test_cumprodu  s      ;$f-8I4/PQy3-556
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfdt          j        dfgt          dddgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r   rU  r  CumSumr   r   r   s     r1   test_cumsumzTestShapeInference.test_cumsum  s      ;$f-8I4/PQx#v445
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )Nboxesr   r   r   scores)r   r?   r   NonMaxSuppressionr   r;  r  r   s     r1   test_nonmaxsuppressionz)TestShapeInference.test_nonmaxsuppression  s      ++Y7;,i8 *Wh,?#GGH
 
 	*30A9MMN	
 	
 	
 	
 	
r8   c                    |                      g t          dg dg          gg           }|                     |t          dt          j        d           g           d S )NSequenceEmptyr3  )rg   r   r   r   r   r   r   s     r1   test_sequence_emptyz&TestShapeInference.test_sequence_empty  sf      ihZ&P&P%QSUVV3Hk>OQUVVW	
 	
 	
 	
 	
r8   c                   |                      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          g           d S )Nr  r   r   r  r  r  r  r  r   s     r1   test_sequence_constructz*TestShapeInference.test_sequence_construct  s      ;,i8;,i8;,i8 '222&'  
 
 	/%{'8) 	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )Nr  r   r  r  r  r   s     r1   !test_sequence_construct_one_inputz4TestShapeInference.test_sequence_construct_one_input  s      )956*XJ9J8KLLM
 

 	/%{'8) 	
 	
 	
 	
 	
r8   c                   |                      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           g           d S )	Nr  r   r   r   r  r  r  r  r  r   s     r1   !test_sequence_construct_diff_rankz4TestShapeInference.test_sequence_construct_diff_rank  s      ;,i8;,f5;,f5 '222&'  
 
 	/%{'8$ 	
 	
 	
 	
 	
r8   c                   |                      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
          g           d S )Nr  r   r   r(  r  r  r  r  r  rU   r   Nr  r   s     r1   %test_sequence_construct_diff_dim_sizez8TestShapeInference.test_sequence_construct_diff_dim_size  s      ;,i8;,i8;,i8 '222&'  
 
 	/%{'8, 	
 	
 	
 	
 	
r8   c           	        |                      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           }|                     |t          dt          j        d          t          d
t          j        d          g           d S )Nr  r   r   r  input4r  r  r  SequenceInsertr  r  r   s     r1   test_sequence_insertz'TestShapeInference.test_sequence_insert  s      ;,i8;,i8;,i8;,i8	 ')G)G)G-  $}h&?BSAT 	 
 
" 	/!;#4i  0%{'8) 	
	
 
	
 
	
 
	
 
	
r8   c           	        |                      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           }|                     |t          d	t          j        d          t          dt          j        d           g           d S )Nr  r   r   r  re  r   r  r  r  rf  r  r  r   s     r1   test_sequence_insert_diff_rankz1TestShapeInference.test_sequence_insert_diff_rank  s      ;,i8;,i8;,i8;,f5	 ')G)G)G-  $}h&?BSAT 	 
 
" 	/!;#4i  0%{'8$ 	
	
 
	
 
	
 
	
 
	
r8   c           	        |                      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           }|                     |t          d
t          j        d          t          dt          j        d          g           d S )Nr  r   r   r  r  re  rU   r?   rU   r  r  r  rf  r  r  rU   NNr  r   s     r1   test_sequence_insert_diff_shapez2TestShapeInference.test_sequence_insert_diff_shape2  s      ;,i8;,i8;,i8;,i8	 ')G)G)G-  $}h&?BSAT 	 
 
" 	/!;#4l  0%{'8/ 	
	
 
	
 
	
 
	
 
	
r8   c           	        |                      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           }|                     |t          d	t          j        d          t          dt          j        d          g           d S )Nr  r   r   r  indr4   r  r  r  
SequenceAtr3  rg   r   r   r_   r   r   r   r    r   s     r1   test_sequence_atz#TestShapeInference.test_sequence_atP  s      ;,i8;,i8;,i8)2.	 ')G)G)G-  ,(>
KK	 
 
 	/!;#4i  'x1BINN		
 	
 	
 	
 	
r8   c           	        |                      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           }|                     |t          d
t          j        d           t          dt          j        d           g           d S )Nr  r   r   r   r  ro  r4   r  r  r  rp  r3  rq  r   s     r1   test_sequence_at_unknown_shapez1TestShapeInference.test_sequence_at_unknown_shapej  s      ;,i8;,f5;,i8)2.	 ')G)G)G-  ,(>
KK	 
 
 	/{?PRVWW&x1BDII	
 	
 	
 	
 	
r8   c           	        |                      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           }|                     |t          d
t          j        d          t          dt          j        d          g           d S )Nr  r   r   r(  r  ro  r4   r  r  r  rp  r3  rb  rq  r   s     r1   !test_sequence_at_unknown_dim_sizez4TestShapeInference.test_sequence_at_unknown_dim_size  s      ;,i8;,i8;,i8)2.	 ')G)G)G-  ,(>
KK	 
 
 	/!;#4l  'x1BLQQ		
 	
 	
 	
 	
r8   c           	        |                      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           }|                     |t          d	t          j        d          t          dt          j        d          g           d S )Nr  r   r   r  ro  r4   r  r  r  SequenceEraser  rg   r   r   r_   r   r   r   r   s     r1   test_sequence_erasez&TestShapeInference.test_sequence_erase  s      ;,i8;,i8;,i8)2.	 ')G)G)G-  /M5+ADUCVWW	 
 
 	/!;#4i  0%{'8) 	
	
 
	
 
	
 
	
 
	
r8   c           	        |                      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           }|                     |t          d
t          j        d          t          dt          j        d          g           d S )Nr  rU   r   rS   r   r  )rU   r?   rS   ro  r4   r  r  r  rx  r  rU   NrS   ry  r   s     r1   !test_sequence_erase_diff_dim_sizez4TestShapeInference.test_sequence_erase_diff_dim_size  s      ;,k:;,k:;,k:)2.	 ')G)G)G-  /M5+ADUCVWW	 
 
 	/!;#4n  0%{'8. 	
	
 
	
 
	
 
	
 
	
r8   c           	     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gd	g          gg           }|                     |t          dt          j        d          t          d	t          j        d
          g           d S )Nr  r|  r   r  r  r  r  SequenceLengthr   r4   )rg   r   r   r   r   r   r    r_   r   s     r1   test_sequence_lengthz'TestShapeInference.test_sequence_length  s      ;,k:;,k:;,k: ')G)G)G-  *]OeWEE	 
 
 	/!;#4k  'uk.?DD		
 	
 	
 	
 	
r8   c                ,   |                      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          }|                     |t          dt          j        d	          g           d S )
Nr/  r'  r   r  r   SplitToSequencer  r>  r6  r  rg   r   r   r  r   r   r   r   r   s     r1   test_split_to_sequencez)TestShapeInference.test_split_to_sequence  s      {(&1G[=NPT3UV(7G*<?P>QRRS$Wk.?vNNO	 ! 
 
 	/%{'8& 	
 	
 	
 	
 	
r8   c                ,   |                      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          }|                     |t          dt          j        d	          g           d S )
Nr/  r  r  r4   r  r  r   r6  r   r  r   s     r1   test_split_to_sequence_scalarz0TestShapeInference.test_split_to_sequence_scalar  s      {(&1G[=NPR3ST(7G*<?P>QRRS$Wk.?TJJK	 ! 
 
 	/%{'8& 	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )Nr/  r  r  r  r   r  r  r  r   s     r1   test_split_to_sequence_keepdimsz2TestShapeInference.test_split_to_sequence_keepdims  s      {(&12(7)6G5HSTUUUV
 

 	/%{'8& 	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )Nr/  r  r  r  r   r  r  r  r   s     r1   #test_split_to_sequence_not_keepdimsz6TestShapeInference.test_split_to_sequence_not_keepdims  s      {(&12(7)6G5HSTUUUV
 

 	/%{'8$ 	
 	
 	
 	
 	
r8   c                0   |                      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
          }|                     |t          dt          j        d          g           d S )Nr/  r  r  r   r  r  r   r  r>  r6  r  r  r   s     r1   &test_split_to_sequence_ignore_keepdimsz9TestShapeInference.test_split_to_sequence_ignore_keepdims+  s      {(&1G[=NPT3UV%g&&'	   $Wk.?vNNO ! 
 
 	/%{'8& 	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )Nr/  r  r  r  r   rT  r  r  r   s     r1   test_split_to_sequence_axisz.TestShapeInference.test_split_to_sequence_axisB  s      {(&12(7)6G5HqQQQR
 

 	/%{'8& 	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )Nr/  r  r  r  r  rT  r  r  r   s     r1   test_split_to_sequence_neg_axisz2TestShapeInference.test_split_to_sequence_neg_axisQ  s      {(&12(7)6G5HrRRRS
 

 	/%{'8& 	
 	
 	
 	
 	
r8   c                ,   |                      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          }|                     |t          dt          j        d	          g           d S )
Nr/  r  r  r   r  r  r$  r6  Nr   r  r   s     r1   "test_split_to_sequence_split_sizesz5TestShapeInference.test_split_to_sequence_split_sizes`  s      {(&1G[=NPT3UV(7G*<?P>QRRS$Wk.?yQQR	 ! 
 
 	/%{'8) 	
 	
 	
 	
 	
r8   c                ,   |                      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          }|                     |t          dt          j        d	          g           d S )
Nr/  r  r  r4   r  r  r  r6  r  r  r   s     r1   $test_split_to_sequence_non_divisiblez7TestShapeInference.test_split_to_sequence_non_divisiblep  s      {(&1G[=NPR3ST(7G*<?P>QRRS$Wk.?TJJK	 ! 
 
 	/%{'8) 	
 	
 	
 	
 	
r8   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           }|                     |t          dt          j        d          t          d	t          j        d          g           d S )Nr  r|  r   r  r  r  r  ConcatFromSequencer[  r   rT  )Nr   rS   rg   r   r   r   r   r   r    r   s     r1   test_concat_from_sequencez,TestShapeInference.test_concat_from_sequence  s      ;,k:;,k:;,k: ')G)G)G-  .%qQQQ	 
 
 	/!;#4k  'uk.?PP		
 	
 	
 	
 	
r8   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           }|                     |t          dt          j        d           t          d
t          j        d           g           d S )Nr  r|  r   r   r  r  r  r  r  r[  r   rT  r  r   s     r1   'test_concat_from_sequence_unknown_shapez:TestShapeInference.test_concat_from_sequence_unknown_shape  s      ;,k:;,f5;,k: ')G)G)G-  .%qQQQ	 
 
 	/{?PRVWW&uk.?FF	
 	
 	
 	
 	
r8   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           }|                     |t          dt          j        d          t          d
t          j        d          g           d S )Nr  r|  r   rU   r   rS   r  r  r  r  r  r[  r   rT  r}  NNrS   r  r   s     r1   *test_concat_from_sequence_unknown_dim_sizez=TestShapeInference.test_concat_from_sequence_unknown_dim_size  s      ;,k:;,k:;,k: ')G)G)G-  .%qQQQ	 
 
 	/!;#4n  'uk.?ARSS		
 	
 	
 	
 	
r8   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           }|                     |t          dt          j        d          t          d
t          j        d          g           d S )Nr  r|  r   r  r  r  r  r  r  r[  rU   rT  r}  rl  r  r   s     r1   test_concat_from_sequence_axisz1TestShapeInference.test_concat_from_sequence_axis  s      ;,k:;,k:;,k: ')G)G)G-  .%qQQQ	 
 
 	/!;#4n  'uk.?QQ		
 	
 	
 	
 	
r8   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           }|                     |t          dt          j        d          t          d
t          j        d          g           d S )Nr  r|  r   r  r  r  r  r  r  r[  rT  r}  r  r  r   s     r1   "test_concat_from_sequence_neg_axisz5TestShapeInference.test_concat_from_sequence_neg_axis  s      ;,k:;,k:;,k: ')G)G)G-  .%rRRR	 
 
 	/!;#4n  'uk.?ARSS		
 	
 	
 	
 	
r8   c                l   |                      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           }|                     |t          dt          j        d          t          d	t          j        d          g           d S )Nr  r|  r   r  r  r  r  r  r[  rU   r   rU  new_axis)rU   r   NrS   r  r   s     r1   "test_concat_from_sequence_new_axisz5TestShapeInference.test_concat_from_sequence_new_axis  s      ;,k:;,k:;,k: ')G)G)G-  (=/E7UV  	 
 
  	/!;#4k  'uk.?ARSS		
 	
 	
 	
 	
r8   c                l   |                      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           }|                     |t          dt          j        d          t          d	t          j        d          g           d S )Nr  r|  r   r  r  r  r  r  r[  r'   r   r  )rU   r   rS   Nr  r   s     r1   &test_concat_from_sequence_neg_new_axisz9TestShapeInference.test_concat_from_sequence_neg_new_axis  s      ;,k:;,k:;,k: ')G)G)G-  (=/E7VW  	 
 
  	/!;#4k  'uk.?ARSS		
 	
 	
 	
 	
r8   c           	        |                      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           }|                     |t          d
t          j        d          t          dt          j        d          gt          j	        t          d          t          j	        t
          d          g           d S )NRr4   Tr   r   Gr  Adagrad)r  r  r   r  r  X_newH_newr.   rM  r   r   rg   r   r   r_   r   r   r   r    r   r   r   r   s     r1   test_adagradzTestShapeInference.test_adagrad1  s     k',k',k'0k'0k'0 ---g&:	   !
 
& 	&w0A6JJ&w0A6JJ
 #K44#$CQGG 	 
	
 
	
 
	
 
	
 
	
r8   c                   |                      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           }|                     |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           d S )Nr  r4   r  X1r   X2r  G1G2H1H2r  )r  r  r  r  r  r  r  r  )X1_newX2_newH1_newH2_newr  r  r  r  r  rM  r   r   r  r   s     r1   test_adagrad_multiplez(TestShapeInference.test_adagrad_multipleQ  s[     k',k',{(&1{(&1{(&1{(&1{(&1{(&1	 BBB<<<:	   '
 
, 	&x1BFKK&x1BFKK&x1BFKK&x1BFKK	 #K44#$CQGG 	 	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          d
t          j        d          t          dt          j        d          gt          j	        t          d          t          j	        t
          d          g           d S )Nr  r4   r  r   r   r  r  Momentum)r  r  r   r  r  r  V_new?r  {Gz?standardr  r  norm_coefficientr  r.   rM  r   r   r  r   s     r1   test_momentumz TestShapeInference.test_momentumv  s     k',k',k'0k'0k'0 ---g&%)#:	 	 	 )
 
, 	&w0A6JJ&w0A6JJ
 #K44#$CQGG 	 
	
 
	
 
	
 
	
 
	
r8   c                   |                      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           }|                     |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           d S )Nr  r4   r  r  r   r  r  r  r  V1V2r  )r  r  r  r  r  r  r  r  )r  r  V1_newV2_newr  r  r  nesterovr  r  r  r  r  rM  r   r   r  r   s     r1   test_momentum_multiplez)TestShapeInference.test_momentum_multiple  sg     k',k',{(&1{(&1{(&1{(&1{(&1{(&1	 BBB<<<%)#:	 	 	 /
 
4 	&x1BFKK&x1BFKK&x1BFKK&x1BFKK	 #K44#$CQGG 	 	
 	
 	
 	
 	
r8   c                8   |                      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}|                     ||t          t
          d          t          t          d          g           d S )Nr  r4   r  r   r   r  r  r  Adam)r  r  r   r  r  r  )r  r  r  r  r  r  r.   r  r  r  r  r  r  r   rM  r   
rg   r   r   r_   r   r   r    r   r   r   r`   r   infoss      r1   	test_adamzTestShapeInference.test_adam  s7     k',k',k'0k'0k'0k'0 222///:%)  
 )
 
0 #7K,=vFF"7K,=vFF"7K,=vFF
 	<a@@["-- 	 	
 	
 	
 	
 	
r8   c                D   |                      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}|                     ||t          t
          d          t          t          d          g           d S )Nr  r4   r  r  r   r  r  r  r  r  r  r  r  r  )
r  r  r  r  r  r  r  r  r  r  )r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rM  r   r  r  s      r1   test_adam_multiplez%TestShapeInference.test_adam_multiple  s     k',k',{(&1{(&1{(&1{(&1{(&1{(&1{(&1{(&1 NNNPPP:%)  
 1
 
8 #8[->GG"8[->GG"8[->GG"8[->GG"8[->GG"8[->GG
 	<a@@["-- 	 	
 	
 	
 	
 	
r8   c           
        |                      dt          j        dfgt          dddg d          gg           }|                     |t          dt          j        d          gt          j        t          d          g	           d S )
NrS   r   NrU   Padr   r   r   r   r   r   r   rB  r   Nr   rL  r   r   r   s     r1   test_pad_opset10z#TestShapeInference.test_pad_opset10  s      ;$l34uc3-?-?-?@@@A
 

 	#C):LIIJ!.{B??@ 	 	
 	
 	
 	
 	
r8   c                   |                      dt          j        dfgt          dddg ddd          gg           }|                     |t          dt          j        d	          gt          j        t          d
          g           d S )NrS   )rU   r   r   r   r  r   )r   r   r   r   r   r   r   rU   constantr  )rC  r  r  )rU   r   r  rS  rL  r   r   r   s     r1   test_constant_pad_2d_opset10z/TestShapeInference.test_constant_pad_2d_opset10#  s      ;$l34111#  	 
 
 	#C):MJJK!.{B??@ 	 	
 	
 	
 	
 	
r8   c                *   |                      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          }|                     |t          dt          j        d	          g           d S )
NrS   r  rC  rG  r  r   r  r6  r  rk  r   s     r1   test_padzTestShapeInference.test_pad8  s      ;$l3fk>OQU5VWusFmS112%	 	 ! 
 
( 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )NrS   rG  r;  r   r  r   rz  r   s     r1   test_gatherelements_basicz,TestShapeInference.test_gatherelements_basicQ  s      ;$d+i9JD-QR'#y)9C5AAB
 

 	*30A4HHI	
 	
 	
 	
 	
r8   c                    |                      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           g           d S )NrS   rG  r;  r  r   rz  r   s     r1   )test_gatherelements_indices_missing_shapez<TestShapeInference.test_gatherelements_indices_missing_shape[  s      k'.K-t4 '#y)9C5AAB
 
 	*30A4HHI	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r  Einsumr   zij->jiequationr  r   r   s     r1   test_einsum_transposez(TestShapeInference.test_einsum_transposeh        ;$f-.x#AAAB
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )	NrS   r  r   r  r   i,i->r  r4   r   r   s     r1   test_einsum_dotz"TestShapeInference.test_einsum_dotr        ;$d+c;3Dd-KLx#scUWEEEF
 

 	*30A2FFG	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )NrS   r4   r   r  r   z,->r  r   r   s     r1   test_einsum_scalarz%TestShapeInference.test_einsum_scalar|  s      ;$b)C1BB+GHx#scUUCCCD
 

 	*30A2FFG	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     t
          j        j        | j        |           d S )NrS   r4   r  r   zi->ir  r   r   s     r1   #test_einsum_scalar_invalid_equationz6TestShapeInference.test_einsum_scalar_invalid_equation  so       ;$b)*x#???@
 

 	$.=t~uUUUUUr8   c           	         |                      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	          g           d S )
NrS   r"  r   )rS  r;  r  r   zij,ab->ijabr  )r   r?   rS  r;  r   r   s     r1   test_einsum_outer_prodz)TestShapeInference.test_einsum_outer_prod  s      ;$f-[5F/OPx#scU]KKKL
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r  r  r   zi j->i r  r   r   r   s     r1   test_einsum_sum_along_dimz,TestShapeInference.test_einsum_sum_along_dim  s      ;$f-.x#	BBBC
 

 	*30A4HHI	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   )r   r   r   r  r   z... ii ->... ir  r  r   r   s     r1   test_einsum_ellipsisz'TestShapeInference.test_einsum_ellipsis  s      ;$i01x#8HIIIJ
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   r   r   rU   r   r?   r  r   ...ij,...jk->...ikr  r(  r   r   s     r1   test_einsum_ellipsis_2z)TestShapeInference.test_einsum_ellipsis_2  s      ;$i038I92UVx#scU=QRRRS
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   r   r   r   r  r   z...ij,...jkr  r(  r   r   s     r1   test_einsum_ellipsis_3z)TestShapeInference.test_einsum_ellipsis_3  s      ;$i038I92UVx#scU]KKKL
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   rT  r   )r  r   r?   r  r   r  r  )r  r   r?   r   r   s     r1   test_einsum_ellipsis_broadcastz1TestShapeInference.test_einsum_ellipsis_broadcast  s      ;$i038I:2VWx#scU=QRRRS
 

 	*30A:NNO	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   )r?   r'  rS  r  r   )r  r;  rL  r  r   zabcd,dfg->abcfgr  )r?   r'  rS  r;  rL  r   r   s     r1   test_einsum_contractionz*TestShapeInference.test_einsum_contraction  s      k'6k'4 x#scU=NOOOP
 
 	#C):<LMMN	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   rN  r   r"  r  r   z
ijk,ik->jkr  r-  r   r   s     r1   test_einsum_contraction_2z,TestShapeInference.test_einsum_contraction_2  s      ;$i038I62RSx#scU\JJJK
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   )r?   rU   r   r   )r?   r   r   r  r   zbij , b jk-> bikr  )r?   rU   r   r   r   s     r1   test_einsum_batch_matmulz+TestShapeInference.test_einsum_batch_matmul  s      ;$i038I92UVx#scU=OPPPQ
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   r   r   r  r  r   zij,klr  )rU   r   r   r   r   r   s     r1   test_einsum_left_hand_eqnz,TestShapeInference.test_einsum_left_hand_eqn  s      ;$f-[5F/OPx#scUWEEEF
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c           	        |                      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           }|                     t
          j        j        | j        |           d S )NrS   r   r   r   r  zi,...j, k, l-> ir  r   r   s     r1    test_einsum_incorrect_num_inputsz3TestShapeInference.test_einsum_incorrect_num_inputs  s      k'0k'0k'0
 x#scU=OPPPQ
 
 	$.=t~uUUUUUr8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r   r  r   r  r  r   r   s     r1   test_einsum_view_A1z&TestShapeInference.test_einsum_view_A1  s      ;$d+,x#<<<=
 

 	*30A4HHI	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r   r  r   zi->r  r4   r   r   s     r1   test_einsum_sum_A1z%TestShapeInference.test_einsum_sum_A1  s      ;$d+,x#>>>?
 

 	*30A2FFG	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )NrS   r   r   r  r   zi,i->ir  r   r   s     r1   -test_einsum_element_wise_multiplication_A1_B1z@TestShapeInference.test_einsum_element_wise_multiplication_A1_B1  s       ;$d+c;3Dd-KLx#scUXFFFG
 

 	*30A4HHI	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )	NrS   r   r   r  r   r  r  r4   r   r   s     r1   test_einsum_inner_product_A1_B1z2TestShapeInference.test_einsum_inner_product_A1_B1$  r  r8   c           	         |                      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          g           d S )	NrS   r   r   r  r   zi,j->ijr  r>  r   r   s     r1   test_einsum_outer_product_A1_B1z2TestShapeInference.test_einsum_outer_product_A1_B1.  s      ;$d+c;3Dd-KLx#scUYGGGH
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r>  r  r   zij->ijr  r   r   s     r1   test_einsum_view_A2z&TestShapeInference.test_einsum_view_A28  r  r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r>  r  r   ijr  r   r   s     r1   test_einsum_view_A2_2z(TestShapeInference.test_einsum_view_A2_2B        ;$f-.x#===>
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r>  r  r   jir  r   r   s     r1   test_einsum_transpose_A2z+TestShapeInference.test_einsum_transpose_A2L  r   r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r>  r  r   zji->ijr  r   r   s     r1   test_einsum_transpose_A2_to_ijz1TestShapeInference.test_einsum_transpose_A2_to_ijV  r  r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r>  r  r   zii->ir  r   r   r   s     r1   test_einsum_diag_A2z&TestShapeInference.test_einsum_diag_A2`        ;$f-.x#@@@A
 

 	*30A4HHI	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r>  r  r   zii->r  r4   r   r   s     r1   test_einsum_trace_A2z'TestShapeInference.test_einsum_trace_A2j        ;$f-.x#???@
 

 	*30A2FFG	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r>  r  r   zij->r  r4   r   r   s     r1   test_einsum_sum_A2z%TestShapeInference.test_einsum_sum_A2t  r+  r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r>  r  r   zij->jr  r   r   r   s     r1   test_einsum_sum_columns_A2z-TestShapeInference.test_einsum_sum_columns_A2~  s       ;$f-.x#@@@A
 

 	*30A4HHI	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   r>  r  r   zij->ir  r   r   r   s     r1   test_einsum_sum_rows_A2z*TestShapeInference.test_einsum_sum_rows_A2  r(  r8   c           	         |                      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          g           d S )NrS   r>  r   r  r   z	ij,ij->ijr  r   r   s     r1   -test_einsum_element_wise_multiplication_A2_B2z@TestShapeInference.test_einsum_element_wise_multiplication_A2_B2         ;$f-[5F/OPx#scU[IIIJ
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )NrS   r>  r   r  r   z	ij,ji->ijr  r   r   s     r1   7test_einsum_element_wise_multiplication_A2_B2_transposezJTestShapeInference.test_einsum_element_wise_multiplication_A2_B2_transpose  r4  r8   c           	         |                      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          g           d S )NrS   r>  r   r  r   zij,jkr  r   r   s     r1   'test_einsum_matrix_multiplication_A2_B2z:TestShapeInference.test_einsum_matrix_multiplication_A2_B2  s       ;$f-[5F/OPx#scUWEEEF
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )NrS   r>  r   r  r   z	ij,jk->ikr  r   r   s     r1   -test_einsum_matrix_multiplication_A2_B2_to_ikz@TestShapeInference.test_einsum_matrix_multiplication_A2_B2_to_ik  r4  r8   c           	         |                      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          g           d S )NrS   r#  r   r  r   zbij,bjk->bikr  r   r   s     r1   'test_einsum_matrix_multiplication_A3_B3z:TestShapeInference.test_einsum_matrix_multiplication_A3_B3         ;$i038I92UVx#scU^LLLM
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )NrS   r#  r   r  r   zbij,bkj->bikr  r   r   s     r1   1test_einsum_matrix_multiplication_A3_B3_transposezDTestShapeInference.test_einsum_matrix_multiplication_A3_B3_transpose  r=  r8   c           	         |                      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          g           d S )NrS   r>  r   r  r   z	ij,kj->ikr  r   r   s     r1   test_einsum_inner_product_A2_B2z2TestShapeInference.test_einsum_inner_product_A2_B2  s      ;$f-[5F/OPx#scU[IIIJ
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )	NrS   r>  r   r  r   z
ij,kj->ikjr  )r   r   r   r   r   s     r1   $test_einsum_row_multiplication_A2_B2z7TestShapeInference.test_einsum_row_multiplication_A2_B2  s       ;$f-[5F/OPx#scU\JJJK
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )	NrS   r>  r   r  r   zij,kl->ijklr  )r   r   r   r   r   r   s     r1   &test_einsum_value_multiplication_A2_B2z9TestShapeInference.test_einsum_value_multiplication_A2_B2  s       ;$f-[5F/OPx#scU]KKKL
 

 	*30A<PPQ	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )	NrS   r4   r   r>  r  r   z,ij->ijr  r   r   s     r1   test_einsum_scalar_times_arrayz1TestShapeInference.test_einsum_scalar_times_array  s      ;$b)C1BF+KLx#scUYGGGH
 

 	*30A6JJK	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )	NrS   r>  r   r   r  r   zij,j->ir  r   r   s     r1   test_einsum_matrix_vector_A2_B1z2TestShapeInference.test_einsum_matrix_vector_A2_B1  s      ;$f-[5F/MNx#scUYGGGH
 

 	*30A4HHI	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )	NrS   r>  r   r  r   zii,ii->ir  r   r   r   s     r1   %test_einsum_diag_multiplication_A2_B2z8TestShapeInference.test_einsum_diag_multiplication_A2_B2  s       ;$f-[5F/OPx#scUZHHHI
 

 	*30A4HHI	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )	NrS   r>  r   r  r   zii,ii->r  r4   r   r   s     r1   "test_einsum_diag_dot_product_A2_B2z5TestShapeInference.test_einsum_diag_dot_product_A2_B2  s      ;$f-[5F/OPx#scUYGGGH
 

 	*30A2FFG	
 	
 	
 	
 	
r8   c           	        d\  }}|                      dt          j        ||ffdt          j        |ffgt	          dddgdgd          gg           }|                     |t          dt          j        |f          g           d S )Nr  r/  targetNegativeLogLikelihoodLosslossnone	reductionrz  r`   r  r  r   s       r1   *test_negative_log_likelihood_shape_is_NCddz=TestShapeInference.test_negative_log_likelihood_shape_is_NCdd(  s    1  {(1a&1Hk>ORSQU3VW/h'H$	   
 
 	*6;3DqdKKL	
 	
 	
 	
 	
r8   c           	     &   d\  }}|                      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           }|                     |t          dt          j        |f          g           d S )
Nr  r/  rO  weightrP  r/  rO  rX  rQ  rR  rS  rz  rU  s       r1   4test_negative_log_likelihood_shape_is_NC_with_weightzGTestShapeInference.test_negative_log_likelihood_shape_is_NC_with_weight:  s    1  ++aV4;,qd3;,qd3 /111H$	   
 
  	*6;3DqdKKL	
 	
 	
 	
 	
r8   c           	        d\  }}|                      dt          j        ||ffdt          j        |ffgt	          dddgdgd          gg           }|                     |t          dt          j        d          g           d S )	Nr  r/  rO  rP  rQ  r  rS  r4   rz  rU  s       r1   7test_negative_log_likelihood_shape_is_NC_reduction_meanzJTestShapeInference.test_negative_log_likelihood_shape_is_NC_reduction_meanP  s    1  {(1a&1Hk>ORSQU3VW/h'H$	   
 
 	*6;3DbIIJ	
 	
 	
 	
 	
r8   c           	     $   d\  }}|                      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           }|                     |t          dt          j        d
          g           d S )Nr  r/  rO  rX  rP  rY  rQ  r  rS  r4   rz  rU  s       r1   Ctest_negative_log_likelihood_shape_is_NC_with_weight_reduction_meanzVTestShapeInference.test_negative_log_likelihood_shape_is_NC_with_weight_reduction_meanb  s     1  ++aV4;,qd3;,qd3 /111H$	   
 
  	*6;3DbIIJ	
 	
 	
 	
 	
r8   c           
        d\  }}}}|                      dt          j        ||||ffdt          j        |||ffgt	          dddgdgd          gg           }|                     |t          dt          j        |||f          g           d S )Nr   r   r?   r'  r/  rO  rP  rQ  rR  rS  rz  r`   r  r  d1d2r   s         r1   ,test_negative_log_likelihood_shape_is_NCd1d2z?TestShapeInference.test_negative_log_likelihood_shape_is_NCd1d2z  s    !1b"  ++aB^<;,q"bk:
 /h'H$	   
 
 	*6;3Dq"bkRRS	
 	
 	
 	
 	
r8   c           
     6   d\  }}}}|                      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           }|                     |t          dt          j        |||f          g           d S )
Nr`  r/  rO  rX  rP  rY  rQ  rR  rS  rz  ra  s         r1   8test_negative_log_likelihood_shape_is_NCd1d2_with_weightzKTestShapeInference.test_negative_log_likelihood_shape_is_NCd1d2_with_weight  s    !1b"  ++aB^<;,q"bk:;,qd3 /111H$	   
 
  	*6;3Dq"bkRRS	
 	
 	
 	
 	
r8   c           	        d\  }}}}|                      dt          j        ||||ffdt          j        |||ffgt	          dddgdgd          gg           }|                     |t          dt          j        d          g           d S )	Nr`  r/  rO  rP  rQ  sumrS  r4   rz  ra  s         r1   :test_negative_log_likelihood_shape_is_NCd1d2_reduction_sumzMTestShapeInference.test_negative_log_likelihood_shape_is_NCd1d2_reduction_sum  s    !1b"  ++aB^<;,q"bk:
 /h'H#	   
 
 	*6;3DbIIJ	
 	
 	
 	
 	
r8   c           	     0   d\  }}}}|                      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           }|                     |t          dt          j        d
          g           d S )Nr`  r/  rO  rX  rP  rY  rQ  r  rS  r4   rz  ra  s         r1   Gtest_negative_log_likelihood_shape_is_NCd1d2_with_weight_reduction_meanzZTestShapeInference.test_negative_log_likelihood_shape_is_NCd1d2_with_weight_reduction_mean  s     "1b"  ++aB^<;,q"bk:;,qd3 /111H$	   
 
  	*6;3DbIIJ	
 	
 	
 	
 	
r8   c           	     F   d\  }}}}|                      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           }|                     t          j        j        | j	        |           d S )Nr`  r/  rO  r   rX  rQ  r4   rP  rY  r  rS  )
rg   r   r   r_   r   r   rq   rr   r   rw   ra  s         r1   8test_negative_log_likelihood_input_target_shape_mismatchzKTestShapeInference.test_negative_log_likelihood_input_target_shape_mismatch  s    !1b"  ++aR[9;,q"q&"o>;,qd3*B/	 /111H$	   
 
" 	$.=t~uUUUUUr8   c           
     D   d\  }}}}|                      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           }|                     t          j        | j        |           d S )Nr`  r/  rO  rX  r   rQ  rP  rY  rR  rS  )	rg   r   r   r_   r   r   r   r  rw   ra  s         r1   8test_negative_log_likelihood_input_weight_shape_mismatchzKTestShapeInference.test_negative_log_likelihood_input_weight_shape_mismatch  s    !1b"  ++aB^<;,q"bk:;,q1uh7*QBK8	 /111H$	   
 
" 	'14>5IIIIIr8   c           	         |                      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          g           d S )	NrS   r   r   r   SoftmaxCrossEntropyLossr   rR  rS  r   r   s     r1   test_softmax_cross_entropy_nonez2TestShapeInference.test_softmax_cross_entropy_none  s      ;$f-[5F/MN03*sevVVVW
 

 	*30A4HHI	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   r   r   r   rq  r   r  rS  r4   r   r   s     r1   test_softmax_cross_entropy_meanz2TestShapeInference.test_softmax_cross_entropy_mean   s      ;$f-[5F/MN03*sevVVVW
 

 	*30A2FFG	
 	
 	
 	
 	
r8   c           	         |                      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          g           d S )	NrS   )rU   r   r?   r  r   )rU   r?   r  rq  r   rR  rS  r   r   s     r1   &test_softmax_cross_entropy_none_NCD1D2z9TestShapeInference.test_softmax_cross_entropy_none_NCD1D2   s      k'6k'3 03*sevVVVW
 
 	*30A9MMN	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
NrS   rn  r   r   rq  r   r  rS  r4   r   r   s     r1   &test_softmax_cross_entropy_mean_NCD1D2z9TestShapeInference.test_softmax_cross_entropy_mean_NCD1D2   s      k'6k'3 03*sevVVVW
 
 	*30A2FFG	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )Nr   r  Celur   r  )r  r   r   s     r1   test_celu_function_output_shapez2TestShapeInference.test_celu_function_output_shape*   s      ;$&678vuse37778
 

 	*30ACSTTU	
 	
 	
 	
 	
r8   c                   t          dddgd          g}|g }n]d}|D ]}||z  }d t          |          D             }t          dt          j        ||          t          dt          j        ||          g}|g }n@t          j        dt          j        |          t          j        dt          j        |          g}t          j        |d|g |g           }	t          j        |	          S )	Nr  rS   r   r   r   c                    g | ]}d S )        r4   r6   r  s     r1   r@   zHTestShapeInference.prepare_input_initializer_tensors.<locals>.<listcomp><   s    ---AC---r8   rZ   )inputsoutputsrM   rK   )	r   r)   r   r   r   r   r    r   rp   )
r`   initializer_shapeinput_shaperI   rM   r  dr  r  r   s
             r1   !prepare_input_initializer_tensorsz4TestShapeInference.prepare_input_initializer_tensors4   s   53*c223$KKD&    ax--t---DC!24EtLLC!24EtLLK FF -c;3DkRR-c;3DkRRF
 !#
 
 
  '''r8   c                H   d}|                      |d           }t          j                            |d          }|j        j                                        }|j        j        j	        j
        d         j        |j        j        j	        j
        d         j        f}||k    sJ d S )Nr  rS  Tr  r   r   )r  rq   rr   rs   r   rK   ro   r   r   r   r   r   )r`   r  original_modelrv   z_tenorz_shapes         r1   3test_infer_with_initializer_without_input_above_ir4zFTestShapeInference.test_infer_with_initializer_without_input_above_ir4S   s     #??@QSWXX-:: ; 
 

 !&15577L$*.q1;L$*.q1;
 +++++++r8   c                Z   d}d}|                      ||          }d|_        t          j                            |d          }|j        j                                        }|j        j	        j
        j        d         j        |j        j	        j
        j        d         j        f}|dk    sJ d S )	Nr  rg  r   Tr  r   r   r   r   )r  
ir_versionrq   rr   rs   r   rK   ro   r   r   r   r   r   )r`   r  r  r  rv   r  r  s          r1   3test_infer_with_initializer_without_input_below_ir4zFTestShapeInference.test_infer_with_initializer_without_input_below_ir4d   s     #"??{
 
 %&!-:: ; 
 
 !&15577L$*.q1;L$*.q1;

 &      r8   c                    d}d}|                      ||          }|                     t          j        j        t          j        j        |d           d S )Nr  r  Tr  r  r   rq   rr   r   rs   r`   r  r  r  s       r1   %test_infer_initializer_input_mismatchz8TestShapeInference.test_infer_initializer_input_mismatchz   sh    "??{
 
 	 / -	 	 	
 	
 	
 	
 	
r8   c                |    d}d}|                      ||          }t          j                            |d           d S Nr  rg  Tr  r  rq   rr   rs   r  s       r1   1test_infer_initializer_input_consistency_all_nonezDTestShapeInference.test_infer_initializer_input_consistency_all_none   sK    ""??{
 
 	)).d)KKKKKr8   c                |    d}d}|                      ||          }t          j                            |d           d S )Nr  NrS  Tr  r  r  s       r1   4test_infer_initializer_input_consistency_single_nonezGTestShapeInference.test_infer_initializer_input_consistency_single_none   sK    "??{
 
 	)).d)KKKKKr8   c                    d}d}|                      ||          }|                     t          j        j        t          j        j        |d           d S )N)r  rS  r;  r  Tr  r  r  s       r1   7test_infer_initializer_input_consistency_different_rankzJTestShapeInference.test_infer_initializer_input_consistency_different_rank   sh    %??{
 
 	 / -	 	 	
 	
 	
 	
 	
r8   c                    d}d}|                      ||          }t          j                            |                                d           d S r  )r  rq   rr   rs   SerializeToStringr  s       r1   <test_infer_initializer_input_consistency_all_none_serializedzOTestShapeInference.test_infer_initializer_input_consistency_all_none_serialized   sf     #"??{
 
 	)),,..D 	* 	
 	
 	
 	
 	
r8   c                ,   |                      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          }|                     |t          dt          j        d          g           d S )	NrS   rN  r  r4   Trilur   r   r6  rk  r   s     r1   test_trilu_upperz#TestShapeInference.test_trilu_upper   s      ;$i038I22NOwc
SE223$S+*;RFFG	 ! 
 
 	*30A9MMN	
 	
 	
 	
 	
r8   c                0   |                      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
          }|                     |t          dt          j        d          g           d S )NrS   rN  r  r4   r  r   r   upperrL  r6  rk  r   s     r1   test_trilu_lowerz#TestShapeInference.test_trilu_lower   s      ;$i038I22NOwc
SE;;;<$S+*;RGGH	 ! 
 
 	*30A9MMN	
 	
 	
 	
 	
r8   c                0   |                      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
          }|                     |t          dt          j        d          g           d S )NrS   )r   r?   r  r4   r  r   r   r  r  r6  )rg   r   r_   r   r   r   r    r   s     r1   test_trilu_upper_zeroz(TestShapeInference.test_trilu_upper_zero   s      ;$f-[5F/KLwc
SE;;;<$S+*;RFFG	 ! 
 
 	*30A6JJK	
 	
 	
 	
 	
r8   c           	         |                      dt          j        dfgt          ddgdgd          gg           }|                     |t          dt          j        d          g           d S )NrS   )r   r   r?   r  r   r   r  )rg   r   r  r   r   r    r   s     r1   test_trilu_lower_onez'TestShapeInference.test_trilu_lower_one   s      ;$i01wuA6667
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c           
        |                      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           }|                     |t          dt          j        d          t          dt          j        d          t          dt          j        d          g           d S NrS   r  r  r  r   
input_mean	input_varr
  rS   r  r   r  r  r[  output_mean
output_varr   training_moder[  r  r  r   r   s     r1   test_batch_norm_trainz(TestShapeInference.test_batch_norm_train   s      k'9++T2k'.{0$7k/6 (BBB888"#	   !
 
$ 	&uk.?QQ&}k6GNN&|[5FMM	
 	
 	
 	
 	
r8   c           
        |                      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           }|                     |t          dt          j        d          t          dt          j        d          t          dt          j        d          g           d S )NrS   )r   r  r?   r'  rS  r  r  r   r  r  r
  r  r  r   r  r[  r  r  r   r   s     r1   test_batch_norm_train_dim_paramz2TestShapeInference.test_batch_norm_train_dim_param   s      k'):;++V4k'0{0&9k/8 (BBB888"#	   !
 
$ 	&uk.?ARSS&}k6GPP&|[5FOO	
 	
 	
 	
 	
r8   c           
        |                      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           }|                     |t          dt          j        d          t          dt          j        d          t          dt          j        d          g           d S r  )rg   r   r  r   r   r   r    r   s     r1   $test_batch_norm_train_with_diff_typez7TestShapeInference.test_batch_norm_train_with_diff_type!  s      k)?;+-t4k)40{0$7k/6 (BBB888"#	   !
 
$ 	&uk.A?SS&}k6GNN&|[5FMM	
 	
 	
 	
 	
r8   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d          gg           }|                     |t          d
t          j        d          g           d S )NrS   r  r  r  r   r  r  r
  r  r[  r   r  r   r   s     r1   test_batch_norm_testz'TestShapeInference.test_batch_norm_test5!  s      k'9++T2k'.{0$7k/6 (BBBG"#	   !
 
$ 	*5+2C_UUV	
 	
 	
 	
 	
r8   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d          gg           }|                     |t          dt          j        d          g           d S )NrS   )r   r   NNNr  r  r   r  rX   r  r
  r  r[  r   r  r   r   s     r1   test_batch_norm_test_no_dimz.TestShapeInference.test_batch_norm_test_no_dimL!  s      k')AB++T2k'.{0':k/6 (BBBG"#	   !
 
$ 	&;,.F 	
 	
 	
 	
 	
r8   c           
        |                      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           }|                     |t          dt          j        d           t          dt          j        d          t          dt          j        d          g           d S )NrS   r  r   r  r  r  r
  r  )r[  running_meanrunning_varr   r  r[  r  r  r   r   s     r1   test_batch_norm_train_no_shapez1TestShapeInference.test_batch_norm_train_no_shapeh!  s      k'.++T2k'.{0&9k/8 (BBB:::"#	   !
 
$ 	&uk.?FF&~{7H&QQ&}k6GPP	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )NrS   rX   NonZeror[  )r   Nr  r   s     r1   test_nonzerozTestShapeInference.test_nonzero!  s|      ;$g./y3%%112
 

 	*5+2CYOOP	
 	
 	
 	
 	
r8   c                    |                      dt          j        d fgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )NrS   r  r[  rg  r  r   s     r1   test_nonzero_no_shapez(TestShapeInference.test_nonzero_no_shape!  s{      ;$d+,ySEE7/S/S.TVX
 
 	*5+2C\RRS	
 	
 	
 	
 	
r8   c           	        |                      dt          j        dfgt          ddgdg          gt	          dt          j        d          g          }|                     |t	          dt          j        d          g           d S )NrS   r   r  r   )NNZ)r   r  )rg   r   r   r   r    r_   r   r   s     r1   test_nonzero_existing_dim_paramz2TestShapeInference.test_nonzero_existing_dim_param!  s      ;$d+,y3%#//0#C):LIIJ
 

 	*30A9MMN	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfgt          ddgdg          gg           }|                     |t          dt          j        d          g           d S )NrS   r4   r  r[  )r   Nr  r   s     r1   test_nonzero_scalarz&TestShapeInference.test_nonzero_scalar!  s{      ;$b)*Yy3%%-Q-Q,RTV
 
 	*5+2CYOOP	
 	
 	
 	
 	
r8   c           	         t          j        t          j        g d          }t          j        |          }t          j        d|          }|                     g t          dg dg|          gg           }|                     ||g           d S )Nr  r	  r3  r-   
type_protor  r   	r   r  r   r   r  r  rg   r   r   r`   r  r  optional_val_infor   s        r1   $test_optional_construct_empty_tensorz7TestShapeInference.test_optional_construct_empty_tensor!  s    "9!'yyy
 
 
 %=>OPP"2&9
 
 
   :rH:<MNNNOQS
 
 	e&7%899999r8   c           	     H   t          j        t          j        g d          }t          j        |          }t          j        |          }t          j        d|          }|                     g t          dg dg|          gg           }| 	                    ||g           d S )Nr  r	  r  r  r  r  )
r   r  r   r  r  r  r  rg   r   r   )r`   r  r  r  r  r   s         r1   &test_optional_construct_empty_sequencez9TestShapeInference.test_optional_construct_empty_sequence!  s    "9!'yyy
 
 
 %=>OPP$=>QRR"2"/B
 
 
   z2(9':ATUUUV
 

 	e&7%899999r8   c                :   t          j        t          j        g d          }t          j        |          }t          j        d|          }|                     dt          j        dfgt          ddgdg          gg           }|                     ||g           d S )Nr   r	  r3  r  r  r  r  r  s        r1   test_optional_construct_tensorz1TestShapeInference.test_optional_construct_tensor!  s    "9!'yyy
 
 
 %=>OPP"2&9
 
 
   )956zH:z::;
 

 	e&7%899999r8   c           	        t          j        t          j        g d          }t          j        |          }t          j        d|          }t          j        |          }t          j        d|          }|                     dt          j        dfgt          ddgdg          t          ddgdg          gg           }| 	                    |||g           d S )	N)rU   r   r   r	  input_sequencer  r  r  r  r  )
r   r  r   r_   r  r  r  rg   r   r   r`   r  r  sequence_val_infor  r  r   s          r1    test_optional_construct_sequencez3TestShapeInference.test_optional_construct_sequence!  s   "9!'yyy
 
 
 %=>OPP"2!.A
 
 
 %=>QRR"2"/B
 
 
   )956-z<L;MNN*'7&8;L:MNN 
 
 	e&79J%KLLLLLr8   c           	        t          j        t          j        g d          }t          j        |          }t          j        d|          }|                     dt          j        dfgt          ddgdg          t          ddgdg          gg           }|                     ||t          dt          j
        d	          g           d S )
Nr   r	  r  r  r  r  OptionalHasElementr3  r4   )r   r  r   r   r  r  rg   r   r   r    r^  r  s        r1    test_optional_tensor_has_elementz3TestShapeInference.test_optional_tensor_has_element!  s    "9!'yyy
 
 
 %=>OPP"2(;
 
 
   )956*xj:,??.xjII 
 
 	 6xAQSU V VW	
 	
 	
 	
 	
r8   c           
        t          j        t          j        g d          }t          j        |          }t          j        d|          }t          j        |          }t          j        d|          }|                     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           }| 	                    |||t          d
t          j        d          g           d S )N)r   r   r   r	  r  r  optionalr  r  r  r  r3  r4   )r   r  r   r   r  r  r  rg   r   r   r    r^  r  s          r1   "test_optional_sequence_has_elementz5TestShapeInference.test_optional_sequence_has_element!  s:   "9!'yyy
 
 
 %=>OPP"2(;
 
 
 %=>QRR"2(;
 
 
   )956-zJ<HH*zlZLAA.xjII
 
 
 	!!&x1A2FF	
 	
 	
 	
 	
r8   c                   t          j        t          j        g d          }t          j        d|          }|                     dt          j        dfgt          ddgdg          gg           }|                     ||g           d S )NrU   r   r   r	  r3  r  r/  OptionalGetElement)r   r  r   r#  r  rg   r   r   )r`   r  output_tensor_val_infor   s       r1   test_tensor_get_elementz*TestShapeInference.test_tensor_get_element"  s    "9!(			
 
 
 "(!7&7"
 "
 "
   {)956.	H:FF 
 
 	e&<%=>>>>>r8   StringSplitc           	     L   t          dt          j        d          }t          dt          j        d          }|                     dt          j        dfgt          ddgddg          g||g          }|                     |||gt          j        t          |          g           d S )N
substrings)rU   Nlengthr   rS   r  r   
r    r   r   r_   rg   r   r   r   r   r   r`   r   r0   r  r  r   s         r1   test_string_split_basicz*TestShapeInference.test_string_split_basic-"  s    +
 


 (+2CTJJ  k($/ }selH-EFFG 
 
 	 !.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     L   t          dt          j        d          }t          dt          j        d          }|                     dt          j        dfgt          ddgddg          g||g          }|                     |||gt          j        t          |          g           d S )Nr  )r  Nr  )r  rS   r  r   r  r  s         r1   test_string_split_symbolicz-TestShapeInference.test_string_split_symbolicB"  s    +
 


 (+2CVLL  k(&1 }selH-EFFG 
 
 	 !.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     P   t          dt          j        d          }t          dt          j        d          }|                     dt          j        dfgt          ddgddgd          g||g          }|                     |||gt          j        t          |          g	           d S )
Nr  )rU   r   r   Nr  r  rS   r  rU   maxsplitr   r  r  s         r1   test_string_split_nestedz+TestShapeInference.test_string_split_nestedW"  s    ++,o
 

 (+2CYOO  k()4 }selH-EPQRRRS 
 
 	 !.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     P   t          dt          j        d          }t          dt          j        d          }|                     dt          j        dfgt          ddgddgd          g||g          }|                     |||gt          j        t          |          g	           d S )
Nr  rX   r  r4   rS   r  rU   r  r   r  r  s         r1   (test_string_split_zero_dimensional_inputz;TestShapeInference.test_string_split_zero_dimensional_inputj"  s    +L+:LgVV
'+2CRHH  k("- }selH-EPQRRRS 
 
 	 !.{GDDE 	 	
 	
 	
 	
 	
r8   c           	     P   t          dt          j        d          }t          dt          j        d          }|                     dt          j        dfgt          ddgddgd          g||g          }|                     |||gt          j        t          |          g	           d S )
Nr  )rk  r   r   Nr  )rk  r   r   rS   r  rU   r  r   r  r  s         r1   test_string_split_empty_inputz0TestShapeInference.test_string_split_empty_input|"  s    ++,.?
 

 (+2C[QQ  k(+6 }selH-EPQRRRS 
 
 	 !.{GDDE 	 	
 	
 	
 	
 	
r8   c           	        t          j        t          j        g d          }t          j        d|          }t          j        |          }t          j        d|          }|                     dt          j        dfgt          ddgdg          t          ddgdg          gg           }|                     |||g           d S )	Nr  r	  r3  r  r  r  r  r  )	r   r  r   r#  r  r  rg   r   r   )r`   r  tensor_val_intor  r  r   s         r1    test_optional_tensor_get_elementz3TestShapeInference.test_optional_tensor_get_element"  s    "9!(			
 
 
 !0&7
 
 
 %=>OPP"2(;
 
 
   *I67*xj:,??.xjII 
 
 	e&7%IJJJJJr8   c           
        t          j        t          j        g d          }t          j        |          }t          j        d|          }t          j        |          }t          j        d|          }t          j        d|          }|                     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           }| 	                    ||||g           d S )N)rU   r   r   r	  r  r  r  r3  r  r  r  r  )
r   r  r   r  r  r  r  rg   r   r   )r`   r  r  sequence_val_intor  r  output_val_intor   s           r1   "test_optional_sequence_get_elementz5TestShapeInference.test_optional_sequence_get_element"  sG   "9!'yyy
 
 
 %=>OPP"2(;
 
 
 %=>QRR"2(;
 
 
 !0&9
 
 
   )956-zJ<HH*zlZLAA.xjII
 
 
 	%'8/J	
 	
 	
 	
 	
r8   c                   |                      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          g           d S )Nr  r  rS   r   Where)r  rS   r   r[  )rg   r   r^  BFLOAT16r   r   r    r   s     r1   test_where_bfloatz$TestShapeInference.test_where_bfloat"  s      )51k*E2k*E2
 w 2 2 2UG<<=
 
 	*5+2FNNO	
 	
 	
 	
 	
r8   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        t          j        j        |d           t          j                            |          }|                     |j        j        d         j        j                            d                     d S )Ngraph_with_unsupported_typer   r   rB  rS   r   r   r  rQ   r-   r  r  rI   rM   r   Tr  r   r   )r   rp   r   r    r   r   r   r   
from_arrayr   r  int32r   rq   rr   r   rs   assertFalser   r3  r   r   r   )r`   modelrv   s      r1   ,test_parse_data_with_unsupported_tensor_typez?TestShapeInference.test_parse_data_with_unsupported_tensor_type"  s.   !#21#{7HPTUUU !!2SEC5AAB !+BHaV28,L,L,LSVWWW  
 
 
 	 / -	 	 	
 	
 	
 -::5AA '*/;DDWMM	
 	
 	
 	
 	
r8   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         _        |                     t"          j        j        t"          j        j        |d           t"          j                            |          }|                     |j        j        d         j        j                            d                     |                     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          }|                     |t          dt          j        d          g           d S )Ngraph_with_undefined_typer   r  rB  rS   r   r   r  rQ   r	  r
  r   Tr  r   r{  r   rY   r   r|  rx  r6  )r   rp   r   r    r   r   r   r   r  r   r  int64r]   r   rM   r;  r   rq   rr   r   rs   r  r3  r   r   r   rg   r	  r_   r   r   )r`   r  rv   r   s       r1   *test_parse_data_with_undefined_tensor_typez=TestShapeInference.test_parse_data_with_undefined_tensor_type"  s   !#01#{7HPTUUU !!2SEC5AAB +BHaV28,L,L,LSVWWW
 
 

 
 
 0;/D", / -	 	 	
 	
 	
 -::5AA '*/;DDWMM	
 	
 	
   ;$i07K<Mt2TUy3.3%1EEEF$Wk.?yQQR	 ! 
 
 	*30A9MMN	
 	
 	
 	
 	
r8   c                T   d\  }}}}|                      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          }|                     |t          dt          j        |||df          g           d S )Nrn  thetarU   r   r  r  
AffineGridgridr   )align_cornersr6  rk  )r`   r  r  r  r  r   s         r1   test_affinegrid_2dz%TestShapeInference.test_affinegrid_2d#  s    
1a  ++aAY7*D1
  f%H"#	   $V[->q!QPQlSST ! 
 
  	*6;3Dq!QPQlSST	
 	
 	
 	
 	
r8   c                V   d\  }}}}}|                      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	          }|                     |t          dt          j        ||||df          g           d S )
N)rU   r   r   r?   r'  r  r   r   r  r  r  r  r6  rk  )r`   r  r  Dr  r  r   s          r1   test_affinegrid_3dz%TestShapeInference.test_affinegrid_3d(#  s    %1aA  ++aAY7*D1
  f%H  $V[->q!QPQSToVVW ! 
 
 	*6;3Dq!QPQSToVVW	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfdt          j        dfgt	          dddgdgddd	
          gg           }|                     |t          dt          j        d          g           d S )NrS   r  r  )r   r   r   rU   
GridSampler   nearestborderr   r  padding_moder  rz  r   s     r1   test_gridsample_2dz%TestShapeInference.test_gridsample_2d=#  s      k'6*L9
  &ME"!)"#  	 
 
" 	*30A<PPQ	
 	
 	
 	
 	
r8   c                    |                      dt          j        dfdt          j        dfgt	          dddgdgddd	
          gg           }|                     |t          dt          j        d          g           d S )NrS   )r   r   r   r   r   r  )r   r   rU   r   r   r  r   r  r   r   r!  )r   r   r   rU   r   rz  r   s     r1   test_gridsample_3dz%TestShapeInference.test_gridsample_3dS#  s      k'9*O<
  &ME"!)"#  	 
 
" 	*30A?SST	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )NrS   r  r  )r  H_outW_outrU   r  r   )r  r  r'  r(  r   r   s     r1   test_gridsample_2d_defaultsz.TestShapeInference.test_gridsample_2d_defaultsi#  s      k')=>*,FG |c6]SE::;
 
 	&*,H 	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )NrS   )r  r  r  r  r  r  )r  D_outr'  r(  r   r  r   )r  r  r+  r'  r(  r   r   s     r1   test_gridsample_3d_defaultsz.TestShapeInference.test_gridsample_3d_defaults{#  s      k')BC*,OP |c6]SE::;
 
 	&*,Q 	
 	
 	
 	
 	
r8   c           
         |                      dt          j        dfdt          j        dfgt          dddgdgdd	          gg           }|                     |t          dt          j        d          g           d S )
NrS   )r  r  NNr  )r  NNrU   r  r   linearr   r  r"  r   r   s     r1   test_gridsample_2d_no_dimz,TestShapeInference.test_gridsample_2d_no_dim#  s      k')?@*,@A
  &ME!!)   
 
  	#C):<RSST	
 	
 	
 	
 	
r8   c           
         |                      dt          j        dfdt          j        dfgt          dddgdgdd	          gg           }|                     |t          dt          j        d          g           d S )
NrS   )r  r  NNNr  )r  NNNr   r  r   r.  r   r/  r   r   s     r1   test_gridsample_3d_no_dimz,TestShapeInference.test_gridsample_3d_no_dim#  s      k')EF*,FG
  &ME!!)   
 
  	&*,H 	
 	
 	
 	
 	
r8   c           
     ,   t          dt          j        d          g}t          dt          j        d          g}t          j        t          ddgdg          gd||          }|                     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           }|                     |t          dt          j        d          t          dt          j        d          g           d S )Nr/  )   r4  r   r3  r  
body_graphr  r   r  r  r  r  SequenceMapout_sequencer:  	r    r   r   r   r   r   rg   r   r   r`   rb   r  r5  r   s        r1   %test_sequence_map_identity_known_dimsz8TestShapeInference.test_sequence_map_identity_known_dims#  sU   "7K,=}MM
 #8[->NN
 &zG9xj99:	
 

   ;,m<;,m<;,m< ')G)G)G-  !M?^4D:  	 
 
  	/!;#4m  0"K$5} 	
	
 
	
 
	
 
	
 
	
r8   c           
     ,   t          dt          j        d          g}t          dt          j        d          g}t          j        t          ddgdg          gd||          }|                     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           }|                     |t          dt          j        d          t          dt          j        d          g           d S )Nr/  r  r  r   r3  r  r5  r  )r  r  r   r   )r|  r  r   r  )r?   r   r   r  r  r  r6  r7  r:  NNr   r8  r9  s        r1   'test_sequence_map_identity_unknown_dimsz:TestShapeInference.test_sequence_map_identity_unknown_dims#  sU   "7K,=}MM
 #8[->NN
 &zG9xj99:	
 

   ;,m<;,m<;,i8 ')G)G)G-  !M?^4D:  	 
 
  	/!;#4o  0"K$5 	
	
 
	
 
	
 
	
 
	
r8   c                F   t          j        t          dg ddg          t          dg ddg          gdt          j                             dt          j        j        d          gt          j                             dt          j        j        d	          t          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          }| 	                    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           }| 
                    |t          dt
          j        d#          t          d t
          j        d	          t          d!t
          j        d
          g           d S )$Nrx  rS   starts1ends1r  r  y1rS   starts2ends2r  r  y2r5  rS   r<  )rL  rp  r   )r   (   r   r  r   r  rA  r  rB  rL  rp  rE  rF  r   rH  rI   r-   r  r  rM   r  r4  i6  r   r   n      r   r  Z   rN  r   r  r  r  r6  out_sequence1out_sequence2r:  r=  r   r   r   rq   r    r   r   r   r_   rg   r   r   r`   r5  r   s      r1   'test_sequence_map_slice_outs_known_dimsz:TestShapeInference.test_sequence_map_slice_outs_known_dims$  s:   &'#H#H#H4&QQ'#H#H#H4&QQ 22)/  22$*0+  22$*0+ 	 FK$5tVDDI{'8$GGG[%6hGGI{'8$GGG[%6hGG'
 
 

8   ;,m<;,m<;,l; ')G)G)G-  !"O$o6#	  	
 #
 
& 	/!;#4o  0#[%6  0#[%6 
	
 	
 	
 	
 	
r8   c                F   t          j        t          dg ddg          t          dg ddg          gdt          j                             dt          j        j        d          gt          j                             dt          j        j        d	          t          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          }| 	                    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           }| 
                    |t          dt
          j        d#          t          d t
          j        d#          t          d!t
          j        d#          g           d S )$Nrx  r@  rC  rD  rG  r5  rS   r<  )r  W1r   )r  W2r   r  r   r  rA  r  rB  rI  rE  rF  rJ  rK  r  rL  r   rM  r  rP  r  r  r  r6  rR  rS  r:  r=  rT  rU  s      r1   )test_sequence_map_slice_outs_unknown_dimsz<TestShapeInference.test_sequence_map_slice_outs_unknown_dimsN$  s:   &'#H#H#H4&QQ'#H#H#H4&QQ 22)/  22$*0/  22$*0/ 	 FK$5tVDDI{'8$GGG[%6hGGI{'8$GGG[%6hGG'
 
 

8   ;,m<;,m<;,l; ')G)G)G-  !"O$o6#	  	
 #
 
& 	/!;#4o  0#[%6  0#[%6 
	
 	
 	
 	
 	
r8   c           
     z   t          j        t          ddgdg          gdt          j                             dt          j        j        d          gt          j                             dt          j        j        d          g          }|                     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           }| 	                    |t          dt
          j        d          t          dt
          j        d          g           d S )Nr  rS   r   r5  )r  r  r  r   )rI   r-   r  r  r  rL  r   rM  r  rP  r  r  r  r6  shapesr:  r=  )r   r   r   rq   r    r   r   r_   rg   r   r   rU  s      r1   'test_sequence_map_different_tensor_typez:TestShapeInference.test_sequence_map_different_tensor_type$  s_   &WsegY77822)/  22T-3T 
 
 

   ;,m<;,m<;,l; ')G)G)G-  --8*:VVV	 
 
 	/!;#4o  0+:KTRR		
 	
 	
 	
 	
r8   c                   |                      g t          dg dgt          dt          j        dd                    t          ddgdg          gg           }|                     |t          dt          j        d          t          dt          j        d          g           |                      g t          dg dgt          dt          j        dd                    t          ddgdgd	          gg           }|                     |t          dt          j        d          t          dt          j        d          g           d S )
Nr  r   r4   r  r  HammingWindowr   r   periodicrg   r   r   r   r_   r   r    r   r   s     r1   test_hammingwindowz%TestShapeInference.test_hammingwindow$  so     I%g{/@"eLL	   /G9se<< 
 
 	&w0A2FF&sK,=uEE	
 	
 	
   I%g{/@"eLL	   /G9seaHHH 
 
 	&w0A2FF&sK,=uEE	
 	
 	
 	
 	
r8   c                   |                      g t          dg dgt          dt          j        dd                    t          ddgdg          gg           }|                     |t          dt          j        d          t          dt          j        d          g           |                      g t          dg dgt          dt          j        dd                    t          ddgdgd	          gg           }|                     |t          dt          j        d          t          dt          j        d          g           d S )
Nr  r   r4   r  r  
HannWindowr   r   r`  rb  r   s     r1   test_hannwindowz"TestShapeInference.test_hannwindow$  so     I%g{/@"eLL	   ,	C599 
 
 	&w0A2FF&sK,=uEE	
 	
 	
   I%g{/@"eLL	   ,	C51EEE 
 
 	&w0A2FF&sK,=uEE	
 	
 	
 	
 	
r8   c                   |                      g t          dg dgt          dt          j        dd                    t          ddgdg          gg           }|                     |t          dt          j        d          t          dt          j        d          g           |                      g t          dg dgt          dt          j        dd                    t          ddgdgd	          gg           }|                     |t          dt          j        d          t          dt          j        d          g           d S )
Nr  r   r4   r  r  BlackmanWindowr   r   r`  rb  r   s     r1   test_blackmanwindowz&TestShapeInference.test_blackmanwindow%  sq     I%g{/@"eLL	   *WIu== 
 
 	&w0A2FF&sK,=uEE	
 	
 	
   I%g{/@"eLL	   *WIuqIII 
 
 	&w0A2FF&sK,=uEE	
 	
 	
 	
 	
r8   c           
     <    g | ]\  \  }}\  }}}}}}||||||||fS r4   r4   	r6   r-   r0   test_aspectr  rU  onesidedinverseexpected_shapes	            r1   r@   zTestShapeInference.<listcomp>7%  a     '	
 '	
 '	
w " 	'	
 '	
 '	
r8   DFT))reals_default_axisrU   r?   r   NNNrk  )reals_axis_0r   r?   rL  r   r   r   r   r   r?   rL  rU   )reals_axis_1ru  r   r   r   rv  )reals_axis_2ru  rU   r   r   rv  )reals_axis_negru  r  r   r   rv  )reals_axis_0_onesidedru  r   r   r   rU   r?   rL  rU   )reals_axis_1_onesidedru  r   r   r   r   r   rL  rU   )reals_axis_2_onesidedru  rU   r   r   r   r?   r'  rU   )reals_axis_neg_onesidedru  r  r   r   r  )complex_default_axisrk  NNNrk  )real_inversers  r   Nr   rk  )complex_inverserk  r   Nr   rk  )irfft_axis_0r{  r   r   r   )rU   r?   rL  r   )irfft_axis_1r}  r   r   r   )r   r   rL  r   )irfft_axis_2r  rU   r   r   ru  )irfft_axis_negr  r  r   r   ru  r   r0   _test_aspectr  
tuple[int]rU  
int | Nonerm  rn  ro  c	                "   i }	|||	d<   |||	d<   |dk     r|||	d<   t          dddgdgfi |	g}
g }n}|dk    sJ |^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
          g}nt          dg ddgfi |	g}
g }|                     g t          d	g dgt          dt          j        |t          j        |t          j	                  
                                                    g|
g           }|                     |t	          dt          j        |          g|t	          dt          j        |          t          j        t          |          g           d S )Nrm  rn  rp  rU  rq  r/  r  r3  r  r4   r  r/  r  rU  r/  r  r  r  r   r   r   r   r_   r    rg   r   r   onesfloat32flattenr   r   r   r   )r`   r   r0   r  r  rU  rm  rn  ro  
attributesrI   value_infosr   s                r1   test_dftzTestShapeInference.test_dft6%  s$   l 
%-Jz"$+Jy!R<<%)
6"uwmhZNN:NNOEKKb====")&+2CR$QQ	   e%:%:%:XJUU*UU  6fk>OQSTTU e%6%6%6
QQjQQ !   I%#)#2:>>>FFHH	 	
 
 
  !
 
$ 	&w0A;OO 'x1BNSS
 ".{GDDE 	 	
 	
 	
 	
 	
r8   c           
     <    g | ]\  \  }}\  }}}}}}||||||||fS r4   r4   rk  s	            r1   r@   zTestShapeInference.<listcomp>%  rp  r8   ))rr  rs  NNNrU   r   rU   )rt  ru  r   r   r   )r   r?   rL  rU   )rw  ru  r   r   r   )r   r   rL  rU   )rx  ru  rU   r   r   r   r?   r   rU   )ry  ru  r  r   r   r  )rz  ru  r   r   r   )   r?   rL  rU   )r|  ru  r   r   r   )r   r  rL  rU   )r~  ru  rU   r   r   r   r?   r  rU   )r  ru  r  r   r   r  )r  rk  NNNr  )r  rs  r   Nr   r  )r  rk  r   Nr   r  )r  r{  r   r   r   )r   r?   rL  r   )r  r}  r   r   r   )r   r   rL  r   )r  r  rU   r   r   r   r?   r   r   )r  r  r  r   r   r  c	                   i }	|||	d<   |||	d<   d}
|dk     rf|||	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}n]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          g}|                     g t          dg dgt          dt          j        |t          j        |t          j	                  
                                          	          g|g           }|                     |t	          dt          j        |          g|t	          dt          j        |          t          j        t          |          g           d S )Nrm  rn  r   rp  rU  r  
dft_lengthr4   r  rq  r/  r3  r/  r  rU  )r/  r  r  r  r   r  )r`   r   r0   r  r  rU  rm  rn  ro  r  r  rI   r  r   s                 r1   test_dft_dft_lengthz&TestShapeInference.test_dft_dft_length%  s0   l 
%-Jz"$+Jy!
R<<%)
6"!N%$k&7j] 	   %'<!88*SS
SS
E 2,@QSUVVWKKb====")&+2CR$QQ	   "%)(+*;R* 	   777!
  %	 . +<9JBOO*6;3DbII "%)(+*;R* 	   333!
  %	 " +<9JBOO
   I%#)#2:>>>FFHH	 	
 
 
  !
 
$ 	&w0A;OO 'x1BNSS
 ".{GDDE 	 	
 	
 	
 	
 	
r8   ))r  r   )last_negativer'   )out_of_ranger   )out_of_range_negativer  c                ^   |                      g t          dg dgt          dt          j        dt          j        dt
          j                                                                      t          dddgdgd	|
          gg           }| 	                    t          j        j                  5  |                     |t          dt          j        d          t          dt          j        d          gt          j        t"          d          g           d d d            d S # 1 swxY w Y   d S )Nr  r/  rU   r?   r?   rU   r  r  rq  r  r3  r   rm  rU  rU   r   r?   rU   r  r   rg   r   r   r   r   r   r  r  r  r   rq   rr   r   r   r    r   r   r   r`   r   rU  r   s       r1   test_dft_invalid_axis_opset17z0TestShapeInference.test_dft_invalid_axis_opset17C&  sx      I%#)$BJ???GGII	 	
 
 
 %'2
QTRRR !
 
$ t3BCC 	 	!!*7K4E|TT*8[5FUU  &2;CCD "   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   /A&D""D&)D&c                   |                      g t          dg dgt          dt          j        dt          j        dt
          j                                                                      t          dg dgt          dt          j	        d|f                    t          dg d	d
g          gg           }| 
                    t          j        j                  5  |                     |t          dt          j        d          t          dt          j	        d          t          d
t          j        d          gt!          j        t$          d          g           d d d            d S # 1 swxY w Y   d S )Nr  r/  r  r  r  rU  r4   rq  r  r3  r  rp  r   rg   r   r   r   r   r   r  r  r  r_   r   rq   rr   r   r   r    r   r   r   r  s       r1   test_dft_invalid_axis_opset20z0TestShapeInference.test_dft_invalid_axis_opset20h&  s      I%#)$BJ???GGII	 	
 
 
 H%fk.?dWMM	   %!6!6!6
CC%( -
 
0 t3BCC 		 		!!*7K4E|TT*6;3DbII*8[5FUU
  &2;CCD "   		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s   B E''E+.E+c                ^   |                      g t          dg dgt          dt          j        dt          j        dt
          j                                                                      t          dddgdgd	d	
          gg           }| 	                    t          j        j                  5  |                     |t          dt          j        d          t          dt          j        d          gt          j        t"          d          g           ddd           dS # 1 swxY w Y   dS )<Test that RFFT (onesided=1, inverse=0) rejects complex inputr  r/  rk  r  r  rq  r  r3  r   r  rU   r   rU   r  r   Nr  r   s     r1   +test_dft_rfft_invalid_complex_input_opset17z>TestShapeInference.test_dft_rfft_invalid_complex_input_opset17&  sv     I%#)!	<<<DDFF	 	
 
 
 %'2
QQOOO !
 
$ t3BCC 	 	!!*7K4EyQQ*8[5F	RR  &2;CCD "   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                   |                      g t          dg dgt          dt          j        dt          j        dt
          j                                                                      t          dg dgt          dt          j	        dd                    t          d	g d
dgd          gg           }| 
                    t          j        j                  5  |                     |t          dt          j        d          t          dt          j	        d          t          dt          j        d          gt!          j        t$          d          g           ddd           dS # 1 swxY w Y   dS )r  r  r/  rk  r  r  rU  r4   r  rq  r  r3  r   rm  r  rp  r   Nr  r   s     r1   +test_dft_rfft_invalid_complex_input_opset20z>TestShapeInference.test_dft_rfft_invalid_complex_input_opset20&  s     I%#)!	<<<DDFF	 	
 
 
 H%fk.?TJJ	   %!6!6!6
QOOO%( -
 
0 t3BCC 		 		!!*7K4EyQQ*6;3DbII*8[5F	RR
  &2;CCD "   		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s   B E((E,/E,c                `   |                      g t          dg dgt          dt          j        dt          j        dt
          j                                                                      t          dddgdgd	d	d	
          gg           }| 	                    t          j        j                  5  |                     |t          dt          j        d          t          dt          j        d          gt          j        t"          d          g           ddd           dS # 1 swxY w Y   dS ):Test that IRFFT (onesided=1, inverse=1) rejects real inputr  r/  rs  r  r  rq  r  r3  r   )rm  rn  rU  rU   r  r   r  r   Nr  r   s     r1   )test_dft_irfft_invalid_real_input_opset17z<TestShapeInference.test_dft_irfft_invalid_real_input_opset17&  s     I%#)!	<<<DDFF	 	
 
 
 GR=8*q!RS    %
 
( t3BCC 	 	!!*7K4EyQQ*8[5F	RR  &2;CCD "   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   0A&D##D'*D'c                   |                      g t          dg dgt          dt          j        dt          j        dt
          j                                                                      t          dg dgt          dt          j	        dd                    t          d	g d
dgdd          gg           }| 
                    t          j        j                  5  |                     |t          dt          j        d          t          dt          j	        d          t          dt          j        d          gt!          j        t$          d          g           ddd           dS # 1 swxY w Y   dS )r  r  r/  rs  r  r  rU  r4   r  rq  r  r3  r   )rm  rn  r  rp  r   Nr  r   s     r1   )test_dft_irfft_invalid_real_input_opset20z<TestShapeInference.test_dft_irfft_invalid_real_input_opset20&  s     I%#)!	<<<DDFF	 	
 
 
 H%fk.?TJJ	   0008*qRS  %, 1
 
4 t3BCC 		 		!!*7K4EyQQ*6;3DbII*8[5F	RR
  &2;CCD "   		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		 		s   B E))E-0E-)realrU   r?   r?   r   )complexr  tuple[int, ...]c                   |                      dt          j        dfgt          dg dgt	          dt          j        |t          j        |t          j                  	                                                    t          dg dd	g          gg           }| 
                    |t          dt          j        |          t          d	t          j        d
          gt          j        t          d          g           d S )NrU  r4   r  r/  r  r  rq  r  r3  r  rp  r   rg   r   r_   r   r   r   r   r  r  r  r   r    r   r   r   r`   r   r   r   s       r1   test_dft_dynamic_axis_opset20z0TestShapeInference.test_dft_dynamic_axis_opset20'  s      k',-I%#)RZ888@@BB	 	
 
 
 %!6!6!6
CC !
 
$ 	&w0A5II&x1BLQQ ".{B??@ 	 	
 	
 	
 	
 	
r8   c                   |                      dt          j        dfgt          dg dgt	          dt          j        |t          j        |t          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           }|                     |t          dt          j        |          t          dt          j        d          t          dt          j        d          gt          j        t           d          g           d S )NrU  r4   r  r/  r  r  r  r   rq  r  r3  r   r  NNNrU   rp  r   )rg   r   r_   r   r   r   r   r  r  r  r  r  r   r    r   r   r   r  s       r1   1test_dft_dynamic_axis_onesided_dft_length_opset20zDTestShapeInference.test_dft_dynamic_axis_onesided_dft_length_opset20@'  s      k',-I%#)RZ888@@BB	 	
 
 
 !N%$#)"RX666	 	
 
 
 :::XJQR  /6 ;
 
> 	&w0A5II&|[5FKK&k/1F  ".{B??@ 	 
	
 
	
 
	
 
	
 
	
r8   c                   |                      dt          j        dfgt          dg dgt	          dt          j        |t          j        |t          j                  	                                                    t          dg dd	gd
          gg           }| 
                    |t          dt          j        |          t          d	t          j        d          gt          j        t          d          g           d S )NrU  r4   r  r/  r  r  rq  r  r3  r   r  r  rp  r   r  r  s       r1   &test_dft_dynamic_axis_onesided_opset20z9TestShapeInference.test_dft_dynamic_axis_onesided_opset20s'  s      k',-I%#)RZ888@@BB	 	
 
 
 %!6!6!6
QOOO !
 
$ 	&w0A5II&k/1F  ".{B??@ 	 		
 		
 		
 		
 		
r8   c                   |                      g t          dg dgt          dt          j        dt          j        dt
          j                                                                      t          dddgdgd	
          gg           }| 	                    |t          dt          j        d          t          dt          j        d          gt          j        t          d          g           d S )Nr  r/  r  r  r  rq  r  r3  r   r  r  r  r   rg   r   r   r   r   r   r  r  r  r   r    r   r   r   r   s     r1   &test_dft_onesided_default_axis_opset17z9TestShapeInference.test_dft_onesided_default_axis_opset17'  s      I%#)$BJ???GGII	 	
 
 
 %'2
QGGG !
 
$ 	&w0A<PP&x1BLQQ ".{B??@ 	 	
 	
 	
 	
 	
r8   c                   |                      g t          dg dgt          dt          j        dt          j        dt
          j                                                                      t          dg ddgd	
          gg           }| 	                    |t          dt          j        d          t          dt          j        d          gt          j        t          d          g           d S )Nr  r/  r  r  r  rq  r  r3  r   r  )rU   r?   r   rU   rp  r   r  r   s     r1   &test_dft_onesided_default_axis_opset20z9TestShapeInference.test_dft_onesided_default_axis_opset20'  s     I%#)$BJ???GGII	 	
 
 
 %!2!2!2XJKKK !
 
$ 	&w0A<PP&x1BLQQ ".{B??@ 	 	
 	
 	
 	
 	
r8   c                   |                      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           }|                     |t          dt          j        d          t          dt          j        d          t          d	t          j        d
          t          dt          j        d          g           |                      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           }|                     |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           |                      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           }|                     |t          dt          j        d          t          dt          j        d          t          dt          j        d          t          dt          j        d          g           d S )Nr  signal)rU   rL  r   )r   r   r   r   r   r   r   r   r   r   rU   rU   rU   rU   rU   r   r   r   r   r   r  
frame_stepr4   r   windowr  rO  STFT)r  r  r  r3  r  frame_length)r  r  r  r  )rg   r   r   r   r   r_   r   r    r   s     r1   test_stft_realsz"TestShapeInference.test_stft_reals'  s;     J% #)"T	 	
 
 
 !N%lK4Er4PP	   J% +"3T? 	   &"D"D"DxjQQ58 =
 
B 	&x1BJOO&|[5FKK&x1BDII&x1BLQQ		
 	
 	
   J% #)"T	 	
 
 
 !N%lK4Er4PP	   J% +"3T? 	   #$%nk6GTRR	   &"D"D"DxjQQA!D I%
 %
N 	&x1BJOO&|[5FKK&x1BDII&~{7H"MM&x1BLQQ		
 		
 		
   J% #)"T	 	
 
 
 !N%lK4Er4PP	   #$%nk6GTRR	   HHH8* 18 =
 
B 	&x1BJOO&|[5FKK&~{7H"MM&x1BLQQ		
 	
 	
 	
 	
r8   c                   |                      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           }|                     |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           d S )Nr  num_mel_binsr4   r  r  r  r  sample_ratelower_edge_hertzg      $@upper_edge_hertzg      Y@MelWeightMatrixr  r  r  r  r  r3  r  rL  )rg   r   r   r   r_   r   r   r    r   s     r1   test_melweightmatrixz'TestShapeInference.test_melweightmatrix[(  s     #$%nk6GUSS	   !N%lK4Er6RR	   "O%m[5FERR	   '(%*K,=r7 	   '(%*K,=r8 	   %   J
 
G.^ c2
 2
f 	&~{7H"MM&|[5FKK&}k6GLL&'9;;LbQQ&'9;;LbQQ&x1BHMM
	
 
	
 
	
 
	
 
	
r8   c                   |                      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           }|                     |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           d S )Nr  r  r4   r  r  r  r  r  r  r  r  r  r  r  r3  )output_datatyper  )	rg   r   r   r   r_   r   r#  r   r    r   s     r1   )test_melweightmatrix_with_output_datatypez<TestShapeInference.test_melweightmatrix_with_output_datatype(  s     #$%nk6GUSS	   !N%lK4Er6RR	   "O%m[5FERR	   '(%*K,=r7 	   '(%*K,=r8 	   %   J$/$6  G/` e3
 3
h 	&~{7H"MM&|[5FKK&}k6GLL&'9;;LbQQ&'9;;LbQQ&x1CXNN
	
 
	
 
	
 
	
 
	
r8   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          }|                     |t          dt          j        d          gt          j	        t          d          g           d S )N
input_data)rp  rL  r   r   r   CenterCropPadr   r   r   r  rL  r  r6  rL  r  r   r  r   r8  r   s     r1   test_center_crop_pad_hwc_cropz0TestShapeInference.test_center_crop_pad_hwc_crop(        {0+>++T2 w(?#aQRVTTTU$Wk.?wOOP ! 
 
 	#C):JGGH!.{B??@ 	 	
 	
 	
 	
 	
r8   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          }|                     |t          dt          j        d          gt          j	        t          d          g           d S )Nr  )r   rp  rL  r   r   r  r   r   rU   r  r  r6  )r   rL  r  r  r   r8  r   s     r1   test_center_crop_pad_chw_cropz0TestShapeInference.test_center_crop_pad_chw_crop(  r  r8   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          }|                     |t          dt          j        d          gt          j	        t          d          g           d S )Nr  )rL  rL  r   r   r   r  r   r   r   r  rp  r  r6  )rp  r  r   r  r   r8  r   s     r1    test_center_crop_pad_hwc_croppadz3TestShapeInference.test_center_crop_pad_hwc_croppad(  r  r8   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          }|                     |t          dt          j        d          gt          j	        t          d          g           d S )Nr  )r   rL  rL  r   r   r  r   r   rU   r  r  r6  )r   rp  r  r  r   r8  r   s     r1    test_center_crop_pad_chw_croppadz3TestShapeInference.test_center_crop_pad_chw_croppad)  r  r8   c                (   |                      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           gt          j        t          d          g           d S )	Nr  r  r   r   r  r   r  r   r  r   s     r1   (test_center_crop_pad_without_input_shapez;TestShapeInference.test_center_crop_pad_without_input_shape)  s      {0&9++T2 w(?#GGH
 
 	#C):DAAB!.{B??@ 	 	
 	
 	
 	
 	
r8   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          }|                     |t          dt          j        d          gt          j	        t          d          g           d S )Nr  )rp  r  r   r   r   r  r   r   r   r  r  r6  r  r  r   r8  r   s     r1   ;test_center_crop_pad_with_input_shape_containing_dim_paramszNTestShapeInference.test_center_crop_pad_with_input_shape_containing_dim_params+)  s       {0,?++T2 w(?#aQRVTTTU$Wk.?wOOP ! 
 
 	#C):JGGH!.{B??@ 	 	
 	
 	
 	
 	
r8   c           	     F   t          ddgdgt          g dg d          }|                     dt          j        dfg|gg           }|                     |t          dt          j        d          gt          t          d          t          t          d	          g
           |                     dt          j        dfg|gg           }|                     |t          dt          j        d          gt          t          d          t          t          d	          g
           d S )NCategoryMapperrS   r   r  123r.   cats_int64scats_stringsr   r   r  r   )r   r?   r   )
r   r   rg   r   r_   r   r    r   r   r   )r`   cat	graph_int	graph_strs       r1   test_category_mapperz'TestShapeInference.test_category_mapper=)  sH   EE!!		(
 
 
 $$;$j12E
 
	
 	#C);ZHHI^Q//["-- 	 	
 	
 	
 $$;%z23E
 
	
 	#C):JGGH^Q//["-- 	 	
 	
 	
 	
 	
r8   r  r  r  Nr  rg  c           
     4   t          ddgdgt          ||          }|                     dt          j        dfg|gg           }|                     t          j        j        | j	        |t          t          d          t          t          d          g           d S )	Nr  rS   r   r  r   r   r  r   )r   r   rg   r   r_   r   rq   rr   r   rw   r   r   )r`   r  r  r  r   s        r1   0test_category_mapper_fails_if_invalid_attributeszCTestShapeInference.test_category_mapper_fails_if_invalid_attributesb)  s     EE!#%
 
 
   ;$j12E
 

 	 /N^Q//["--	 	 	
 	
 	
 	
 	
r8   c           	     <   t          ddgdgt          d          }|                     dt          j        dfg|gg           }|                     |t          dt          j        d          gt          t          d          t          t          d	          g
           d S )NTreeEnsembleRegressorrS   r   r?   )r.   	n_targetsr   r   r   r?   r   r  r   )
r   r   rg   r   r#  r   r    r   r   r   r`   treer   s      r1   test_tree_ensemble_regressorz/TestShapeInference.test_tree_ensemble_regressor)  s    #EE!
 
 
   ;%w/0F
 

 	#C):GDDE^Q//["-- 	 	
 	
 	
 	
 	
r8   c                d   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          }| 	                    d|dfg|gg           }| 
                    |t          d|d          gt          t          d          t          t          d          g           d S )Nr?   r;  TreeEnsemblerS   r   r   nodes_splitsnodes_modesmembership_values)rS  r~  r  r  r  r  r  leaf_weightsr   )r.   r	  nodes_featureidsr	  r	  nodes_truenodeidsnodes_falsenodeidsnodes_trueleafsnodes_falseleafsr	  leaf_targetidsr	  
tree_roots
Batch SizeFeatures)r	  r?   r  r   )r   r   r   r   r)   r   r	  r   nanrg   r   r    r   r   )r`   r  interior_nodesleavesr	  r   s         r1   test_tree_ensemblez%TestShapeInference.test_tree_ensemble)  s    EE!S>1$!U>**++	  $!!n$	   !cN2 !s^3C.0S>1)#c3S#6	  3<$^UVIsV|TTs? 
  
  
D   5456F
 
 	#C0ABBC^Q//["-- 	 	
 	
 	
 	
 	
r8   r   r'  r	  )r;  r   r;  r	  r  r?   )r  r  c                   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          }|                     dt          j        d	fg|gg           }|                     t          j	        j
        | j        |t          t          d          t          t          d
          g           d S )Nr?   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	  rg   r#  r   rq   rr   r   rw   r   r   )r`   r	  r	  r	  r	  r	  r	  r   s           r1   .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
 

 	 /N^Q//["--	 	 	
 	
 	
 	
 	
r8   c           	     v   t          ddgddgg dt                    }|                     dt          j        dfg|gg           }|                     |t          dt          j        d          t          dt          j        d	          gt          t          d
          t          t          d          g           d S )NTreeEnsembleClassifierrS   r   r   )r   r   rU   r   r   )classlabels_int64sr.   r	  )r   r	  r   r  r   )r   r   rg   r   r#  r   r    r_   r   r   r   r	  s      r1   test_tree_ensemble_classifierz0TestShapeInference.test_tree_ensemble_classifier*  s    $E#J.!
 
 
   ;%w/0F
 

 	&sK,=uEE&sK,=wGG
 ^Q//["-- 	 
	
 
	
 
	
 
	
 
	
r8   c                n   t          dddgdgt                    }dD ]\  }}|                     dt          j        dfdt          j        |fg|gg           }|                     |t          dt          j        dd	|f          gt          t          d          t          t          d
          g           d S )NArrayFeatureExtractorrS   r   r   r  ))r   rU   )r4   r  )r  r  rN  r   r   r  r   	r   r   rg   r   r_   r   r    r   r   )r`   node
axes_shapeexpectedr   s        r1   test_array_feature_extractorz/TestShapeInference.test_array_feature_extractor3*  s    ##JE!	
 
 
%
 	 	 J
 $$++Y7++Z8  E !!'[->Ax@PQQR 33 b11 "    	 	r8   c           	     :   t          ddgdgt                    }|                     dt          j        dfg|gg           }|                     |t          dt          j        d          gt          t          d          t          t          d          g           d S )	N	BinarizerrS   r   r  rN  r   r  r   r&	  )r`   r'	  r   s      r1   test_binarizerz!TestShapeInference.test_binarizerQ*  s    EE!	
 
 
   k'3 F
 
 	#C):IFFG^Q//["-- 	 	
 	
 	
 	
 	
r8   c           
     2   |                      dt          j        dfgt          ddgdgg dd          gg           }|                     |t          dt          j        d          gt          t          d	          t          t          d
          g           d S )Nr/  rU   r  r   OneHotEncoderr3  r  
ai.onnx.ml)r  r.   rU   r  r   r   r   r  r   )
rg   r   r_   r   r   r    r   r   r   r   r   s     r1   test_one_hot_encoderz'TestShapeInference.test_one_hot_encoderi*  s      {(+67#IJ ,'   
 
 	#Hk.?PPQ^Q//["-- 	 	
 	
 	
 	
 	
r8   c                &   |                      dt          j        dfgt          ddgdg||d          gg           }|                     t
          j        j        | j        |t          t          d          t          t          d          g	           d S )
Nr/  r/	  r0	  r3  r1	  )r  r  r.   r   r  r   )rg   r   r_   r   r   rq   rr   r   rw   r   r   r   )r`   r  r  r   s       r1   0test_one_hot_encoder_fails_if_invalid_attributeszCTestShapeInference.test_one_hot_encoder_fails_if_invalid_attributes*  s       {(+67#IJ +!-'  	 
 
 	 /N^Q//["--	 	 	
 	
 	
 	
 	
r8   c                    dg dit           j        j        fdg dit           j        j        ff}|D ]J\  }}|                     ||          5  |                     ||           d d d            n# 1 swxY w Y   Kd S )Nr"	  r  classlabels_strings)r   r   c)attrsrE  )rq   r   r_   r   subTestzip_map_test_case)r`   paramsr9	  rE  s       r1   test_zip_mapzTestShapeInference.test_zip_map*  s     #III.0@0FG#___5t7G7NO
 "( 	: 	:E:EjAA : :&&uj999: : : : : : : : : : : : : : :	: 	:s   A00A4	7A4	c           	         |                      dt          j        dfgt          ddgdgfi |ddigg           }t          j                            |t          j                            t          j        d                    }|                     |t          j        	                    dt          j        
                    |                    gt          t          d          t          t          d	          g
           d S )Nr/  )r  r   ZipMapr3  r.   r1	  r4   r   r  r   )rg   r   r   r   rq   r   make_map_type_protor  r   r  r  r   r   r   )r`   r9	  rE  r   typs        r1   r;	  z$TestShapeInference.zip_map_test_case*  s     {((34IJ  	 
 (   
 
 k--::;;LbQQ
 
 	++dkBB3GG  ^Q//["-- 	 	
 	
 	
 	
 	
r8   c                    |                      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          g           d S )Nr/  r2	  r   rX   Compressr3  rg   r   r_   r^  r   r   r    r   s     r1   test_compress_without_axisz-TestShapeInference.test_compress_without_axis*  s      ++^<k.8 zG[#9H:FFG
 
 	*8[5FPPQ	
 	
 	
 	
 	
r8   c           	         |                      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	          g           d S )
Nr/  r2	  r   rX   rC	  r3  r'   rT  )rU   r  r   NrD	  r   s     r1   test_compress_with_axisz*TestShapeInference.test_compress_with_axis*  s      ++^<k.8 zG[#9H:BOOOP
 
 	#Hk.?ARSST	
 	
 	
 	
 	
r8   c                   d}t           j                            |          }t          j        dddg g           }t           j                            |           |                     t           j        j                  5  t           j        	                    |d           d d d            n# 1 swxY w Y   t           j        
                    |j        |j        |j                   d S )Nz
            <
                ir_version: 7,
                opset_import: ["" : 1]
            >
            agraph (X, Y) => (Z)
            {
                Z = CustomOp(X, Y)
            }
           CustomOpr  r   )r  r  T)rq   parserparse_modelr   r   register_schemar   rr   r   rs   deregister_schemar-   r*   r.   )r`   r/  r  	op_schemas       r1   (test_check_type_when_schema_has_empty_ioz;TestShapeInference.test_check_type_when_schema_has_empty_io*  s   	 ''..M
 
 
	 		!!),,,t3BCC 	; 	; --eT:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;	##NI3Y5E	
 	
 	
 	
 	
s   >!B++B/2B/c                B   d}t           j                            |          }|                     t           j        j                  5  t           j                            |d           t           j                            |           d d d            d S # 1 swxY w Y   d S )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	rq   rJ	  rK	  r   rr   r   r   rt   rs   r`   modeltxtr  s      r1   #test_issue_layer_normalization_6187z6TestShapeInference.test_issue_layer_normalization_6187+       ''11t3BCC 	5 	5L$$Ut$<<< --e444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5   ABBBc                B   d}t           j                            |          }|                     t           j        j                  5  t           j                            |d           t           j                            |           d d d            d S # 1 swxY w Y   d S )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)
        }
        TrQ	  rS	  rT	  s      r1   test_issue_conv_6180z'TestShapeInference.test_issue_conv_6180+  rW	  rX	  c                B   d}t           j                            |          }|                     t           j        j                  5  t           j                            |d           t           j                            |           d d d            d S # 1 swxY w Y   d S )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)
        }
        TrQ	  )	rq   rJ	  rK	  r   r   r  rt   rr   rs   rT	  s      r1   test_issue_gemm_6185z'TestShapeInference.test_issue_gemm_6185+  s     ''11t|;<< 	5 	5L$$Ut$<<< --e444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5rX	  c                B   d}t           j                            |          }|                     t           j        j                  5  t           j                            |d           t           j                            |           d d d            d S # 1 swxY w Y   d S )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)
        }
        TrQ	  rS	  rT	  s      r1   test_issue_stft_6186z'TestShapeInference.test_issue_stft_6186.+  rW	  rX	  rB  c                @   |                      dt          j        dfdgt          ddgdgd          gg t	          dt          j        dd          g          }|                     t          j        j	        | j
        |t          j        t          |          g	           d S )
Nzstd.constantr  r3  rB  invalid_node)r  r  r-   )ir6  r   )rg   r   r_   r   r   r   r   rq   rr   r   rw   r   r   r   r   s       r1   test_issue_constantofshape_6135z2TestShapeInference.test_issue_constantofshape_6135=+  s      k/6A%*+%J'	   $^[5FfUUV ! 
 
 	 /N!.{GDDE	 	 	
 	
 	
 	
 	
r8   c                    d}t          j        |t          j                              }|                     |g            d S )Na  
            ir_version: 8
            producer_name: "test"
            graph {
              node {
                input: "in"
                output: "out"
                op_type: "Flatten"
                attribute {
                  name: "axis"
                  type: INT
                }
              }
              name: "g"
              input {
                name: "in"
                type {
                  tensor_type {
                    elem_type: 1
                    shape {
                      dim {
                        dim_value: 2
                      }
                      dim {
                        dim_value: 3
                      }
                    }
                  }
                }
              }
              output {
                name: "out"
                type {
                  tensor_type {
                    elem_type: 1
                    shape {
                      dim {
                        dim_value: 1
                      }
                      dim {
                        dim_value: 6
                      }
                    }
                  }
                }
              }
            }
            opset_import {
              version: 18
            }
        )r   Parserq   r
   r   )r`   
model_textr  s      r1   test_protobuf_defaultz(TestShapeInference.test_protobuf_defaultS+  sB    2
f !*do.?.?@@eR(((((r8   r$   ry   )r   r;   rj   r   r$   ry   )r   r   r   r   r$   ry   )r   r   r   r   r   r   r$   ry   )r   r;   rE  rF  r$   ry   )
r  r  r  r  r  r  r  r  r$   ry   )r  )r  r  r  r  r  r  r  r  r%  r;   r$   ry   )
r   r   r"  r   r  r   r;  r   r$   r   )r   r;   r0   r  r  r;   r  r  rU  r  rm  r  rn  r  ro  r  r$   ry   )r   r;   rU  r  r$   ry   )r   r;   r   r  r$   ry   (/  r   r   r   r   r   r   expandrD   r   r   r   r   r   r   r   r   r   r   r  r
  unittestr   r  r  r  r  r   r$  r)  r,  r9  r?  rD  rJ  rP  rV  r\  r_  rb  rd  rh  rm  ro  rs  ru  ry  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r   r#  r)  r'  r1  r0  r5  r7  r?  rB  rL  rP  rT  rW  r_  ra  rf  rh  rl  ro  rq  rt  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r4  r6  r9  r<  r?  rB  rD  rJ  rL  rP  rT  rW  rZ  r]  ra  rc  rf  ri  rl  rq  rt  rw  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/  r2  r5  r9  r;  r=  r@  rB  rD  rF  rK  rN  rR  rW  rZ  ra  rc  rf  rh  rj  rm  rp  ru  rw  rz  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r)  r.  r0  r>  r@  rD  rG  rI  rK  rO  rU  rW  rY  r[  r]  r_  rh  rj  rm  ro  rq  rs  ru  r~  r  r  r  r  r  rq   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  
skipUnlessr   r  r  r  r  r  r  r  r  r
  r  r  r  r"  r%  r(  r+  r.  r3  r9  r?  rB  rD  rH  rK  rN  rQ  rW  rZ  r\  r^  r`  rc  rg  ri  rm  rr  rt  rv  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*  r-  r/  r1  r3  r6  r8  r:  r<  r?  rA  rC  rE  rG  rI  rK  rM  rV  rZ  r\  r^  rd  rf  ri  rk  rm  ro  rr  rt  rv  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,  r0  r2  r:  r>  rV  rZ  r]  rc  rf  ri  	itertoolsproductr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r		  r#  r	  r   r	  r#	  r*	  r-	  r3	  r5	  r=	  r;	  rE	  rG	  rO	  rV	  rZ	  r\	  r^	  ra	  re	  r4   r8   r1   r   r      s=       V V V V
 
 
 
 ]**;7788

 

 

 98

 ]**;7788

 

 

 98

 ]**;7788
 
 
 98
 ]**;7788

 

 

 98

 ]**;7788V V V 98V ]**;7788V V V 98V ]**;7788V V V 98V
 
 
 
$ ]**84455J J J 65J
 
 
 
 ]**84455H H H 65H  ]**62233

 

 

 43

 ]**62233X] V V V  43V ]**:6677

 

 

 87

 ]**95566
 
 
 76
 ]**95566
 
 
 76
 ]**95566
 
 
 76
 ]**95566
 
 
 76
 ]**95566
 
 
 76
 ]**95566
 
 
 76
 ]**84455
 
 
 65
0 ]**84455
 
 
 65
6 ]**84455
 
 
 65
6 ]**84455
 
 
 65
6 ]**84455
 
 
 65
0 ]**84455

 

 

 65

 ]**84455
V 
V 
V 65
V ]**84455

 

 

 65

 ]**84455

 

 

 65

 ]**84455

 

 

 65

 ]**95566
 
 
 76
 ]**95566

 

 

 76

 ]**95566

 

 

 76

 ]**95566
 
 
 76
 ]**95566
 
 
 76
 ]**95566
 
 
 76
 ]**95566
 
 
 76
" ]**95566
 
 
 76
. ]**:6677'B 'B 'B 87'BR ]**:6677-B -B -B 87-B^ ]**84455
 
 
 65
 ]**84455
 
 
 65
 ]**84455
 
 
 65
* ]**84455
 
 
 65
  ]**84455
 
 
 65
" ]**844556 6 6 656p ]**+=>>??
 
 
 @?
 ]**84455
 
 
 65
$ ]**84455
 
 
 65
$ ]**84455
 
 
 65
8 ]**84455
 
 
 65
: ]**84455
 
 
 65
8 ]**84455
 
 
 65
: ]**84455
 
 
 65
( ]**84455
 
 
 65
$ ]**84455
 
 
 65
$ ]**84455
 
 
 65
4 ]**84455 
  
  
 65 
D ]**84455
 
 
 65
@ ]**73344

 

 

 54

 ]**73344
 
 
 54
 ]**73344
 
 
 54
 ]**73344
 
 
 54
 ]**73344
 
 
 54
 ]**73344
 
 
 54
 ]**62233
 
 
 43
 ]**84455

 

 

 65

 ]**84455

 

 

 65

 ]**84455

 

 

 65

 ]**+;<<==

 

 

 >=

 ]**+;<<==

 

 

 >=

 ]**95566( ( ( 76(
 
 
 
  ]**95566. . . 76.
 
 
 
  ]**+<==>>
 
 
 ?>
  ]**+<==>>
 
 
 ?>
  ]**;7788
 
 
 98
  ]**;7788
 
 
 98
2
 
 
 
6 ]**95566   76< ]**>::;;
 
 
 <;
 ]**>::;;
 
 
 <;
 ]**+;<<==

 

 

 >=

 ]**+;<<==

 

 

 >=


 
 
 

 
 
 
"	
 	
 	
 	
	
 	
 	
 	
	
 	
 	
 	
	
 	
 	
 	

 
 
 

 
 
 
0
 
 
 
$
 
 
 
*
 
 
 
*
 
 
 
(
 
 
 
(
 
 
 
,
 
 
 
,
 
 
 
,
 
 
 
0
 
 
 
(
 
 
 
(
 
 
 
.
 
 
 
.
 
 
 
<
 
 
 
,
 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 
"
 
 
 
$
 
 
 

 
 
 

 
 
 

 
 
 
%
 %
 %
 %
N
 
 
 
&
 
 
 

 
 
 
($ $ $ $( ( ( (
 
 
 
6
 
 
 
&
 
 
 
<
 
 
 

 
 
 

 
 
 

 
 
 

 
 
 
# # # #
 
 
 

 
 
 

 
 
 

 
 
 
$
 
 
 

 
 
 
"
 
 
 

 
 
 
"
 
 
 


 

 

 

K K K KJ J J JK K K KO O O OL L L LM M M MO O O O
 
 
 
S S S SV V V V
 
 
 

 
 
 

 
 
 

 
 
 
	
 	
 	
 	
	
 	
 	
 	
	
 	
 	
 	

 
 
 
8) ) ) )
 
 
 
@9 9 9 9 #*
 *
 *
 *
 *
X/ / / / 
  
  
  
D* * * *
 
 
 

 
 
 

 
 
 
.
 
 
 
$
 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 
"
 
 
 
"
 
 
 

 
 
 

 
 
 
 
 
 
 
 
 
 
 

 
 
 
	
 	
 	
 	

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 
@@ @ @ @
 
 
 
(
 
 
 
(V V V V$
 
 
 

 
 
 

 
 
 
$
 
 
 

 
 
 

 
 
 

 
 
 
$
 
 
 
(
 
 
 

 
 
 
V V V V
 
 
 

 
 
 
V V V V
 
 
 

 
 
 
V V V V
 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 
&
 
 
 
&
 
 
 
&
 
 
 
&
 
 
 

 
 
 
&
 
 
 
(
 
 
 
&
 
 
 
&
 
 
 
(
 
 
 
&
 
 
 

 
 
 

 
 
 

 
 
 
&
 
 
 
&
 
 
 

 
 
 

 
 
 

 
 
 
&
 
 
 

 
 
 
(
 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 
"
 
 
 
,
 
 
 
,
 
 
 
,
 
 
 
,
 
 
 
.
 
 
 
6
 
 
 
*
 
 
 
8
 8
 8
 8
t7
 7
 7
 7
r9
 9
 9
 9
v7
 7
 7
 7
r7
 7
 7
 7
r*
 *
 *
 *
X(
 (
 (
 (
T(
 (
 (
 (
T
 
 
 
8
 
 
 
8B; B; B; B;H
 
 
 
"
 
 
 
,
 
 
 

 
 
 

 
 
 

 
 
 
4
 4
 4
 4
l'
 '
 '
 '
R
 
 
 
6
 
 
 
"
 
 
 
"
 
 
 
6
 
 
 
,
 
 
 
,
 
 
 
,
 
 
 

 
 
 

 
 
 
.
 
 
 
#
 #
 #
 #
J!
 !
 !
 !
F!
 !
 !
 !
F!
 !
 !
 !
F!
 !
 !
 !
F"
 "
 "
 "
H!
 !
 !
 !
F&
 &
 &
 &
P9 9 9 9"
 "
 "
 "
HF F F F
 
 
 
29 9 9 9 ]			!1!94;K;TU 
 
 
 

 
 
 

 
 
 

 
 
 
"
 
 
 
*
 
 
 
0 X] 
 
 
 
( ]			!1!94;K;TU 
 
 
 

 
 
 
&
 
 
 

 
 
 
 
 
 
 
.
 
 
 
"	
 	
 	
 	

 
 
 
&
 
 
 
 X"QRR
 
 
 SR
8 X"QRR
 
 
 SR
8
 
 
 
.
 
 
 

 
 
 

 
 
 
4
 
 
 
6 ],3;(((4  O
 O
 O
 O
b ],3;(((4  "
 "
 "
 "
H ],3;(((4  B
 B
 B
 B
H   $
 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 
&V V V V2V V V V:
 
 
 
$
 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 
2
 
 
 

 
 
 
2
 
 
 
2
 
 
 
<
 
 
 
<
 
 
 
<
 
 
 
4
 
 
 
0
 
 
 
4
 
 
 
8
 
 
 
8
 
 
 
2
 
 
 
 
 
 
 
 
 
 
 

 
 
 

 
 
 
.
 
 
 

 
 
 

 
 
 
 
 
 
 
 
 
 
 
2
 
 
 
.
 
 
 
2
 
 
 
2
 
 
 
2
 
 
 
6
 
 
 
6
 
 
 
@#
 #
 #
 #
J!
 !
 !
 !
F'
 '
 '
 '
R%
 %
 %
 %
N,
 ,
 ,
 ,
\

 

 

 


 
 
 
*
 
 
 
2
 
 
 

 
 
 

 
 
 

 
 
 

 
 
 
V V V V
 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

V 
V 
V 
V
 
 
 

 
 
 


 

 

 


 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 

 
 
 


 

 

 


 
 
 


 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 


 
 
 


 

 

 



 

 

 


 
 
 

 
 
 


 

 

 


 
 
 

 
 
 
$
 
 
 
,
 
 
 
$
 
 
 
0
 
 
 
*
 
 
 
,
 
 
 
*
 
 
 
0V V V V*J J J J*
 
 
 

 
 
 

 
 
 

 
 
 

 
 
 
( ( (>, , , ,"! ! ! !,
 
 
 
L L L LL L L L
 
 
 

 
 
 
	
 	
 	
 	
	
 	
 	
 	
	
 	
 	
 	

 
 
 

 
 
 
8
 
 
 
8
 
 
 
8
 
 
 
.
 
 
 
8
 
 
 
8
 
 
 

 
 
 

 
 
 

 
 
 
: : : :: : : : : : : :M M M M,
 
 
 
*
 
 
 
<? ? ? ?  ]**=99::
 
 
 ;:
( ]**=99::
 
 
 ;:
( ]**=99::
 
 
 ;:
$ ]**=99::
 
 
 ;:
" ]**=99::
 
 
 ;:
&K K K K*
 
 
 
8
 
 
 

 
 
 
8%
 %
 %
 %
N
 
 
 
,
 
 
 
*
 
 
 
,
 
 
 
,
 
 
 
$
 
 
 
$
 
 
 
,
 
 
 
4'
 '
 '
R'
 '
 '
R=
 =
 =
~=
 =
 =
~&
 &
 &
P)
 )
 )
V)
 )
 )
V)
 )
 )
V ]'	
 '	
$ #"  '' %'	
 '	
 '	
) )TE
 E
 E
U) )TE
N ]'	
 '	
$ #"  '' %'	
 '	
 '	
) )Tp
 p
 p
U) )Tp
d ]	
 	
 	
    : ]	
 	
 	
 " " " "H   <# # # #J   @% % % %N ]"%	
 
 
 
 
8 ]"	
 
,
 ,
 ,
 
,
\ ]"	
 

 
 
 

@
 
 
 
:
 
 
 
:G
 G
 G
R>
 >
 >
@?
 ?
 ?
B
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
$ X"QRR"
 "
 "
 SR"
H ]YYc
#YY???#		
  X"QRR
 
 
 SR 
4 X"QRR
 
 
 SR
, ];,k.@+BUVWWX"QRR2
 2
 2
 SR XW2
h ] aNK,>qcAgNNNK,>qcAgNN aNK,=taS1WMMNK,>qcAgNN aNK,>sRxPPNK,>qcAgNN aNK,>qcAgNNNK,=taS1WMM!	
 0 X"QRR,
 ,
 ,
 SR1 2,
\ X"QRR
 
 
 SR
2 X"QRR   SR: X"QRR
 
 
 SR
. X"QRR
 
 
 SR
. ]YY(	
  X"QRR
 
 
 SR 
6 X"QRR: : : SR:
 
 
 
<
 
 
 

 
 
 

 
 
65 5 55 5 55 5 55 5 5 ]**+<==>>
 
 ?>
*5) 5) 5) 5) 5) 5)r8   r   c                      e Zd ZU dZded<   dZded<   dZded<   d	Zded
<   ddZddZ	d Z
d ZddZd Zd ZddZddZddZdS )TestCustomSchemaShapeInferencerI	  r;   custom_op_type
DummyGraphdummy_graph_op_typer   r  
op_versionr  	op_domainr$   ry   c                    |                      t          j                            | j        | j                             |                      t          j                            | j        | j                             d S rX   )r  rq   r   hasrn	  rr	  rp	  r  s    r1   setUpz$TestCustomSchemaShapeInference.setUp+  sZ    t':DNKKLLLt'?PPQQQQQr8   c                >   t          j        t          j        j                  5  t          j                            | j        | j        | j                   t          j                            | j	        | j        | j                   d d d            d S # 1 swxY w Y   d S rX   )

contextlibsuppressrq   r   r   rM	  rn	  rq	  rr	  rp	  r  s    r1   tearDownz'TestCustomSchemaShapeInference.tearDown+  s     !677 	 	I''#T_dn   I''($/4>  		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A!BBBc                    t           j         j         j        t          j                             dd          t          j                             dd          gt          j                             ddt           j        j                  gt          j                             dt          j         j	        j
                  g          }d fd
}|                    |           |S )Nr   floatr   r[  param_optionout_lenr  r  r  ctx%onnx.shape_inference.InferenceContextc                   dfd}                     |                                 d           |                     d          }|                     d          } ||          \  }} ||          \  }}                     |t          j                                        |t          j                                        t          |          d                                t          |          d                                |d         |d                    |\  }}	|\  }
}|                     d          }|j        }                     t          |          |                                            t          |                                           D ]}| 
                    |          }||j        _        ||j        j        j                                        _        |	|z  |j        j        j                                        _        ||         |j        j        j                                        _        |                     ||           d S )	Nr  r   c                                         t          | t                               | j        j        d | j        j        j        D             fS )Nc                J    g | ] }|                     d           r|j        nd!S )r   N)r   r   )r6   r  s     r1   r@   zTestCustomSchemaShapeInference.get_custom_op_schema.<locals>.schema_shape_infer_func.<locals>.parse_tensor_input.<locals>.<listcomp>+  s?        ()zz+'>'>HD  r8   )
assertTruer[   r   r   r   r   r   )r  r`   s    r1   parse_tensor_inputzpTestCustomSchemaShapeInference.get_custom_op_schema.<locals>.schema_shape_infer_func.<locals>.parse_tensor_input+  sU    
1i 8 8999M+ !"!4!8   r8   rU   r   r   r~	  )r  r   )assertEqualget_num_inputsget_input_typer   r   r   get_attributeintsget_num_outputsr)   get_output_typer   r   r   r   r+   r   set_output_type)r	  r	  in0in1in0_type	in0_shapein1_type	in1_shaper  Lar   Lbattrr~	  r  r[  r`   s                   r1   schema_shape_infer_funczTTestCustomSchemaShapeInference.get_custom_op_schema.<locals>.schema_shape_infer_func+  s0         S//111555$$Q''C$$Q''C"4"4S"9"9Hi"4"4S"9"9HiX{'8999X{'8999S^^Q///S^^Q///Yq\9Q<888EArEAr$$Y//DiGS\\3+>+>+@+@AAA3..0011 , ,))!,,,4)<=%)--//9<>G%)--//9<CAJ%)--//9##As++++, ,r8   r	  r	  )r   rn	  rr	  rq	  r   FormalParameterFormalParameterOptionVariadic	AttributeAttrTypeINTS%set_type_and_shape_inference_functionr`   r#   r	  s   `  r1   get_custom_op_schemaz3TestCustomSchemaShapeInference.get_custom_op_schema+  s     NO--c7;;--c7;;
 --71O1X .   ''	4=3I3NOO
 
 
$ 	,  	,  	,  	,  	,  	,D 	445LMMMr8   c                    t           j         j         j        t          j                             ddt           j        j                  gt          j                             ddt           j        j                  gt          j                             dt          j         j	        j
                  g          }d
 fd	}|                    |           |S )Ninr{	  r|	  r[  r   r	  r	  r	  c                                                                          d                                                    d                                          d          }|                     fdt                                                     D              fdt                                                     D                       }t          |          D ]\  }}                     ||           d S )NrU   r   c                :    g | ]}                     |          S r4   )r	  r6   r  r	  s     r1   r@   zjTestCustomSchemaShapeInference.get_dummy_graph_schema.<locals>.schema_shape_infer_func.<locals>.<listcomp> ,  '    LLL1##A&&LLLr8   c                :    g | ]}                     |          S r4   )get_input_datar	  s     r1   r@   zjTestCustomSchemaShapeInference.get_dummy_graph_schema.<locals>.schema_shape_infer_func.<locals>.<listcomp>,  r	  r8   )	r	  r	  assertIsNotNoner	  get_graph_attribute_inferencerdo_inferencingr)   r   r	  )r	  gctxr  idxr[  r`   s   `    r1   r	  zVTestCustomSchemaShapeInference.get_dummy_graph_schema.<locals>.schema_shape_infer_func+  s   S//111555  !2!27!;!;<<<55g>>D))LLLLc6H6H6J6J0K0KLLLLLLLc6H6H6J6J0K0KLLL G &g.. . .S##C----. .r8   r	  )r   rp	  rr	  rq	  r   r	  r	  r	  r	  r	  GRAPHr	  r	  s   `  r1   get_dummy_graph_schemaz5TestCustomSchemaShapeInference.get_dummy_graph_schema+  s     $NO--'0N0W .   --71O1X .  
 //9O9UVVW
 
 
"		. 		. 		. 		. 		. 		. 	445LMMMr8   Fc                @   t          dt          j        ||f          }t          dt          j        ||f          }d t          t	          |                    D             }t          | j        ddgd |D             |          }	t          |	gd||g|r|ng |          S )Nr   r   c                J    g | ] }t          d | t          j        d          !S r[  Nr    r   r   r  s     r1   r@   zFTestCustomSchemaShapeInference.gen_custom_op_graph.<locals>.<listcomp>,  =     
 
 
 #999k.?FF
 
 
r8   c                    g | ]	}|j         
S r4   rQ   r6   r   s     r1   r@   zFTestCustomSchemaShapeInference.gen_custom_op_graph.<locals>.<listcomp>,  s    -C-C-Caf-C-C-Cr8   )r~	  rZ   rK   )r    r   r   r)   r   r   rn	  r   )
r`   r  r	  r	  r~	  mark_outputr   r   outsr'	  s
             r1   gen_custom_op_graphz2TestCustomSchemaShapeInference.gen_custom_op_graph	,  s    "3(9Ar7CC"3(9Ar7CC
 
3w<<((
 
 
 #s-C-Cd-C-C-CW
 
 
 FFQFK$?DDRD
 
 
 	
r8   c                j   |                      ||||d          }t          dt          j        ||f          }t          dt          j        ||f          }d t	          t          |                    D             }t          | j        ddgd |D             |          }	t          |	gd||gg |          S )	NTr   r   c                J    g | ] }t          d | t          j        d          !S r	  r	  r  s     r1   r@   zHTestCustomSchemaShapeInference.gen_dummy_graph_graph.<locals>.<listcomp>,  r	  r8   c                    g | ]	}|j         
S r4   rQ   r	  s     r1   r@   zHTestCustomSchemaShapeInference.gen_dummy_graph_graph.<locals>.<listcomp> ,  s    2H2H2Ha162H2H2Hr8   r
  rZ   r	  )	r	  r    r   r   r)   r   r   rp	  r   )
r`   r  r	  r	  r~	  r  r   r   r	  r'	  s
             r1   gen_dummy_graph_graphz4TestCustomSchemaShapeInference.gen_dummy_graph_graph,  s    ++Ar2wEE"3(9Ar7CC"3(9Ar7CC
 
3w<<((
 
 
 $sCj2H2H42H2H2HPX
 
 
 4&&1a&"FFFFr8   c                n    |                      |fdt          |          D                        d S )Nc           	     ^    g | ])\  }}t          d | t          j        z  |f          *S )r[  r	  )r6   r  Lir	  r	  r  s      r1   r@   zCTestCustomSchemaShapeInference.shape_infer_once.<locals>.<listcomp>',  sN       Ar 'yQyy+2CabRTEUVV  r8   )r   r   )r`   r   r  r	  r	  r~	  s     ``` r1   shape_infer_oncez/TestCustomSchemaShapeInference.shape_infer_once$,  sb         &w//  	
 	
 	
 	
 	
r8   c                   d}d}d}ddg}|                      ||||          }|                     t          j        j                  5  |                     |||||           d d d            n# 1 swxY w Y   |                                 }t          j                            |           |                     |||||           t          j        	                    |j
        |j        |j                   d S Nr   r  rF  r   rU   )r	  r   rq   r   r  r	  r	  r   rL	  rM	  r-   r*   r.   )r`   r  r	  r	  r~	  r   r#   s          r1   "test_custom_schema_shape_inferencezATestCustomSchemaShapeInference.test_custom_schema_shape_inference-,  s/   a&((BG<< t|;<< 	= 	=!!%BG<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= **,,	!!&))) 	eQB888 		##FK1Ev}UUUUU   A--A14A1c                   d}d}d}ddg}|                      ||||          }|                     t          j        j                  5  |                     |||||           d d d            n# 1 swxY w Y   |                                 }|                                 }t          j        	                    |           t          j        	                    |           |                     |||||           t          j        
                    |j        |j        |j                   t          j        
                    |j        |j        |j                   d S r	  )r	  r   rq   r   r  r	  r	  r	  r   rL	  rM	  r-   r*   r.   )r`   r  r	  r	  r~	  r   custom_op_schemadummy_graph_schemas           r1   'test_dummy_graph_schema_shape_inferencezFTestCustomSchemaShapeInference.test_dummy_graph_schema_shape_inferenceC,  s   a&**1b"g>> t|;<< 	= 	=!!%BG<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=  4466!88::	!!"2333	!!"4555 	eQB888 		##!*#	
 	
 	

 		###,%	
 	
 	
 	
 	
r	  c                    d}d}d}dg}                      ||||          }                                 }|                                d fd}|                    |           t          j                            |                                |||||           t          j                            |j	        |j
        |j                   d S )	Nr   r  rF  r   r	  r	  c                    |                                 |                     d                                         |                     d                                         |                     d                                         t                    5                      |                     d                     d d d            n# 1 swxY w Y                       |                     d                                         |                     d                                         t                    5                      |                     d                     d d d            n# 1 swxY w Y                       t          j	        j
                  5  |                     d           d d d            n# 1 swxY w Y                        |                     d                                         t                    5                       |                     d                     d d d            n# 1 swxY w Y                        |                     d                                         t                    5                       |                     d                     d d d            n# 1 swxY w Y                       |                     d                                         t                    5  |                     d           d d d            n# 1 swxY w Y                        |                     d                                         t                    5  |                     d           d d d            n# 1 swxY w Y                       |                     d                                         t                    5  |                     d           d d d            n# 1 swxY w Y                       |                                 d                               |                                 d           d S )Nznot-exist-attrr   rU   r'   r   rL  )assertIsNoner	  r	  	has_inputr  r   	TypeError
has_outputrq   rr   r   r	  r	  RuntimeErrorget_input_sparse_datar	  r	  get_symbolic_inputr	  r	  r	  r	  )r	  raw_funcr`   s    r1   r	  zdTestCustomSchemaShapeInference.test_invalid_field_in_inference_func.<locals>.schema_shape_infer_funcn,  s   HSMMMc//0@AABBBOOCMM!,,---S]]1--...""9-- 4 4  r!2!23334 4 4 4 4 4 4 4 4 4 4 4 4 4 4OOCNN1--...S^^A..///""9-- 5 5  !3!34445 5 5 5 5 5 5 5 5 5 5 5 5 5 5""4#7#FGG E E223CDDDE E E E E E E E E E E E E E Ec0033444""<00 : :!!#"4"4R"8"8999: : : : : : : : : : : : : : :c77::;;;""<00 A A!!#";";B"?"?@@@A A A A A A A A A A A A A A A  !3!3A!6!6777""<00 ' '""2&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' 'c44Q77888""<00 + +&&r***+ + + + + + + + + + + + + + +  !4!4Q!7!7888""<00 ( (##B'''( ( ( ( ( ( ( ( ( ( ( ( ( ( (S//111555S0022A66666s   )CCC	)E>>FF-GGG)III)KKK MM	MN11N58N5>P  P$'P$r	  )r	  r	  %get_type_and_shape_inference_functionr	  rq   r   rL	  r	  rM	  r-   r*   r.   )	r`   r  r	  r	  r~	  r   r#   r	  r	  s	   `       @r1   $test_invalid_field_in_inference_funczCTestCustomSchemaShapeInference.test_invalid_field_in_inference_funcd,  s    #((BG<<**,,??AA	7 	7 	7 	7 	7 	7 	7> 	445LMMM	!!&))) 	eQB888 		##FK1Ev}UUUUUr8   Nrf	  )F)r   r   r   rn	  __annotations__rp	  rq	  rr	  ru	  ry	  r	  r	  r	  r	  r	  r	  r	  r	  r4   r8   r1   rm	  rm	  +  s&        $N$$$$+++++JIR R R R
   @ @ @D% % %N
 
 
 
G G G
 
 
V V V V,
 
 
 
B0V 0V 0V 0V 0V 0Vr8   rm	  __main__rU   )	verbosity)r#   r   r$   r%   )r:   r;   r$   r<   ):
__future__r   rw	  rj	  rh	  typingr   r   numpyr   r   google.protobufr   r   onnx.shape_inferencerq   r   r	   r
   r   r   r   r   r   r   r   r   r   r   	onnx.defsr   r   r   r   r   onnx.helperr   r   r   r   r   r   r    onnx.parserr!   collections.abcr"   r2   get_all_schemasr9   r	  rD   TestCaserF   r   rm	  r   mainr4   r8   r1   <module>r	     sB  
 # " " " " " "          % % % % % % % %      ' ' ' ' ' ' ' ' ' ' ' '                                                                $ # # # # # )((((((	 	 	 	: :&$&((: : :       "K  K  K  K  K x0 K  K  K \`j) `j) `j) `j) `j)1 `j) `j) `j)FUIV IV IV IV IV%= IV IV IVX zHMA r8   