
    h/@                       S SK Jr  S SKrS SKrS SKrS SKJr  S SKJr  S SK	J
r
  SS jrSS jr S       SS jjrSS	 jr S     SS
 jjrSS jr   S         SS jjr S       SS jjr " S S\5      rg)    )annotationsN)TensorProto)Base)expectc                     / $ N r	       _/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/backend/test/case/model/sequence.pySequenceEmptyImplr      s    Ir
   c                     [        U 5      $ r   )list)tensorss    r   SequenceConstructImplr      s    =r
   c                D    Uc  [        U 5      nU R                  X!5        U $ r   )leninsert)sequencetensorpositions      r   SequenceInsertImplr      s$     x=OOH%Or
   c                
    X   $ r   r	   r   r   s     r   SequenceAtImplr   "   s    r
   c                    Uc  SnX	 U $ )Nr	   r   s     r   SequenceEraseImplr   &   s     Or
   c                @    [         R                  " [        U 5      5      $ r   )npint64r   )r   s    r   SequenceLengthImplr!   /   s    88CM""r
   c                   U R                   U   nUct  Sn[        U5       Vs/ s H  oUU-  S-   U:  d  M  XQ-  S-   PM     nnU(       d>  [        R                  " XU5      nU Vs/ s H  n[        R                  " X5      PM     sn$ [        R
                  " U5      (       a.  [        U5       Vs/ s H  oUU-  S-   U:  d  M  XQ-  S-   PM     nnO[        R                  " U5      S-   n[        R                  " XU5      $ s  snf s  snf s  snf )N   )shaperanger   array_splitsqueezeisscalarcumsum)	r   splitaxiskeepdimsdim_sizeisplit_indicesresultsress	            r   SplitToSequenceImplr2   3   s     ||D!H}#(?
#2a%i!mh6NMAIM? 	 
 nnVDAG5<=WcBJJs)W==	{{505h\1u9q=S[C[Q\		%(1,>>&66

 >\s   D D $ D/D
D
c                h    U(       d  [         R                  " X5      $ [         R                  " X5      $ r   )r   concatenatestack)r   r+   new_axiss      r   ConcatFromSequenceImplr7   I   s%     ~~h--88H##r
   c                  (    \ rS rSr\SS j5       rSrg)SequenceQ   c                     SC                 SDS jjn [         R                  R                  S/ S/5      n[         R                  R                  SSS/S/5      n[         R                  R                  SSS/S/5      n[         R                  R                  S/ S	QS
/5      n[         R                  R                  SS
S/S/5      n/ SQn/ SQn/ SQn/ SQn	[        R                  " U[        R
                  S9n
[        R                  " U[        R
                  S9n[        R                  " U[        R
                  S9S-  nSnSn[        5       n[        X5      n[        X5      n[        XU5      n[        X5      n[        R                  " X5      (       d   e[         R                  R                  S[        R                  SU45      n[         R                  R                  S[        R                  SU45      nU " UUUUU/XgU/ / /U	// SQS/[         R                  R                  /S-  [         R                  R                  /S-  -   [         R                  R                  /UU/5      n[         R                  R                  US[         R                  R!                  SS5      /S9n[#        UXU/U/SS9  [         R                  R                  S/ S QS!/5      n[         R                  R                  S"S!S#/S$/5      n[         R                  R                  SS$S/S/5      n/ SQn[        R                  " U[        R
                  S9n
[        R                  " U[        R
                  S9n[        R                  " U[        R
                  S9S-  nSnSn[%        XU5      n['        UU5      n[        X5      n[        R                  " X5      (       d   e[         R                  R                  S#[        R                  SU45      n[         R                  R                  S[        R                  SU45      nU " UUU/UUU/ / /U// S%QS/[         R                  R                  /S-  [         R                  R                  /S-  -   [         R                  R                  /UU/5      n[         R                  R                  US[         R                  R!                  SS5      /S9n[#        UXU/U/S&S9  [         R                  R                  S/ S QS!/5      n[         R                  R                  S"S!S#/S$/5      n[         R                  R                  S/ S'QS(/5      n[         R                  R                  SS(S/S/5      n/ SQn[        R                  " U[        R
                  S9n
[        R                  " U[        R
                  S9n[        R                  " U[        R
                  S9S-  nS)nS*nS*n[%        XU5      n['        UU5      n[        XU5      n[        X5      n[        R                  " X5      (       d   e[         R                  R                  S#[        R                  SU45      n[         R                  R                  S+[        R                  SU45      n[         R                  R                  S[        R                  SU45      nU " UUX%/UUU/ / / /U// S,QS/[         R                  R                  /S-  [         R                  R                  /S-  -   [         R                  R                  /UUU/5      n[         R                  R                  US[         R                  R!                  SS5      /S9n[#        UXU/U/S-S9  [         R                  R                  S/ S QS!/5      n[         R                  R                  S.S!/S/SS/9n/ SQn/ S0Qn[        R                  " U[        R
                  S9n
[        R                  " U[        R
                  S9n[        R                  " U[        R
                  S9S-  n[%        XU5      n[)        US5      nU " UU/U/S-  U// S QS/[         R                  R                  /S-  [         R                  R                  /5      n[         R                  R                  US[         R                  R!                  SS5      /S9n[#        UXU/U/S1S9  [         R                  R                  S/ S QS!/5      n[         R                  R                  S.S!/S/S*SS29n/ SQn/ S3Qn[        R                  " U[        R
                  S9n
[        R                  " U[        R
                  S9n[        R                  " U[        R
                  S9S-  n[%        XU5      n[)        US*S5      nU " UU/U/S-  U// S QS/[         R                  R                  /S-  [         R                  R                  /5      n[         R                  R                  US[         R                  R!                  SS5      /S9n[#        UXU/U/S4S9  [         R                  R                  S5S/S!/S*S/9n[         R                  R                  S6S!/S7/5      n/ SQn/ n [        R                  " U[        R
                  S9n
[+        U
S*S/9n[-        U5      n[        R                  " U[        R.                  " S85      5      (       d   e[         R                  R1                  UU/S9[         R                  R3                  S[         R                  R                  U5      /[         R                  R3                  S7[         R                  R                  U 5      /S:9n[         R                  R                  US[         R                  R!                  SS5      /S9n[#        UU
/U/S;S9  [         R                  R                  S5S/S!/S<S<S=9n[         R                  R                  SS!S/S/5      n/ SQnSS8/n	[        R4                  R6                  " U6 n
Sn[+        U
S<S<S=9n[        X5      n[        R                  " XU   5      (       d   e[         R                  R                  S[        R                  SU45      nU " UU/U/ /U	/SS/S/[         R                  R8                  [         R                  R                  /[         R                  R8                  /U/5      n[         R                  R                  US[         R                  R!                  SS5      /S9n[#        UU
/U/S>S9  [         R                  R                  S5SS?/S!/5      n[         R                  R                  S6S!/S7/5      nS@/nS/n![        R:                  " / 5      R=                  [        R
                  5      n
[        R:                  " / SAQ5      R=                  [        R.                  5      n"[        R.                  " S5      n#[         R                  R1                  UU/S9[         R                  R3                  S[         R                  R                  U5      [         R                  R3                  S?[         R                  R                  U!5      /[         R                  R3                  S7[         R                  R                  U 5      /S:9n[         R                  R                  US[         R                  R!                  SS5      /S9n[#        UU
U"/U#/SBS9  g )ENc                d   [         R                  R                  U S[        X5U5       VV	V
s/ s H&  u  pn
[         R                  R	                  XU
5      PM(     sn
n	n[        XFU5       VVVs/ s H&  u  pn[         R                  R	                  XU5      PM(     snnnUS9nU$ s  sn
n	nf s  snnnf )Nr9   )nodesnameinputsoutputsinitializer)onnxhelper
make_graphzipmake_tensor_value_info)r=   input_shapesoutput_shapesinput_namesoutput_namesinput_typesoutput_typesinitializersr>   
input_typeinput_shapeoutput_typeoutput_shapegraphs                 r   rD   #Sequence.export.<locals>.make_graphT   s     KK** :=#,::5+ KK66tU: <?$M<<7< KK66t,W< ) + E" Ls   -B$--B+SequenceEmpty	Seq_emptySequenceInsertXSeq_1YSeq_2)rZ   ZposSeq_3
SequenceAtpos_atout)         )r#   rb   rc   )rb   rb   rc   )Nrb   rc   )dtypera   r#   r\   r	   )rW   rY   r[   r\   r_   rb   zbackend-test    )producer_nameopset_importstest_sequence_model1)r?   r@   r>   SequenceConstruct)rW   rY   r[   seq_1SequenceErase	pos_eraseseq_2)rW   rY   r[   rm   r_   test_sequence_model2)rn   rW   
pos_insertseq_3r   rp   )rW   rY   r[   rm   rp   r_   test_sequence_model3ConcatFromSequence)r+   )ra   Nrc   test_sequence_model4)r+   r6   )ra   rb   rc   rb   test_sequence_model5SplitToSequenceSequenceLengthr   rc   r9   )r=   r>   r?   r@   test_sequence_model6r   )r+   r,   test_sequence_model7Splitsn)r   r   r   test_sequence_model8r   )r=   zlist[onnx.helper.NodeProto]rG   'list[typing.Sequence[str | int] | None]rH   r~   rI   	list[str]rJ   r   rK   list[TensorProto.DataType]rL   r   rM   zlist[TensorProto] | Nonereturnzonnx.helper.GraphProto)rB   rC   	make_noder   onesfloat32zerosr   r   r   array_equalmake_tensorr   INT64FLOATmake_model_gen_versionmake_opsetidr   r   r   r7   r2   r!   r    rD   rF   randomrandDOUBLEarrayastype)$rD   seq_empty_nodeseq_insert_nodeseq_insert_node2seq_insert_node3seq_at_nodex_shapey_shapez_shape	out_shapexyzpos_val
pos_at_valr`   r\   r_   rR   modelseq_construct_nodeseq_erase_nodetensor_shapepos_erase_valrm   pos_insert_valrp   seq_concat_nodeconcat_out_shape
concat_outseq_split_nodeseq_len_node	len_shapesplits_shapesplitsout_lens$                                       r   exportSequence.exportR   s&    6:	.	A	 C	 #		
 $	 4	 5	 3	 $	F ..[MR++//{C07)
  ;;00wnwi
  ;;003gY
 kk++L7H:MPUwW 	GGG2::.HHWBJJ/GGG2::.2
! ( ( 1S-~~c%%%%kk%%e[->->WJO((;3D3Db:-X   wB/K,G##$q(D,<,<,B,B+Ca+GG##$&M
  22(;;33B;< 3 

 	uaAY<RS "[[227)
 ..g{3gY
 kk++L7H:MPUwW GGL

3HH\4GGL

3a7
#A!,]3S-~~c%%%%KK++**B0@
	 ((;3D3Db:-X=<r2>N2G##$q(D,<,<,B,B+Ca+GG##$	
 22(;;33B;< 3 

 	uaAY<RS "[[227)
 ..g{3gY
 ++//:WI
 kk++L7H:MPUwW GGL

3HH\4GGL

3a7
#A!,]3 8S-~~c%%%%KK++**B0@
	 [[,,+++R.1B

 ((;3D3Db:-XN<r2rBN@G##$q(D,<,<,B,B+Ca+GG##$
F+	
 22(;;33B;< 3 

 	uaAY<RS "[[227)
 ++// 7)eW1 0 
 !'GGL

3HH\4GGL

3a7#A!,+C3
1NQG##$q(##$
 22(;;33B;< 3 

 	1)j\@V	

 "[[227)
 ++// 7)eW2 0 
 !'GGL

3HH\4GGL

3a7#A!,+CQ7
1NQG##$q(##$
 22(;;33B;< 3 

 	1)j\@V	

 ..uwib / 
 {{,,-=y5'R 	GGL

3!!"- %~~c288A;////&&!<022))// 224++119 ' 
 22(;;33B;< 3 

 	uaS3%6LM ..uwia! / 
 kk++L7H:MPUwW F	IINNL)
!!!a8S-~~cZ=1111((;3D3Db:-X[)2K(OG$$d&6&6&<&<=$$%H	
 22(;;33B;< 3 

 	uaS3%6LM ..X	
 {{,,-=y5'RusHHRL

+)$++BHH5((1+&&!<022))// 22d..44l	 224++119 ' 
$ 22(;;33B;< 3 

 	1f+y?U	
r
   r	   N)r   None)__name__
__module____qualname____firstlineno__staticmethodr   __static_attributes__r	   r
   r   r9   r9   Q   s    t
 t
r
   r9   )r   list[np.ndarray | None])r   
np.ndarrayr   list[np.ndarray]r   )r   r   r   r   r   
int | Noner   r   )r   r   r   intr   r   )r   r   r   r   r   r   )r   r   r   znp.int64)Nr   r#   )
r   r   r*   zint | list[int] | Noner+   r   r,   r   r   r   )r   )r   r   r+   r   r6   r   r   r   )
__future__r   typingnumpyr   rB   r   onnx.backend.test.case.baser   onnx.backend.test.case.modelr   r   r   r   r   r   r!   r2   r7   r9   r	   r
   r   <module>r      s   
 #     , /
 LP(2>H
 8<*4# %)	77!7 7 	7
 7. CD$$&)$5?$$v
t v
r
   