§
    2@Äjæ  ã                   óè   — d dl mZmZ d dlmZ d dlZd dlmZ d dlm	Z	 d dl
mZmZ d dlmZ d dlmZmZ  G d	„ d
ej        ¦  «        Z G d„ dej        ¦  «        Zedk    r ej        ¦   «          dS dS )é    )ÚproductÚpermutations)ÚdefaultdictN)ÚOverloadSelector)Ú
cpu_target)Úbuiltin_registryÚRegistryLoader)Útypes)ÚNumbaNotImplementedErrorÚNumbaTypeErrorc                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestOverloadSelectorc                 ój  — t          ¦   «         }|                     dt          j        t          j        f¦  «         |                     dt          j        t          j        f¦  «         |                     dt          j        t          j        f¦  «         |                     dt          j        t          j        f¦  «         |                     t          j        t          j        f¦  «        }|                      t          |¦  «        d¦  «         | 
                    |¦  «        \  }}|                      t          |¦  «        d¦  «         |                      t          |¦  «        d¦  «         |                      |d         t          j        t          j        f¦  «         |                      |t          j        t          j        f         d¦  «         |                      |t          j        t          j        f         d¦  «         |                      |t          j        t          j        f         d¦  «         d S ©Né   é   é   é   r   )r   Úappendr
   ÚAnyÚBooleanÚIntegerÚ_select_compatibleÚbooleanÚassertEqualÚlenÚ_sort_signatures©ÚselfÚosÚcompatsÚorderedÚscorings        úYC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_target_overloadselector.pyÚtest_select_and_sort_1z+TestOverloadSelector.test_select_and_sort_1   sž  € ÝÑÔˆØ
�	Š	�!•e”i¥¤Ð/Ñ0Ô0Ð0Ø
�	Š	�!•e”m¥U¤]Ð3Ñ4Ô4Ð4Ø
�	Š	�!•e”m¥U¤YÐ/Ñ0Ô0Ð0Ø
�	Š	�!•e”m¥U¤]Ð3Ñ4Ô4Ð4Ø×'Ò'­¬½¼Ð(FÑGÔGˆØ×Ò�˜W™œ qÑ)Ô)Ð)Ø×.Ò.¨wÑ7Ô7Ñˆ�Ø×Ò�˜W™œ qÑ)Ô)Ð)Ø×Ò�˜W™œ qÑ)Ô)Ð)Ø×Ò˜ œ¥e¤mµU´]Ð%CÑDÔDÐDØ×Ò˜¥¤µ´Ð!=Ô>ÀÑBÔBÐBØ×Ò˜¥¤µ´	Ð!9Ô:¸AÑ>Ô>Ð>Ø×Ò˜¥¤­E¬MÐ!9Ô:¸AÑ>Ô>Ð>Ð>Ð>ó    c                 óò  — t          ¦   «         }|                     dt          j        f¦  «         |                     dt          j        f¦  «         |                     dt          j        f¦  «         |                     dt          j        f¦  «         |                     t          j        f¦  «        }|                      t          |¦  «        d¦  «         | 
                    |¦  «        \  }}|                      t          |¦  «        d¦  «         |                      t          |¦  «        d¦  «         |                      |d         t          j        f¦  «         |                      |t          j        f         d¦  «         |                      |t          j        f         d¦  «         |                      |t          j        f         d¦  «         |                      |t          j        f         d¦  «         d S r   )r   r   r
   Ú	ContainerÚSequenceÚMutableSequenceÚListr   r   r   r   r   s        r$   Útest_select_and_sort_2z+TestOverloadSelector.test_select_and_sort_2   s˜  € ÝÑÔˆØ
�	Š	�!•e”oÐ'Ñ(Ô(Ð(Ø
�	Š	�!•e”nÐ&Ñ'Ô'Ð'Ø
�	Š	�!•eÔ+Ð-Ñ.Ô.Ð.Ø
�	Š	�!•e”j�]Ñ#Ô#Ð#Ø×'Ò'­¬¨Ñ6Ô6ˆØ×Ò�˜W™œ qÑ)Ô)Ð)Ø×.Ò.¨wÑ7Ô7Ñˆ�Ø×Ò�˜W™œ qÑ)Ô)Ð)Ø×Ò�˜W™œ qÑ)Ô)Ð)Ø×Ò˜ œ¥e¤j ]Ñ3Ô3Ð3Ø×Ò˜¥%¤* Ô/°Ñ3Ô3Ð3Ø×Ò˜¥%Ô"7Ð!9Ô:¸AÑ>Ô>Ð>Ø×Ò˜¥%¤.Ð!2Ô3°QÑ7Ô7Ð7Ø×Ò˜¥%¤/Ð!3Ô4°aÑ8Ô8Ð8Ð8Ð8r&   c                 óô  — t          ¦   «         }|                      |                     t          j        t          j        ¬¦  «        ¦  «         |                      |                     t          j        t          j        ¬¦  «        ¦  «         |                      t          t          j        t          j        ¦  «        ¦  «         |                      |                     t          j        t          j        ¬¦  «        ¦  «         |  	                    |                     t          j        t          j        ¬¦  «        ¦  «         |                      |                     t          j
        t          j
        ¬¦  «        ¦  «         |                      |                     t          j
        t          j        ¬¦  «        ¦  «         |  	                    |                     t          j        t          j
        ¬¦  «        ¦  «         d S )N)ÚformalÚactual)r   Ú
assertTrueÚ_matchr
   r   r   Ú
issubclassr)   r(   ÚassertFalser   ©r   r    s     r$   Ú
test_matchzTestOverloadSelector.test_match.   s_  € ÝÑÔˆØ�Š˜Ÿ	š	­¬½u¼}˜	ÑMÔMÑNÔNÐNØ�Š˜Ÿ	š	­¬½u¼}˜	ÑMÔMÑNÔNÐNà�Š�
¥5¤>µ5´?ÑCÔCÑDÔDÐDØ�Š˜Ÿ	š	­¬Ý).¬ð "ñ 9ô 9ñ 	:ô 	:ð 	:à×Ò˜Ÿš­%¬.Ý*/¬/ð #ñ ;ô ;ñ 	<ô 	<ð 	<ð 	�Š˜Ÿ	š	­¬½5¼9˜	ÑEÔEÑFÔFÐFØ�Š˜Ÿ	š	­¬½5¼?˜	ÑKÔKÑLÔLÐLØ×Ò˜Ÿš­%¬/Å%Ä)˜ÑLÔLÑMÔMÐMÐMÐMr&   c                 ó–  — t          ¦   «         }|                     dt          j        t          j        f¦  «         |                     dt          j        t          j        f¦  «         |                      |                     t          j        t          j        f¦  «        d¦  «         |  	                    t          ¦  «        5 }|                     t          j        t          j        f¦  «         d d d ¦  «         n# 1 swxY w Y   |                     dt          j        t          j        f¦  «         |                      |                     t          j        t          j        f¦  «        d¦  «         |                      |                     t          j        t          j        f¦  «        d¦  «         |                     dt          j        t          j        f¦  «         |  	                    t          ¦  «        5 }|                     t          j        t          j        f¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         |                     dt          j        t          j        f¦  «         |                      |                     t          j        t          j        f¦  «        d¦  «         d S )Nr   r   r   r   z2 ambiguous signaturesé   )r   r   r
   r   r   r   r   Úfindr   ÚassertRaisesr   Úint32r   ÚassertInÚstrÚ	exception)r   r    Úraisess      r$   Útest_ambiguous_detectionz-TestOverloadSelector.test_ambiguous_detection=   su  € ÝÑÔˆà
�	Š	�!•e”i¥¤Ð/Ñ0Ô0Ð0Ø
�	Š	�!•e”m¥U¤]Ð3Ñ4Ô4Ð4Ø×Ò˜Ÿš¥%¤-µ´Ð!?Ñ@Ô@À!ÑDÔDÐDà×ÒÕ7Ñ8Ô8ð 	2¸FØ�GŠG•U”]¥E¤KÐ0Ñ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2ð 	�	Š	�!•e”i¥¤Ð+Ñ,Ô,Ð,Ø×Ò˜Ÿš¥%¤-µ´Ð!=Ñ>Ô>ÀÑBÔBÐBØ×Ò˜Ÿš¥%¤-µ´Ð!?Ñ@Ô@À!ÑDÔDÐDà
�	Š	�!•e”m¥U¤YÐ/Ñ0Ô0Ð0Ø×Ò�~Ñ.Ô.ð 	4°&Ø�GŠG•U”]¥E¤MÐ2Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4à�ŠÐ.µ°FÔ4DÑ0EÔ0EÑFÔFÐFà
�	Š	�!•e”m¥U¤]Ð3Ñ4Ô4Ð4Ø×Ò˜Ÿš¥%¤-µ´Ð!?Ñ@Ô@À!ÑDÔDÐDÐDÐDs$   Ã ,C8Ã8C<Ã?C<Ç3,H+È+H/È2H/c                 ó(  — t          ¦   «         }|                      t          t          j        t          j        ¦  «        ¦  «         |                     dt          j        t          j        f¦  «         t          j        t          j        ¦  «        }|  	                    | 
                    ||f¦  «        d¦  «         |                     dt          j        t          j        f¦  «         |  	                    | 
                    ||f¦  «        d¦  «         d S )Nr   r   )r   r0   r2   r
   r)   r(   r   r+   r   r   r8   )r   r    Úlsttys      r$   Útest_subclass_specializationz1TestOverloadSelector.test_subclass_specializationS   sÊ   € ÝÑÔˆØ�Š�
¥5¤>µ5´?ÑCÔCÑDÔDÐDØ
�	Š	�!•e”o¥u¤Ð8Ñ9Ô9Ð9Ý”
�5œ=Ñ)Ô)ˆØ×Ò˜Ÿš %¨ Ñ0Ô0°!Ñ4Ô4Ð4Ø
�	Š	�!•e”o¥u¤~Ð7Ñ8Ô8Ð8Ø×Ò˜Ÿš %¨ Ñ0Ô0°!Ñ4Ô4Ð4Ð4Ð4r&   c                 ó¶  — t          ¦   «         }|                      t          |j        ¦  «        d¦  «         |                     dt
          j        f¦  «         |                      |                     t
          j        f¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                     dt
          j	        f¦  «         |                      t          |j        ¦  «        d¦  «         |                      |                     t
          j        f¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         d S )Nr   r   r   )
r   r   r   Ú_cacher   r
   r   r8   r:   r   r4   s     r$   Ú
test_cachezTestOverloadSelector.test_cache\   s  € ÝÑÔˆØ×Ò�˜RœY™œ¨Ñ+Ô+Ð+Ø
�	Š	�!•e”i�\Ñ"Ô"Ð"Ø×Ò˜Ÿš¥%¤+ Ñ0Ô0°!Ñ4Ô4Ð4Ø×Ò�˜RœY™œ¨Ñ+Ô+Ð+Ø
�	Š	�!•e”mÐ%Ñ&Ô&Ð&Ø×Ò�˜RœY™œ¨Ñ+Ô+Ð+Ø×Ò˜Ÿš¥%¤+ Ñ0Ô0°!Ñ4Ô4Ð4Ø×Ò�˜RœY™œ¨Ñ+Ô+Ð+Ð+Ð+r&   N)	Ú__name__Ú
__module__Ú__qualname__r%   r,   r5   r?   rB   rE   © r&   r$   r   r      st   € € € € € ð?ð ?ð ?ð 9ð 9ð 9ð"Nð Nð NðEð Eð Eð,5ð 5ð 5ð	,ð 	,ð 	,ð 	,ð 	,r&   r   c                   ó6   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ ZdS )ÚTestAmbiguousOverloadsc                 óB   — t           j                             ¦   «          d S ©N)r   Útarget_contextÚrefresh)Úclss    r$   Ú
setUpClassz!TestAmbiguousOverloads.setUpClassj   s   € õ 	Ô!×)Ò)Ñ+Ô+Ð+Ð+Ð+r&   c                 ó¬   — t          ¦   «         }t          t          ¦  «        }|                     |¦  «        D ]\  }}|                     ||¦  «         Œ|S rM   )r   r	   r   Únew_registrationsr   )r   Úkindr    ÚloaderÚimplÚsigs         r$   Úcreate_overload_selectorz/TestAmbiguousOverloads.create_overload_selectoro   sX   € ÝÑÔˆÝÕ 0Ñ1Ô1ˆØ×1Ò1°$Ñ7Ô7ð 	!ð 	!‰IˆD�#Ø�IŠI�d˜CÑ Ô Ð Ð Øˆ	r&   c                 óâ   — |                       d¬¦  «        }t          d„ |j        D ¦   «         ¦  «        }t          |d¬¦  «        D ](}	 |                     |¦  «         Œ# t
          $ r Y Œ%w xY wd S )NÚcasts)rT   c              3   ó*   K  — | ]\  }}|D ]}|V — ŒŒd S rM   rI   ©Ú.0rW   rV   Úts       r$   ú	<genexpr>z>TestAmbiguousOverloads.test_ambiguous_casts.<locals>.<genexpr>x   s3   è è € ÐDÐD™i˜c 4ÀÐDÐD¸1˜ÐDÐDÐDÐDÐDÐDÐDr&   r   )Úr)rX   ÚsetÚversionsr   r8   r   )r   r    Ú	all_typesrW   s       r$   Útest_ambiguous_castsz+TestAmbiguousOverloads.test_ambiguous_castsv   s”   € Ø×*Ò*°Ð*Ñ8Ô8ˆÝÐDÐD¨2¬;ÐDÑDÔDÑDÔDˆ	õ   	¨QÐ/Ñ/Ô/ð 	ð 	ˆCðØ—’˜‘”��øÝ+ð ð ð Ø�ðøøøð	ð 	s   Á	AÁ
A,Á+A,c                 ó¬  — t          t          ¦  «        }t          t          ¦  «        }|                     d¦  «        D ]$\  }}}||         }|                     ||¦  «         Œ%|                     ¦   «         D ]\\  }}t          d„ |j        D ¦   «         ¦  «        }t          ||¦  «        D ](}	 | 
                    |¦  «         Œ# t          $ r Y Œ%w xY wŒ]d S )NÚ	functionsc              3   ó*   K  — | ]\  }}|D ]}|V — ŒŒd S rM   rI   r\   s       r$   r_   zBTestAmbiguousOverloads.test_ambiguous_functions.<locals>.<genexpr>‰   s3   è è € ÐHÐH¡) # tÀCÐHÐH¸q˜AÐHÐHÐHÐHÐHÐHÐHr&   )r	   r   r   r   rS   r   Úitemsra   rb   r   r8   r   )r   rU   Ú	selectorsrV   ÚfnrW   r    rc   s           r$   Útest_ambiguous_functionsz/TestAmbiguousOverloads.test_ambiguous_functions�   sú   € ÝÕ 0Ñ1Ô1ˆÝÕ 0Ñ1Ô1ˆ	Ø#×5Ò5°kÑBÔBð 	!ð 	!‰MˆD�"�cØ˜2”ˆBØ�IŠI�d˜CÑ Ô Ð Ð à—o’oÑ'Ô'ð 	ð 	‰FˆB�ÝÐHÐH¨r¬{ÐHÑHÔHÑHÔHˆIå˜y¨)Ñ4Ô4ð ð �ðØ—G’G˜C‘L”L�L�LøÝ/ð ð ð Ø�Dðøøøðð	ð 	s   Â-CÃ
CÃCN)rF   rG   rH   ÚclassmethodrQ   rX   rd   rk   rI   r&   r$   rK   rK   h   sZ   € € € € € àð,ð ,ñ „[ð,ðð ð ð	ð 	ð 	ðð ð ð ð r&   rK   Ú__main__)Ú	itertoolsr   r   Úcollectionsr   ÚunittestÚnumba.core.baser   Únumba.core.registryr   Únumba.core.imputilsr   r	   Ú
numba.corer
   Únumba.core.errorsr   r   ÚTestCaser   rK   rF   ÚmainrI   r&   r$   ú<module>rx      s(  ðØ +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø #Ð #Ð #Ð #Ð #Ð #à €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø *Ð *Ð *Ð *Ð *Ð *Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø Ð Ð Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FðY,ð Y,ð Y,ð Y,ð Y,˜8Ô,ñ Y,ô Y,ð Y,ðx'ð 'ð 'ð 'ð '˜XÔ.ñ 'ô 'ð 'ðV ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr&   