
    h                     H    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)    N)Base)expectc                    [         R                  " XS9n[         R                  " XS9nU(       a(  [         R                  " XBS9n[         R                  " XRS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argsortsortfliptakearangearrayint64)Xkr   largestsorted_indicessorted_valuestopk_sorted_indicestopk_sorted_valuess           Z/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/topk.pytopk_sorted_implementationr      s    ZZ-NGGA)M;9''."))A,TJ		!4Hrxx(;288LLL    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)TopK   Nc                  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   valuesindices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            	      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)   )r2   r1   r0   r/   r   test_top_k_smallestr4   r6   )	r   r   rC   r   r<   r   r=   r>   r?   s	            r   export_top_k_smallestTopK.export_top_k_smallest9   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)   r.   r   test_top_k_negative_axisr4   r6   r;   s           r   export_top_k_negative_axisTopK.export_top_k_negative_axisd   s    {{$$C:)/D4 % 
 HH
 **
 HHaS)"<Q4"Q
 	6-+		
r    )returnN)	__name__
__module____qualname____firstlineno__staticmethodr@   rE   rJ   __static_attributes__rL   r   r   r   r      s>    
 
@ (
 (
T !
 !
r   r   )	numpyr	   r7   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r   rL   r   r   <module>rW      s'   
   , .Mo
4 o
r   