Ë
    èÿæij"  ã                   óÆ  — d dl Z d dlZd dlmZ d dlmZmZmZ d dl	Z	 ed¬«      d„ «       Z
 ed¬«      d„ «       Z ed¬«      d„ «       Z ed¬«      d	„ «       Z ed¬«      d
„ «       Zd„ Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z ed«      Z G d„ dee«      Z G d„ dee«      Zedk(  r e	j8                  «        yy)é    N)Újit)ÚTestCaseÚcompile_functionÚMemoryLeakMixinT©Únopythonc                 ó   — t        | «      S ©N)Úlen)Úbufs    úu/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_buffer_protocol.pyÚlen_usecaser   
   s   € äˆs‹8€Oó    c                 ó   — | |   S r
   © )r   Úis     r   Úgetitem_usecaser      s   € àˆq‰6€Mr   c                 ó(   — | || }|d   d|d   z  z   S )Nr   é   éÿÿÿÿr   )r   r   ÚjÚss       r   Úgetslice_usecaser      s$   € àˆAˆaˆ€AØˆQ‰4�!�a˜‘e‘)ÑÐr   c                 ó   — || |<   y r
   r   )r   r   Úvs      r   Úsetitem_usecaser      s   € à€Cˆ‚Fr   c                 óJ   — d}t        | «      D ]  \  }}||z  }||dz   z  }Œ |S )Ng        é   )Ú	enumerate)r   Úresr   Úxs       r   Úiter_usecaser"      s6   € à
€CÜ˜#–‰ˆˆ1Øˆq‰ˆØˆq�1‰u‰‰ð ð €Jr   c                 ój   — dt        «       z  }t        d|t        «       «      } t        d¬«      |«      S )Nz'def func(x):
        return x.%(attr)s
ÚfuncTr   )Úlocalsr   Úglobalsr   )ÚattrÚcodeÚpyfuncs      r   Ú
attrgetterr*   (   s7   € ðäƒhñ€Dô ˜f d¬G«IÓ6€FØŒ3˜Ô˜fÓ%Ð%r   Ú
contiguousÚc_contiguousÚf_contiguousÚitemsizeÚnbytesÚndimÚreadonlyÚshapeÚstridesc                   ód   — 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y)ÚTestBufferProtocolz6
    Test operations on buffer-providing objects.
    c           	   #   ó’   K  — d}dD ]7  \  }}t        j                   |t        |«      D �cg c]  }||z   ‘Œ	 c}«      –— Œ9 y c c}w ­w)Né
   ))Úbéýÿÿÿ)ÚBr   )Úhéxìÿÿ)ÚHé@œ  )r   é`yþÿ)ÚIé@B )Úlr?   )ÚLrA   )Úqìûÿÿÿ         )ÚQl           )Úfç      ø?)Údg      ø¿)ÚarrayÚrange)ÚselfÚnÚletterÚoffsetr   s        r   Ú_arrayszTestBufferProtocol._arrays@   sK   è ø€ Øˆó‰NˆF�Fô —+‘+˜f¼5À¼8Ó&D¹8°a q¨6£z¸8Ñ&DÓEÓEñùò 'Eùs   ‚(AªA¶Ac              #   ó   K  — d}t        t        d«      «      –— t        d«      –— dD ]7  \  }}}t        t        j                  |||«      j	                  |«      «      –— Œ9 t        j
                  d«      j                  d«      }|j                  j                  r|j                  j                  rJ ‚t        |«      –— |j                  }|j                  j                  r|j                  j                  rJ ‚t        |«      –— |d d d…   }|j                  j                  s|j                  j                  rJ ‚t        |«      –— y ­w)Nr7   ó	   abcdefghi))Úint8iöÿÿÿr7   )Úuint8r   r7   )Úint16r<   iè  )Úuint16r>   iPÃ  )Úint32r?   i † )Úuint32r   rA   )Úint64rE   r7   )Úuint64r   l   öÿÿÿ )Úfloat32rH   ç      @)Úfloat64rH   r\   )Ú	complex64ù       €       Àù      (@      @)Ú
complex128r_   r`   é   ©é   é   r   )Ú
memoryviewÚ	bytearrayÚnpÚlinspaceÚastypeÚarangeÚreshapeÚflagsr,   r-   ÚT)rL   rM   ÚdtypeÚstartÚstopÚarrs         r   Ú_memoryviewszTestBufferProtocol._memoryviewsR   s	  è ø€ ØˆÜœ <Ó0Ó1Ò1Ü˜Ó&Ò&ó#ÑˆE�5˜$ô œRŸ[™[¨°°aÓ8×?Ñ?ÀÓFÓGÓGð#ô  �i‰i˜‹m×#Ñ# FÓ+ˆØ�y‰y×%Ò%¨c¯i©i×.DÒ.DÐDÐDÜ˜‹oÒØ�e‰eˆØ�y‰y×%Ò%¨c¯i©i×.DÒ.DÐDÐDÜ˜‹oÒØ‘#�A�#‰hˆØ—9‘9×)Ò)°#·)±)×2HÒ2HÐHÐHÜ˜‹oÓùs   ‚EEc              #   ó–   K  — d–— t        d«      –— t        j                  d«      }|j                  d¬«       t        |«      –— y ­w)Nó   xyzrR   é   F©Úwrite)rf   rh   rk   Úsetflags©rL   rr   s     r   Ú_readonlieszTestBufferProtocol._readonliesq   s;   è ø€ ØŠÜ˜Ó&Ò&Ü�i‰i˜‹lˆØ�‰˜5ˆÔ!Ü˜‹oÓùs   ‚AA	c                 óL   — |j                   }| j                   ||Ž  ||Ž «       y r
   )Úpy_funcÚassertPreciseEqual)rL   ÚjitfuncÚargsr)   s       r   Ú_check_unaryzTestBufferProtocol._check_unaryx   s#   € Ø—‘ˆØ×Ñ¡¨ ±¸°Õ>r   c                 ó0   — | j                  t        |«       y r
   )r�   r   ©rL   Úobjs     r   Ú	check_lenzTestBufferProtocol.check_len|   s   € Ø×Ñœ+ sÕ+r   c                 ó0   — | j                  t        |«       y r
   )r�   r"   rƒ   s     r   Ú
check_iterzTestBufferProtocol.check_iter   s   € Ø×Ñœ,¨Õ,r   c                 óÔ   — d„ } ||«      D ]$  }	 ||   }| j                  t        ||«      |«       Œ& y # t         t        f$ r$ t        |t        «      r|j                  |   }n‚ Y ŒQw xY w)Nc              3   óÄ   K  — 	 | j                   }t        j                  |«      D ]  }t        |«      dk(  r|d   –— Œ|–— Œ y # t        $ r t        | «      f}Y ŒLw xY w­w)Nr   r   )r2   ÚAttributeErrorr   rh   Úndindex)r„   r2   Útups      r   Úyield_indicesz7TestBufferProtocol.check_getitem.<locals>.yield_indices…   s_   è ø€ ð"ØŸ	™	�ô —z‘z %Ö(�ô �s“8˜q’=Ø˜a™&“Là“Iñ )øô "ò "Ü˜C›˜	’ð"üs'   ‚A „A �5A ÁAÁA ÁAÁA )ÚNotImplementedErrorÚ	TypeErrorÚ
isinstancerf   r„   r~   r   )rL   r„   r�   r   Úexpecteds        r   Úcheck_getitemz TestBufferProtocol.check_getitem‚   sv   € ò	ñ ˜sÖ#ˆAðØ˜q™6�ð ×#Ñ#¤O°C¸Ó$;¸XÕFñ $øô (¬Ð3ò Ü˜c¤:Ô.ð  #Ÿw™w q™z‘Hàñ ð	ús   �4´0A'Á&A'c                 ó  — t        t        |«      «      D ]h  }t        |«      }||   dz  dz   }t        |||«       | j	                  ||   |«       t        |«      D ]   \  }}||k7  sŒ| j	                  ||   |«       Œ" Œj y )Nr   r   )rK   r   Úlistr   ÚassertEqualr   )rL   r„   r   ÚorigÚvalr   s         r   Úcheck_setitemz TestBufferProtocol.check_setitemž   s{   € Ü”s˜3“x–ˆAÜ˜“9ˆDØ�a‘&˜A‘+ ‘/ˆCÜ˜C  CÔ(Ø×Ñ˜S ™V SÔ)Ü# Dž/‘��3Ø˜“6Ø×$Ñ$ S¨¡V¨SÕ1ñ *ñ !r   c                 óL   — | j                  t        |dt        |«      dz
  «       y )Nr   )r�   r   r   rƒ   s     r   Úcheck_getslicez!TestBufferProtocol.check_getslice¨   s   € Ø×ÑÔ*¨C°´C¸³H¸q±LÕAr   c                 ó>  — | j                  t        d«      «       | j                  d«       | j                  «       D ]  }| j                  |«       Œ | j                  «       D ]  }| j                  |«       Œ | j	                  «       D ]  }| j                  |«       Œ y )Nrv   ru   )r…   rg   rs   rP   r{   r’   ©rL   Úmemrr   r   s       r   Útest_lenzTestBufferProtocol.test_len«   sz   € Ø�‰”y “|Ô$Ø�‰�vÔØ×$Ñ$Ö&ˆCØ�N‰N˜3Õð 'à—<‘<–>ˆCØ�N‰N˜3Õð "à×#Ñ#Ö%ˆCØ×Ñ˜sÕ#ñ &r   c                 ó>  — | j                  t        d«      «       | j                  d«       | j                  «       D ]  }| j                  |«       Œ | j                  «       D ]  }| j                  |«       Œ | j	                  «       D ]  }| j                  |«       Œ y ©Ns   abcru   )r’   rg   rs   rP   r{   rœ   s       r   Útest_getitemzTestBufferProtocol.test_getitemµ   sƒ   € Ø×Ñœ9 VÓ,Ô-Ø×Ñ˜6Ô"Ø×$Ñ$Ö&ˆCØ×Ñ˜sÕ#ð 'à—<‘<–>ˆCØ×Ñ˜sÕ#ð "à×#Ñ#Ö%ˆCØ×Ñ˜sÕ#ñ &r   c           	      óÊ  — | j                  «       5  | j                  t        d«      «       d d d «       | j                  d«       | j                  t        d«      «       | j                  «       5  | j                  t	        j                  dt        d«      «      «       d d d «       | j                  «       D ]  }| j                  |«       Œ y # 1 sw Y   Œ¢xY w# 1 sw Y   Œ<xY w)Ns   abcdes   xyzuvwr   r7   )ÚassertTypingErrorrš   rg   rf   rJ   rK   r{   r’   )rL   r   s     r   Útest_getslicez TestBufferProtocol.test_getslice¿   s¨   € Ø×#Ñ#Õ%Ø×Ñ¤	¨(Ó 3Ô4÷ &à×Ñ˜IÔ&Ø×ÑœJ yÓ1Ô2Ø×#Ñ#Õ%Ø×Ñ¤§¡¨C´°r³Ó ;Ô<÷ &à×#Ñ#Ö%ˆCØ×Ñ˜sÕ#ñ &÷ &Ð%ú÷ &Ð%ús   ‘CÁ//CÃCÃC"c                 óf  — | j                  t        d«      «       | j                  «       D ]  }| j                  |«       Œ | j                  «       D ]  }| j	                  |«       Œ | j                  «       D ],  }| j                  «       5  | j                  |«       d d d «       Œ. y # 1 sw Y   Œ9xY w)NrR   )r˜   rg   rP   rs   r’   r{   r£   )rL   rr   r�   r   s       r   Útest_setitemzTestBufferProtocol.test_setitemÉ   s’   € Ø×Ñœ9 \Ó2Ô3Ø—<‘<–>ˆCØ×Ñ˜sÕ#ð "à×$Ñ$Ö&ˆCØ×Ñ˜sÕ#ð 'ð ×#Ñ#Ö%ˆCØ×'Ñ'Õ)Ø×"Ñ" 3Ô'÷ *Ð)ñ &ß)Ð)ús   Â
B'Â'B0	c                 ó&  — | j                  t        d«      «       | j                  d«       | j                  t        d«      «       | j                  «       D ]  }| j                  |«       Œ | j	                  «       D ]  }| j                  |«       Œ y r    )r‡   rg   rf   rP   r{   r’   )rL   rr   r   s      r   Ú	test_iterzTestBufferProtocol.test_iterÔ   sm   € Ø�‰œ	 &Ó)Ô*Ø�‰˜ÔØ�‰œ
 6Ó*Ô+Ø—<‘<–>ˆCØ�O‰O˜CÕ ð "à×#Ñ#Ö%ˆCØ×Ñ˜sÕ#ñ &r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rP   rs   r{   r�   r…   r‡   r’   r˜   rš   rž   r¡   r¤   r¦   r¨   r   r   r   r5   r5   ;   sP   „ ñòFò$ò>ò?ò,ò-òGò82òBò$ò$ò$ò	(ó$r   r5   c                   ó@   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚTestMemoryViewz=
    Test memoryview-specific attributes and operations.
    c              #   ó  K  — t        j                  d«      }|–— |j                  d«      }|–— |j                  –— |d d d…   –— |j	                  d¬«       |–— t        j
                  d«      }|j                  dk(  sJ ‚|–— y ­w)Nrb   rc   r   Frw   r   r   )rh   rk   rl   rn   ry   Úzerosr0   rz   s     r   rP   zTestMemoryView._arraysã   sv   è ø€ Ü�i‰i˜‹mˆØŠ	Ø�k‰k˜&Ó!ˆØŠ	Ø�e‰eŠØ‘#�A�#‰hŠØ�‰˜5ˆÔ!ØŠ	Ü�h‰h�r‹lˆØ�x‰x˜1Š}Ðˆ}Ø‹	ùs   ‚BB
c                 óŽ   — | j                  «       D ]2  }t        |«      }| j                  t        |«      |j                  «       Œ4 y r
   )rP   rf   r~   Úndim_usecaser0   ©rL   rr   Úms      r   Ú	test_ndimzTestMemoryView.test_ndimð   s3   € Ø—<‘<–>ˆCÜ˜3“ˆAØ×#Ñ#¤L°£O°S·X±XÕ>ñ "r   c                 óŽ   — | j                  «       D ]2  }t        |«      }| j                  t        |«      |j                  «       Œ4 y r
   )rP   rf   r~   Úshape_usecaser2   r³   s      r   Ú
test_shapezTestMemoryView.test_shapeõ   s4   € Ø—<‘<–>ˆCÜ˜3“ˆAØ×#Ñ#¤M°!Ó$4°c·i±iÕ@ñ "r   c                 óŽ   — | j                  «       D ]2  }t        |«      }| j                  t        |«      |j                  «       Œ4 y r
   )rP   rf   r~   Ústrides_usecaser3   r³   s      r   Útest_strideszTestMemoryView.test_stridesú   s4   € Ø—<‘<–>ˆCÜ˜3“ˆAØ×#Ñ#¤O°AÓ$6¸¿¹ÕDñ "r   c                 óŽ   — | j                  «       D ]2  }t        |«      }| j                  t        |«      |j                  «       Œ4 y r
   )rP   rf   r~   Úitemsize_usecaser.   r³   s      r   Útest_itemsizezTestMemoryView.test_itemsizeÿ   s5   € Ø—<‘<–>ˆCÜ˜3“ˆAØ×#Ñ#Ô$4°QÓ$7¸¿¹ÕFñ "r   c                 ó¨   — | j                  «       D ]?  }t        |«      }| j                  t        |«      |j                  |j
                  z  «       ŒA y r
   )rP   rf   r~   Únbytes_usecaseÚsizer.   r³   s      r   Útest_nbyteszTestMemoryView.test_nbytes  s=   € Ø—<‘<–>ˆCÜ˜3“ˆAØ×#Ñ#¤N°1Ó$5°s·x±xÀ#Ç,Á,Ñ7NÕOñ "r   c                 óN  — | j                  «       D ]=  }t        |«      }| j                  t        |«      |j                  j
                   «       Œ? t        d«      }| j                  t        |«      d«       t        t        d«      «      }| j                  t        |«      d«       y )Nru   TF)rP   rf   ÚassertIsÚreadonly_usecaserm   Ú	writeablerg   r³   s      r   Útest_readonlyzTestMemoryView.test_readonly	  s   € Ø—<‘<–>ˆCÜ˜3“ˆAØ�M‰MÔ*¨1Ó-°3·9±9×3FÑ3FÐ/FÕGð "ô �vÓˆØ�‰Ô& qÓ)¨4Ô0Ü”y Ó(Ó)ˆØ�‰Ô& qÓ)¨5Õ1r   c                 óX  — t        t        d«      «      }| j                  t        |«      d«       | j                  t	        |«      d«       | j                  t        |«      d«       | j                  «       D ]²  }t        |«      }| j                  t        |«      |j                  j                  xs |j                  j                  «       | j                  t	        |«      |j                  j                  «       | j                  t        |«      |j                  j                  «       Œ´ y )Nru   T)
rf   rg   rÄ   Úcontiguous_usecaseÚc_contiguous_usecaseÚf_contiguous_usecaserP   rm   r-   r,   )rL   r´   rr   s      r   Útest_contiguouszTestMemoryView.test_contiguous  sÓ   € Ü”y Ó(Ó)ˆØ�‰Ô(¨Ó+¨TÔ2Ø�‰Ô*¨1Ó-¨tÔ4Ø�‰Ô*¨1Ó-¨tÔ4Ø—<‘<–>ˆCÜ˜3“ˆAà�M‰MÔ,¨QÓ/ØŸ)™)×0Ñ0ÒJ°C·I±I×4JÑ4JôLà�M‰MÔ.¨qÓ1°3·9±9×3IÑ3IÔJØ�M‰MÔ.¨qÓ1°3·9±9×3IÑ3IÕJñ "r   N)r©   rª   r«   r¬   rP   rµ   r¸   r»   r¾   rÂ   rÇ   rÌ   r   r   r   r®   r®   Þ   s4   „ ñòò?ò
Aò
Eò
Gò
Pò
2óKr   r®   Ú__main__)rJ   Únumpyrh   Únumbar   Únumba.tests.supportr   r   r   Úunittestr   r   r   r   r"   r*   rÉ   rÊ   rË   r½   rÀ   r²   rÅ   r·   rº   r5   r®   r©   Úmainr   r   r   Ú<module>rÓ      s6  ðÛ ã å ß KÑ KÛ ñ ˆdÔñó ðñ ˆdÔñó ðñ ˆdÔñó ðñ
 ˆdÔñó ðñ ˆdÔñó ðò&ñ   Ó-Ð Ù! .Ó1Ð Ù! .Ó1Ð Ù˜jÓ)Ð Ù˜HÓ%€Ù˜&Ó!€Ù˜jÓ)Ð Ù˜7Ó#€Ù˜YÓ'€ô`$˜¨(ô `$ôF?K�_ hô ?KðD ˆzÒØ€H‡M�M…Oð r   