
    Ng/@                        d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d!dZd"dZ	 d#d$dZd%dZ	 d#d&dZd'dZ	 	 	 d(d)dZ	 d*d+dZ G d d e          ZdS ),    )annotationsN)TensorProto)Base)expectreturnlist[np.ndarray | None]c                     g S N r       a/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/backend/test/case/model/sequence.pySequenceEmptyImplr      s    Ir   tensors
np.ndarraylist[np.ndarray]c                      t          |           S r
   )list)r   s    r   SequenceConstructImplr      s    ==r   sequencetensorposition
int | Nonec                T    |t          |           }|                     ||           | S r
   )leninsert)r   r   r   s      r   SequenceInsertImplr      s.     x==OOHf%%%Or   intc                    | |         S r
   r   r   r   s     r   SequenceAtImplr    "   s    Hr   c                    |d}| |= | S )Nr   r   s     r   SequenceEraseImplr#   &   s     Or   np.int64c                D    t          j        t          |                     S r
   )npint64r   )r   s    r   SequenceLengthImplr(   /   s    8CMM"""r      splitint | list[int] | Noneaxiskeepdimsc                j   | j                  Ddfdt                    D             }|s$t          j        | |          }fd|D             S t          j                  rfdt                    D             }nt          j                  dz   }t          j        | |          S )Nr)   c                8    g | ]}|z  d z   k     |z  d z   S r)   r   .0idim_sizer*   s     r   
<listcomp>z'SplitToSequenceImpl.<locals>.<listcomp><   s:     
 
 
a%i!mh6N6NAIM6N6N6Nr   c                :    g | ]}t          j        |          S r   )r&   squeeze)r2   resr,   s     r   r5   z'SplitToSequenceImpl.<locals>.<listcomp>A   s%    ===cBJsD))===r   c                8    g | ]}|z  d z   k     |z  d z   S r0   r   r1   s     r   r5   z'SplitToSequenceImpl.<locals>.<listcomp>C   s4    \\\11u9q=S[C[C[UQC[C[C[r   )shaperanger&   array_splitisscalarcumsum)r   r*   r,   r-   split_indicesresultsr4   s    ``   @r   SplitToSequenceImplrA   3   s     |D!H}
 
 
 
 
#(??
 
 
  	>nV]DAAG====W====	{5 -\\\\\h\\\	%((1,>&-666r   new_axisc                Z    |st          j        | |          S t          j        | |          S r
   )r&   concatenatestack)r   r,   rB   s      r   ConcatFromSequenceImplrF   I   s0      .~h---8Hd###r   c                  &    e Zd Zedd            ZdS )Sequencer   Nonec                    	 dRdSd} t           j                            dg dg          }t           j                            dddgdg          }t           j                            dddgdg          }t           j                            dg ddg          }t           j                            dddgdg          }g d}g d}g d}g d }	t          j        |t          j        !          }
t          j        |t          j        !          }t          j        |t          j        !          d"z  }d#}d"}t                      }t          ||
          }t          ||          }t          |||          }t          ||          }t          j
        ||          sJ t           j                            d$t          j        d%|f          }t           j                            dt          j        d%|f          } | |||||g|||g g g|	gg d&dgt           j        j        gd'z  t           j        j        gd"z  z   t           j        j        g||g          }t           j                            |d(t           j                            d)d*          g+          }t#          ||
||g|gd,-           t           j                            d.g d/d0g          }t           j                            d1d0d2gd3g          }t           j                            dd3dgdg          }g d}t          j        |t          j        !          }
t          j        |t          j        !          }t          j        |t          j        !          d"z  }d#}d#}t%          |
||          }t'          ||          }t          ||          }t          j
        ||          sJ t           j                            d2t          j        d%|f          }t           j                            dt          j        d%|f          } | |||g|||g g g|gg d4dgt           j        j        gd'z  t           j        j        gd"z  z   t           j        j        g||g          }t           j                            |d(t           j                            d)d*          g+          }t#          ||
||g|gd5-           t           j                            d.g d/d0g          }t           j                            d1d0d2gd3g          }t           j                            dg d6d7g          }t           j                            dd7dgdg          }g d}t          j        |t          j        !          }
t          j        |t          j        !          }t          j        |t          j        !          d"z  }d8}d9}d9}t%          |
||          }t'          ||          }t          ||
|          }t          ||          }t          j
        ||          sJ t           j                            d2t          j        d%|f          }t           j                            d:t          j        d%|f          }t           j                            dt          j        d%|f          } | ||||g|||g g g g|gg d;dgt           j        j        gd'z  t           j        j        gd'z  z   t           j        j        g|||g          }t           j                            |d(t           j                            d)d*          g+          }t#          ||
||g|gd<-           t           j                            d.g d/d0g          }t           j                            d=d0gdgd#>          }g d}g d?}t          j        |t          j        !          }
t          j        |t          j        !          }t          j        |t          j        !          d"z  }t%          |
||          }t)          |d#          } | ||g|gd'z  |gg d/dgt           j        j        gd'z  t           j        j        g          }t           j                            |d(t           j                            d)d*          g+          }t#          ||
||g|gd@-           t           j                            d.g d/d0g          }t           j                            d=d0gdgd9d#A          }g d}g dB}t          j        |t          j        !          }
t          j        |t          j        !          }t          j        |t          j        !          d"z  }t%          |
||          }t)          |d9d#          } | ||g|gd'z  |gg d/dgt           j        j        gd'z  t           j        j        g          }t           j                            |d(t           j                            d)d*          g+          }t#          ||
||g|gdC-           t           j                            dDdgd0gd9>          }t           j                            dEd0gdFg          }g d}g } t          j        |t          j        !          }
t+          |
d9>          }t-          |          }t          j
        |t          j        dG                    sJ t           j                            ||gdHt           j                            dt           j        j        |          gt           j                            dFt           j        j        |           gI          }t           j                            |d(t           j                            d)d*          g+          }t#          ||
g|gdJ-           t           j                            dDdgd0gdKdKL          }t           j                            dd0dgdg          }g d}d'dGg}	t          j        j        | }
d#}t+          |
dKdKL          }t          ||          }t          j
        ||
|                   sJ t           j                            dt          j        d%|f          } | ||g|g g|	gddgdgt           j        j        t           j        j        gt           j        j        g|g          }t           j                            |d(t           j                            d)d*          g+          }t#          ||
g|gdM-           t           j                            dDddNgd0g          }t           j                            dEd0gdFg          }dOg}d'g}!t          j        g                               t          j                  }
t          j        g dP                              t          j                  }"t          j        d'          }#t           j                            ||gdHt           j                            dt           j        j        |          t           j                            dNt           j        j        |!          gt           j                            dFt           j        j        |           gI          }t           j                            |d(t           j                            d)d*          g+          }t#          ||
|"g|#gdQ-           d S )TNnodeslist[onnx.helper.NodeProto]input_shapes'list[typing.Sequence[str | int] | None]output_shapesinput_names	list[str]output_namesinput_typeslist[TensorProto.DataType]output_typesinitializerslist[TensorProto] | Noner   onnx.helper.GraphProtoc                    t           j                            | dd t          |||          D             d t          |||          D             |          }|S )NrH   c                X    g | ]'\  }}}t           j                            |||          (S r   onnxhelpermake_tensor_value_info)r2   name
input_typeinput_shapes       r   r5   z7Sequence.export.<locals>.make_graph.<locals>.<listcomp>a   sB       5j+ K66tZUU  r   c                X    g | ]'\  }}}t           j                            |||          (S r   r[   )r2   r_   output_typeoutput_shapes       r   r5   z7Sequence.export.<locals>.make_graph.<locals>.<listcomp>g   sB       7k< K66t[,WW  r   )rK   r_   inputsoutputsinitializer)r\   r]   
make_graphzip)	rK   rM   rO   rP   rR   rS   rU   rV   graphs	            r   rh   z#Sequence.export.<locals>.make_graphT   s     K** 9<#[,: :   ;>$lM< <   ) +  E" Lr   SequenceEmpty	Seq_emptySequenceInsertXSeq_1YSeq_2)rq   ZposSeq_3
SequenceAtpos_atout)         )r)   ry   rz   )ry   ry   rz   )Nry   rz   )dtyperx   r)   rs   r   )rn   rp   rr   rs   rv   ry   zbackend-test    )producer_nameopset_importstest_sequence_model1)re   rf   r_   SequenceConstruct)rn   rp   rr   seq_1SequenceErase	pos_eraseseq_2)rn   rp   rr   r   rv   test_sequence_model2)r   rn   
pos_insertseq_3r"   r   )rn   rp   rr   r   r   rv   test_sequence_model3ConcatFromSequence)r,   )rx   Nrz   test_sequence_model4)r,   rB   )rx   ry   rz   ry   test_sequence_model5SplitToSequenceSequenceLengthr   rz   rH   )rK   r_   re   rf   test_sequence_model6r   )r,   r-   test_sequence_model7Splitsn)r   r   r   test_sequence_model8r
   )rK   rL   rM   rN   rO   rN   rP   rQ   rR   rQ   rS   rT   rU   rT   rV   rW   r   rX   )r\   r]   	make_noder&   onesfloat32zerosr   r   r    array_equalmake_tensorr   INT64FLOATmake_model_gen_versionmake_opsetidr   r   r#   rF   rA   r(   r'   rh   r^   randomrandDOUBLEarrayastype)$rh   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_valrw   rs   rv   rj   modelseq_construct_nodeseq_erase_nodetensor_shapepos_erase_valr   pos_insert_valr   seq_concat_nodeconcat_out_shape
concat_outseq_split_nodeseq_len_node	len_shapesplits_shapesplitsout_lens$                                       r   exportzSequence.exportR   sP    6:	 	 	 	 	F ..[MRR+//{C07)
 
  ;00wnwi
 
  ;00333gY
 
 k++L7H:MPUwWW)))))) LL	GG2:...HWBJ///GG2:...2
!! a(( a(( a11S*--~c1%%%%%k%%e[->WJOO((;3Db:-XX
   gwB/K,,,G#$q(D,<,B+Ca+GG#$&M
 
  22(;33B;;< 3 
 

 	uaAY<RSSSS "[227)
 
 ..g{3gY
 
 k++L7H:MPUwWW yyGL
333H\444GL
333a7
#Aq!,,]33S*--~c1%%%%%K++*B0@
 
	 ((;3Db:-XX
=<r2>N222G#$q(D,<,B+Ca+GG#$	
 	
 22(;33B;;< 3 
 

 	uaAY<RSSSS "[227)
 
 ..g{3gY
 
 +//:::WI
 
 k++L7H:MPUwWW yyGL
333H\444GL
333a7
#Aq!,,]33 a88S*--~c1%%%%%K++*B0@
 
	 [,,++R.1B
 

 ((;3Db:-XX
+N<r2rBN@@@G#$q(D,<,B+Ca+GG#$
F+	
 	
 22(;33B;;< 3 
 

 	uaAY<RSSSS "[227)
 
 +// 7)eW1 0 
 
 !yy'<<GL
333H\444GL
333a7#Aq!,,+C33

1NQOOG#$q(#$
 
 22(;33B;;< 3 
 

 	1a)j\@V	
 	
 	
 	

 "[227)
 
 +// 7)eW2 0 
 
 !yy'<<GL
333H\444GL
333a7#Aq!,,+CQ77

1NQOOG#$q(#$
 
 22(;33B;;< 3 
 

 	1a)j\@V	
 	
 	
 	

 ..uwib / 
 
 {,,-=y5'RR yy	GL
333!!"--- %%~c28A;;/////&&!<022)/  224+19  ' 
 
 22(;33B;;< 3 
 

 	uaS3%6LMMMM ..uwia! / 
 
 k++L7H:MPUwWW yyF	INL)
!!!a888S*--~c1Z=11111((;3Db:-XX
[)2K(OG$d&6&<=$%H	
 	
 22(;33B;;< 3 
 

 	uaS3%6LMMMM ..X	
 
 {,,-=y5'RRusHRLL
++)))$$++BH55(1++&&!<022)/  22d.4l 	 224+19  ' 
 
$ 22(;33B;;< 3 
 

 	1f+y?U	
 	
 	
 	
 	
 	
r   N)r   rI   )__name__
__module____qualname__staticmethodr   r   r   r   rH   rH   Q   s8        t
 t
 t
 \t
 t
 t
r   rH   )r   r   )r   r   r   r   r
   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r$   )Nr   r)   )
r   r   r*   r+   r,   r   r-   r   r   r   )r   )r   r   r,   r   rB   r   r   r   )
__future__r   typingnumpyr&   r\   r   onnx.backend.test.case.baser   onnx.backend.test.case.modelr   r   r   r   r    r#   r(   rA   rF   rH   r   r   r   <module>r      s}  
 # " " " " "             , , , , , , / / / / / /      
 LP       
 8<    # # # # %)	7 7 7 7 7. CD$ $ $ $ $v
 v
 v
 v
 v
t v
 v
 v
 v
 v
r   