§
    2@ÄjÒ  ã                   ó´   — d dl Zd dlmZ d dlmZ d dlmZ d dlZd dl	Z	d„ Z
d„ Zd„ Zd„ Zd	„ Z G d
„ de	j        ¦  «        Zedk    r e	j        ¦   «          dS dS )é    N)ÚTypingError)Únjit)Útypesc                 ó*   — t          j        | ¦  «        S ©N)r   Úint32©Úxs    úIC:\Projects\Historical\venv\Lib\site-packages\numba/tests/test_casting.pyÚfloat_to_intr   	   s   € ÝŒ;�q‰>Œ>Ðó    c                 ó0   — t          j        | ¦  «        dz  S )Né   )r   Úfloat64r	   s    r   Úint_to_floatr      s   € ÝŒ=˜ÑÔ˜aÑÐr   c                 ó*   — t          j        | ¦  «        S r   )r   Úuint32r	   s    r   Úfloat_to_unsignedr      s   € ÝŒ<˜‰?Œ?Ðr   c                 ó*   — t          j        | ¦  «        S r   )r   Ú
complex128r	   s    r   Úfloat_to_complexr      s   € ÝÔ˜AÑÔÐr   c                  óR   — t          j        t          j        d¦  «        ¦  «         d S )N)é   )Únpr   Úzeros© r   r   Únumpy_scalar_cast_errorr      s    € Ý„H�RŒX�d‰^Œ^ÑÔÐÐÐr   c                   ó>   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	S )
ÚTestCastingc                 ó
  — t           } t          t          j        f¦  «        |¦  «        }|                      |j        d         j        t          j        ¦  «         |                       |d¦  «         |d¦  «        ¦  «         |                       |d¦  «        t          d¦  «        ¦  «         |                       |d¦  «         |d¦  «        ¦  «         |                       |d¦  «        t          d¦  «        ¦  «         d S )Nr   çš™™™™™(@gš™™™™™(À)	r   r   r   Úfloat32ÚassertEqualÚnopython_signaturesÚreturn_typer   Úint©ÚselfÚpyfuncÚcfuncs      r   Útest_float_to_intzTestCasting.test_float_to_int   sà   € ÝˆØ&••e”mÐ%Ñ&Ô& vÑ.Ô.ˆà×Ò˜Ô2°1Ô5ÔAÅ5Ä;ÑOÔOÐOØ×Ò˜˜˜t™œ f f¨T¡l¤lÑ3Ô3Ð3Ø×Ò˜˜˜t™œ¥c¨$¡i¤iÑ0Ô0Ð0Ø×Ò˜˜˜u™œ v v¨e¡}¤}Ñ5Ô5Ð5Ø×Ò˜˜˜u™œ¥s¨5¡z¤zÑ2Ô2Ð2Ð2Ð2r   c                 óH  — t           } t          t          j        f¦  «        |¦  «        }|                      |j        d         j        t          j        ¦  «         |                       |d¦  «         |d¦  «        ¦  «         |                       |d¦  «        d¦  «         d S )Nr   iA  g     d@)r   r   r   Úint64r#   r$   r%   r   r'   s      r   Útest_int_to_floatzTestCasting.test_int_to_float'   s–   € ÝˆØ$••e”k�^Ñ$Ô$ VÑ,Ô,ˆà×Ò˜Ô2°1Ô5ÔAÝœñ	(ô 	(ð 	(à×Ò˜˜˜s™œ V V¨C¡[¤[Ñ1Ô1Ð1Ø×Ò˜˜˜s™œ XÑ.Ô.Ð.Ð.Ð.r   c           
      ó   — t           } t          t          j        f¦  «        |¦  «        }|                      |j        d         j        t          j        ¦  «         |                       |d¦  «         |d¦  «        ¦  «         |                       |d¦  «        t          j	        dt          j
        dd¦  «        ¦  «        d         ¦  «         d S )Nr   g®Gáz®	@ÚIÚié   )r   r   r   r"   r#   r$   r%   r   ÚstructÚunpackÚpackr'   s      r   Útest_float_to_unsignedz"TestCasting.test_float_to_unsigned0   sÍ   € Ý"ˆØ&••e”mÐ%Ñ&Ô& vÑ.Ô.ˆà×Ò˜Ô2°1Ô5ÔAÅ5Ä<ÑPÔPÐPØ×Ò˜˜˜t™œ f f¨T¡l¤lÑ3Ô3Ð3Ø×Ò˜˜˜t™œ¥f¤m°C½¼ÀSØFGñ:Iô :Iñ 'Jô 'JØJKô'Mñ 	Nô 	Nð 	Nð 	Nð 	Nr   c                 óH  — t           } t          t          j        f¦  «        |¦  «        }|                      |j        d         j        t          j        ¦  «         |                       |d¦  «         |d¦  «        ¦  «         |                       |d¦  «        d¦  «         d S )Nr   g®Gáz®	Ày®Gáz®	À        )r   r   r   r   r#   r$   r%   r   r'   s      r   Útest_float_to_complexz!TestCasting.test_float_to_complex9   s˜   € Ý!ˆØ&••e”mÐ%Ñ&Ô& vÑ.Ô.ˆØ×Ò˜Ô2°1Ô5ÔAÝÔ)ñ	+ô 	+ð 	+à×Ò˜˜˜u™œ v v¨e¡}¤}Ñ5Ô5Ð5Ø×Ò˜˜˜u™œ zÑ2Ô2Ð2Ð2Ð2r   c                 óp  ‡— t          d¦  «        d„ ¦   «         Š‰                     ¦   «          t          d¦  «        ˆfd„¦   «         }t          j        dgt          j        ¬¦  «        }|                       ||¦  «        |d         ¦  «         |                      t          ‰j        ¦  «        d¦  «         d	S )
z<Make sure this compiles.

        Cast C to A array
        z	f8(f8[:])c                 ó   — | d         S )Nr   r   r	   s    r   Úinnerz.TestCasting.test_array_to_array.<locals>.innerF   s   € à�Q”4ˆKr   zf8(f8[::1])c                 ó   •—  ‰| ¦  «        S r   r   )r
   r;   s    €r   Údriverz/TestCasting.test_array_to_array.<locals>.driverL   s   ø€ à�5˜‘8”8ˆOr   iÒ  ©Údtyper   é   N)r   Údisable_compiler   Úarrayr   r#   ÚlenÚ	overloads)r(   r=   r
   r;   s      @r   Útest_array_to_arrayzTestCasting.test_array_to_arrayA   sÉ   ø€ õ
 
ˆkÑ	Ô	ð	ð 	ñ 
Ô	ð	ð 	×ÒÑÔÐå	ˆmÑ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	õ ŒH�d�V¥2¤:Ð.Ñ.Ô.ˆØ×Ò˜˜ ™œ A a¤DÑ)Ô)Ð)Ø×Ò�˜Uœ_Ñ-Ô-¨qÑ1Ô1Ð1Ð1Ð1r   c                 óÌ  — t           d„ ¦   «         }t          j        dft          j        dft          j        dft          j        dft          j        dft          j        dft          j        t          j        dd¦  «        ft          j	        t          j	        d¦  «        fd	g	}|D ]@\  }}t          j
        ||¬
¦  «        }|                       ||¦  «        |d         ¦  «         ŒAd S )Nc                 ó6   — | j                              | ¦  «        S r   )r?   Útyper	   s    r   r;   z-TestCasting.test_0darrayT_to_T.<locals>.innerU   s   € à”7—<’< ‘?”?Ð"r   Tr!   é   y      @       @r2   Úhz
2016-01-01)z<U3ÚABCr>   r   )r   r   Úbool_r"   r   r-   Ú	complex64r   Útimedelta64Ú
datetime64rB   r#   )r(   r;   ÚinputsÚTÚinpr
   s         r   Útest_0darrayT_to_TzTestCasting.test_0darrayT_to_TT   sä   € Ý	ð	#ð 	#ñ 
Œð	#õ ŒX�tÐÝŒZ˜ÐÝŒZ˜ÐÝŒX�rˆNÝŒ\˜4Ð ÝŒ]˜DÐ!ÝŒ^�Rœ^¨A¨sÑ3Ô3Ð4ÝŒ]�BœM¨,Ñ7Ô7Ð8Øð

ˆð ð 	.ð 	.‰HˆQ�Ý”˜ AÐ&Ñ&Ô&ˆAØ×Ò˜U˜U 1™XœX q¨¤uÑ-Ô-Ð-Ð-ð	.ð 	.r   c                 óô   — |                       t          ¦  «        5 } t          d¦  «        t          ¦  «         ddd¦  «         n# 1 swxY w Y   |                      dt          |j        ¦  «        ¦  «         dS )zv
        Ensure that a TypingError exception is raised if
        user tries to convert numpy array to scalar
        r   Nz?Casting array(float64, 1d, C) to int32 directly is unsupported.)ÚassertRaisesr   r   r   ÚassertInÚstrÚ	exception)r(   Úraisess     r   Útest_array_to_scalarz TestCasting.test_array_to_scalari   s´   € ð ×Ò�{Ñ+Ô+ð 	.¨vØ�D�‰HŒHÕ,Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	�ŠÐWÝ˜&Ô*Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-s   ›AÁA	ÁA	c                 ó>  — t          j        t           j        ¦  «        }t          j        t           j        ¦  «        } ||¦  «        }t	          |¦  «        d„ ¦   «         }|                       |d¦  «        d¦  «         |                       |d¦  «        ¦  «         dS )z�
        Test error due mishandling of Optional to Optional casting

        Related issue: https://github.com/numba/numba/issues/1718
        c                 ó   — | S r   r   )Úas    r   Úfooz2TestCasting.test_optional_to_optional.<locals>.foo€   s   € àˆHr   r   N)r   ÚOptionalÚintpr   r   r#   ÚassertIsNone)r(   Úopt_intÚopt_fltÚsigr^   s        r   Útest_optional_to_optionalz%TestCasting.test_optional_to_optionalu   s–   € õ ”.¥¤Ñ,Ô,ˆÝ”.¥¤Ñ/Ô/ˆØˆg�gÑÔˆå	ˆc‰Œð	ð 	ñ 
Œð	ð 	×Ò˜˜˜Q™œ Ñ#Ô#Ð#Ø×Ò˜#˜#˜d™)œ)Ñ$Ô$Ð$Ð$Ð$r   N)Ú__name__Ú
__module__Ú__qualname__r+   r.   r6   r8   rE   rS   rZ   re   r   r   r   r   r      s�   € € € € € ð3ð 3ð 3ð/ð /ð /ðNð Nð Nð3ð 3ð 3ð2ð 2ð 2ð&.ð .ð .ð*
-ð 
-ð 
-ð%ð %ð %ð %ð %r   r   Ú__main__)Únumpyr   Únumba.core.errorsr   Únumbar   Ú
numba.corer   r3   Úunittestr   r   r   r   r   ÚTestCaser   rf   Úmainr   r   r   ú<module>rq      s   ðØ Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€ðð ð ð ð  ð  ðð ð ðð ð ðð ð ði%ð i%ð i%ð i%ð i%�(Ô#ñ i%ô i%ð i%ðX ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   