Ë
    èÿæiI  ã                   ó¶   — 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$                  «        yy)é    N)ÚTypingError)Únjit)Útypesc                 ó,   — t        j                  | «      S ©N)r   Úint32©Úxs    úm/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_casting.pyÚfloat_to_intr   	   s   € Ü�;‰;�q‹>Ðó    c                 ó2   — 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                  óT   — t        j                  t        j                  d«      «       y )N)é   )Únpr   Úzeros© r   r   Únumpy_scalar_cast_errorr      s   € Ü‡H�HŒR�X‰X�d‹^Õr   c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestCastingc                 óº  — t         } t        t        j                  f«      |«      }| j	                  |j
                  d   j                  t        j                  «       | j	                   |d«       |d«      «       | j	                   |d«      t        d«      «       | j	                   |d«       |d«      «       | j	                   |d«      t        d«      «       y )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‘mÐ%Ó& vÓ.ˆà×Ñ˜×2Ñ2°1Ñ5×AÑAÄ5Ç;Á;ÔOØ×Ñ™˜t›¡f¨T£lÔ3Ø×Ñ™˜t›¤c¨$£iÔ0Ø×Ñ™˜u›¡v¨e£}Ô5Ø×Ñ™˜u›¤s¨5£zÕ2r   c                 ó*  — t         } t        t        j                  f«      |«      }| j	                  |j
                  d   j                  t        j                  «       | j	                   |d«       |d«      «       | j	                   |d«      d«       y )Nr   iA  g     d@)r   r   r   Úint64r#   r$   r%   r   r'   s      r   Útest_int_to_floatzTestCasting.test_int_to_float'   sr   € ÜˆØ$””e—k‘k�^Ó$ VÓ,ˆà×Ñ˜×2Ñ2°1Ñ5×AÑAÜŸ™ô	(à×Ñ™˜s›¡V¨C£[Ô1Ø×Ñ™˜s› XÕ.r   c           
      ó€  — t         } t        t        j                  f«      |«      }| j	                  |j
                  d   j                  t        j                  «       | j	                   |d«       |d«      «       | j	                   |d«      t        j                  dt        j                  dd«      «      d   «       y )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‘mÐ%Ó& vÓ.ˆà×Ñ˜×2Ñ2°1Ñ5×AÑAÄ5Ç<Á<ÔPØ×Ñ™˜t›¡f¨T£lÔ3Ø×Ñ™˜t›¤f§m¡m°C¼¿¹ÀSØFGó:Ió 'JØJKñ'Mõ 	Nr   c                 ó*  — t         } t        t        j                  f«      |«      }| j	                  |j
                  d   j                  t        j                  «       | j	                   |d«       |d«      «       | j	                   |d«      d«       y )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   su   € Ü!ˆØ&””e—m‘mÐ%Ó& vÓ.ˆØ×Ñ˜×2Ñ2°1Ñ5×AÑAÜ×)Ñ)ô	+à×Ñ™˜u›¡v¨e£}Ô5Ø×Ñ™˜u› zÕ2r   c                 ó:  ‡— t        d«      d„ «       Š‰j                  «        t        d«      ˆfd„«       }t        j                  dgt        j                  ¬«      }| j                   ||«      |d   «       | j                  t        ‰j                  «      d«       y	)
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   ø€ á˜“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‰H�d�V¤2§:¡:Ô.ˆØ×Ñ™ › A a¡DÔ)Ø×Ñœ˜UŸ_™_Ó-¨qÕ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 ]7  \  }}t        j                  ||¬
«      }| j                   ||«      |d   «       Œ9 y )Nc                 ó8   — | j                   j                  | «      S r   )r?   Útyper	   s    r   r;   z-TestCasting.test_0darrayT_to_T.<locals>.innerU   s   € à—7‘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‰X�tÐÜ�Z‰Z˜ÐÜ�Z‰Z˜ÐÜ�X‰X�rˆNÜ�\‰\˜4Ð Ü�]‰]˜DÐ!Ü�^‰^œRŸ^™^¨A¨sÓ3Ð4Ü�]‰]œBŸM™M¨,Ó7Ð8Øð

ˆó ‰HˆQ�Ü—‘˜ AÔ&ˆAØ×Ñ™U 1›X q¨¡uÕ-ñ r   c                 óÌ   — | j                  t        «      5 } t        d«      t        «       ddd«       | j	                  dt        j                  «      «       y# 1 sw Y   Œ/xY w)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   sP   € ð ×Ñœ{Ô+¨vØŒD�‹HÔ,Ô-÷ ,ð 	�‰ÐWÜ˜&×*Ñ*Ó+õ	-÷ ,Ð+ús   –AÁA#c                 ó   — t        j                  t         j                  «      }t        j                  t         j                  «      } ||«      }t	        |«      d„ «       }| j                   |d«      d«       | j                   |d«      «       y)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   sp   € ô —.‘.¤§¡Ó,ˆÜ—.‘.¤§¡Ó/ˆÙ�gÓˆä	ˆc‹ñ	ó 
ð	ð 	×Ñ™˜Q› Ô#Ø×Ñ™#˜d›)Õ$r   N)Ú__name__Ú
__module__Ú__qualname__r+   r.   r6   r8   rE   rS   rZ   re   r   r   r   r   r      s+   „ ò3ò/òNò3ò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%ðX ˆzÒØ€H‡M�M…Oð r   