§
    2@ÄjÓ  ã                   ó¼   — d dl Z d dlZd dlZd dlZd dlmZmZ d dlm	Z	 d dl
mZ d dlmZ d„ Zd„ Zd„ Zd	„ Z G d
„ de¦  «        Zedk    r ej        ¦   «          dS dS )é    N)ÚjitÚnjit)Útypes)ÚTestCase)Únumpy_supportc                 ó   — | S ©N© ©Úxs    úLC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_conversion.pyÚidentityr      ó   € Ø€Hó    c                 ó   — | |z   S r	   r
   ©r   Úys     r   Úadditionr      s   € Øˆq‰5€Lr   c                 ó   — | |k    S r	   r
   r   s     r   Úequalityr      s   € Ø�Š6€Mr   c                 ó   — | S r	   r
   )r   r   Úzs      r   Úfoobarr      r   r   c                   ól   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestConversionz-
    Testing Python to Native conversion
    c                 ó\  — t           } t          t          j        t          j        ¦  «        ¦  «        |¦  «        }g d¢}|D ]!}|                       ||¦  «        |¦  «         Œ"t          j        |¦  «        D ]!}|                       ||¦  «        |¦  «         Œ" t          t          j        t          j        ¦  «        ¦  «        |¦  «        }g d¢}|D ]!}|                       ||¦  «        |¦  «         Œ"t          j        |¦  «        D ]!}|                       ||¦  «        |¦  «         Œ"d S ©N)y              ð?y      ð?      ð?y      ð¿      ð¿y      ð?        )r   r   r   Ú	complex64ÚassertEqualÚnpÚ
complex128)ÚselfÚpyfuncÚcfuncÚxsr   s        r   Útest_complex_identityz$TestConversion.test_complex_identity   sC  € ÝˆØ6••U”_¥U¤_Ñ5Ô5Ñ6Ô6°vÑ>Ô>ˆà,Ð,Ð,ˆØð 	*ð 	*ˆAØ×Ò˜U˜U 1™XœX qÑ)Ô)Ð)Ð)Ý”˜bÑ!Ô!ð 	*ð 	*ˆAØ×Ò˜U˜U 1™XœX qÑ)Ô)Ð)Ð)à8••UÔ%¥eÔ&6Ñ7Ô7Ñ8Ô8¸Ñ@Ô@ˆà,Ð,Ð,ˆØð 	*ð 	*ˆAØ×Ò˜U˜U 1™XœX qÑ)Ô)Ð)Ð)Ý”˜rÑ"Ô"ð 	*ð 	*ˆAØ×Ò˜U˜U 1™XœX qÑ)Ô)Ð)Ð)ð	*ð 	*r   c                 ó¸  — t           } t          t          j        t          j        t          j        ¦  «        ¦  «        |¦  «        }g d¢}|D ]'}|}|                       |||¦  «        ||z   ¦  «         Œ(t          j        |¦  «        D ]'}|}|                       |||¦  «        ||z   ¦  «         Œ( t          t          j        t          j        t          j        ¦  «        ¦  «        |¦  «        }g d¢}|D ]'}|}|                       |||¦  «        ||z   ¦  «         Œ(t          j        |¦  «        D ]'}|}|                       |||¦  «        ||z   ¦  «         Œ(d S r   )r   r   r   r   r   r    r!   )r"   r#   r$   r%   r   r   s         r   Útest_complex_additionz$TestConversion.test_complex_addition1   sŒ  € ÝˆØG••U”_¥U¤_µe´oÑFÔFÑGÔGÈÑOÔOˆà,Ð,Ð,ˆØð 	1ð 	1ˆAØˆAØ×Ò˜U˜U 1 a™[œ[¨!¨a©%Ñ0Ô0Ð0Ð0Ý”˜bÑ!Ô!ð 	1ð 	1ˆAØˆAØ×Ò˜U˜U 1 a™[œ[¨!¨a©%Ñ0Ô0Ð0Ð0ð9••UÔ%¥eÔ&6Ý&+Ô&6ñ8ô 8ñ 9ô 9Ø9?ñAô Aˆð -Ð,Ð,ˆØð 	1ð 	1ˆAØˆAØ×Ò˜U˜U 1 a™[œ[¨!¨a©%Ñ0Ô0Ð0Ð0Ý”˜rÑ"Ô"ð 	1ð 	1ˆAØˆAØ×Ò˜U˜U 1 a™[œ[¨!¨a©%Ñ0Ô0Ð0Ð0ð	1ð 	1r   c                 ó  — t           } t          t          j        t          j        f¦  «        |¦  «        }d}d}t          j        ||¦  «        D ]/\  }}|                       |||¦  «         |||¦  «        ¦  «         Œ0d S ©N©TF©éÿÿÿÿr   é   )r   r   r   ÚbooleanÚintpÚ	itertoolsÚproductr   ©r"   r#   r$   r%   Úyss        r   Útest_boolean_as_intz"TestConversion.test_boolean_as_intI   sˆ   € ÝˆØ1••e”m¥U¤ZÐ0Ñ1Ô1°&Ñ9Ô9ˆàˆØˆåÔ'¨¨BÑ/Ô/ð 	<ð 	<‰FˆB�Ø×Ò˜V˜V B¨™^œ^¨U¨U°2°r©]¬]Ñ;Ô;Ð;Ð;ð	<ð 	<r   c                 ó  — t           } t          t          j        t          j        f¦  «        |¦  «        }d}d}t          j        ||¦  «        D ]/\  }}|                       |||¦  «         |||¦  «        ¦  «         Œ0d S r*   )r   r   r   r/   Úfloat64r1   r2   r   r3   s        r   Útest_boolean_as_floatz$TestConversion.test_boolean_as_floatS   sˆ   € ÝˆØ4••e”m¥U¤]Ð3Ñ4Ô4°VÑ<Ô<ˆàˆØˆåÔ'¨¨BÑ/Ô/ð 	<ð 	<‰FˆB�Ø×Ò˜V˜V B¨™^œ^¨U¨U°2°r©]¬]Ñ;Ô;Ð;Ð;ð	<ð 	<r   c                 ó  — t           } t          t          j        t          j        f¦  «        |¦  «        }d}d}t	          j        ||¦  «        D ]/\  }}|                       |||¦  «         |||¦  «        ¦  «         Œ0d S )Nr+   )r   r   r   r/   r1   r2   r   r3   s        r   Útest_boolean_eq_booleanz&TestConversion.test_boolean_eq_boolean]   sˆ   € ÝˆØ4••e”m¥U¤]Ð3Ñ4Ô4°VÑ<Ô<ˆàˆØˆåÔ'¨¨BÑ/Ô/ð 	<ð 	<‰FˆB�Ø×Ò˜V˜V B¨™^œ^¨U¨U°2°r©]¬]Ñ;Ô;Ð;Ð;ð	<ð 	<r   c                 ó¸   — d„ }|                       t          ¦  «        5    t          dd¬¦  «        |¦  «        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — | S r	   r
   r   s    r   Úfz3TestConversion.test_negative_to_unsigned.<locals>.fm   s   € ØˆHr   zuintp(uintp)T©Únopythonéûÿÿÿ)ÚassertRaisesÚOverflowErrorr   ©r"   r=   s     r   Útest_negative_to_unsignedz(TestConversion.test_negative_to_unsignedl   s±   € ð	ð 	ð 	à×Ò�}Ñ-Ô-ð 	6ð 	6Ø1Ð.�C�¨Ð.Ñ.Ô.¨qÑ1Ô1°"Ñ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s   ž$AÁAÁAc                 ó@  — t           } t          t          j        t          j        t          j        t          j        ¦  «        ¦  «        |¦  «        }d}|                      t
          ¦  «        5  |D ]\  }}} ||||¦  «         Œ	 d d d ¦  «         d S # 1 swxY w Y   d S )N)r,   )r   r-   r.   )r   r.   r-   )r   r   r   Úuint64rA   rB   )r"   r#   r$   Útest_fail_argsÚaÚbÚcs          r   Ú'test_multiple_args_negative_to_unsignedz6TestConversion.test_multiple_args_negative_to_unsignedt   sî   € Ýˆð2••U”\¥%¤,µ´Ý"'¤,ñ0ô 0ñ 2ô 2Ø28ñ:ô :ˆð >ˆØ×Ò�}Ñ-Ô-ð 	ð 	Ø)ð ð ‘��1�aØ��a˜˜A‘”��ðð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Á.BÂBÂBc                 ó`  — t           }t          j        dt          j        fdt          j        fdt          j        fg¦  «        }t	          j        |¦  «        } t           |d d …         |d d …         t          j        t          j        ¦  «        ¦  «        |¦  «        }t          j	        d|¬¦  «        }t          j
        |j        ¦  «        dz   |_        t          j
        |j        ¦  «        dz   |_        t          j
        |j        ¦  «        dz   |_        |                      |¦  «        5  |ddf|ddff}|D ]E\  }}}	|                      t"          ¦  «        5   ||||	¦  «         d d d ¦  «         n# 1 swxY w Y   ŒF~~~~	t%          j        ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )NÚpÚrowÚcolé   ©Údtyper.   r-   )r   r    rR   r7   r   Ú
from_dtyper   r   rF   ÚrecarrayÚarangeÚsizerM   rN   rO   ÚassertRefCountrA   rB   ÚgcÚcollect)
r"   r#   Úmystruct_dtÚmystructr$   Úst1rG   rH   rI   rJ   s
             r   Útest_multiple_args_recordsz)TestConversion.test_multiple_args_records   s'  € Ýˆå”h ¥b¤jÐ 1Ø!¥2¤:Ð.Ø!¥2¤:Ð.ð 0ñ 1ô 1ˆõ !Ô+¨KÑ8Ô8ˆð1•�[�X˜a˜a˜a”[ ¨!¨!¨!¤­e¬lÝ!&¤ñ/ô /ñ 1ô 1Ø17ñ9ô 9ˆõ Œk˜! ;Ð/Ñ/Ô/ˆå”	˜#œ(Ñ#Ô# aÑ'ˆŒÝ”)˜CœHÑ%Ô%¨Ñ)ˆŒÝ”)˜CœHÑ%Ô%¨Ñ)ˆŒà× Ò  Ñ%Ô%ð 	ð 	Ø" B¨˜l¨S°!°R¨LÐ9ˆNà)ð #ð #‘��1�aØ×&Ò&¥}Ñ5Ô5ð #ð #Ø�E˜!˜Q ‘N”N�Nð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #øð   1 aÝŒJ‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s6   Ä,-F#ÅE3Å'F#Å3E7Å7F#Å:E7Å;F#Æ#F'Æ*F'c           	      óˆ   — d„ }|                        |¦   «           t          dd¬¦  «        |¦  «        ¦   «         ¦  «         d S )Nc                  ó   — d S r	   r
   r
   r   r   r=   z1TestConversion.test_with_no_parameters.<locals>.fœ   ó   € ØˆDr   z()Tr>   )r   r   rC   s     r   Útest_with_no_parametersz&TestConversion.test_with_no_parameters›   sT   € ð	ð 	ð 	à×Ò˜˜™œÐ9Ð6�c $°Ð6Ñ6Ô6°qÑ9Ô9Ñ;Ô;Ñ<Ô<Ð<Ð<Ð<r   c                 óø  ‡— d„ }ˆfd„Š ‰|¦  «        } t          |t          j        f¦  «        |¦  «        } | j        |Ž 5   ||d¦  «         ddd¦  «         n# 1 swxY w Y    | j        |Ž 5  |                      t
          ¦  «        5   ||d¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y    t          t          j        |f¦  «        |¦  «        } | j        |Ž 5   |d|¦  «         ddd¦  «         n# 1 swxY w Y    | j        |Ž 5  |                      t
          ¦  «        5   |d|¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )zF
        Check that argument cleanup doesn't leak references.
        c                 ó   — d S r	   r
   r   s     r   r=   z0TestConversion.check_argument_cleanup.<locals>.f¤   r`   r   c                 ó^   •— | g}t          | t          ¦  «        r| D ]}| ‰|¦  «        z  }Œ|S r	   )Ú
isinstanceÚtuple)ÚobjÚobjsÚvÚ_objectss      €r   rj   z7TestConversion.check_argument_cleanup.<locals>._objects§   sD   ø€ Ø�5ˆDÝ˜#�uÑ%Ô%ð (Øð (ð (�AØ˜H˜H Q™KœKÑ'�D�DØˆKr   r.   Nr-   )r   r   Úuint32rW   rA   rB   )r"   Útyprg   r=   Úobjectsr$   rj   s         @r   Úcheck_argument_cleanupz%TestConversion.check_argument_cleanup    s)  ø€ ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð �(˜3‘-”-ˆà)•�c�5œ<Ð(Ñ)Ô)¨!Ñ,Ô,ˆØ ˆTÔ  'Ð*ð 	ð 	ØˆE�#�q‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à ˆTÔ  'Ð*ð 	ð 	Ø×"Ò"¥=Ñ1Ô1ð ð Ø��c˜2‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð *••e”l CÐ(Ñ)Ô)¨!Ñ,Ô,ˆØ ˆTÔ  'Ð*ð 	ð 	ØˆE�!�S‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à ˆTÔ  'Ð*ð 	ð 	Ø×"Ò"¥=Ñ1Ô1ð ð Ø��b˜#‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s�   ÁAÁA Á#A Á1B<ÂB%ÂB<Â%B)	Â)B<Â,B)	Â-B<Â<C ÃC Ã5DÄDÄDÄ#E/Ä>EÅE/ÅE	ÅE/ÅE	ÅE/Å/E3Å6E3c                 ó¦   — t          t          d¦  «        ¦  «        }|                      t          j        t          j        dd¦  «        |¦  «         d S ©Nó   xyzr.   ÚC)Ú
memoryviewÚ	bytearrayrn   r   Ú
MemoryViewÚbyte)r"   Úmems     r   Útest_cleanup_bufferz"TestConversion.test_cleanup_buffer¾   sD   € Ý� 6Ñ*Ô*Ñ+Ô+ˆØ×#Ò#¥EÔ$4µU´ZÀÀCÑ$HÔ$HÈ#ÑNÔNÐNÐNÐNr   c                 óê   — t          j        dt           j        fdt           j        fg¦  «        }t          j        d|¬¦  «        }|                      t          j        |¦  «        |d         ¦  «         d S )Nr   r   r.   rQ   r   )r    rR   r7   Úzerosrn   r   rS   )r"   rR   Úrecarrs      r   Útest_cleanup_recordz"TestConversion.test_cleanup_recordÂ   sc   € Ý”˜3¥¤
Ð+¨cµ2´:Ð->Ð?Ñ@Ô@ˆÝ”˜! 5Ð)Ñ)Ô)ˆØ×#Ò#¥MÔ$<¸UÑ$CÔ$CÀVÈAÄYÑOÔOÐOÐOÐOr   c                 óÔ   — t          t          d¦  «        ¦  «        }t          j        t          j        t          j        dd¦  «        d¦  «        }|                      |||f¦  «         d S )Nrq   r.   rr   é   )rs   rt   r   ÚUniTupleru   rv   rn   ©r"   rw   Útps      r   Útest_cleanup_tuplez!TestConversion.test_cleanup_tupleÇ   sY   € Ý� 6Ñ*Ô*Ñ+Ô+ˆÝŒ^�EÔ,­U¬Z¸¸CÑ@Ô@À!ÑDÔDˆØ×#Ò# B¨¨c¨
Ñ3Ô3Ð3Ð3Ð3r   c                 óÎ   — t          t          d¦  «        ¦  «        }t          j        t          j        t          j        dd¦  «        ¦  «        }|                      ||¦  «         d S rp   )rs   rt   r   ÚOptionalru   rv   rn   r€   s      r   Útest_cleanup_optionalz$TestConversion.test_cleanup_optionalÌ   sS   € Ý� 6Ñ*Ô*Ñ+Ô+ˆÝŒ^�EÔ,­U¬Z¸¸CÑ@Ô@ÑAÔAˆØ×#Ò# B¨Ñ,Ô,Ð,Ð,Ð,r   c                 óÎ   ‡— t          t          j        t          j        ¦  «        d¬¦  «        d„ ¦   «         Št          t          j        ¦   «         d¬¦  «        ˆfd„¦   «         }d S )NTr>   c                 ó   — d S r	   r
   )Ústrings    r   Úbarz9TestConversion.test_stringliteral_to_unicode.<locals>.barÕ   s   € àˆDr   c                  ó   •—  ‰ d¦  «         d S )Nzliteral stringr
   )r‰   s   €r   Úfoo2z:TestConversion.test_stringliteral_to_unicode.<locals>.foo2Ù   s   ø€ àˆCÐ Ñ!Ô!Ð!Ð!Ð!r   )r   r   ÚvoidÚunicode_type)r"   r‹   r‰   s     @r   Útest_stringliteral_to_unicodez,TestConversion.test_stringliteral_to_unicodeÑ   s|   ø€ õ 
�UŒZ�Ô*Ñ+Ô+°dÐ	;Ñ	;Ô	;ð	ð 	ñ 
<Ô	;ð	õ 
�UŒZ‰\Œ\ DÐ	)Ñ	)Ô	)ð	"ð 	"ð 	"ð 	"ñ 
*Ô	)ð	"ð 	"ð 	"r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r&   r(   r5   r8   r:   rD   rK   r]   ra   rn   rx   r|   r‚   r…   rŽ   r
   r   r   r   r      s  € € € € € ðð ð*ð *ð *ð$1ð 1ð 1ð0<ð <ð <ð<ð <ð <ð<ð <ð <ð6ð 6ð 6ðð ð ðð ð ð8=ð =ð =ð
ð ð ð<Oð Oð OðPð Pð Pð
4ð 4ð 4ð
-ð -ð -ð

"ð 
"ð 
"ð 
"ð 
"r   r   Ú__main__)rX   r1   Únumpyr    ÚunittestÚnumbar   r   Ú
numba.corer   Únumba.tests.supportr   Únumba.npr   r   r   r   r   r   r�   Úmainr
   r   r   ú<module>r›      s  ðØ 	€	€	€	Ø Ð Ð Ð à Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ø "Ð "Ð "Ð "Ð "Ð "ðð ð ðð ð ðð ð ðð ð ðA"ð A"ð A"ð A"ð A"�Xñ A"ô A"ð A"ðH ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   