
    Sii                    T    S SK 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)    )annotationsN)Base)expectc                    [         R                  " U R                  5      U   nU(       a  U* n[         R                  " X@4US9n[         R                  " XS9nU(       a(  [         R
                  " XRS9n[         R
                  " XbS9n[         R                  " U[         R                  " U5      US9n[         R                  " U[         R                  " U5      US9nU[         R                  " U[         R                  S94$ )N)axisdtype)
npindicesshapelexsortsortfliptakearangearrayint64)	Xkr   largestind_axissorted_indicessorted_valuestopk_sorted_indicestopk_sorted_valuess	            _/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/topk.pytopk_sorted_implementationr      s    zz!''"4(H9ZZD9NGGA)M;9''."))A,TJ		!4Hrxx(;288LLL    c                      \ rS rSr\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
\SS j5       rS	rg
)TopK   c                 0   Sn SnSn[         R                  R                  SSS/SS/U S9n[        R                  " / S	Q/ S
Q/ SQ/[        R
                  S9n[        R                  " U/[        R                  S9n[        XBX5      u  pg[        X4U/Xg/SS9  g )N      r    xr   valuesr   inputsoutputsr   r   r#      r$                  	   
      r   
test_top_kr(   r)   name	onnxhelper	make_noder
   r   float32r   r   r   r   r   r   noder   K
values_refindices_refs           r   export_top_kTopK.export_top_k   s    {{$$C:)/D4 % 
 HH
 **
 HHaS)"<Q4"Q
 	Q*)B	
r   c                 0   Sn SnSn[         R                  R                  SSS/SS/U S9n[        R                  " / S	Q/ S
Q/ SQ/[        R
                  S9n[        R                  " U/[        R                  S9n[        XBX5      u  pg[        UXE/Xg/SS9  g )Nr#   r$   r    r%   r   r&   r   r'   r*   r,   r1   r   test_top_k_uint64r7   )	r:   r;   r<   r
   r   uint64r   r   r   r>   s           r   export_top_k_uint64TopK.export_top_k_uint64=   s    {{$$C:)/D4 % 
 HH
 ))
 HHaS)"<Q4"Q
 	6-$		
r   c                 "   Sn SnSn[         R                  R                  SSS/SS/U S9n[        R                  " / S	Q[        R
                  S
9n[        R                  " U/[        R
                  S
9n[        XBX5      u  pg[        UXE/Xg/SS9  g )Nr   r$   r    r%   r   r&   r   r'   r   r   r   r   r   test_top_k_same_valuesr7   r:   r;   r<   r
   r   r   r   r   r>   s           r   export_top_k_same_valuesTopK.export_top_k_same_valuesa   s    {{$$C:)/D4 % 
 HH((
 HHaS)"<Q4"Q
 	6-)		
r   c                 "   Sn SnSn[         R                  R                  SSS/SS/U S	9n[        R                  " / S
Q[        R
                  S9n[        R                  " U/[        R
                  S9n[        XBX5      u  pg[        UXE/Xg/SS9  g )Nr   r#   r$   r    r%   r   r&   r   r'   rK   r   test_top_k_same_values_largestr7   rM   r>   s           r    export_top_k_same_values_largest%TopK.export_top_k_same_values_largest}   s    {{$$C:)/D4 % 
 HH((
 HHaS)"<Q4"Q
 	6-1		
r   c                 0   Sn SnSn[         R                  R                  SSS/SS/U S9n[        R                  " / S	Q/ S
Q/ SQ/[        R
                  S9n[        R                  " U/[        R
                  S9n[        XBX5      u  pg[        UXE/Xg/SS9  g )Nr#   r$   r    r%   r   r&   r   r'   rK   )r#   r#   r#   r#   )r+   r+   r#   r#   r   test_top_k_same_values_2dr7   rM   r>   s           r   export_top_k_same_values_2d TopK.export_top_k_same_values_2d   s    {{$$C:)/D4 % 
 HH<6((
 HHaS)"<Q4"Q
 	6-,		
r   c            	     8   Sn SnSnSn[         R                  R                  SSS/SS/U UUS	9n[        R                  " / S
Q/ SQ/ SQ/[        R
                  S9n[        R                  " U/[        R                  S9n[        XSX5      u  px[        UXV/Xx/SS9  g )Nr#   r   r$   r    r%   r   r&   r   )r(   r)   r   r   sortedr*   r,   )r5   r4   r3   r2   r   test_top_k_smallestr7   r9   )	r   r   sorted_r   r?   r   r@   rA   rB   s	            r   export_top_k_smallestTopK.export_top_k_smallest   s    {{$$:y) % 
 HH
 **
 HHaS)"<Q4"Q
 	6-&		
r   c                 0   Sn SnSn[         R                  R                  SSS/SS/U S	9n[        R                  " / S
Q/ SQ/ SQ/[        R
                  S9n[        R                  " U/[        R                  S9n[        XBX5      u  pg[        UXE/Xg/SS9  g )Nr#   r$   r    r%   r   r&   r   r'   r*   r,   r1   r   test_top_k_negative_axisr7   r9   r>   s           r   export_top_k_negative_axisTopK.export_top_k_negative_axis   s    {{$$C:)/D4 % 
 HH
 **
 HHaS)"<Q4"Q
 	6-+		
r    N)returnNone)__name__
__module____qualname____firstlineno__staticmethodrC   rH   rN   rR   rV   r\   ra   __static_attributes__rc   r   r   r    r       s    
 
@ !
 !
F 
 
6 
 
6 
 
> (
 (
T !
 !
r   r    )
__future__r   numpyr
   r:   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r    rc   r   r   <module>rp      s*    #   , .Mk
4 k
r   