Ë
    üÇ:jj"  ã                   óÆ  — 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/home/mcse/projects/srt_converter/srt-converter-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"      s;   € à
€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@   sN   è ø€ Øˆðò 	F‰NˆF�Fô —+‘+˜f¼5À»8Ö&D°a q¨6£zÒ&DÓEÓEñ	Fùò '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Ü˜Ó&Ò&ð#ò 	HÑˆE�5˜$ô œRŸ[™[¨°°aÓ8×?Ñ?ÀÓFÓGÓGð	Hô  �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…   sd   è ø€ ð"ØŸ	™	�ô —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‚   s}   € ò	ñ ˜sÓ#ò 
	GˆAðØ˜q™6�ð ×#Ñ#¤O°C¸Ó$;¸XÕFñ
	Gøô (¬Ð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“ò 	2ˆAÜ˜“9ˆDØ�a‘&˜A‘+ ‘/ˆCÜ˜C  CÔ(Ø×Ñ˜S ™V SÔ)Ü# D›/ò 2‘��3Ø˜“6Ø×$Ñ$ S¨¡V¨SÕ1ñ2ñ	2r   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«   s‰   € Ø�‰”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»   € Ø×#Ñ#Ó%ñ 	5Ø×Ñ¤	¨(Ó 3Ô4÷	5à×Ñ˜IÔ&Ø×ÑœJ yÓ1Ô2Ø×#Ñ#Ó%ñ 	=Ø×Ñ¤§¡¨C´°r³Ó ;Ô<÷	=à×#Ñ#Ó%ò 	$ˆCØ×Ñ˜sÕ#ñ	$÷	5ð 	5ú÷	=ð 	=ú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Ô   sw   € Ø�‰œ	 &Ó)Ô*Ø�‰˜ÔØ�‰œ
 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ð   s8   € Ø—<‘<“>ò 	?ˆ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õ   s;   € Ø—<‘<“>ò 	AˆCÜ˜3“ˆAØ×#Ñ#¤M°!Ó$4°c·i±iÕ@ñ	A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ú   s;   € Ø—<‘<“>ò 	EˆCÜ˜3“ˆAØ×#Ñ#¤O°AÓ$6¸¿¹ÕDñ	E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ÿ   s<   € Ø—<‘<“>ò 	GˆCÜ˜3“ˆAØ×#Ñ#Ô$4°QÓ$7¸¿¹ÕFñ	G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  sD   € Ø—<‘<“>ò 	PˆCÜ˜3“ˆAØ×#Ñ#¤N°1Ó$5°s·x±xÀ#Ç,Á,Ñ7NÕOñ	P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†   € Ø—<‘<“>ò 	HˆCÜ˜3“ˆAØ�M‰MÔ*¨1Ó-°3·9±9×3FÑ3FÐ/FÕGð	Hô �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Ø—<‘<“>ò 	Kˆ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ñ	K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   