
    h~9                     X    S SK JrJr  S SKrS SKrS SKJr  S SKJ	r	  S r
 " S S\5      rg)    )AnyListN)Base)expectc                 \    [        U5       H  nUc  / nXS [        US-   5       /-  nM     U$ )N   )rangeint)xseq
trip_countis       Z/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/loop.pycompute_loop_outputsr      s;    :;C,CAJ    J    c                   P    \ rS rSr\SS j5       r\SS j5       r\SS j5       rSrg)Loop   Nc                  	   [         R                  R                  S[         R                  R                  S/5      n [         R                  R                  S[         R                  R                  S/5      n[         R                  R                  S[         R                  R                  S/5      n[         R                  R                  S[         R                  R
                  / 5      n[         R                  R                  S[         R                  R
                  / 5      n[         R                  R                  S[         R                  R                  / 5      n[        R                  " / SQ5      R                  [        R                  5      n[        R                  " S	/5      R                  [        R                  5      n[         R                  R                  S
/ S/[         R                  R                  S[         R                  R                  UR                  UR                  5       R                  [        5      S9S9n[         R                  R                  S
/ S/[         R                  R                  S[         R                  R                  SS/S9S9n	[         R                  R                  SSS/S/S9n
[         R                  R                  SS/S/S/S9n[         R                  R                  SS/S/S/S9n[         R                  R                  S/ SQS/S9n[         R                  R                  SSS/S/S9n[         R                  R                  SS/S/S9n[         R                  R                  SS/S/S9n[         R                  R!                  UUU	U
UUUUU/	SXSU /XAU/5      n[         R                  R                  S/ S QS!S"/US#9n[        R                  " S$5      R                  [        R"                  5      n[        R                  " S%/5      R                  [        R                  5      n[        R                  " S5      R                  [$        5      n[        R                  " / S&Q5      R                  [        R                  5      R'                  S'5      n[)        UUUU/UU/S([         R                  R+                  S)S*5      /S+9  g ),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   r4   r6   	slice_outIdentity	loop_bodyr   )r   condyres_yres_scanr*   r+   bodyr       )r   r      rB   )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_11Loop.export_loop_11   s9    {{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**$""
 $'h'
	" {{$$.j)	 % 
 XXa[''1
"%%bjj1xx{!!$'88-.55bjjAII&Qa(H%;;33B;<	
r   c                  
   [         R                  R                  S[         R                  R                  S 5      n [         R                  R                  S[         R                  R                  S 5      n[         R                  R                  S[         R                  R                  / 5      n[         R                  R                  S[         R                  R                  / 5      n[         R                  R                  S[         R                  R                  / 5      n[        R                  " / SQ5      R                  [        R                  5      n[         R                  R                  S/ S/[         R                  R                  S	[         R                  R                  UR                  UR                  5       R                  [         5      S
9S9n[         R                  R                  S/ S/[         R                  R                  S[         R                  R                  SS/S
9S9n[         R                  R                  S/ S/[         R                  R                  S[         R                  R                  SS/S
9S9n[         R                  R                  S/ S/[         R                  R                  S[         R                  R                  SS/S
9S9n	[         R                  R                  SSS/S/S9n
[         R                  R                  SSS/S/S9n[         R                  R                  S/ SQS/S9n[         R                  R                  SSS/S/S9n[         R                  R                  SS/S/S9n[         R                  R#                  UUUUU
U	UUU/	S XBU /X1/5      n[         R                  R                  S!/ S"QS#/US$9n[        R                  " S%5      R                  [        R$                  5      n/ nU Vs/ s H  nUS ['        U5       PM     nn[        R                  " S5      R                  [(        5      n[+        UUUU/U/S&[         R                  R-                  S'S(5      /[         R                  R/                  [         R                  R                  UR                  5      [         R                  R/                  [         R                  R                  UR                  5      [         R                  R1                  [         R                  R/                  [         R                  R                  / 5      5      /S)9  g s  snf )*Nseq_inseq_outr   r   r   r   r"   r   r#   r$   r)   r-   r.   r/   r   r4   const_tensor_zeror   r   r5   const_tensor_axesr0   r1   r2   r3   r6   r7   r8   r9   SequenceInsertr:   r;   r   )r   r<   	seq_emptyseq_resr@   r    test_loop13_seqrF   rB   r*   r+   r%   rH   input_type_protos)rI   rJ   make_tensor_sequence_value_inforL   rM   rK   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r
   r[   r   r]   make_tensor_type_protomake_sequence_type_proto)rk   rl   r   r   r   r   r^   r_   zero_const_node	axes_nodeadd_noderb   rc   insert_nodere   r;   rg   r   rq   r   rr   r<   s                         r   export_loop_13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**"
 &)
	" {{$$6K	 % 
 XXa[''1
!	()*11Xs1v;*xx{!!$'i0I";;33B;<22$$**J,<,< 2243C3C3H3H$**U44KK66t7G7G7M7MrR	
 +s   Uc                     [         R                  R                  [         R                  R                  / 5      n [         R                  R                  U 5      n[         R                  R                  U5      n[         R                  R                  SU5      n[         R                  R                  S[         R                  R                  / 5      n[         R                  R                  S[         R                  R                  / 5      n[         R                  R                  S[         R                  R                  / 5      n[         R                  R                  S[         R                  R                  / 5      n[        R                  " S5      R                  [        R                  5      n[        R                  " / SQ5      R                  [        R                  5      n	[         R                  R!                  SS/S	/S
9n
[         R                  R!                  SS	/S/S
9n[         R                  R!                  SS/S/S
9n[         R                  R!                  S/ S/[         R                  R#                  S[         R                  R                  SS/S9S9n[         R                  R!                  SS/S/S
9n[         R                  R                  S[         R                  R                  / 5      n[         R                  R%                  X/S/ U/5      n[         R                  R                  S[         R                  R                  / 5      n[         R                  R%                  U/S/ U/5      n[         R                  R!                  SS/S/UUS9n[         R                  R!                  S/ S/[         R                  R#                  S[         R                  R                  U	R&                  U	R)                  5       R                  [*        5      S9S9n[         R                  R!                  S/ S/[         R                  R#                  S[         R                  R                  SS /S9S9n[         R                  R!                  S/ S!/[         R                  R#                  S"[         R                  R                  S#S/S9S9n[         R                  R!                  S/ S$/[         R                  R#                  S%[         R                  R                  SS/S9S9n[         R                  R!                  S&SS/S'/S
9n[         R                  R!                  S(S'S$/S)/S
9n[         R                  R!                  S*/ S+QS,/S
9n[         R                  R!                  S-SS,/S/S
9n[         R                  R!                  S.S/S/S
9n[         R                  R%                  UU
UUUUUUUUUU/S/XuU/Xd/5      n[         R                  R!                  S0/ S1QS2/US39n[        R                  " S45      R                  [        R,                  5      n[        R                  " S 5      R                  [.        5      n [1        X/U5      n!U/n"[3        UUU U"/U!/S5[         R                  R5                  S6S75      /[         R                  R                  [         R                  R                  UR&                  5      [         R                  R                  [         R                  R                  U R&                  5      U/S89  g )9N
opt_seq_inrl   r   r   r   r   r   OptionalHasElementoptional_has_elemr2   Notoptional_is_noneOptionalGetElementrk   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   r4   rm   rn   r5   ro   r0   r1   r3   r6   r7   r8   r9   rp   r:   r;   r   )r   r<   opt_seqrr   r@   r    test_loop16_seq_nonerF      rt   )rI   rJ   rw   rL   rM   rx   make_optional_type_protomake_value_inforv   rK   rN   rO   rP   rQ   rR   rS   rT   rU   rY   rV   rW   rX   rZ   r[   r   r   r]   )#	ten_in_tp	seq_in_tp	opt_in_tpopt_inrl   r   r   r   x0r   optional_has_elem_noder   optional_get_elemr   seq_const_inthen_seq_outr   else_seq_outr   if_noder^   r_   ry   rz   r{   rb   rc   r|   re   r;   rg   r   r<   rr   r   s#                                      r   export_loop_16_none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**& " &)#
	( {{$$4K	 % 
 XXa[''1
xx{!!$'&q$
;!#
j1I';;33B;<22$$**J,<,< 2243C3C3H3H$**U	
r   r/   )returnN)	__name__
__module____qualname____firstlineno__staticmethodrh   r}   r   __static_attributes__r/   r   r   r   r      sD    n
 n
` F
 F
P x
 x
r   r   )typingr   r   numpyrP   rI   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   r/   r   r   <module>r      s)   
    , .t
4 t
r   