ó
    „ñ:iFN  ã                   ó  • S r SSKrSSKrSSKJr  SSKJrJrJrJ	r	  SSK
Jr  SSKJr  SSKJrJrJrJr  Sr\(       a  S	OS
r " S S\5      r " S S\5      r " S S\5      r " S S\	R4                  5      r " S S\5      rg)z2
Testing C implementation of the numba dictionary
é    N)ÚTestCase)Ú
_helperlibÚjitÚtypedÚtypes)Ú	IS_32BITS)ÚUniTupleModel)Úregister_modelÚtypeof_implÚunboxÚoverloadéÿÿÿÿé   é   c                   ó~   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rSrg)ÚDicté   zOA wrapper around the C-API to provide a minimal dictionary object for
testing.
c                 óT   • Xl         X l        X0l        U R                  X#5      U l        g)z€
Parameters
----------
tc : TestCase instance
keysize : int
    byte size for the key
valsize : int
    byte size for the value
N)ÚtcÚkeysizeÚvalsizeÚdict_new_minsizeÚdp)Úselfr   r   r   s       Ú\/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_dictimpl.pyÚ__init__ÚDict.__init__   s%   € ð ŒØŒØŒØ×'Ñ'¨Ó9ˆ�ó    c                 óN   • U R                   R                  U R                  5        g ©N)r   Únumba_dict_freer   ©r   s    r   Ú__del__ÚDict.__del__(   s   € Ø�‰×Ñ §¡Õ(r   c                 ó"   • U R                  5       $ r    )Údict_lengthr"   s    r   Ú__len__ÚDict.__len__+   s   € Ø×ÑÓ!Ð!r   c                 óF  • [        UR                  5       5      n[        UR                  5       5      nU R                  R                  [	        U5      U R
                  5        U R                  R                  [	        U5      U R                  5        U R                  X45        g r    )ÚbytesÚencoder   ÚassertEqualÚlenr   r   Údict_insert)r   ÚkÚvÚbkÚbvs        r   Ú__setitem__ÚDict.__setitem__.   sh   € Ü�1—8‘8“:ÓˆÜ�1—8‘8“:ÓˆØ�‰×ÑœC ›G T§\¡\Ô2Ø�‰×ÑœC ›G T§\¡\Ô2Ø×Ñ˜Õ r   c                 óø   • [        UR                  5       5      nU R                  R                  [	        U5      U R
                  5        U R                  U5      u  p4U[        :X  a  [        eUR                  5       $ r    )
r*   r+   r   r,   r-   r   Údict_lookupÚ
DKIX_EMPTYÚKeyErrorÚdecode)r   r/   r1   ÚixÚolds        r   Ú__getitem__ÚDict.__getitem__5   sY   € Ü�1—8‘8“:ÓˆØ�‰×ÑœC ›G T§\¡\Ô2Ø×"Ñ" 2Ó&‰ˆØ”ÓÜˆNà—:‘:“<Ðr   c                 óÖ   • [        UR                  5       5      nU R                  R                  [	        U5      U R
                  5        U R                  U5      (       d  [        U5      eg r    )r*   r+   r   r,   r-   r   Údict_delitemr8   )r   r/   r1   s      r   Ú__delitem__ÚDict.__delitem__>   sN   € Ü�1—8‘8“:ÓˆØ�‰×ÑœC ›G T§\¡\Ô2Ø× Ñ  ×$Ñ$Ü˜1“+Ðð %r   c                 ó,   •  X   $ ! [          a     g f = fr    )r8   )r   r/   s     r   ÚgetÚDict.getD   s    € ð	Ø‘7ˆNøÜó 	Ùð	ús   ‚ †
’c                 ó   • [        U 5      $ r    )ÚDictIterr"   s    r   ÚitemsÚ
Dict.itemsJ   s   € Ü˜‹~Ðr   c                 óf   • U R                  5       u  pUR                  5       UR                  5       4$ r    )Údict_popitemr9   )r   r/   r0   s      r   ÚpopitemÚDict.popitemM   s)   € Ø× Ñ Ó"‰ˆØ�x‰x‹z˜1Ÿ8™8›:Ð%Ð%r   c                 óÊ   • [         R                  " 5       nU R                  R                  [         R                  " U5      SX5      nU R                  R                  US5        U$ ©Nr   )ÚctypesÚc_void_pr   Únumba_dict_new_sizedÚbyrefr,   )r   Úkey_sizeÚval_sizer   Ústatuss        r   r   ÚDict.dict_new_minsizeU   sM   € Ü�_Š_ÓˆØ—‘×-Ñ-Ü�LŠL˜Ó˜a ó
ˆð 	�‰×Ñ˜F AÔ&Øˆ	r   c                 óL   • U R                   R                  U R                  5      $ r    )r   Únumba_dict_lengthr   r"   s    r   r&   ÚDict.dict_length]   s   € Ø�w‰w×(Ñ(¨¯©Ó1Ð1r   c                 ó    • [        U5      nU R                  R                  U R                  XU5      nU R                  R	                  US5        g rN   )Úhashr   Únumba_dict_insert_ezr   ÚassertGreaterEqual)r   Ú	key_bytesÚ	val_bytesÚhashvalrU   s        r   r.   ÚDict.dict_insert`   s@   € Ü�y“/ˆØ—‘×-Ñ-Ø�G‰G�Y¨ó
ˆð 	�‰×"Ñ" 6¨1Õ-r   c                 ó   • [        U5      n[        R                  " U R                  5      nU R                  R                  U R                  XU5      nU R                  R                  U[        5        XCR                  4$ r    )
r[   rO   Úcreate_string_bufferr   r   Únumba_dict_lookupr   r]   r7   Úvalue)r   r^   r`   Úoldval_bytesr:   s        r   r6   ÚDict.dict_lookupg   sc   € Ü�y“/ˆÜ×2Ò2°4·<±<Ó@ˆØ�W‰W×&Ñ&Ø�G‰G�Y¨ó
ˆð 	�‰×"Ñ" 2¤zÔ2Ø×%Ñ%Ð%Ð%r   c                 óÚ   • U R                  U5      u  p#U[        :X  a  g[        U5      nU R                  R	                  U R
                  XB5      nU R                  R                  US5        g)NFr   T)r6   r7   r[   r   Únumba_dict_delitemr   r,   )r   r^   r:   Úoldvalr`   rU   s         r   r?   ÚDict.dict_delitemp   sY   € Ø×%Ñ% iÓ0‰
ˆØ”ÓØÜ�y“/ˆØ—‘×+Ñ+¨D¯G©G°WÓAˆØ�‰×Ñ˜F AÔ&Ør   c                 ób  • [         R                  " U R                  5      n[         R                  " U R                  5      nU R                  R                  U R                  X5      nUS:w  a,  US:X  a  [        S5      eU R                  R                  S5        UR                  UR                  4$ )Nr   éüÿÿÿúpopitem(): dictionary is emptyÚUnknown)
rO   rc   r   r   r   Únumba_dict_popitemr   r8   Ú_failre   )r   r^   r_   rU   s       r   rJ   ÚDict.dict_popitemy   s�   € Ü×/Ò/°·±Ó=ˆ	Ü×/Ò/°·±Ó=ˆ	Ø—‘×+Ñ+¨D¯G©G°YÓJˆØ�Q‹;Ø˜‹|ÜÐ?Ó@Ð@à—‘—‘˜iÔ(Ø�‰ 	§¡Ð/Ð/r   c                 óN   • U R                   R                  XR                  5        g r    )r   Únumba_dict_iterr   )r   Úitptrs     r   Ú	dict_iterÚDict.dict_iter„   s   € Ø�‰×Ñ §w¡wÕ/r   c                 ó  • [         R                  " S5      n[         R                  " S5      nU R                  R                  U[         R                  " U5      [         R                  " U5      5      nUS:X  a  [        S5      eUS:X  a  g U R                  R                  US5        U R                  R                  UR                  [        -  SSS9  U R                  R                  UR                  [        -  SSS9  [         R                  U R                  -  R                  UR                  5      n[         R                  U R                  -  R                  UR                  5      nUR                  UR                  4$ )Nr   éþÿÿÿzdictionary mutatedéýÿÿÿzkey not aligned)Úmsgzval not aligned)rO   rP   r   Únumba_dict_iter_nextrR   Ú
ValueErrorr]   r,   re   ÚALIGNÚc_charr   Úfrom_addressr   )r   ru   r1   r2   rU   ÚkeyÚvals          r   Údict_iter_nextÚDict.dict_iter_next‡   s  € Ü�_Š_˜QÓˆÜ�_Š_˜QÓˆØ—‘×-Ñ-Ø”6—<’< Ó#¤V§\¢\°"Ó%5ó
ˆð �R‹<ÜÐ1Ó2Ð2Ø�r‹\Øà�G‰G×&Ñ& v¨qÔ1ð
 �G‰G×Ñ §¡¬5Ñ 0°!Ð9JÐÑKØ�G‰G×Ñ §¡¬5Ñ 0°!Ð9JÐÑKä—=‘= 4§<¡<Ñ/×=Ñ=¸b¿h¹hÓGˆCÜ—=‘= 4§<¡<Ñ/×=Ñ=¸b¿h¹hÓGˆCØ—9‘9˜cŸi™iÐ'Ð'r   )r   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r#   r'   r3   r<   r@   rC   rG   rK   r   r&   r.   r6   r?   rJ   rv   rƒ   Ú__static_attributes__© r   r   r   r      s\   † ñò:ò)ò"ò!ò òòòò&òò2ò.ò&òò	0ò0õ(r   r   c                   ó.   • \ rS rSrSrS rS rS r\rSr	g)rF   éŸ   z‘A iterator for the `Dict.items()`.

Only the `.items()` is needed.  `.keys` and `.values` can be trivially
implemented on the `.items` iterator.
c                 óF  • Xl         U R                   R                  R                  5       n[        R                  U-  " S5      U l        [        R                  " U R
                  [        R                  5      U l        U R                   R                  U R                  5        g rN   )
Úparentr   Únumba_dict_iter_sizeofrO   Úc_char_pÚit_state_bufÚcastrP   Úitrv   )r   r�   Úitsizes      r   r   ÚDictIter.__init__¥   se   € ØŒØ—‘—‘×6Ñ6Ó8ˆÜ#Ÿ_™_¨vÒ5°qÓ9ˆÔÜ—+’+˜d×/Ñ/´·±ÓAˆŒØ�‰×Ñ˜dŸg™gÕ&r   c                 ó   • U $ r    r‹   r"   s    r   Ú__iter__ÚDictIter.__iter__¬   s   € Øˆr   c                 ó¦   • U R                   R                  U R                  5      nUc  [        eUu  p#UR	                  5       UR	                  5       4$ r    )r�   rƒ   r”   ÚStopIterationr9   )r   Úoutr/   r0   s       r   Ú__next__ÚDictIter.__next__¯   sC   € Ø�k‰k×(Ñ(¨¯©Ó1ˆØ‰;ÜÐà‰DˆAØ—8‘8“:˜qŸx™x›zÐ)Ð)r   )r”   r’   r�   N)
r…   r†   r‡   rˆ   r‰   r   r˜   r�   ÚnextrŠ   r‹   r   r   rF   rF   Ÿ   s   † ñò
'òò*ð ƒDr   rF   c                   ó   • \ rS rSrSrS rSrg)ÚParametrizedéº   z[supporting type for TestDictImpl.test_parametrized_types
needs to be global to be cacheablec                 ó6   • [        S U 5       5      (       d   eg )Nc              3   óB   #   • U  H  n[        U[        5      v •  M     g 7fr    )Ú
isinstanceÚstr)Ú.0r0   s     r   Ú	<genexpr>Ú(Parametrized.__init__.<locals>.<genexpr>¾   s   é € Ð3ªs¨!”:˜a¤×%Ð%ªsùs   ‚)Úall)r   Útups     r   r   ÚParametrized.__init__½   s   € ÜÑ3©sÓ3×3Ñ3Ð3Ñ3r   r‹   N)r…   r†   r‡   rˆ   r‰   r   rŠ   r‹   r   r   r¡   r¡   º   s   † ñ*õ4r   r¡   c                   óB   ^ • \ rS rSrSrU 4S jr\S 5       rS rSr	U =r
$ )ÚParametrizedTypeéÁ   zQthis is essentially UniTuple(unicode_type, n)
BUT type name is the same for all nc                 óv   >• [         [        U ]  S5        [        R                  U l        [        U5      U l        g )Nr®   )Úsuperr®   r   r   Úunicode_typeÚdtyper-   Ún)r   re   Ú	__class__s     €r   r   ÚParametrizedType.__init__Å   s,   ø€ ÜÔ Ñ.Ð/AÔBÜ×'Ñ'ˆŒ
Ü�U“ˆ�r   c                 ó   • U R                   $ r    ©r´   r"   s    r   r�   ÚParametrizedType.keyÊ   s   € à�v‰vˆr   c                 ó   • U R                   $ r    r¸   r"   s    r   r'   ÚParametrizedType.__len__Î   s   € Ø�v‰vˆr   )r³   r´   )r…   r†   r‡   rˆ   r‰   r   Úpropertyr�   r'   rŠ   Ú__classcell__)rµ   s   @r   r®   r®   Á   s+   ø† ñ+õð
 ñó ð÷ð r   r®   c                   ól   • \ rS rSrS rS rS rS rS rS r	SS jr
S	 rS
 rS rS rS rS rS rSrg)ÚTestDictImpléÒ   c           	      óª  • [         R                  n[         R                  n[         R                  nSS jnU" S[         R                  5      U l        U" S[         R                  [         R
                  " U5      [         R                  [         R                  [         R                  /5      U l        U" SSU/5      U l        U" S[         R                  U/5      U l        U" S[         R                  U[         R                  U[         R                  /5      U l
        U" S[         R                  U[         R                  U[         R                  /5      U l        U" S	[         R                  UU[         R                  /5      U l        U" S
[         R                  U[         R                  [         R                  /5      U l        U" S[         R                  5      U l        U" SSUU/5      U l        U" S[         R                  U[         R
                  " [         R                  5      [         R
                  " [         R                  5      /5      U l        g)zEBind to the c_helper library and provide the ctypes wrapper.
        c                 ób   • [         R                  " U/UQ76 nU" [        R                  U    5      $ r    )rO   Ú	CFUNCTYPEr   Ú	c_helpers)ÚnameÚrestypeÚargtypesÚprotos       r   ÚwrapÚ TestDictImpl.setUp.<locals>.wrapÚ   s-   € Ü×$Ò$ WÐ8¨xÒ8ˆEÙœ×-Ñ-¨dÑ3Ó4Ð4r   Ú	test_dictÚdict_new_sizedÚ	dict_freeNr&   Údict_insert_ezr6   r?   rJ   Údict_iter_sizeofrv   rƒ   )r‹   )rO   rP   Ú	c_ssize_tÚc_intÚnumba_test_dictÚPOINTERrQ   r!   rX   r‘   r\   rd   ri   rp   Úc_size_tr�   rt   r|   )r   Údict_tÚiter_tÚhash_trÉ   s        r   ÚsetUpÚTestDictImpl.setUpÓ   sú  € ô —‘ˆÜ—‘ˆÜ×!Ñ!ˆô	5ñ
  $ØÜ�L‰Ló 
ˆÔñ %)ØÜ�L‰Lä—’˜vÓ&Ü× Ñ Ü× Ñ Ü× Ñ ð	ó	%
ˆÔ!ñ  $ØØØˆHó 
ˆÔñ "&ØÜ×ÑØˆHó"
ˆÔñ %)ØÜ�L‰LàÜ—‘ØÜ—‘ð	ó	%
ˆÔ!ñ  "&ØÜ×ÑàÜ—‘ØÜ—‘ð	ó	"
ˆÔñ #'ØÜ�L‰LàØÜ× Ñ ðó#
ˆÔñ #'ØÜ�L‰LàÜ—‘Ü—‘ðó#
ˆÔñ '+ØÜ�O‰Oó'
ˆÔ#ñ  $ØØàØðó 
ˆÔñ %)ØÜ�L‰LàÜ—’œvŸ™Ó/Ü—’œvŸ™Ó/ðó%
ˆÕ!r   c                 óH   • U R                  5       nU R                  US5        g rN   )rÒ   r,   )r   Úrets     r   Útest_simple_c_testÚTestDictImpl.test_simple_c_test[  s    € à×"Ñ"Ó$ˆØ×Ñ˜˜aÕ r   c                 óú  • [        U SS5      nU R                  [        U5      S5        U R                  UR	                  S5      5        SUS'   U R                  [        U5      S5        U R                  UR	                  S5      5        U R                  US   S5        SUS'   U R                  [        U5      S5        U R                  US   S5        SUS	'   U R                  [        U5      S
5        U R                  US   S5        U R                  US	   S5        SUS'   U R                  [        U5      S5        U R                  US   S5        U R                  US	   S5        U R                  US   S5        g )Nr   r   r   ÚabcdÚbeefcafeé   Úcafe0000Úcafe0001Úabceé   Úcafe0002Úabcfé   )r   r,   r-   ÚassertIsNonerC   ÚassertIsNotNone©r   Úds     r   Útest_insertion_smallÚ!TestDictImpl.test_insertion_small`  sX  € ä��q˜!ÓˆØ×Ñœ˜Q› Ô#Ø×Ñ˜!Ÿ%™% ›-Ô(ð ˆˆ&‰	Ø×Ñœ˜Q› Ô#Ø×Ñ˜QŸU™U 6›]Ô+Ø×Ñ˜˜6™ JÔ/ð ˆˆ&‰	Ø×Ñœ˜Q› Ô#Ø×Ñ˜˜6™ JÔ/ð ˆˆ&‰	Ø×Ñœ˜Q› Ô#Ø×Ñ˜˜6™ JÔ/Ø×Ñ˜˜6™ JÔ/ð ˆˆ&‰	Ø×Ñœ˜Q› Ô#Ø×Ñ˜˜6™ JÔ/Ø×Ñ˜˜6™ JÔ/Ø×Ñ˜˜6™ JÕ/r   c                 ó  • [        U SS5      nS nS n[        U5       H1  nU" U5      X#" U5      '   U R                  [        U5      US-   5        M3     [        U5       H#  nU R                  X#" U5         U" U5      5        M%     g )Nr   c                 ó$   • SR                  U 5      $ )Nz	key_{:04}©Úformat©r0   s    r   Úmake_keyÚ3TestDictImpl.check_insertion_many.<locals>.make_key‚  ó   € Ø×%Ñ% aÓ(Ð(r   c                 ó$   • SR                  U 5      $ )Nz	val_{:04}rñ   ró   s    r   Úmake_valÚ3TestDictImpl.check_insertion_many.<locals>.make_val…  rö   r   rá   )r   Úranger,   r-   )r   Únmaxrì   rô   rø   Úis         r   Úcheck_insertion_manyÚ!TestDictImpl.check_insertion_many~  s   € ä��q˜!Óˆò	)ò	)ô �t–ˆAÙ% a›[ˆAˆh�q‹k‰NØ×ÑœS ›V Q¨¡UÖ+ñ ô
 �t–ˆAØ×Ñ˜Q˜x¨›{™^©X°a«[Ö9ò r   c                 ól  • U R                  SS9  U R                  SS9  U R                  SS9  U R                  SS9  U R                  SS9  U R                  SS9  U R                  SS9  U R                  S	S9  U R                  S
S9  U R                  SS9  U R                  SS9  U R                  SS9  g )Né   )rû   r   é	   é   é    é!   iÿ  é   i  iÿ  i   i  )rý   r"   s    r   Útest_insertion_manyÚ TestDictImpl.test_insertion_many‘  sÐ   € ð 	×!Ñ! qÐ!Ñ)Ø×!Ñ! qÐ!Ñ)Ø×!Ñ! qÐ!Ñ)à×!Ñ! rÐ!Ñ*Ø×!Ñ! rÐ!Ñ*Ø×!Ñ! rÐ!Ñ*à×!Ñ! tÐ!Ñ,Ø×!Ñ! tÐ!Ñ,Ø×!Ñ! tÐ!Ñ,à×!Ñ! tÐ!Ñ,Ø×!Ñ! tÐ!Ñ,Ø×!Ñ! tÐ!Ò,r   c                 ó´  • [        U SS5      nU R                  [        U5      S5        U R                  UR	                  S5      5        SUS'   SUS'   SUS	'   U R                  [        U5      S
5        U R                  US   S5        U R                  US   S5        U R                  US	   S5        U R                  [        U5      S
5        US	 U R                  UR	                  S5      5        U R                  US   S5        U R                  US	   S5        U R                  [        U5      S5        U R                  [        5         US	 S S S 5        US		 U R                  UR	                  S5      5        U R                  US   S5        U R                  UR	                  S	5      5        U R                  [        U5      S5        US	 U R                  UR	                  S5      5        U R                  UR	                  S5      5        U R                  UR	                  S	5      5        U R                  [        U5      S5        g ! , (       d  f       GN= f)Nr   r   r   rß   râ   rã   rä   ræ   rç   rè   rå   rá   )r   r,   r-   ré   rC   ÚassertRaisesr8   rë   s     r   Útest_deletion_smallÚ TestDictImpl.test_deletion_small¤  sõ  € ä��q˜!ÓˆØ×Ñœ˜Q› Ô#Ø×Ñ˜!Ÿ%™% ›-Ô(àˆˆ&‰	Øˆˆ&‰	Øˆˆ&‰	à×Ñœ˜Q› Ô#Ø×Ñ˜˜6™ JÔ/Ø×Ñ˜˜6™ JÔ/Ø×Ñ˜˜6™ JÔ/Ø×Ñœ˜Q› Ô#ð ˆfˆIØ×Ñ˜!Ÿ%™% ›-Ô(Ø×Ñ˜˜6™ JÔ/Ø×Ñ˜˜6™ JÔ/Ø×Ñœ˜Q› Ô#ð ×ÑœxÕ(Ø�&�	÷ )ð ˆfˆIØ×Ñ˜!Ÿ%™% ›-Ô(Ø×Ñ˜˜6™ JÔ/Ø×Ñ˜!Ÿ%™% ›-Ô(Ø×Ñœ˜Q› Ô#ð ˆfˆIØ×Ñ˜!Ÿ%™% ›-Ô(Ø×Ñ˜!Ÿ%™% ›-Ô(Ø×Ñ˜!Ÿ%™% ›-Ô(Ø×Ñœ˜Q› Õ#÷ )Ö(ús   Å
IÉ
Ic                 ó¼  • [         R                  " U5        [        U SS5      n0 nS nS n[        U5       H  n	U" U	5      XW" U	5      '   M     [        U5       H+  n	U" U	5      n
U" U	5      nX¶U
'   U R	                  XZ   U5        M-     U R	                  [        U5      U5        [         R                  " [        U5      U5      nUR                  5       n[        USS9 H&  u  pšXZ	 XÚ	 U R	                  [        U5      X-
  5        M(     U R	                  [        U5      X-
  5        U H#  n
U R                  UR                  U
5      5        M%     U H  n
U R	                  XZ   XÚ   5        M     [        U5       H  n	U" X-   5      n
U" X-   5      nX½U
'   XµU
'   M!     U R	                  [        U5      [        U5      5        U H  n
U R	                  XZ   XÚ   5        M     g )Nr   c                 ó$   • SR                  U 5      $ ©Nzk_{:06x}rñ   ró   s    r   rô   Ú4TestDictImpl.check_delete_randomly.<locals>.make_keyÔ  ó   € Ø×$Ñ$ QÓ'Ð'r   c                 ó$   • SR                  U 5      $ ©Nzv_{:06x}rñ   ró   s    r   rø   Ú4TestDictImpl.check_delete_randomly.<locals>.make_val×  r  r   rá   )Ústart)ÚrandomÚseedr   rú   r,   r-   ÚsampleÚlistÚcopyÚ	enumerateré   rC   )r   rû   ÚndropÚnrefillr  rì   Úkeysrô   rø   rü   r/   r0   ÚdroplistÚremains                 r   Úcheck_delete_randomlyÚ"TestDictImpl.check_delete_randomlyÍ  s»  € ä�Š�DÔä��q˜!ÓˆØˆò	(ò	(ô �t–ˆAÙ% a›[ˆAˆh�q‹k‹Nñ ô �t–ˆAÙ˜“ˆAÙ˜“ˆAØ�‰GØ×Ñ˜Q™T 1Ö%ñ	 ð 	×Ñœ˜Q› Ô&ô —=’=¤ d£¨UÓ3ˆØ—‘“ˆÜ˜h¨aÔ0‰DˆAØ�Ø�	Ø×ÑœS ›V T¡XÖ.ñ 1ð 	×Ñœ˜Q› ¡Ô.ó ˆAØ×Ñ˜aŸe™e A›hÖ'ñ ó ˆAØ×Ñ˜Q™T 6¡9Ö-ñ ô �w–ˆAÙ˜™Ó"ˆAÙ˜™Ó"ˆAØ�1‰IØˆa‹Dñ	  ð 	×Ñœ˜V›¤c¨!£fÔ-ó ˆAØ×Ñ˜Q™T 6¡9Ö-ò r   c                 óò   • U R                  SSSS9  U R                  SSSS9  U R                  SSS	S9  U R                  SS
SS9  U R                  SSSS9  U R                  SSSS9  U R                  SSSS9  g )Nr   rå   ©rû   r  r  é   é
   r  éd   é2   éÈ   éc   r  iç  rá   i   ©r   r"   s    r   Útest_delete_randomlyÚ!TestDictImpl.test_delete_randomly  s•   € à×"Ñ"¨°¸AÐ"Ñ>Ø×"Ñ"¨°"¸bÐ"ÑAØ×"Ñ"¨°2¸sÐ"ÑCØ×"Ñ"¨°2¸sÐ"ÑCØ×"Ñ"¨°3ÀÐ"ÑDØ×"Ñ"¨°CÀÐ"ÑCØ×"Ñ"¨°CÀÐ"ÒFr   c                 ó&   • U R                  SSSS9  g )Ni   i   r  r#  r*  r"   s    r   Útest_delete_randomly_largeÚ'TestDictImpl.test_delete_randomly_large  s   € ð
 	×"Ñ"¨°UÀEÐ"ÒJr   c                 óÀ  • Sn[        U SS5      nS nS n[        U5       H  nU" U5      X#" U5      '   M     U R                  [        U5      U5        UR	                  5       u  pgU R                  [        U5      US-
  5        U R                  Xc" [        U5      5      5        U R                  Xt" [        U5      5      5        [        U5      (       a�  [        U5      nUR	                  5       u  pgU R                  [        U5      US-
  5        U R                  Xc" [        U5      5      5        U R                  Xt" [        U5      5      5        [        U5      (       a  M�  U R                  [        U5      S5        U R                  [        5       n	UR	                  5         S S S 5        U R                  S[        W	R                  5      5        g ! , (       d  f       N4= f)Nr%  r   c                 ó$   • SR                  U 5      $ r  rñ   ró   s    r   rô   Ú+TestDictImpl.test_popitem.<locals>.make_key  r  r   c                 ó$   • SR                  U 5      $ r  rñ   ró   s    r   rø   Ú+TestDictImpl.test_popitem.<locals>.make_val  r  r   rá   r   rn   )
r   rú   r,   r-   rK   r	  r8   ÚassertInr¦   Ú	exception)
r   rû   rì   rô   rø   rü   r/   r0   r´   Úraisess
             r   Útest_popitemÚTestDictImpl.test_popitem  s{  € ØˆÜ��q˜!Óˆò	(ò	(ô �t–ˆAÙ% a›[ˆAˆh�q‹k‹Nñ ð 	×Ñœ˜Q› Ô&Ø�y‰y‹{‰ˆØ×Ñœ˜Q› ¨¡Ô*Ø×Ñ˜˜H¤S¨£VÓ,Ô-Ø×Ñ˜˜H¤S¨£VÓ,Ô-ä�!�f‰fÜ�A“ˆAØ—9‘9“;‰DˆAØ×ÑœS ›V Q¨¡UÔ+Ø×Ñ˜Q ¬¨Q«Ó 0Ô1Ø×Ñ˜Q ¬¨Q«Ó 0Ô1ô �!�f‹fð 	×Ñœ˜Q› Ô#Ø×ÑœxÔ(¨FØ�I‰IŒK÷ )à�‰Ø,Ü�× Ñ Ó!õ	
÷ )Õ(ús   ÆGÇ
Gc                 ó$  ^• [        U SS5      nSmS nU4S jn[        T5       H  nU" U5      X" U5      '   M     [        UR                  5       5       H8  u  nu  pVU R	                  U" U5      U5        U R	                  U" U5      U5        M:     g )Nr   iè  c                 ó$   • SR                  U 5      $ ©Nz{:04}rñ   ró   s    r   rô   Ú.TestDictImpl.test_iter_items.<locals>.make_key<  s   € Ø—>‘> !Ó$Ð$r   c                 ó,   >• SR                  U T-   5      $ r<  rñ   )r0   rû   s    €r   rø   Ú.TestDictImpl.test_iter_items.<locals>.make_val?  s   ø€ Ø—>‘> ! d¡(Ó+Ð+r   ©r   rú   r  rG   r,   )r   rì   rô   rø   rü   r/   r0   rû   s          @r   Útest_iter_itemsÚTestDictImpl.test_iter_items7  s†   ø€ ä��q˜!ÓˆØˆò	%õ	,ô �t–ˆAÙ% a›[ˆAˆh�q‹k‹Nñ ô # 1§7¡7£9Ö-‰IˆA‰v�Ø×Ñ™X a›[¨!Ô,Ø×Ñ™X a›[¨!Ö,ò .r   c                 ó,  ^^^• [        U TT5      nU4S jnUU4S jn[        T5       H  nU" U5      XE" U5      '   M     [        UR                  5       5       H8  u  nu  p‰U R	                  U" U5      U5        U R	                  U" U5      U	5        M:     g )Nc                 ó.   >• SR                  U T5      S T $ )Nú{:0{}}rñ   )r0   rS   s    €r   rô   Ú+TestDictImpl.check_sizing.<locals>.make_keyN  s   ø€ Ø—?‘? 1 hÓ/°	°Ð:Ð:r   c                 ó:   >• SR                  TU -
  S-
  T5      S T $ )NrE  rá   rñ   )r0   rû   rT   s    €€r   rø   Ú+TestDictImpl.check_sizing.<locals>.make_valQ  s#   ø€ Ø—?‘? 4¨!¡8¨a¡<°Ó:¸9¸HÐEÐEr   r@  )
r   rS   rT   rû   rì   rô   rø   rü   r/   r0   s
    ```      r   Úcheck_sizingÚTestDictImpl.check_sizingJ  s‚   ú€ ä��x Ó*ˆõ	;ö	Fô �t–ˆAÙ% a›[ˆAˆh�q‹k‹Nñ ô # 1§7¡7£9Ö-‰IˆA‰v�Ø×Ñ™X a›[¨!Ô,Ø×Ñ™X a›[¨!Ö,ò .r   c                 óP   • [        SS5       H  nU R                  XSU-  S9  M     g )Nrá   r   rå   )rS   rT   rû   )rú   rI  )r   rü   s     r   Útest_sizingÚTestDictImpl.test_sizing\  s)   € ä�q˜!–ˆAØ×Ñ q¸1¸a¹4ÐÓ@ò r   c                 óú  ^• [        [        5      " [        5        [        R                  " [
        5      S 5       n[        [        5      S 5       nS m[        T5      S 5       n[        SSS9U4S j5       n[        S5      [        S	5      peU" XV5        UR                  5       " 5         UR                  5         UR                  R                  5         [        S
5       H  nU R                  U" XV5      5        M     g)z*https://github.com/numba/numba/issues/6401c                 ó   • [        U 5      $ r    )r®   )r‚   Úcs     r   Útypeof_unitÚ:TestDictImpl.test_parameterized_types.<locals>.typeof_unitf  s   € ä# CÓ(Ð(r   c                 óv   • UR                  [        R                  " U R                  [	        U 5      5      U5      $ r    )r   r   ÚUniTupler³   r-   )ÚtypÚobjÚcontexts      r   Úunbox_parametrizedÚATestDictImpl.test_parameterized_types.<locals>.unbox_parametrizedj  s&   € à—=‘=¤§¢°·	±	¼3¸s»8Ó!DÀcÓJÐJr   c                 ó   •  er    r‹   ró   s    r   Údict_vs_cache_vs_parametrizedÚLTestDictImpl.test_parameterized_types.<locals>.dict_vs_cache_vs_parametrizedn  s   € Ø�1r   c                 ó   ^• U mU4S jnU$ )Nc                 ój   >• [         R                  R                  [        R                  T5      nXS'   g )NÚdata)r   r   Úemptyr   r²   )r0   rì   rU  s     €r   Ú%objmode_vs_cache_vs_parametrized_implÚ~TestDictImpl.test_parameterized_types.<locals>.ol_dict_vs_cache_vs_parametrized.<locals>.objmode_vs_cache_vs_parametrized_implu  s&   ø€ ä—J‘J×$Ñ$¤U×%7Ñ%7¸Ó=�Ø�&’	r   r‹   )r0   ra  rU  s     @r   Ú ol_dict_vs_cache_vs_parametrizedÚOTestDictImpl.test_parameterized_types.<locals>.ol_dict_vs_cache_vs_parametrizedq  s   ø€ àˆCõð
 9Ð8r   T)ÚnopythonÚcachec                 ó&   >• T" U 5        T" U5        g r    r‹   )ÚxÚyr[  s     €r   Úset_parametrized_dataÚDTestDictImpl.test_parameterized_types.<locals>.set_parametrized_data|  s   ø€ ñ *¨!Ô,Ù)¨!Õ,r   )ÚaÚb)rl  r'  N)r
   r®   r	   r   Úregisterr¡   r   r   r   Ú_make_finalizerÚ_reset_overloadsÚ	targetctxÚinitrú   ré   )	r   rQ  rX  rc  rj  rh  ri  Úiir[  s	           @r   Útest_parameterized_typesÚ%TestDictImpl.test_parameterized_typesa  sò   ø€ ô 	Ô'Ô(¬Ô7ä	×	Ò	œlÓ	+ñ	)ó 
,ð	)ô 
ÔÓ	 ñ	Kó 
!ð	Kò	ô 
Ð/Ó	0ñ	9ó 
1ð	9ô 
�d $Ñ	'ô	-ó 
(ð	-ô ˜JÓ'¬°fÓ)=ˆ1Ù˜aÔ#ð 	×-Ñ-Ô/Ô1Ø×.Ñ.Ô0Ø×'Ñ'×,Ñ,Ô.ä˜–)ˆBØ×ÑÑ3°AÓ9Ö:ò r   )ri   r!   r\   rt   r|   r�   rX   rd   rQ   rp   rÒ   N)r   )r…   r†   r‡   rˆ   rØ   rÜ   rí   rý   r  r
  r   r+  r.  r8  rA  rI  rL  rt  rŠ   r‹   r   r   r¿   r¿   Ò   sP   † òF
òP!ò
0ò<:ò&-ò&'$ôR5.ònGòKò 
òD-ò&-ò$Aõ
/;r   r¿   )r‰   rO   r  Únumba.tests.supportr   Únumbar   r   r   r   Únumba.core.configr   Únumba.core.datamodel.modelsr	   Únumba.extendingr
   r   r   r   r7   r~   Úobjectr   rF   Útupler¡   ÚTyper®   r¿   r‹   r   r   Ú<module>r~     s~   ðñó Û å (ß /Ó /Ý 'Ý 5ß HÓ Hð €
ö ‰˜A€ôG(ˆ6ô G(ôTˆvô ô64�5ô 4ô�u—z‘zô ô"~;�8õ ~;r   