ó
    „ñ:iK  ã                   ó€  • S r SSKrSSKrSSKrSSKrSSKJr  SSKJr  SSK	r
SSKJrJrJrJr  SSKJrJr  SSKrSSKJrJrJr  SSKJr  SS	KJr  SS
KJr  S r " S S\5      r " S S\5      r " S S\5      r  " S S\ 5      r! " S S\ 5      r" " S S\ 5      r# " S S\5      r$\%S:X  a  \RL                  " 5         gg)z*
Test hashing of various supported types.
é    N)Údefaultdict)Údedent)ÚjitÚconfigÚtypedÚtypeof)ÚtypesÚutils)ÚTestCaseÚskip_unless_py10_or_laterÚrun_in_subprocess)Úcompile_time_get_string_data)Úhashing)Únumpy_versionc                 ó   • [        U 5      $ ©N©Úhash©Úxs    Ú[/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_hashing.pyÚhash_usecaser      s   € Ü�‹7€Nó    c                   ó   • \ rS rSrS rSrg)ÚTestHashingSetupé   c                 óh   • Sn[         R                  " [        R                  S[	        U5      /5        g )Na±  
        import sys
        import warnings
        from collections import namedtuple

        # hash_info is a StructSequence, mock as a named tuple
        fields = ["width", "modulus", "inf", "nan", "imag", "algorithm",
                  "hash_bits", "seed_bits", "cutoff"]

        hinfo = sys.hash_info
        FAKE_HASHINFO = namedtuple('FAKE_HASHINFO', fields)

        fd = dict()
        for f in fields:
            fd[f] = getattr(hinfo, f)

        fd['algorithm'] = 'fnv'

        fake_hashinfo = FAKE_HASHINFO(**fd)

        # replace the hashinfo with the fnv version
        sys.hash_info = fake_hashinfo
        with warnings.catch_warnings(record=True) as warns:
            # Cause all warnings to always be triggered.
            warnings.simplefilter("always")
            from numba import njit
            @njit
            def foo():
                hash(1)
            foo()
            assert len(warns) > 0
            expect = "FNV hashing is not implemented in Numba. See PEP 456"
            for w in warns:
                if expect in str(w.message):
                    break
            else:
                raise RuntimeError("Expected warning not found")
        z-c)Ú
subprocessÚ
check_callÚsysÚ
executabler   )ÚselfÚworks     r   Útest_warn_on_fnvÚ!TestHashingSetup.test_warn_on_fnv!   s)   € ð%ˆôL 	×ÒœsŸ~™~¨t´V¸D³\ÐBÕCr   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r$   Ú__static_attributes__r&   r   r   r   r      s   † õ(Dr   r   c                   ó„   • \ rS rSr/ SQ/ SQ// SQ/ SQ/ SQ/ SQ/ SQ// S	Q/ S
Q/ SQ/ SQ/ SQ/S.rS rS rSS jrS rSr	g)ÚTestHashAlgséL   )éˆ\ˆr/   r/   r/   )iLÌ‡×l   LL//+³?iTSÏlûÿÿÿqU:~Œ@[ )éò0&ìûÿÿÿO³wq!~ r0   r1   )ééuÖÅì   éu¬Cœ- r2   r3   )é|#|Üì   |#ø8ÿ
^ r4   r5   )i=½Õ¾lûÿÿÿÃBT='8 i\eîÁl   \eÜ+=Ë" )i[Ýlûÿÿÿò$ÛEü,ß; iwmHÏlûÿÿÿ‰oað_gv )éÞîpGì   ÞnáYD~ r6   r7   )é–SìûÿÿÿjxY_oWÇs r8   r9   )é¯ ú—ì   ¯ ô/Ö“l r:   r;   )iöJkl   öJÖ:ø8`~ iÖÄlûÿÿÿü)øwJµ )iàQ	œlûÿÿÿ .íG¥UJG iO{‘lûÿÿÿ±Á]±D] )Údjba33xÚ	siphash13Ú	siphash24c                 óN  • U[         R                  R                  :  a  SnO[         R                  R                  n[        R
                  (       + n[         R                  S:X  a  U(       a  SOSnO![         R                  S:X  d   eU(       a  SOSnU R                  U   U   U   $ )Nr<   Úlittleé   r   Úbigé   é   )r    Ú	hash_infoÚcutoffÚ	algorithmr   Ú	IS_32BITSÚ	byteorderÚknown_hashes)r"   ÚpositionÚlengthrG   ÚIS_64BITÚplatforms         r   Úget_expected_hashÚTestHashAlgs.get_expected_hashx   s�   € Ø”C—M‘M×(Ñ(Ó(Ø!‰IäŸ™×/Ñ/ˆIÜ×'Ñ'Ô'ˆÜ�=‰=˜HÓ$Þ$‘q¨!‰Hä—=‘= EÓ)Ð*Ð)Þ$‘q¨!ˆHØ× Ñ  Ñ+¨HÑ5°hÑ?Ð?r   c                 ó   • SU-  $ )Nzprint(hash(eval(%a)))r&   )r"   Úrepr_s     r   Úget_hash_commandÚTestHashAlgs.get_hash_command…   s   € Ø&¨Ñ.Ð.r   Nc                 ó  • [         R                  R                  5       nUb  [        U5      US'   OUR	                  SS 5        [        U R                  U5      US9u  pEUR                  5       R                  5       n[        U5      $ )NÚPYTHONHASHSEED)ÚcodeÚenv)
ÚosÚenvironÚcopyÚstrÚpopr   rS   ÚdecodeÚstripÚint)r"   rR   ÚseedrX   ÚoutÚ_Ústdouts          r   Úget_hashÚTestHashAlgs.get_hashˆ   sp   € Ü�j‰j�o‰oÓˆØÑÜ$'¨£IˆCÐ Ò!à�G‰GÐ$ dÔ+Ü"¨×(=Ñ(=¸eÓ(DØ'*ñ,‰ˆà—‘“×#Ñ#Ó%ˆÜ�6‹{Ðr   c                 óþ   • SnU Hc  u  p#nU R                  X#S9   U R                  [        U5      US9nU R                  U[	        U5      5      nU R                  XV5        S S S 5        Me     g ! , (       d  f       Mw  = f)N))Úabcr   r   )rh   é*   rA   )Úabcdefghijkri   rD   )õ
   Ã¤Ãºâˆ‘â„‡r   rC   )rk   ri   é   )Ú	input_strra   )ra   )ÚsubTestre   ÚreprrO   ÚlenÚassertEqual)r"   Úargsrm   ra   rK   ÚgotÚexpecteds          r   Útest_against_cpython_goldÚ&TestHashAlgs.test_against_cpython_gold“   sq   € ð>ˆó *.Ñ%ˆI˜XØ—‘¨	�Ò=Ø—m‘m¤D¨£O¸$�mÐ?�Ø×1Ñ1°(¼CÀ	»NÓK�Ø× Ñ  Ô/÷ >Ñ=ò *.ß=Ö=ús   šAA-Á-
A<	r&   r   )
r'   r(   r)   r*   rJ   rO   rS   re   ru   r+   r&   r   r   r-   r-   L   sZ   † ò :âNð	ò MâNâNâQâPð
ò  OâNâPâOâRð
ñ)!€LòF@ò/ô	õ	0r   r-   c                   óR   • \ rS rSrS rS r\R                  4S jrS r	S r
S rSrg	)
ÚBaseTestéŸ   c                 ó4   • [        SS9" [        5      U l        g )NT©Únopython)r   r   Úcfunc©r"   s    r   ÚsetUpÚBaseTest.setUp¡   s   € Ü $Ò'¬Ó5ˆ�
r   c           	      ó~  • U R                   n[        U5       H=  nU" U5      nU R                  U[        5         U R	                  U[        U5      5        M?     g ! [         aX  n[        S5        [        X4[        U5      5        [        S5        [        [        U5      [        R                  S-
  5        UeS nAff = f)Nzval, nb_hash, hash(val)z%abs(val), hashing._PyHASH_MODULUS - 1rA   )r}   ÚlistÚassertIsInstancer`   rq   r   ÚAssertionErrorÚprintÚabsr   Ú_PyHASH_MODULUS)r"   Úvaluesr}   ÚvalÚnb_hashÚes         r   Úcheck_hash_valuesÚBaseTest.check_hash_values¤   s›   € Ø—
‘
ˆÜ˜–<ˆCÙ˜C“jˆGØ×!Ñ! '¬3Ô/ðØ× Ñ  ¬$¨s«)Ö4ò	  øô
 "ó ÜÐ/Ô0Ü�c¤D¨£IÔ.ÜÐ=Ô>Ü”c˜#“h¤× 7Ñ 7¸!Ñ ;Ô<Ø�ûðús   ºAÁ
B<Á$AB7Â7B<c              #   ó  #   • S H}  n[         R                  " U5      nUR                  Us=::  a  UR                  ::  d  O  M>  Sn[	        X"U-   5      v •  [	        X"SU-  -   S5      v •  [	        X"SU-  -   S5      v •  S/v •  M     g 7f)N)r   iÎÿÿÿi`ê  l        éd   é€   éÿÿÿÿ)ÚnpÚiinfoÚminÚmaxÚrange)r"   ÚtypÚstartÚinfoÚns        r   Úint_samplesÚBaseTest.int_samples²   sy   é € Û-ˆEÜ—8’8˜C“=ˆDØ—8‘8˜uÕ0¨¯©Õ0ÙØˆAÜ˜ q™yÓ)Ò)Ü˜ s¨Q¡w™°Ó4Ò4Ü˜ s¨Q¡w™°Ó4Ò4Ø�$ŒJò .ùs   ‚BBc           	      ó    • [        [        S[        [        R                  " U5      R                  5      -   5      " U5      R                  U5      $ )Nr`   )Úgetattrr’   r\   r“   ÚbitsÚview)r"   r—   Úvalues      r   Úsafe_constructÚBaseTest.safe_construct½   s7   € Ü”r˜5¤3¤r§x¢x°£}×'9Ñ'9Ó#:Ñ:Ô;¸EÓB×GÑGÈÓLÐLr   c              #   óØ  #   • [         R                  " U5      nSSUR                  S-  UR                  S-  4 H‡  nSn[        UR                  X2R                  -  5      nSUS-  U4 HT  nXe:  a  M
  [         R
                  " X3XF-  -   U5      nUR                  U5      nUv •  U* v •  XwR                  5       -   v •  MV     M‰     SSSS	[        S
5      [        S
5      * /nU" U5      v •  g 7f)Nr   é
   ç      à?g     @�@r�   g333333ó?g        g       €g      ð¿Úinf)	r’   Úfinfor•   ÚtinyÚ
resolutionÚlinspaceÚastypeÚmeanÚfloat)r"   r—   r™   r˜   rš   Úmin_stepÚstepÚas           r   Úfloat_samplesÚBaseTest.float_samplesÀ   s×   é € Ü�xŠx˜‹}ˆà˜˜TŸX™X¨™_¨d¯h©h¸Ñ.?Ó@ˆEØˆAÜ˜4Ÿ9™9 e¯o©oÑ&=Ó>ˆHØ˜h¨#™o¨xÓ8�Ø“?ÙÜ—K’K ¨q©xÑ'7¸Ó;�Ø—H‘H˜S“M�Ø’Ø�b’ØŸ&™&›(‘lÔ"ó 9ñ Að �#�t˜T¤5¨£<´%¸³,°Ð@ˆñ
 �!‹f‹ùs   ‚C(C*c              #   ó(  #   • U R                  U5       Hy  nU R                  U5       Ha  nUS [        U5       nUS [        U5       nX1" S5      U-  -   n[        R                  " [        R                  " U5      5      (       a  M]  Uv •  Mc     M{     g 7f)Ny              ð?)r²   rp   r’   ÚanyÚisnan)r"   r—   Úfloat_tyÚrealÚimagr±   s         r   Úcomplex_samplesÚBaseTest.complex_samples×   s   é € Ø×&Ñ& xÖ0ˆDØ×*Ñ*¨8Ö4�à˜JœS ›YÐ'�Ø˜JœS ›YÐ'�Ø˜3˜r›7 T™>Ñ)�ô —v’vœbŸhšh q›k×*Ó*Ø”Gó 5ò 1ùs   ‚A?BÂB)r}   N)r'   r(   r)   r*   r   rŒ   r’   Úint64r›   r¢   r²   rº   r+   r&   r   r   rx   rx   Ÿ   s*   † ò6òð !Ÿh™hô 	òMòõ.
r   rx   c                   óp   ^ • \ rS rSrSrU 4S jrSU 4S jjrS rS rS r	S r
S	 rS
 r\S 5       rSrU =r$ )ÚTestNumberHashingéä   z
Test hashing of number types.
c                 ó¨   >• [         S:¼  a:  [         S::  a0  [        R                  " 5       U l        [        R                  " S5        [
        TU ]  5       $ ©N©rD   r   ©rD   rA   Úlegacy©r   r’   Ú_get_promotion_stateÚinitial_stateÚ_set_promotion_stateÚsuperr   ©r"   Ú	__class__s    €r   r   ÚTestNumberHashing.setUpé   ó?   ø€ Ü˜FÓ"¤}¸Ó'>ô "$×!8Ò!8Ó!:ˆDÔÜ×#Ò# HÔ-ä‰w‰}‹Ðr   c                 óˆ   >• [         S:¼  a*  [         S::  a   [        R                  " U R                  5        [        TU ]  5       $ ©NrÂ   rÃ   ©r   r’   rÈ   rÇ   rÉ   ÚtearDownrÊ   s    €r   rÑ   ÚTestNumberHashing.tearDownò   ó6   ø€ Ü˜FÓ"¤}¸Ó'>ô ×#Ò# D×$6Ñ$6Ô7ä‰wÑÓ!Ð!r   c                 ó¶   • U R                  U5       HD  nU R                  UR                  [        R                  " U5      5        U R	                  U5        MF     g r   )r²   rq   Údtyper’   rŒ   )r"   r—   r±   s      r   Úcheck_floatsÚTestNumberHashing.check_floatsú   sA   € Ø×#Ñ# CÖ(ˆAØ×Ñ˜QŸW™W¤b§h¢h¨s£mÔ4Ø×"Ñ" 1Ö%ò )r   c                 ó¶   • U R                  X5       HD  nU R                  UR                  [        R                  " U5      5        U R	                  U5        MF     g r   )rº   rq   rÕ   r’   rŒ   )r"   r—   r·   r±   s       r   Úcheck_complexÚTestNumberHashing.check_complexÿ   sA   € Ø×%Ñ% cÖ4ˆAØ×Ñ˜QŸW™W¤b§h¢h¨s£mÔ4Ø×"Ñ" 1Ö%ò 5r   c                 ó€   • U R                  [        R                  5        U R                  [        R                  5        g r   )rÖ   r’   Úfloat32Úfloat64r~   s    r   Útest_floatsÚTestNumberHashing.test_floats  s&   € Ø×Ñœ"Ÿ*™*Ô%Ø×Ñœ"Ÿ*™*Õ%r   c                 ó¼   • U R                  [        R                  [        R                  5        U R                  [        R                  [        R
                  5        g r   )rÙ   r’   Ú	complex64rÜ   Ú
complex128rÝ   r~   s    r   Útest_complexÚTestNumberHashing.test_complex  s2   € Ø×Ñœ2Ÿ<™<¬¯©Ô4Ø×Ñœ2Ÿ=™=¬"¯*©*Õ5r   c                 ó*   • U R                  SS/5        g )NFT©rŒ   r~   s    r   Ú	test_boolÚTestNumberHashing.test_bool  s   € Ø×Ñ  t˜}Õ-r   c           	      ó   • / n[         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  4 GH�  nU R                  U5       H  nU R                  U5        M     [         R                  " U5      nU R                  U R                  US5      /5        U R                  U" S5      /5        S[        U5      ;  nU" 5       R                  nUR                  UR                   4 HÉ  nSU-  nUn	[#        U5       H°  n
SnSnU	/nX¼4 H.  nX›-  nU[$        R&                  :  d  M  UR)                  U5        M0     U H  nU R                  U" U5      /5        M     U(       a4  U H.  nUUR                  :w  d  M  U R                  U" U* 5      /5        M0     US:X  a
  U	S-  S-  n	M«  U	S-	  n	M²     MË     GM„     U R                  [         R                  " S5      /5        U R                  [         R                  " S	5      /5        U R                  [         R                  " S5      /5        U R                  [         R                  " S	5      /5        U R                  [         R                  " S
5      /5        U R                  [         R                  " S5      /5        U R                  [         R                  " S5      /5        U R                  [         R
                  " S5      /5        U R                  [         R
                  " S5      /5        U R                  [         R
                  " S5      /5        g )Nr‘   r   Úuinté   ì   ª*UUª*UU
 ì   UUª*UUª* rA   l   þÿÿÿ l   ÿÿÿÿ lûÿÿÿÿÿÿÿ lûÿÿÿöÿÿÿ lûÿÿÿœÿÿÿ i  €i
  €id  €)r’   Úint8Úuint8Úint16Úuint16Úint32Úuint32r¼   Úuint64r›   rŒ   r“   r¢   r\   Úitemsizer”   r•   r–   r    ÚmaxsizeÚappend)r"   ÚminmaxÚtyr±   r™   ÚsignedÚszr   ÚshiftsÚyÚiÚtwiddle1Útwiddle2ÚvalsÚtwr‰   Úvs                    r   Ú	test_intsÚTestNumberHashing.test_ints  s±  € Øˆä—7‘7œBŸH™H¤b§h¡h´·	±	Ü—8‘8œRŸY™Y¬¯©´"·)±)ô=ˆBà×%Ñ% bÖ)�Ø×&Ñ& qÖ)ñ *ä—8’8˜B“<ˆDð ×"Ñ" D×$7Ñ$7¸¸BÓ$?Ð#@ÔAØ×"Ñ"¡B q£E 7Ô+Ø¤3 r£7Ñ*ˆFá“—‘ˆBØ—h‘h §¡Ó)�Ø˜R™�ð �Ü˜vž�AØ1�HØ1�HØ˜3�DØ'Ó2˜Ø™l˜Ø¤§¡Õ,Ø ŸK™K¨Ö,ñ 3ó "˜Ø×.Ñ.±°1³¨wÖ7ñ "æã!%˜AØ  D§H¡H�}Ø $× 6Ñ 6¹¸A¸2»°xÖ @ñ "&ð ˜A“vØ ™U q™Lšà ™Fšó% 'ô *ñ=ðN 	×Ñ¤§¢Ð);Ó <Ð=Ô>Ø×Ñ¤§¢Ð);Ó <Ð=Ô>Ø×Ñ¤§	¢	Ð*<Ó =Ð>Ô?Ø×Ñ¤§	¢	Ð*<Ó =Ð>Ô?ð 	×Ñ¤§¢Ð)<Ó =Ð>Ô?Ø×Ñ¤§¢Ð)<Ó =Ð>Ô?Ø×Ñ¤§¢Ð)<Ó =Ð>Ô?Ø×Ñ¤§¢¨Ó 5Ð6Ô7Ø×Ñ¤§¢¨Ó 5Ð6Ô7Ø×Ñ¤§¢¨Ó 5Ð6Õ7r   c                 óê   • [        S5       Vs/ s H  n[        S5      PM     nn[        U Vs/ s H  o0R                  U5      PM     sn5      nU R	                  [        U5      S5        g s  snf s  snf )Nr¥   ÚnanrA   )r–   r®   Úsetr}   ÚassertGreaterrp   )r"   rþ   r   Úzrb   s        r   Útest_py310_nan_hashÚ%TestNumberHashing.test_py310_nan_hashF  s[   € ô $)¨¤9Ó-¢9˜aŒU�5Ž\¡9ˆÐ-Ü©!Ó,ª! Q—:‘:˜a–=©!Ñ,Ó-ˆØ×Ñœ3˜s›8 QÕ'ùò .ùÚ,s
   ŽA+®A0©rÇ   ©ÚreturnN)r'   r(   r)   r*   Ú__doc__r   rÑ   rÖ   rÙ   rÞ   rã   rç   r  r   r  r+   Ú__classcell__©rË   s   @r   r¾   r¾   ä   sE   ø† ñõ÷"ò&ò
&ò
&ò6ò.ò58ðn ñ
(ó ö
(r   r¾   c                   óN   ^ • \ rS rSrSrU 4S jrS	U 4S jjrS rS rS r	Sr
U =r$ )
ÚTestTupleHashingiT  z
Test hashing of tuples.
c                 ó¨   >• [         S:¼  a:  [         S::  a0  [        R                  " 5       U l        [        R                  " S5        [
        TU ]  5       $ rÁ   rÅ   rÊ   s    €r   r   ÚTestTupleHashing.setUpY  rÍ   r   c                 óˆ   >• [         S:¼  a*  [         S::  a   [        R                  " U R                  5        [        TU ]  5       $ rÏ   rÐ   rÊ   s    €r   rÑ   ÚTestTupleHashing.tearDownb  rÓ   r   c                 óp   • U H+  nU Vs/ s H
  oB" U5      PM     nnU R                  U5        M-     g s  snf r   ræ   )r"   Úvalue_generatorÚsplitrˆ   r±   Útupless         r   Úcheck_tuplesÚTestTupleHashing.check_tuplesj  s5   € Û%ˆFÙ(.Ó/ª 1�e˜A–h©ˆFÐ/Ø×"Ñ" 6Ö*ò &ùÚ/s   Š3c                 óê   ^ ^• [         R                  mU U4S jnU U4S jnT R                  T R                  5       U5        T R                  T R                  5       U5        T R	                  / SQ5        g )Nc                 óT   >• TR                  TU 5      n U T" S5      -  U T" S5      -  4$ )z!
Split i's bits into 2 integers.
rí   rì   ©r¢   ©rþ   r"   r—   s    €€r   Úsplit2Ú8TestTupleHashing.test_homogeneous_tuples.<locals>.split2r  s=   ø€ ð ×#Ñ# C¨Ó+ˆAØ™Ð.Ó/Ñ/Ø™Ð.Ó/Ñ/ðð r   c                 óh   >• TR                  TU 5      n U T" S5      -  U T" S5      -  U T" S5      -  4$ )z!
Split i's bits into 3 integers.
l   ’$’$’$’$ l   $I$I$I$I l   IIII	 r!  r"  s    €€r   Úsplit3Ú8TestTupleHashing.test_homogeneous_tuples.<locals>.split3{  sK   ø€ ð ×#Ñ# C¨Ó+ˆAØ™Ð.Ó/Ñ/Ø™Ð.Ó/Ñ/Ø™Ð.Ó/Ñ/ðð r   )©é   )r   )r   r   )r¦   )r¦   r(  )éþÿÿÿrC   )rl   é   )r’   rô   r  r›   rŒ   )r"   r#  r&  r—   s   `  @r   Útest_homogeneous_tuplesÚ(TestTupleHashing.test_homogeneous_tupleso  s_   ù€ Ü�i‰iˆö	ö	ð 	×Ñ˜$×*Ñ*Ó,¨fÔ5Ø×Ñ˜$×*Ñ*Ó,¨fÔ5ð
 	×Ñò  >õ 	?r   c                 óN   • SnS nU R                  U R                  5       U5        g )Nl            c                 ó†   • U S-  nU S-  U S-	  S-  -  n[         R                  " U5      [         R                  " US-  5      4$ )Nrí   l   ª*UU é    g-Cëâ6?)r’   r¼   rÝ   )rþ   r±   Úbs      r   r  Ú9TestTupleHashing.test_heterogeneous_tuples.<locals>.split‘  sD   € ØÐ&Ñ&ˆAØ�Z‘ Q¨"¡W°
Ñ$:Ñ;ˆAÜ—8’8˜A“;¤§
¢
¨1¨v©:Ó 6Ð6Ð6r   )r  r›   )r"   Úmodulor  s      r   Útest_heterogeneous_tuplesÚ*TestTupleHashing.test_heterogeneous_tuplesŽ  s'   € Øˆò	7ð
 	×Ñ˜$×*Ñ*Ó,¨eÕ4r   r  r  )r'   r(   r)   r*   r  r   rÑ   r  r,  r4  r+   r  r  s   @r   r  r  T  s&   ø† ñõ÷"ò+ò
?÷>5ð 5r   r  c                   ó\   • \ rS rSrS rS rS r\R                  " S5      S 5       r	S r
Srg	)
ÚTestUnicodeHashingi™  c                 ó¾  • Sn[        [        U5      5       H  nU R                  US U /5        M     SnUR                  [	        U5      5      n[        [        U5      5       H  nU R                  US U /5        M     SnUR                  [	        U5      5      n[        [        U5      5       H  nU R                  US U /5        M     SnU R                  U5        g )NÚabcdefghijklmnopqrstuvwxyzu   çœ¼u   ðŸ��âš¡Ú )r–   rp   rŒ   Újoinr‚   )r"   Úkind1_stringrþ   ÚsepÚkind2_stringÚkind4_stringÚempty_strings          r   Útest_basic_unicodeÚ%TestUnicodeHashing.test_basic_unicode›  sÔ   € Ø3ˆÜ”s˜<Ó(Ö)ˆAØ×"Ñ" L°°!Ð$4Ð#5Ö6ñ *ð ˆØ—x‘x¤ \Ó 2Ó3ˆÜ”s˜<Ó(Ö)ˆAØ×"Ñ" L°°!Ð$4Ð#5Ö6ñ *ð ˆØ—x‘x¤ \Ó 2Ó3ˆÜ”s˜<Ó(Ö)ˆAØ×"Ñ" L°°!Ð$4Ð#5Ö6ñ *ð ˆØ×Ñ˜|Õ,r   c                 óš   • Sn[        SS9S 5       n[        U5      S   nU R                  US:g  5        U R                  U" U5      U5        g )Nr9  Tr{   c                 ó   • U R                   $ r   )Ú_hashr   s    r   ÚfnÚ4TestUnicodeHashing.test_hash_passthrough.<locals>.fn²  s   € à—7‘7ˆNr   r‘   ©r   r   Ú
assertTruerq   ©r"   r<  rF  Ú
hash_values       r   Útest_hash_passthroughÚ(TestUnicodeHashing.test_hash_passthrough­  sW   € ð 4ˆä	�dÑ	ñ	ó 
ð	ô 2°,Ó?ÀÑCˆ
Ø�‰˜
 bÑ(Ô)Ø×Ñ™˜LÓ)¨:Õ6r   c                 óœ   • Sn[        SS9S 5       n[        U5      S   nU R                  US:g  5        U R                  U" U5      X345        g )Nr9  Tr{   c                 ó0   • U R                   [        U 5      4$ r   )rE  r   r   s    r   rF  Ú9TestUnicodeHashing.test_hash_passthrough_call.<locals>.fn¾  s   € à—7‘7œD ›GÐ#Ð#r   r‘   rH  rJ  s       r   Útest_hash_passthrough_callÚ-TestUnicodeHashing.test_hash_passthrough_callº  sX   € à3ˆä	�dÑ	ñ	$ó 
ð	$ô 2°,Ó?ÀÑCˆ
Ø�‰˜
 bÑ(Ô)Ø×Ñ™˜LÓ)¨JÐ+CÕDr   z/Needs hash computation at const unpickling timec                 ó‚   • [        SS9S 5       nU" 5       n[        S5      nU R                  U[        U5      S   5        g )NTr{   c                  ó
   • Sn U $ )Nr9  r&   r   s    r   rF  Ú0TestUnicodeHashing.test_hash_literal.<locals>.fnÊ  s   € à,ˆAØˆHr   r9  r‘   )r   r   rq   r   )r"   rF  r‰   Útmps       r   Útest_hash_literalÚ$TestUnicodeHashing.test_hash_literalÆ  sJ   € ô 
�dÑ	ñ	ó 
ð	ñ ‹dˆÜÐ/Ó0ˆØ×Ñ˜Ô;¸CÓ@ÀÑDÕFr   c                 óN  • S n[        SS9" U5      nSnU" U5      nU" U5      n[        U5      n[        U5      nU R                  US S US S 5        U R                  US   US   :g  5        SnU" U5      nU" U5      n[        U5      n[        U5      nU R                  Xg5        g )Nc                 ó:   • SnSnX-   nU (       a  [        U5        U$ )NÚaaaau   çœ¼çœ¼çœ¼çœ¼r   )Údo_hashÚconst1Úconst2Únews       r   ÚimplÚ:TestUnicodeHashing.test_hash_on_str_creation.<locals>.implÕ  s"   € ØˆFØ#ˆFØ‘/ˆCÞÜ�S”	ØˆJr   Tr{   Fr‘   )r   r   rq   rI  )r"   r`  ÚjittedÚcompute_hashrt   rs   r±   r1  s           r   Útest_hash_on_str_creationÚ,TestUnicodeHashing.test_hash_on_str_creationÒ  s¸   € ò	ô ˜dÒ# DÓ)ˆð ˆÙ˜Ó%ˆÙ�\Ó"ˆÜ)¨(Ó3ˆÜ)¨#Ó.ˆØ×Ñ˜˜3˜B˜  3 B Ô(Ø�‰˜˜"™  2¡™Ô'ð ˆÙ˜Ó%ˆÙ�\Ó"ˆÜ)¨(Ó3ˆÜ)¨#Ó.ˆØ×Ñ˜Õr   r&   N)r'   r(   r)   r*   rA  rL  rQ  ÚunittestÚskiprW  rd  r+   r&   r   r   r7  r7  ™  s8   † ò-ò$7ò
Eð ‡]‚]ÐDÓEñ	Gó Fð	Gõr   r7  c                   ó    • \ rS rSrS rS rSrg)ÚTestUnhashableió  c                 ó4  • [         R                  " 5       R                  [        R                  [        R                  5      [         R
                  " 5       R                  [        R                  5      [        R                  " S5      4n[        SS9" [        5      nU Hf  nU R                  [        5       nU" U5        S S S 5        S[        [        U5      5       S3nU R                  U[        WR                   5      5        Mh     g ! , (       d  f       NP= f)Nrl   Tr{   zunhashable type: 'Ú')r   ÚDictÚemptyr	   r¼   ÚListÚ
empty_listr’   Úonesr   r   ÚassertRaisesÚ	TypeErrorr\   r   ÚassertInÚ	exception)r"   Úunhashablesr}   rù   Úraisesrt   s         r   Útest_hash_unhashableÚ#TestUnhashable.test_hash_unhashable÷  s¸   € Ü—z’z“|×)Ñ)¬%¯+©+´u·{±{ÓCÜ—z’z“|×.Ñ.¬u¯{©{Ó;Ü—w’w˜q“zð#ˆô ˜TÒ"¤<Ó0ˆÛˆBØ×"Ñ"¤9Ô-°Ù�b”	÷ .à+¬C´°r³
«OÐ+<¸AÐ>ˆHØ�M‰M˜(¤C¨×(8Ñ(8Ó$9Ö:ò	 ß-Õ-ús   Â6	D	Ä	
D	c                 óÜ   • [        SS9S 5       nU R                  [        5       nU" 5         S S S 5        SnU R                  U[	        WR
                  5      5        g ! , (       d  f       N6= f)NTr{   c                  ó6   • [        [        R                  5        g r   )r   r’   Úcosr&   r   r   ÚfooÚ0TestUnhashable.test_no_generic_hash.<locals>.foo  s   € ä”—‘�Lr   z"No __hash__ is defined for object )r   rq  rr  rs  r\   rt  )r"   r|  rv  rt   s       r   Útest_no_generic_hashÚ#TestUnhashable.test_no_generic_hash  s`   € ô 
�dÑ	ñ	ó 
ð	ð ×ÑœyÔ)¨VÙŒE÷ *ð 9ˆØ�‰�h¤ F×$4Ñ$4Ó 5Õ6÷	 *Õ)ús   ¥AÁ
A+r&   N)r'   r(   r)   r*   rw  r~  r+   r&   r   r   ri  ri  ó  s   † ò	;õ7r   ri  Ú__main__)'r  rf  rY   r    r   Úcollectionsr   Útextwrapr   Únumpyr’   Únumbar   r   r   r   Ú
numba.corer	   r
   Únumba.tests.supportr   r   r   Únumba.cpython.unicoder   Únumba.cpythonr   Únumba.np.numpy_supportr   r   r   r-   rx   r¾   r  r7  ri  r'   Úmainr&   r   r   Ú<module>r‹     sÆ   ðñó ã 	Û 
Û Ý #Ý ã ç ,Ó ,ß #Û ÷4ñ 4õ ?Ý !Ý 0òô*D�xô *DôZP0�8ô P0ôfBˆxô BôJm(˜ô m(ô`B5�xô B5ôJW˜ô Wôt7�Xô 7ð@ ˆzÓØ‡M‚M…Oð r   