
    bIgE@                        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y)    )annotationsN)TensorProto)Base)expectc                     g S N r	       b/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/model/sequence.pySequenceEmptyImplr      s    Ir
   c                     t        |       S r   )list)tensorss    r   SequenceConstructImplr      s    =r
   c                D    |t        |       }| j                  ||       | S r   )leninsert)sequencetensorpositions      r   SequenceInsertImplr      s&     x=OOHf%Or
   c                    | |   S r   r	   r   r   s     r   SequenceAtImplr   "   s    Hr
   c                    |d}| |= | S )Nr	   r   s     r   SequenceEraseImplr   &   s     Or
   c                >    t        j                  t        |             S r   )npint64r   )r   s    r   SequenceLengthImplr!   /   s    88CM""r
   c                   | j                   |   }|id}t        |      D cg c]  }||z  dz   |k  s||z  dz    }}|s;t        j                  | ||      }|D cg c]  }t        j                  ||       c}S t        j
                  |      r+t        |      D cg c]  }||z  dz   |k  s||z  dz    }}nt        j                  |      dz   }t        j                  | ||      S c c}w c c}w c c}w )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}#(?
a%i!mh6NAIM
 
 nnV]DAG5<=cBJJsD)==	{{5#(?
a%i!mh6NAIM
 
 		%(1,>>&-66

 >
s   C*
C*C/C4.
C4c                ^    |st        j                  | |      S t        j                  | |      S r   )r   concatenatestack)r   r+   new_axiss      r   ConcatFromSequenceImplr7   K   s)     ~~h--88Hd##r
   c                      e Zd Zedd       Zy)Sequencec                    	 dC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dDd} t         j                  j                  dg 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      }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                  j                  dt        j                  d|f      }t         j                  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                  j                  |dt         j                  j!                  dd      g      }t#        ||
||g|gd       t         j                  j                  dg d d!g      }t         j                  j                  d"d!d#gd$g      }t         j                  j                  dd$d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                  j                  d#t        j                  d|f      }t         j                  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                  j                  |dt         j                  j!                  dd      g      }t#        ||
||g|gd&       t         j                  j                  dg d 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      }g d}t        j                  |t        j
                        }
t        j                  |t        j
                        }t        j                  |t        j
                        dz  }d)}d*}d*}t%        |
||      }t'        ||      }t        ||
|      }t        ||      }t        j                  ||      sJ t         j                  j                  d#t        j                  d|f      }t         j                  j                  d+t        j                  d|f      }t         j                  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                  j                  |dt         j                  j!                  dd      g      }t#        ||
||g|gd-       t         j                  j                  dg d d!g      }t         j                  j                  d.d!gdgd/      }g d}g d0}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                  j                  |dt         j                  j!                  dd      g      }t#        ||
||g|gd1       t         j                  j                  dg d d!g      }t         j                  j                  d.d!gdgd*d2      }g d}g d3}t        j                  |t        j
                        }
t        j                  |t        j
                        }t        j                  |t        j
                        dz  }t%        |
||      }t)        |d*d      } | ||g|gdz  |gg d dgt         j                  j                  gdz  t         j                  j                  g      }t         j                  j                  |dt         j                  j!                  dd      g      }t#        ||
||g|gd4       t         j                  j                  d5dgd!gd*/      }t         j                  j                  d6d!gd7g      }g d}g } t        j                  |t        j
                        }
t+        |
d*/      }t-        |      }t        j                  |t        j.                  d8            sJ t         j                  j1                  ||gd9t         j                  j3                  dt         j                  j                  |      gt         j                  j3                  d7t         j                  j                  |       g:      }t         j                  j                  |dt         j                  j!                  dd      g      }t#        ||
g|gd;       t         j                  j                  d5dgd!gd<d<=      }t         j                  j                  dd!dgdg      }g d}dd8g}	t        j4                  j6                  | }
d}t+        |
d<d<=      }t        ||      }t        j                  ||
|         sJ t         j                  j                  dt        j                  d|f      } | ||g|g g|	gddgdgt         j                  j8                  t         j                  j                  gt         j                  j8                  g|g      }t         j                  j                  |dt         j                  j!                  dd      g      }t#        ||
g|gd>       t         j                  j                  d5dd?gd!g      }t         j                  j                  d6d!gd7g      }d@g}dg}!t        j:                  g       j=                  t        j
                        }
t        j:                  g dA      j=                  t        j.                        }"t        j.                  d      }#t         j                  j1                  ||gd9t         j                  j3                  dt         j                  j                  |      t         j                  j3                  d?t         j                  j                  |!      gt         j                  j3                  d7t         j                  j                  |       g:      }t         j                  j                  |dt         j                  j!                  dd      g      }t#        ||
|"g|#gdB       y )ENc                j   t         j                  j                  | dt        |||      D 	
cg c]'  \  }}	}
t         j                  j	                  ||	|
      ) c}
}	}t        |||      D cg c]'  \  }}}t         j                  j	                  |||      ) c}}}|      }|S c c}
}	}w c c}}}w )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   rC   z#Sequence.export.<locals>.make_graphV   s     KK** :=#[,: 5j+ KK66tZU <?$lM< 7k< KK66t[,W ) + E" Ls   ,B'.,B.SequenceEmpty	Seq_emptySequenceInsertXSeq_1YSeq_2)rX   ZposSeq_3
SequenceAtpos_atout)         )r#   r`   ra   )r`   r`   ra   )Nr`   ra   )dtyper_   r#   rZ   r	   )rU   rW   rY   rZ   r]   r`   zbackend-test    )producer_nameopset_importstest_sequence_model1)r>   r?   r=   SequenceConstruct)rU   rW   rY   seq_1SequenceErase	pos_eraseseq_2)rU   rW   rY   rk   r]   test_sequence_model2)rl   rU   
pos_insertseq_3r   rn   )rU   rW   rY   rk   rn   r]   test_sequence_model3ConcatFromSequence)r+   )r_   Nra   test_sequence_model4)r+   r6   )r_   r`   ra   r`   test_sequence_model5SplitToSequenceSequenceLengthr   ra   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]rF   'list[typing.Sequence[str | int] | None]rG   r|   rH   	list[str]rI   r}   rJ   list[TensorProto.DataType]rK   r~   rL   zlist[TensorProto] | Nonereturnzonnx.helper.GraphProto)rA   rB   	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    rC   rE   randomrandDOUBLEarrayastype)$rC   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^   rZ   r]   rQ   modelseq_construct_nodeseq_erase_nodetensor_shapepos_erase_valrk   pos_insert_valrn   seq_concat_nodeconcat_out_shape
concat_outseq_split_nodeseq_len_node	len_shapesplits_shapesplitsout_lens$                                       r   exportzSequence.exportT   sE    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
! a( a( a1S*-~~c1%%%kk%%e[->->WJO((;3D3Db:-X   gwB/K,G##$q(D,<,<,B,B+Ca+GG##$&M
  22(;;33B;< 3 

 	uaAY<RS "[[227)
 ..g{3gY
 kk++L7H:MPUwW GGL

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

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

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

3a7
#Aq!,]3 a8S*-~~c1%%%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 

 	uaAY<RS "[[227)
 ++// 7)eW1 0 
 !'GGL

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

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

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

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

3a7#Aq!,+CQ7
1NQG##$q(##$
 22(;;33B;< 3 

 	1a)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*-~~c1Z=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
   N)r   None)__name__
__module____qualname__staticmethodr   r	   r
   r   r9   r9   S   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   rA   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
 72 CD$$&)$5?$$v
t v
r
   