§
    1�Åj#  ã                  ón   — 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„ Z
ddd„Z G d„ de¦  «        ZdS )é    )ÚannotationsN)ÚBase)Úexpectc                óÀ   — t          j        | t           j        ¬¦  «        t          j        |t           j        ¬¦  «        t          j        |t           j        ¬¦  «        fS )N©Údtype)ÚnpÚarrayÚint64)ÚindicesÚinverse_indicesÚcountss      úSC:\Projects\Historical\venv\Lib\site-packages\onnx/backend/test/case/node/unique.pyÚspecify_int64r      sH   € å
Œ�¥¤Ð)Ñ)Ô)Ý
Œ�­¬Ð1Ñ1Ô1Ý
Œ��rœxÐ(Ñ(Ô(ðð ó    Úxú
np.ndarrayÚaxisú
int | NoneÚreturnúlist[onnx.TypeProto]c                óþ   — |€d gnt          | j        ¦  «        }|�d ||<   t          j                             | j        ¦  «        }t          j                             ||¦  «        gd„ t          d¦  «        D ¦   «         ¢S )Nc                ón   — g | ]2}t           j                             t           j        j        d g¦  «        ‘Œ3S ©N)ÚonnxÚhelperÚmake_tensor_type_protoÚTensorProtoÚINT64)Ú.0Ú_s     r   ú
<listcomp>z'unique_output_types.<locals>.<listcomp>   sB   € ð 

ð 

ð 

àõ ŒK×.Ò.­tÔ/?Ô/EÈÀvÑNÔNð

ð 

ð 

r   é   )ÚlistÚshaper   r   Únp_dtype_to_tensor_dtyper   r   Úrange)r   r   Úy_shapeÚelement_types       r   Úunique_output_typesr*      s…   € Ø*.¨,   ½DÀÄ¹M¼M€GØÐØˆ�‰Ý”;×7Ò7¸¼Ñ@Ô@€LåŒ×*Ò*¨<¸ÑAÔAðð

ð 

å˜1‘X”Xð

ñ 

ô 

ðð r   c                  ó¶   — e Zd Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Z	edd	„¦   «         Z
d
S )ÚUniquer   ÚNonec            	     óB  — t           j                             ddgg d¢¬¦  «        } t          j        g d¢t          j        ¬¦  «        }t          j        |ddd¦  «        \  }}}}t          |||¦  «        \  }}}t          | |g||||gdt          |¦  «        ¬	¦  «         d S )
Nr,   ÚX©ÚYr   r   r   )ÚinputsÚoutputs©ç       @ç      ð?r6   ç      @g      @r7   r   TÚtest_unique_sorted_without_axis©r2   r3   ÚnameÚoutput_type_protos)
r   r   Ú	make_noder	   r
   Úfloat32Úuniquer   r   r*   ©Únode_sortedr   Úyr   r   r   s         r   Úexport_sorted_without_axisz!Unique.export_sorted_without_axis%   sÎ   € å”k×+Ò+ØØ�5ØAÐAÐAð ,ñ 
ô 
ˆõ ŒHÐ3Ð3Ð3½2¼:ÐFÑFÔFˆÝ.0¬i¸¸4ÀÀtÑ.LÔ.LÑ+ˆˆ7�O VÝ+8Ø�_ fñ,
ô ,
Ñ(ˆ� &õ 	ØØ�3Ø˜ °&Ð9Ø2Ý2°1Ñ5Ô5ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r   c            
     ó�  ‡— t           j                             ddgg d¢d¬¦  «        } t          j        g d¢t          j        ¬¦  «        }t          j        |ddd¦  «        \  }}}}t          j        |¦  «        }t          t          |t          j
        t          |¦  «        ¦  «        d¬	¦  «        ¦  «        Š||         }t          j        ||d¬
¦  «        }t          j        ˆfd„|D ¦   «         t          j        ¬¦  «        }||         }t          |||¦  «        \  }}}t!          | |g||||gdt#          |¦  «        ¬¦  «         d S )Nr,   r/   r0   r   ©r2   r3   Úsortedr4   r   T)Ústrict©r   c                ó    •— g | ]
}‰|         ‘ŒS © rI   )r    ÚiÚinverse_indices_maps     €r   r"   z9Unique.export_not_sorted_without_axis.<locals>.<listcomp>Q   s   ø€ Ð=Ð=Ð=¨Ð  Ô#Ð=Ð=Ð=r   Ú#test_unique_not_sorted_without_axisr9   )r   r   r<   r	   r
   r=   r>   ÚargsortÚdictÚzipÚarangeÚlenÚtakeÚasarrayr   r   r   r*   )Únode_not_sortedr   rA   r   r   r   Úargsorted_indicesrK   s          @r   Úexport_not_sorted_without_axisz%Unique.export_not_sorted_without_axis:   s{  ø€ åœ+×/Ò/ØØ�5ØAÐAÐAØð	 0ñ 
ô 
ˆõ ŒHÐ3Ð3Ð3½2¼:ÐFÑFÔFˆÝ.0¬i¸¸4ÀÀtÑ.LÔ.LÑ+ˆˆ7�O Võ œJ wÑ/Ô/ÐÝ"ÝÐ!¥2¤9­SÐ1BÑ-CÔ-CÑ#DÔ#DÈTÐRÑRÔRñ
ô 
Ðð Ð+Ô,ˆÝŒG�A�w QÐ'Ñ'Ô'ˆÝœ*Ø=Ð=Ð=Ð=¨_Ð=Ñ=Ô=ÅRÄXð
ñ 
ô 
ˆð Ð)Ô*ˆÝ+8Ø�_ fñ,
ô ,
Ñ(ˆ� &õ 	ØØ�3Ø˜ °&Ð9Ø6Ý2°1Ñ5Ô5ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r   c            
     ó†  — t           j                             ddgg d¢dd¬¦  «        } t          j        g d¢g d¢g d¢gt          j        ¬	¦  «        }t          j        |d
d
d
d¬¦  «        \  }}}}t          |||¦  «        \  }}}|                     d¦  «        }t          | |g||||gdt          |d¬¦  «        ¬¦  «         d S )Nr,   r/   r0   é   r   ©r2   r3   rE   r   ©rX   r   r   )é   r#   é   r   TrG   éÿÿÿÿÚtest_unique_sorted_with_axisr9   ©r   r   r<   r	   r
   r=   r>   r   Úreshaper   r*   r?   s         r   Úexport_sorted_with_axiszUnique.export_sorted_with_axish   s   € å”k×+Ò+ØØ�5ØAÐAÐAØØð ,ñ 
ô 
ˆõ ŒH�i�i�i   ¨I¨I¨IÐ6½b¼jÐIÑIÔIˆÝ.0¬i¸¸4ÀÀtÐRSÐ.TÑ.TÔ.TÑ+ˆˆ7�O VÝ+8Ø�_ fñ,
ô ,
Ñ(ˆ� &ð *×1Ò1°"Ñ5Ô5ˆõ 	ØØ�3Ø˜ °&Ð9Ø/Ý2°1¸1Ð=Ñ=Ô=ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r   c            
     ó¨  — t           j                             ddgg d¢dd¬¦  «        } t          j        ddgddgddgddggddgddgddgddgggt          j        ¬	¦  «        }t          j        |d
d
d
d¬¦  «        \  }}}}t          |||¦  «        \  }}}|                     d¦  «        }t          | |g||||gdt          |d¬¦  «        ¬¦  «         d S )Nr,   r/   r0   rX   rY   r6   g        r5   r   TrG   r]   Útest_unique_sorted_with_axis_3dr9   r_   r?   s         r   Úexport_sorted_with_axis_3dz!Unique.export_sorted_with_axis_3d‹   s3  € å”k×+Ò+ØØ�5ØAÐAÐAØØð ,ñ 
ô 
ˆõ ŒHà�s�˜c 3˜Z¨#¨s¨°c¸3°ZÐ@Ø�s�˜c 3˜Z¨#¨s¨°c¸3°ZÐ@ðõ ”*ð
ñ 
ô 
ˆõ /1¬i¸¸4ÀÀtÐRSÐ.TÑ.TÔ.TÑ+ˆˆ7�O VÝ+8Ø�_ fñ,
ô ,
Ñ(ˆ� &ð *×1Ò1°"Ñ5Ô5ˆõ 	ØØ�3Ø˜ °&Ð9Ø2Ý2°1¸1Ð=Ñ=Ô=ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r   c            
     ó†  — t           j                             ddgg d¢dd¬¦  «        } t          j        g d¢g d¢g d¢gt          j        ¬	¦  «        }t          j        |d
d
d
d¬¦  «        \  }}}}t          |||¦  «        \  }}}|                     d¦  «        }t          | |g||||gdt          |d¬¦  «        ¬¦  «         d S )Nr,   r/   r0   rX   r]   rY   rZ   )r[   r#   r#   r   TrG   Ú%test_unique_sorted_with_negative_axisr9   r_   r?   s         r   Ú export_sorted_with_negative_axisz'Unique.export_sorted_with_negative_axis·   s   € å”k×+Ò+ØØ�5ØAÐAÐAØØð ,ñ 
ô 
ˆõ ŒH�i�i�i   ¨I¨I¨IÐ6½b¼jÐIÑIÔIˆÝ.0¬i¸¸4ÀÀtÐRTÐ.UÑ.UÔ.UÑ+ˆˆ7�O VÝ+8Ø�_ fñ,
ô ,
Ñ(ˆ� &ð *×1Ò1°"Ñ5Ô5ˆõ 	ØØ�3Ø˜ °&Ð9Ø8Ý2°1¸2Ð>Ñ>Ô>ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r   c            	     ól  — t           j                             ddgg d¢d¬¦  «        } t          j        dgt          j        ¬¦  «        }t          j        |ddd¦  «        \  }}}}t          |||¦  «        \  }}}|                     d	¦  «        }t          | |g||||gd
t          |¦  «        ¬¦  «         d S )Nr,   r/   r0   rX   rD   r   r   Tr]   Útest_unique_length_1r9   )r   r   r<   r	   r
   r   r>   r   r`   r   r*   r?   s         r   Úexport_length_1zUnique.export_length_1Û   sá   € å”k×+Ò+ØØ�5ØAÐAÐAØð	 ,ñ 
ô 
ˆõ ŒH�a�S¥¤Ð)Ñ)Ô)ˆÝ.0¬i¸¸4ÀÀtÑ.LÔ.LÑ+ˆˆ7�O VÝ+8Ø�_ fñ,
ô ,
Ñ(ˆ� &ð *×1Ò1°"Ñ5Ô5ˆõ 	ØØ�3Ø˜ °&Ð9Ø'Ý2°1Ñ5Ô5ð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó*  — t           j                             ddgg d¢d¬¦  «        } t          j        g d¢t
          j        ¬¦  «        }t          j        |ddd¬	¦  «        \  }}}}t          |||¦  «        \  }}}t          | |g||||gd
¬¦  «         d S )Nr,   r/   r0   rX   rD   r4   r   T)Úreturn_indexÚreturn_inverseÚreturn_countsÚ(test_unique_bfloat16_sorted_without_axis)r2   r3   r:   )
r   r   r<   r	   r
   Ú	ml_dtypesÚbfloat16r>   r   r   r?   s         r   Ú*export_unique_bfloat16_sorted_without_axisz1Unique.export_unique_bfloat16_sorted_without_axisü   sÓ   € å”k×+Ò+ØØ�5ØAÐAÐAØð	 ,ñ 
ô 
ˆõ ŒHÐ3Ð3Ð3½9Ô;MÐNÑNÔNˆÝ.0¬iØ˜D°ÀTð/
ñ /
ô /
Ñ+ˆˆ7�O Võ ,9Ø�_ fñ,
ô ,
Ñ(ˆ� &õ 	ØØ�3Ø˜ °&Ð9Ø;ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r   N)r   r-   )Ú__name__Ú
__module__Ú__qualname__ÚstaticmethodrB   rV   ra   rd   rg   rj   rr   rI   r   r   r,   r,   $   s÷   € € € € € Øð
ð 
ð 
ñ „\ð
ð( ð+
ð +
ð +
ñ „\ð+
ðZ ð 
ð  
ð  
ñ „\ð 
ðD ð)
ð )
ð )
ñ „\ð)
ðV ð!
ð !
ð !
ñ „\ð!
ðF ð
ð 
ð 
ñ „\ð
ð@ ð
ð 
ð 
ñ „\ð
ð 
ð 
r   r,   r   )r   r   r   r   r   r   )Ú
__future__r   rp   Únumpyr	   r   Úonnx.backend.test.case.baser   Úonnx.backend.test.case.noder   r   r*   r,   rI   r   r   ú<module>r{      sÄ   ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø .Ð .Ð .Ð .Ð .Ð .ðð ð ðð ð ð ð ðl
ð l
ð l
ð l
ð l
ˆTñ l
ô l
ð l
ð l
ð l
r   