Ë
    èÿæif  ã                   óæ  — d dl mZmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlZ G d„ d e«       «      Z G d	„ d
 e«       «      Z G d„ d e«       «      Z G d„ d e«       «      Z G d„ d e«       «      Z G d„ d e«       «      Z G d„ d e«       «      Z G d„ d e«       «      Z G d„ d e«       «      Z G d„ d e«       «      Z G d„ d e«       «      Z G d„ d e«       «      Z G d„ d  e«       «      Z G d!„ d" e«       «      Z G d#„ d$ e«       «      Z G d%„ d& e«       «      Z G d'„ d( e«       «      Z G d)„ d* e«       «      Z G d+„ d, e«       «      Z  G d-„ d. e«       «      Z! G d/„ d0 e«       «      Z" G d1„ d2 e«       «      Z# G d3„ d4ejH                  «      Z% G d5„ d6ejH                  «      Z& G d7„ d8ejH                  «      Z' G d9„ d:ejH                  «      Z(e)d;k(  r ejT                  «        yy)<é    )ÚirÚbinding)ÚtypesÚ	datamodel)Útest_factory)ÚDataModelManager)ÚOpaqueModelNc                   ó$   — e Zd Zej                  Zy)ÚTestBoolN)Ú__name__Ú
__module__Ú__qualname__r   ÚbooleanÚfe_type© ó    úo/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_datamodel.pyr   r   
   ó   „ Ø�m‰m�Gr   r   c                   ó$   — e Zd Zej                  Zy)ÚTestPyObjectN)r   r   r   r   Úpyobjectr   r   r   r   r   r      s   „ Ø�n‰n�Gr   r   c                   ó$   — e Zd Zej                  Zy)ÚTestInt8N)r   r   r   r   Úint8r   r   r   r   r   r      s   „ Ø�j‰j�Gr   r   c                   ó$   — e Zd Zej                  Zy)Ú	TestInt16N)r   r   r   r   Úint16r   r   r   r   r   r      ó   „ Ø�k‰k�Gr   r   c                   ó$   — e Zd Zej                  Zy)Ú	TestInt32N)r   r   r   r   Úint32r   r   r   r   r    r       r   r   r    c                   ó$   — e Zd Zej                  Zy)Ú	TestInt64N)r   r   r   r   Úint64r   r   r   r   r#   r#      r   r   r#   c                   ó$   — e Zd Zej                  Zy)Ú	TestUInt8N)r   r   r   r   Úuint8r   r   r   r   r&   r&   "   r   r   r&   c                   ó$   — e Zd Zej                  Zy)Ú
TestUInt16N)r   r   r   r   Úuint16r   r   r   r   r)   r)   &   ó   „ Ø�l‰l�Gr   r)   c                   ó$   — e Zd Zej                  Zy)Ú
TestUInt32N)r   r   r   r   Úuint32r   r   r   r   r-   r-   *   r+   r   r-   c                   ó$   — e Zd Zej                  Zy)Ú
TestUInt64N)r   r   r   r   Úuint64r   r   r   r   r0   r0   .   r+   r   r0   c                   ó$   — e Zd Zej                  Zy)Ú	TestFloatN)r   r   r   r   Úfloat32r   r   r   r   r3   r3   2   r   r   r3   c                   ó$   — e Zd Zej                  Zy)Ú
TestDoubleN)r   r   r   r   Úfloat64r   r   r   r   r6   r6   6   r   r   r6   c                   ó$   — e Zd Zej                  Zy)ÚTestComplexN)r   r   r   r   Ú	complex64r   r   r   r   r9   r9   :   s   „ Ø�o‰o�Gr   r9   c                   ó$   — e Zd Zej                  Zy)ÚTestDoubleComplexN)r   r   r   r   Ú
complex128r   r   r   r   r<   r<   >   s   „ Ø×Ñ�Gr   r<   c                   óD   — e Zd Z ej                  ej
                  «      Zy)ÚTestPointerOfInt32N)r   r   r   r   ÚCPointerr!   r   r   r   r   r?   r?   B   s   „ Øˆe�n‰n˜UŸ[™[Ó)�Gr   r?   c                   óF   — e Zd Z ej                  ej
                  d«      Zy)ÚTestUniTupleOf2xInt32é   N©r   r   r   r   ÚUniTupler!   r   r   r   r   rB   rB   F   ó   „ Øˆe�n‰n˜UŸ[™[¨!Ó,�Gr   rB   c                   óF   — e Zd Z ej                  ej
                  d«      Zy)ÚTestUniTupleEmptyr   NrD   r   r   r   rH   rH   J   rF   r   rH   c                   ó\   — e Zd Z ej                  ej
                  ej                  g«      Zy)ÚTestTupleInt32Float32N)r   r   r   r   ÚTupler!   r4   r   r   r   r   rJ   rJ   N   s   „ Øˆe�k‰k˜5Ÿ;™;¨¯©Ð6Ó7�Gr   rJ   c                   ó0   — e Zd Z ej                  g «      Zy)ÚTestTupleEmptyN)r   r   r   r   rK   r   r   r   r   rM   rM   R   s   „ Øˆe�k‰k˜"‹o�Gr   rM   c                   óH   — e Zd Z ej                  ej
                  dd«      Zy)ÚTest1DArrayOfInt32é   ÚCN©r   r   r   r   ÚArrayr!   r   r   r   r   rO   rO   V   ó   „ Øˆe�k‰k˜%Ÿ+™+ q¨#Ó.�Gr   rO   c                   óH   — e Zd Z ej                  ej
                  dd«      Zy)ÚTest2DArrayOfComplex128rC   rQ   N)r   r   r   r   rS   r=   r   r   r   r   rV   rV   Z   s   „ Øˆe�k‰k˜%×*Ñ*¨A¨sÓ3�Gr   rV   c                   óH   — e Zd Z ej                  ej
                  dd«      Zy)ÚTest0DArrayOfInt32r   rQ   NrR   r   r   r   rX   rX   ^   rT   r   rX   c                   ó6   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	y)	ÚTestArgInfoc                 óf  — t         j                  }t        j                  ||«      }t        j                  «       }t        j
                  t        j                  «       g «      }t        j                  ||d¬«      }t        j                  «       }|j                  |j                  «       «       |D �cg c]5  }t        j                  |j                  |«      j                  «       d«      ‘Œ7 }	}|j                  ||	«      }
|j                  ||
«      }| j!                  t#        |«      t#        |«      «       t%        |
D �cg c]  }|j&                  ‘Œ c}«      }| j!                  ||j(                  «       |	D �cg c]  }|j&                  ‘Œ }}|D �cg c]  }|j&                  ‘Œ }}| j!                  ||«       |j+                  |
t-        t#        |«      «      D �cg c]  }d‘Œ c}«       |j/                  «        t1        j2                  t5        |«      «       yc c}w c c}w c c}w c c}w c c}w )z‡
        Test round-tripping types *fe_args* through the default data model's
        argument conversion and unpacking logic.
        Útest_arguments)ÚnameNzarg%i)r   Údefault_managerÚ	ArgPackerr   ÚModuleÚFunctionTypeÚVoidTypeÚFunctionÚ	IRBuilderÚposition_at_endÚappend_basic_blockÚConstantÚlookupÚget_value_typeÚas_argumentsÚfrom_argumentsÚassertEqualÚlenÚtupleÚtypeÚargument_typesÚassign_namesÚrangeÚret_voidÚllÚparse_assemblyÚstr)ÚselfÚfe_argsÚdmmÚfiÚmoduleÚfntyÚfunctionÚbuilderÚtÚargsÚvaluesÚasargsÚvÚvaltysÚaÚexpect_typesÚ	got_typesÚis                     r   Ú_test_as_argumentszTestArgInfo._test_as_argumentsd   sÄ  € ô
 ×'Ñ'ˆÜ× Ñ   gÓ.ˆä—‘“ˆÜ�‰œrŸ{™{›}¨bÓ1ˆÜ—;‘;˜v tÐ2BÔCˆÜ—,‘,“.ˆØ×Ñ × ;Ñ ;Ó =Ô>ñ !ó"Ù �Aô —‘˜CŸJ™J q›M×8Ñ8Ó:¸DÕAØ ð 	ð "ð —‘ ¨$Ó/ˆØ×"Ñ" 7¨FÓ3ˆà×Ñœ˜V›¤c¨'£lÔ3Ü©Ó/© 1˜Ÿ›¨Ñ/Ó0ˆØ×Ñ˜ ×!2Ñ!2Ô3á(,Ó-© 1˜Ÿ›¨ˆÐ-Ù%+Ó,¡V �Q—V“V Vˆ	Ð,à×Ñ˜ yÔ1ð 	�‰˜´%¼¸G»Ô2EÓ FÑ2E¨Q¢Ð2EÑ FÔGà×ÑÔä
×Ñœ#˜f›+Õ&ùò+"ùò 0ùò .ùÚ,ùò
 !Gs   Â2:HÄ?HÅ9H$ÆH)Ç	H.
c                 ó®   — t         j                  t        j                  t         j                  dd«      t         j                  g}| j	                  |«       y )NrP   rQ   )r   r!   rS   r:   r‰   ©rw   rx   s     r   Útest_int32_array_complexz$TestArgInfo.test_int32_array_complex‰   s;   € Ü—;‘;Ü—;‘;œuŸ{™{¨A¨sÓ3Ü—?‘?ð$ˆð 	×Ñ Õ(r   c                 óx   — t        j                  t         j                  dd«      gdz  }| j                  |«       y )NrP   rQ   rC   ©r   rS   r!   r‰   r‹   s     r   Útest_two_arrayszTestArgInfo.test_two_arrays�   ó.   € Ü—;‘;œuŸ{™{¨A¨sÓ3Ð4°qÑ8ˆØ×Ñ Õ(r   c                 óx   — t        j                  t         j                  dd«      gdz  }| j                  |«       y )Nr   rQ   rC   rŽ   r‹   s     r   Útest_two_0d_arrayszTestArgInfo.test_two_0d_arrays“   r�   r   c                 ó  — t        j                  t         j                  d«      t        j                  t         j                  d«      g}| j                  |«       t        j                  t         j                  dd«      }t        j                  |d«      t        j                  |d«      g}| j                  |«       t        j                  t        j                  t         j                  d«      d«      g}| j                  |«       y )NrC   é   rP   rQ   )r   rE   r!   r‰   rS   )rw   rx   Úarrtys      r   Útest_tupleszTestArgInfo.test_tuples—   s²   € Ü—>‘>¤%§+¡+¨qÓ1Ü—>‘>¤%§+¡+¨qÓ1ð3ˆà×Ñ Ô(ä—‘œEŸK™K¨¨CÓ0ˆÜ—>‘> %¨Ó+Ü—>‘> %¨Ó+ð-ˆà×Ñ Ô(ä—>‘>¤%§.¡.´·±¸aÓ"@À!ÓDÐEˆØ×Ñ Õ(r   c                 ó¶   — t        j                  t         j                  d«      t        j                  d«      t         j                  g}| j                  |«       y )Nr   r   )r   rE   r   rK   r!   r‰   r‹   s     r   Útest_empty_tupleszTestArgInfo.test_empty_tuples¤   s=   € ä—>‘>¤%§+¡+¨qÓ1Ü—;‘;˜r“?Ü—;‘;ð ˆð 	×Ñ Õ(r   c                 ó¶   — t         j                  t        j                  t        j                  d«      d«      t         j                  g}| j                  |«       y )Nr   rC   )r   r!   rE   rK   r$   r‰   r‹   s     r   Útest_nested_empty_tuplesz$TestArgInfo.test_nested_empty_tuples«   s=   € Ü—;‘;Ü—>‘>¤%§+¡+¨b£/°1Ó5Ü—;‘;ð ˆð 	×Ñ Õ(r   N)
r   r   r   r‰   rŒ   r�   r’   r–   r˜   rš   r   r   r   rZ   rZ   b   s&   „ ò#'òJ)ò)ò)ò)ò)ó)r   rZ   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestMemInfoc                 ó.   — t         j                  | _        y ©N)r   r^   ry   )rw   s    r   ÚsetUpzTestMemInfo.setUp³   s   € Ü×,Ñ,ˆ�r   c                 ó€   — t         j                  }| j                  |   }| j                  |j	                  «       «       y rž   )r   r!   ry   ÚassertFalseÚcontains_nrt_meminfo©rw   ÚtyÚdms      r   Útest_numberzTestMemInfo.test_number¶   s/   € Ü�[‰[ˆØ�X‰X�b‰\ˆØ×Ñ˜×0Ñ0Ó2Õ3r   c                 ó†   — t         j                  d d  }| j                  |   }| j                  |j	                  «       «       y rž   )r   r!   ry   Ú
assertTruer¢   r£   s      r   Ú
test_arrayzTestMemInfo.test_array»   s1   € Ü�[‰[™ˆ^ˆØ�X‰X�b‰\ˆØ�‰˜×/Ñ/Ó1Õ2r   c                 óª   — t        j                  t         j                  d¬«      }| j                  |   }| j	                  |j                  «       «       y ©NrC   )ÚdtypeÚcount)r   rE   r!   ry   r¡   r¢   r£   s      r   Útest_tuple_of_numberz TestMemInfo.test_tuple_of_numberÀ   s:   € Ü�^‰^¤%§+¡+°QÔ7ˆØ�X‰X�b‰\ˆØ×Ñ˜×0Ñ0Ó2Õ3r   c                 ó°   — t        j                  t         j                  d d  d¬«      }| j                  |   }| j	                  |j                  «       «       y r«   )r   rE   r!   ry   r¨   r¢   r£   s      r   Útest_tuple_of_arrayzTestMemInfo.test_tuple_of_arrayÅ   s<   € Ü�^‰^¤%§+¡+©a .¸Ô:ˆØ�X‰X�b‰\ˆØ�‰˜×/Ñ/Ó1Õ2r   N)r   r   r   rŸ   r¦   r©   r®   r°   r   r   r   rœ   rœ   ²   s   „ ò-ò4ò
3ò
4ó
3r   rœ   c                   ó   — e Zd Zd„ Zy)ÚTestMiscc                 ó  — dd l }ddlm} |d„ «       }|j                  d|j                  ¬«      j                  |j                  «      }|j                  |«      } |||«       |j                  j                  ||j                  d«      «       y )Nr   )Únjitc                 óN   — t        | j                  d   «      D ]
  }||   | |<   Œ y )Nr   )rr   Úshape)r…   Úbrˆ   s      r   Úcopyz%TestMisc.test_issue2921.<locals>.copyÑ   s&   € ä˜1Ÿ7™7 1™:Ö&�Ø˜‘t��!’ñ 'r   é   )r¬   )FTTTT)ÚnumpyÚnumbar´   Úaranger'   ÚviewÚbool_Ú
zeros_likeÚtestingÚassert_equalÚarray)rw   Únpr´   r¸   r·   r…   s         r   Útest_issue2921zTestMisc.test_issue2921Í   sv   € ÛÝà	ñ	ó 
ð	ð �I‰I�a˜rŸx™xˆIÓ(×-Ñ-¨b¯h©hÓ7ˆØ�M‰M˜!ÓˆÙˆQ�Œ
Ø
�
‰
×Ñ  2§8¡8Ð,BÓ#CÕDr   N)r   r   r   rÄ   r   r   r   r²   r²   Ë   s   „ óEr   r²   c                   ó   — e Zd Zd„ Zy)ÚTestDMMChainingc                 ó.  — t        «       } G d„ dt        «      } G d„ dt        «      }|j                  t        j                  |«       |j                  t        j
                  |«       t        «       } G d„ dt        «      }|j                  t        j                  |«       |j                  |«      }| j                  |j                  t        j                  «      |«       | j                  |j                  t        j                  «      |«       | j                  |j                  t        j                  «      |«       | j                  |j                  t        j                  «      |«       | j                  |j                  t        j                  «      |«       | j                  |j                  t        j                  «      |«       | j                  t        «      5  |j                  t        j                  «       d d d «       y # 1 sw Y   y xY w)Nc                   ó   — e Zd Zy)ú/TestDMMChaining.test_basic.<locals>.int_handlerN©r   r   r   r   r   r   Úint_handlerrÉ   à   ó   „ Ør   rË   c                   ó   — e Zd Zy)ú1TestDMMChaining.test_basic.<locals>.float_handlerNrÊ   r   r   r   Úfloat_handlerrÎ   ã   rÌ   r   rÏ   c                   ó   — e Zd Zy)ú3TestDMMChaining.test_basic.<locals>.new_int_handlerNrÊ   r   r   r   Únew_int_handlerrÑ   ë   rÌ   r   rÒ   )r   r	   Úregisterr   ÚIntegerÚFloatÚchainÚassertIsInstancerh   ÚintpÚassertNotIsInstancer4   ÚassertRaisesÚKeyError)rw   ry   rË   rÏ   Ú	inter_dmmrÒ   Úchained_dmms          r   Ú
test_basiczTestDMMChaining.test_basicÝ   sd  € ÜÓ ˆô	œ+ô 	ô	œKô 	ð 	�‰”U—]‘] KÔ0Ø�‰”U—[‘[ -Ô0ä$Ó&ˆ	ô	œkô 	ð 	×Ñœ5Ÿ=™=¨/Ô:Ø—o‘o cÓ*ˆð 	×Ñ˜k×0Ñ0´·±Ó<¸oÔNà× Ñ  ×!3Ñ!3´E·J±JÓ!?ÀÔMà×Ñ˜cŸj™j¬¯©Ó4°kÔBà×Ñ˜k×0Ñ0´·±Ó?ÀÔOØ×Ñ˜cŸj™j¬¯©Ó7¸ÔGà×Ñ˜i×.Ñ.¬u¯z©zÓ:¸OÔLØ×ÑœxÕ(Ø×ÑœUŸ]™]Ô+÷ )×(Ñ(ús   Ç" HÈHN)r   r   r   rÞ   r   r   r   rÆ   rÆ   Ü   s   „ ó ,r   rÆ   Ú__main__)+Úllvmliter   r   rt   Ú
numba.corer   r   Únumba.core.datamodel.testingr   Únumba.core.datamodel.managerr   Únumba.core.datamodel.modelsr	   Úunittestr   r   r   r   r    r#   r&   r)   r-   r0   r3   r6   r9   r<   r?   rB   rH   rJ   rM   rO   rV   rX   ÚTestCaserZ   rœ   r²   rÆ   r   Úmainr   r   r   Ú<module>rè      s³  ðß &ç 'Ý 5Ý 9Ý 3Û ô‰|‹~ô ô‘<“>ô ô‰|‹~ô ô‘“ô ô‘“ô ô‘“ô ô‘“ô ô‘“ô ô‘“ô ô‘“ô ô‘“ô ô‘“ô ô‘,“.ô ô™›ô ô*™›ô *ô-™L›Nô -ô-™›ô -ô8™L›Nô 8ô‘\“^ô ô/™›ô /ô4™l›nô 4ô/™›ô /ôM)�(×#Ñ#ô M)ô`3�(×#Ñ#ô 3ô2Eˆx× Ñ ô Eô"!,�h×'Ñ'ô !,ðH ˆzÒØ€H‡M�M…Oð r   