Ë
    èÿæiô  ã                   ó´   — 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(                  «        yy)é    N)ÚjitÚnjit)Útypes)ÚTestCase)Únumpy_supportc                 ó   — | S ©N© ©Úxs    úp/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/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                   ój   — 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y)ÚTestConversionz-
    Testing Python to Native conversion
    c                 ó,  — t         } t        t        j                  t        j                  «      «      |«      }g d¢}|D ]  }| j	                   ||«      |«       Œ t        j                  |«      D ]  }| j	                   ||«      |«       Œ  t        t        j                  t        j                  «      «      |«      }g d¢}|D ]  }| j	                   ||«      |«       Œ t        j                  |«      D ]  }| j	                   ||«      |«       Œ y ©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   sÝ   € ÜˆØ6””U—_‘_¤U§_¡_Ó5Ó6°vÓ>ˆâ,ˆÛˆAØ×Ñ™U 1›X qÕ)ð ä—‘˜bÖ!ˆAØ×Ñ™U 1›X qÕ)ð "ð 9””U×%Ñ%¤e×&6Ñ&6Ó7Ó8¸Ó@ˆâ,ˆÛˆAØ×Ñ™U 1›X qÕ)ð ä—‘˜rÖ"ˆAØ×Ñ™U 1›X qÕ)ñ #r   c                 ó˜  — t         } t        t        j                  t        j                  t        j                  «      «      |«      }g d¢}|D ]   }|}| j	                   |||«      ||z   «       Œ" t        j                  |«      D ]   }|}| j	                   |||«      ||z   «       Œ"  t        t        j                  t        j                  t        j                  «      «      |«      }g d¢}|D ]   }|}| j	                   |||«      ||z   «       Œ" t        j                  |«      D ]   }|}| j	                   |||«      ||z   «       Œ" y 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±oÓFÓGÈÓOˆâ,ˆÛˆAØˆAØ×Ñ™U 1 a›[¨!¨a©%Õ0ð ô —‘˜bÖ!ˆAØˆAØ×Ñ™U 1 a›[¨!¨a©%Õ0ð "ð
9””U×%Ñ%¤e×&6Ñ&6Ü&+×&6Ñ&6ó8ó 9Ø9?óAˆò -ˆÛˆAØˆAØ×Ñ™U 1 a›[¨!¨a©%Õ0ð ô —‘˜rÖ"ˆAØˆAØ×Ñ™U 1 a›[¨!¨a©%Õ0ñ #r   c                 óò   — t         } t        t        j                  t        j                  f«      |«      }d}d}t        j                  ||«      D ]%  \  }}| j                   |||«       |||«      «       Œ' y ©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   sf   € ÜˆØ1””e—m‘m¤U§Z¡ZÐ0Ó1°&Ó9ˆàˆØˆä×'Ñ'¨¨BÖ/‰FˆB�Ø×Ñ™V B¨›^©U°2°r«]Õ;ñ 0r   c                 óò   — t         } t        t        j                  t        j                  f«      |«      }d}d}t        j                  ||«      D ]%  \  }}| j                   |||«       |||«      «       Œ' y r*   )r   r   r   r/   Úfloat64r1   r2   r   r3   s        r   Útest_boolean_as_floatz$TestConversion.test_boolean_as_floatS   sf   € ÜˆØ4””e—m‘m¤U§]¡]Ð3Ó4°VÓ<ˆàˆØˆä×'Ñ'¨¨BÖ/‰FˆB�Ø×Ñ™V B¨›^©U°2°r«]Õ;ñ 0r   c                 óò   — t         } t        t        j                  t        j                  f«      |«      }d}d}t	        j
                  ||«      D ]%  \  }}| j                   |||«       |||«      «       Œ' y )Nr+   )r   r   r   r/   r1   r2   r   r3   s        r   Útest_boolean_eq_booleanz&TestConversion.test_boolean_eq_boolean]   sf   € ÜˆØ4””e—m‘m¤U§]¡]Ð3Ó4°VÓ<ˆàˆØˆä×'Ñ'¨¨BÖ/‰FˆB�Ø×Ñ™V B¨›^©U°2°r«]Õ;ñ 0r   c                 ó�   — d„ }| j                  t        «      5    t        dd¬«      |«      d«       d d d «       y # 1 sw Y   y xY w)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:   € ò	à×Ñœ}Õ-Ø1Ð.ŒC�¨Ô.¨qÓ1°"Ô5÷ .×-Ñ-ús	   ™<¼Ac                 ó4  — t         } t        t        j                  t        j                  t        j                  t        j                  «      «      |«      }d}| j	                  t
        «      5  |D ]  \  }}} ||||«       Œ 	 d d d «       y # 1 sw Y   y xY w)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   sw   € Üˆð2””U—\‘\¤%§,¡,´·±Ü"'§,¡,ó0ó 2Ø28ó:ˆð >ˆØ×Ñœ}Õ-Û)‘��1�aÙ�a˜˜A•ñ *÷ .×-Ñ-ús   Á.BÂBc                 óf  — 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   |_        | j                  |«      5  |ddf|ddff}|D ].  \  }}}	| j!                  t"        «      5   ||||	«       d d d «       Œ0 ~~~~	t%        j&                  «        d d d «       y # 1 sw Y   Œ[xY w# 1 sw Y   y xY w)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   se  € Üˆä—h‘h ¤b§j¡jÐ 1Ø!¤2§:¡:Ð.Ø!¤2§:¡:Ð.ð 0ó 1ˆô !×+Ñ+¨KÓ8ˆð1”�[�X™a�[ ©! ¬e¯l©lÜ!&§¡ó/ó 1Ø17ó9ˆô �k‰k˜! ;Ô/ˆä—	‘	˜#Ÿ(™(Ó# aÑ'ˆŒÜ—)‘)˜CŸH™HÓ%¨Ñ)ˆŒÜ—)‘)˜CŸH™HÓ%¨Ñ)ˆŒà× Ñ  Õ%Ø" B¨˜l¨S°!°R¨LÐ9ˆNã)‘��1�aØ×&Ñ&¤}Õ5Ù˜!˜Q ”N÷ 6Ð5ð *ð   1 aÜ�J‰JŒL÷ &Ð%÷ 6Ð5ú÷	 &Ð%ús$   Ä<)F'Å%FÅ0"F'ÆF$Æ F'Æ'F0c           	      ód   — d„ }| j                   |«         t        dd¬«      |«      «       «       y )Nc                   ó   — y r	   r
   r
   r   r   r=   z1TestConversion.test_with_no_parameters.<locals>.fœ   ó   € Ør   z()Tr>   )r   r   rC   s     r   Útest_with_no_parametersz&TestConversion.test_with_no_parameters›   s.   € ò	à×Ñ™›Ð9Ð6œc $°Ô6°qÓ9Ó;Õ<r   c                 óº  ‡— d„ }ˆfd„Š ‰|«      } t        |t        j                  f«      |«      } | j                  |Ž 5   ||d«       ddd«        | j                  |Ž 5  | j	                  t
        «      5   ||d«       ddd«       ddd«        t        t        j                  |f«      |«      } | j                  |Ž 5   |d|«       ddd«        | j                  |Ž 5  | j	                  t
        «      5   |d|«       ddd«       ddd«       y# 1 sw Y   ŒÊxY w# 1 sw Y   ŒŸxY w# 1 sw Y   Œ£xY w# 1 sw Y   ŒmxY w# 1 sw Y   ŒBxY w# 1 sw Y   yxY w)zF
        Check that argument cleanup doesn't leak references.
        c                  ó   — y r	   r
   r   s     r   r=   z0TestConversion.check_argument_cleanup.<locals>.f¤   r`   r   c                 óR   •— | g}t        | t        «      r| D ]  }| ‰|«      z  }Œ |S r	   )Ú
isinstanceÚtuple)ÚobjÚobjsÚvÚ_objectss      €r   rj   z7TestConversion.check_argument_cleanup.<locals>._objects§   s1   ø€ Ø�5ˆDÜ˜#œuÔ%Û�AØ™H Q›KÑ'‘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× Ñ  'Ò*Ù�#�qŒM÷ +à ˆT× Ñ  'Ò*Ø×"Ñ"¤=Õ1Ù�c˜2”÷ 2÷ +ð *””e—l‘l CÐ(Ó)¨!Ó,ˆØ ˆT× Ñ  'Ò*Ù�!�SŒM÷ +à ˆT× Ñ  'Ò*Ø×"Ñ"¤=Õ1Ù�b˜#”÷ 2÷ +Ð*÷ +Ð*ú÷ 2Ð1ú÷ +Ð*ú÷
 +Ð*ú÷ 2Ð1ú÷ +Ð*ús`   Á
DÁ#D-Á9
D!ÂD-Ã
D9Ã$EÃ:
EÄEÄDÄ!D*	Ä&D-Ä-D6Ä9EÅE	Å
EÅEc                 ó–   — t        t        d«      «      }| j                  t        j                  t        j
                  dd«      |«       y ©Nó   xyzr.   ÚC)Ú
memoryviewÚ	bytearrayrn   r   Ú
MemoryViewÚbyte)r"   Úmems     r   Útest_cleanup_bufferz"TestConversion.test_cleanup_buffer¾   s4   € Üœ 6Ó*Ó+ˆØ×#Ñ#¤E×$4Ñ$4´U·Z±ZÀÀCÓ$HÈ#ÕNr   c                 óð   — t        j                  dt         j                  fdt         j                  fg«      }t        j                  d|¬«      }| j	                  t        j                  |«      |d   «       y )Nr   r   r.   rQ   r   )r    rR   r7   Úzerosrn   r   rS   )r"   rR   Úrecarrs      r   Útest_cleanup_recordz"TestConversion.test_cleanup_recordÂ   sV   € Ü—‘˜3¤§
¡
Ð+¨c´2·:±:Ð->Ð?Ó@ˆÜ—‘˜! 5Ô)ˆØ×#Ñ#¤M×$<Ñ$<¸UÓ$CÀVÈAÁYÕOr   c                 óÆ   — t        t        d«      «      }t        j                  t        j                  t        j
                  dd«      d«      }| j                  |||f«       y )Nrq   r.   rr   é   )rs   rt   r   ÚUniTupleru   rv   rn   ©r"   rw   Útps      r   Útest_cleanup_tuplez!TestConversion.test_cleanup_tupleÇ   sH   € Üœ 6Ó*Ó+ˆÜ�^‰^œE×,Ñ,¬U¯Z©Z¸¸CÓ@À!ÓDˆØ×#Ñ# B¨¨c¨
Õ3r   c                 óÀ   — t        t        d«      «      }t        j                  t        j                  t        j
                  dd«      «      }| j                  ||«       y rp   )rs   rt   r   ÚOptionalru   rv   rn   r€   s      r   Útest_cleanup_optionalz$TestConversion.test_cleanup_optionalÌ   sB   € Üœ 6Ó*Ó+ˆÜ�^‰^œE×,Ñ,¬U¯Z©Z¸¸CÓ@ÓAˆØ×#Ñ# B¨Õ,r   c                 ó¼   ‡— t        t        j                  t        j                  «      d¬«      d„ «       Št        t        j                  «       d¬«      ˆfd„«       }y )NTr>   c                  ó   — y r	   r
   )Ústrings    r   Úbarz9TestConversion.test_stringliteral_to_unicode.<locals>.barÕ   s   € àr   c                  ó   •—  ‰ d«       y )Nzliteral stringr
   )r‰   s   €r   Úfoo2z:TestConversion.test_stringliteral_to_unicode.<locals>.foo2Ù   s   ø€ áÐ Õ!r   )r   r   ÚvoidÚunicode_type)r"   r‹   r‰   s     @r   Útest_stringliteral_to_unicodez,TestConversion.test_stringliteral_to_unicodeÑ   sN   ø€ ô 
ŒU�Z‰Zœ×*Ñ*Ó+°dÔ	;ñ	ó 
<ð	ô 
ŒU�Z‰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      sT   „ ñò*ò$1ò0<ò<ò<ò6òòò8=ò
ò<OòPò
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›      sZ   ðÛ 	Û ã ã ß Ý Ý (Ý "òòòòôA"�Xô A"ðH ˆzÒØ€H‡M�M…Oð r   