
    bIg9                    `    d dl mZ d dlmZ d dlZd dlZd dlmZ d dl	m
Z
 d Z G d de      Zy)	    )annotations)AnyN)Base)expectc                X    t        |      D ]  }|g }|| d t        |dz          gz  } |S )N   )rangeint)xseq
trip_countis       ]/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/loop.pycompute_loop_outputsr      sB    : !;C,CAJ  ! J    c                  B    e Zd Zedd       Zedd       Zedd       Zy)Loopc                 
   t         j                  j                  dt         j                  j                  dg      } t         j                  j                  dt         j                  j                  dg      }t         j                  j                  dt         j                  j                  dg      }t         j                  j                  dt         j                  j
                  g       }t         j                  j                  dt         j                  j
                  g       }t         j                  j                  dt         j                  j                  g       }t        j                  g d      j                  t        j                        }t        j                  d	g      j                  t        j                        }t         j                  j                  d
g dgt         j                  j                  dt         j                  j                  |j                  |j                         j                  t                          }t         j                  j                  d
g dgt         j                  j                  dt         j                  j                  ddg            }	t         j                  j                  dddgdg      }
t         j                  j                  ddgdgdg      }t         j                  j                  ddgdgdg      }t         j                  j                  dg ddg      }t         j                  j                  dddgdg      }t         j                  j                  ddgdg      }t         j                  j                  ddgdg      }t         j                  j!                  |||	|
|||||g	d||| g|||g      }t         j                  j                  dg d d!d"g|#      }t        j                  d$      j                  t        j"                        }t        j                  d%g      j                  t        j                        }t        j                  d      j                  t$              }t        j                  g d&      j                  t        j                        j'                  d'      }t)        ||||g||gd(t         j                  j+                  d)d*      g+       y ),Ny_inr   y_outscan_outcond_incond_out
iter_countr               Constantr   const_tensor_xname	data_typedimsvalsinputsoutputsvalueoneconst_tensor_one Addendr)   r*   	Unsqueezeslice_startr   )r)   r*   axes	slice_endSlicer   r3   r5   	slice_outIdentity	loop_bodyr   )r   condyres_yres_scanr)   r*   bodyr      )r   r      rA   )r   r   test_loop11    )r)   r*   r$   opset_imports)onnxhelpermake_tensor_value_infoTensorProtoFLOATBOOLINT64nparrayastypefloat32	make_nodemake_tensorshapeflattenfloat
make_graphint64boolreshaper   make_opsetid)r   r   r   r   r   r   r   r<   x_const_nodeone_const_node
i_add_nodestart_unsqueeze_nodeend_unsqueeze_node
slice_node
y_add_nodeidentity_nodescan_identity_noder:   noder   r=   r;   r>   s                          r   export_loop_11zLoop.export_loop_11   s=    {{11&$:J:J:P:PSTRUV227D<L<L<R<RUVTWX;;55((..
 ++44t'',,b
 ;;55((--r
 [[77$**00"

 HH_%,,RZZ8HHbTN!!"**-{{,,E++))%**00WWYY[''.	 * 	 - 

 ..G++))'**00S	 * 	 / 

 [[**</% + 

  ${{44qc  5  
 "[[22+aS 3 
 [[**=} + 

 [[**6;/' + 

 --	{ZL . 
 "[[22y:, 3 
 KK**$""
 $'uh'
	" {{$$.j)	 % 
 XXa[''1
"%%bjj1xx{!!$'88-.55bjjAII&Qa(H%;;33B;<	
r   c                    t         j                  j                  dt         j                  j                  d       } t         j                  j                  dt         j                  j                  d       }t         j                  j                  dt         j                  j                  g       }t         j                  j                  dt         j                  j                  g       }t         j                  j                  dt         j                  j                  g       }t        j                  g d      j                  t        j                        }t         j                  j                  dg dgt         j                  j                  d	t         j                  j                  |j                  |j                         j                  t               
            }t         j                  j                  dg dgt         j                  j                  dt         j                  j                  ddg
            }t         j                  j                  dg dgt         j                  j                  dt         j                  j                  ddg
            }t         j                  j                  dg dgt         j                  j                  dt         j                  j                  ddg
            }	t         j                  j                  dddgdg      }
t         j                  j                  dddgdg      }t         j                  j                  dg ddg      }t         j                  j                  dddgdg      }t         j                  j                  ddgdg      }t         j                  j#                  |||||
|	|||g	d ||| g||g      }t         j                  j                  d!g d"d#g|$      }t        j                  d%      j                  t        j$                        }g }|D cg c]  }|d t'        |        }}t        j                  d      j                  t(              }t+        ||||g|gd&t         j                  j-                  d'd(      gt         j                  j/                  t         j                  j                  |j                        t         j                  j/                  t         j                  j                  |j                        t         j                  j1                  t         j                  j/                  t         j                  j                  g             g)       y c c}w )*Nseq_inseq_outr   r   r   r   r!   r   r"   r#   r(   r,   r-   r.   r   r3   const_tensor_zeror   r   r4   const_tensor_axesr/   r0   r1   r2   r5   r6   r7   r8   SequenceInsertr9   r:   r   )r   r;   	seq_emptyseq_resr?   r   test_loop13_seqrE   rA   r)   r*   r$   rG   input_type_protos)rH   rI   make_tensor_sequence_value_inforK   rL   rJ   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   r
   rZ   r   r\   make_tensor_type_protomake_sequence_type_proto)ri   rj   r   r   r   r   r]   r^   zero_const_node	axes_nodeadd_nodera   rb   insert_noderd   r:   rf   r   ro   r   rp   r;   s                         r   export_loop_13zLoop.export_loop_13   s    <<d&&,,d
 ++==t''--t
 ++44t'',,b
 ;;55((--r
 [[77$**00"

 HH_%,,RZZ8{{,,E++))%**00WWYY[''.	 * 	 - 

 ..G++))'**00S	 * 	 / 

 ++//"O++))(**00S	 * 	 0 

 KK))H++))(**00S	 * 	 * 

	 ;;((</% ) 
 "[[22+ 3 
 [[**=} + 

 kk++h%<yk , 
 --	{ZL . 
 KK**"
 &)w
	" {{$$6K	 % 
 XXa[''1
!	()*11Xs1v;**xx{!!$'i0I";;33B;<22$$**J,<,< 2243C3C3H3H$**U44KK66t7G7G7M7MrR	
 +s   :Vc                    t         j                  j                  t         j                  j                  g       } t         j                  j                  |       }t         j                  j                  |      }t         j                  j                  d|      }t         j                  j                  dt         j                  j                  g       }t         j                  j                  dt         j                  j                  g       }t         j                  j                  dt         j                  j                  g       }t         j                  j                  dt         j                  j                  g       }t        j                  d      j                  t        j                        }t        j                  g d      j                  t        j                        }	t         j                  j!                  ddgd	g
      }
t         j                  j!                  dd	gdg
      }t         j                  j!                  ddgdg
      }t         j                  j!                  dg dgt         j                  j#                  dt         j                  j                  ddg            }t         j                  j!                  ddgdg
      }t         j                  j                  dt         j                  j                  g       }t         j                  j%                  ||gdg |g      }t         j                  j                  dt         j                  j                  g       }t         j                  j%                  |gdg |g      }t         j                  j!                  ddgdg||      }t         j                  j!                  dg dgt         j                  j#                  dt         j                  j                  |	j&                  |	j)                         j                  t*                          }t         j                  j!                  dg dgt         j                  j#                  dt         j                  j                  dd g            }t         j                  j!                  dg d!gt         j                  j#                  d"t         j                  j                  d#dg            }t         j                  j!                  dg d$gt         j                  j#                  d%t         j                  j                  ddg            }t         j                  j!                  d&ddgd'g
      }t         j                  j!                  d(d'd$gd)g
      }t         j                  j!                  d*g d+d,g
      }t         j                  j!                  d-dd,gdg
      }t         j                  j!                  d.dgdg
      }t         j                  j%                  ||
||||||||||gd/|||g||g      }t         j                  j!                  d0g d1d2g|3      }t        j                  d4      j                  t        j,                        }t        j                  d       j                  t.              } t1        |	|g|      }!|g}"t3        ||| |"g|!gd5t         j                  j5                  d6d7      gt         j                  j                  t         j                  j                  |j&                        t         j                  j                  t         j                  j                  | j&                        |g8       y )9N
opt_seq_inrj   r   r   r   r   r   OptionalHasElementoptional_has_elemr1   Notoptional_is_noneOptionalGetElementri   r!   constant_inconst_tensorr.   r#   r(   SequenceConstructinit_seq_in	then_body	else_bodyIfsequence)r)   r*   then_branchelse_branchr   r"   r,   r-   r   r3   rk   rl   r4   rm   r/   r0   r2   r5   r6   r7   r8   rn   r9   r:   r   )r   r;   opt_seqrp   r?   r   test_loop16_seq_nonerE      rr   )rH   rI   ru   rK   rL   rv   make_optional_type_protomake_value_infort   rJ   rM   rN   rO   rP   rQ   rR   rS   rT   rX   rU   rV   rW   rY   rZ   r   r   r\   )#	ten_in_tp	seq_in_tp	opt_in_tpopt_inrj   r   r   r   x0r   optional_has_elem_noder   optional_get_elemr   seq_const_inthen_seq_outr   else_seq_outr   if_noder]   r^   rw   rx   ry   ra   rb   rz   rd   r:   rf   r   r;   rp   r}   s#                                      r   export_loop_16_nonezLoop.export_loop_16_none  s    KK66t7G7G7M7MrR	KK88C	KK88C	,,\9E++==t''--r
 ++44t'',,b
 ;;55((--r
 [[77$**00"

 XXa[

+HH_%,,RZZ8!%!6!6 ,BUAV "7 "
  ;;00./:L9M 1 
 !KK11 ,( 2 
 kk++"O++))#t/?/?/E/EBVWUX * 	 , 
 {{,,- - 
 {{BB4++112
 KK**,'b<.
	 {{BBd&&,,b
 KK**b<.
	 ++''&'L!! ( 
 {{,,E++))%**00WWYY[''.	 * 	 - 

 ..G++))'**00S	 * 	 / 

 ++//"O++))(**00S	 * 	 0 

 KK))H++))(**00S	 * 	 * 

	 ;;((</% ) 
 "[[22+ 3 
 [[**=} + 

 kk++j+%> , 
 --	{ZL . 
 KK**& " &)w#
	( {{$$4K	 % 
 XXa[''1
xx{!!$'&q2$
;!#
j1I';;33B;<22$$**J,<,< 2243C3C3H3H$**U	
r   N)returnNone)__name__
__module____qualname__staticmethodrg   r{   r   r.   r   r   r   r      sD    n
 n
` F
 F
P x
 x
r   r   )
__future__r   typingr   numpyrO   rH   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   r.   r   r   <module>r      s,    #    , .t
4 t
r   