§
    ƒÛg§  ã                   ó°   — d dl Zd dlmZ d dlmZ d dlZd dlmZm	Z	 d„ Z
d„ Z G d„ de¦  «        Z G d	„ d
e¦  «        Zedk    r ej        ¦   «          dS dS )é    N)Únjit)ÚTypingError)ÚTestCaseÚforce_pyobj_flagsc                  ó   — dddœS )Né   é   )r   é   © r   ó    úL/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_dicts.pyÚ	build_mapr      s   € Ø�Qˆ<ˆ<Ðr   c                  ó   — t           } d| | diS )Nr   r   )r   )Úxs    r   Úbuild_map_from_local_varsr      s   € å€AØˆq�!�Qˆ<Ðr   c                   ó"   — e Zd Zefd„Zefd„ZdS )ÚDictTestCasec                 ó>   — |                       t          |¬¦  «         d S ©N)Úflags)Úrun_nullary_funcr   ©Úselfr   s     r   Útest_build_mapzDictTestCase.test_build_map   s!   € Ø×Ò�i¨uÐÑ5Ô5Ð5Ð5Ð5r   c                 ó>   — |                       t          |¬¦  «         d S r   )r   r   r   s     r   Útest_build_map_from_local_varsz+DictTestCase.test_build_map_from_local_vars   s"   € Ø×ÒÕ7¸uÐÑEÔEÐEÐEÐEr   N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r      sK   € € € € € à#4ð 6ð 6ð 6ð 6ð 4Eð Fð Fð Fð Fð Fð Fr   r   c                   óf   — 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dS )ÚTestCompiledDictzSTesting `dict()` and `{}` usage that are redirected to
    `numba.typed.Dict`.
    c                 ój   — t           d„ ¦   «         } |¦   «         }|                      |ddi¦  «         d S )Nc                  ó,   — t          ¦   «         } d| d<   | S ©Nr
   r   ©Údict©Úds    r   Úfooz+TestCompiledDict.test_use_dict.<locals>.foo    s   € å‘”ˆAØˆAˆa‰DØˆHr   r   r
   ©r   ÚassertEqual©r   r)   r(   s      r   Útest_use_dictzTestCompiledDict.test_use_dict   óH   € å	ð	ð 	ñ 
Œð	ð
 ˆC‰EŒEˆØ×Ò˜˜Q ˜FÑ#Ô#Ð#Ð#Ð#r   c           
      ó¤  — t           d„ ¦   «         }t           d„ ¦   «         }g d¢g d¢ft          j        d¦  «        t          j        d¦  «        fg d¢dfg d¢dff}|D ]B\  }} |||¦  «        }|                      |t	          t          ||¦  «        ¦  «        ¦  «         ŒC|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                 ó@   — t          t          | |¦  «        ¦  «        }|S )N)r&   Úzip)ÚaÚbr(   s      r   Údict_iterable_1zETestCompiledDict.test_use_dict_iterable_args.<locals>.dict_iterable_1+   s   € å•S˜˜A‘Y”Y‘”ˆAØˆHr   c                  ó$   — t          g d¢¦  «        S )N))Úsapei+  )Úguidoi  )Újacki  r%   r   r   r   Údict_iterable_2zETestCompiledDict.test_use_dict_iterable_args.<locals>.dict_iterable_20   s   € õ ÐIÐIÐIÑJÔJÐJr   )r   r
   r	   )é   é   é   r:   Úabc)r   r
   r	   r:   )r   ÚnpÚaranger+   r&   r1   Úpy_func)r   r4   r9   Úinpsr2   r3   r(   s          r   Útest_use_dict_iterable_argsz,TestCompiledDict.test_use_dict_iterable_args)   sÿ   € å	ð	ð 	ñ 
Œð	õ 
ð	Kð 	Kñ 
Œð	Kð
 ˆYˆY˜	˜	˜	Ð"ÝŒY�q‰\Œ\�2œ9 Q™<œ<Ð(ØˆYˆY˜ÐØˆ\ˆ\˜5Ð!ð	
ˆð ð 	1ð 	1‰DˆAˆqØ�  1Ñ%Ô%ˆAØ×Ò˜Q¥¥S¨¨A¡Y¤Y¡¤Ñ0Ô0Ð0Ð0à×Ò˜˜Ñ*Ô*¨O×,CÒ,CÑ,EÔ,EÑFÔFÐFÐFÐFr   c                 óˆ   — t           d„ ¦   «         }t          ddi¦  «        } |¦   «         }|                      ||¦  «         d S )Nc                  ó    — t          d¦  «        S )N)©r   r
   rE   r%   r   r   r   Úctorz7TestCompiledDict.test_ctor_iterable_tuple.<locals>.ctorB   s   € åÐ(Ñ)Ô)Ð)r   r   r
   )r   r&   ÚassertEquals)r   rF   ÚexpectedÚgots       r   Útest_ctor_iterable_tuplez)TestCompiledDict.test_ctor_iterable_tupleA   sS   € Ý	ð	*ð 	*ñ 
Œð	*õ ˜˜A˜‘<”<ˆØˆd‰fŒfˆØ×Ò˜( CÑ(Ô(Ð(Ð(Ð(r   c                 óº  — ddl m} t          d„ ¦   «         }t          d„ ¦   «         }t          d„ ¦   «         }t          d„ ¦   «         }d}d}d	}|t          |f|t          |f|t          |f|t          |fg}	|	D ]e\  }
}}|                      |¦  «        5 } |
¦   «          d d d ¦  «         n# 1 swxY w Y   |                      |t          |j        ¦  «        ¦  «         Œfd S )
Nr   )Ú_message_dict_supportc                  óF   — t          ¦   «         } d| d<   t          | ¦  «        S r$   r%   r'   s    r   Úctor1z;TestCompiledDict.test_unsupported_dict_usage.<locals>.ctor1N   s   € å‘”ˆAØˆAˆa‰DÝ˜‘7”7ˆNr   c                  ó    — t          d¦  «        S )N)rE   )r	   r2   r%   r   r   r   Úctor2z;TestCompiledDict.test_unsupported_dict_usage.<locals>.ctor2T   s   € åÐ*Ñ+Ô+Ð+r   c                  ó    — t          d¦  «        S )N))r2   r3   Úc)r(   ÚeÚfr%   r   r   r   Úctor3z;TestCompiledDict.test_unsupported_dict_usage.<locals>.ctor3X   s   € åÐ:Ñ;Ô;Ð;r   c                  ó,   — t          i dfi dff¦  «        S ©Nr   r
   r%   r   r   r   Úctor4z;TestCompiledDict.test_unsupported_dict_usage.<locals>.ctor4\   s   € å˜"˜a˜ 2 q 'Ð*Ñ+Ô+Ð+r   z(Non-iterable args used in dict(iterable)z0dictionary update sequence element has length 3;zUnhashable type)Únumba.core.typing.dictdeclrL   r   r   ÚassertRaisesÚassertInÚstrÚ	exception)r   rL   rN   rP   rU   rX   Ú_non_iter_argsÚ_dict_upd_item_lenÚ_unhashable_typeÚinputsÚfuncÚexcÚmsgÚraisess                 r   Útest_unsupported_dict_usagez,TestCompiledDict.test_unsupported_dict_usageJ   s|  € àDÐDÐDÐDÐDÐDå	ð	ð 	ñ 
Œð	õ
 
ð	,ð 	,ñ 
Œð	,õ 
ð	<ð 	<ñ 
Œð	<õ 
ð	,ð 	,ñ 
Œð	,ð DˆØOÐØ,Ðð •KÐ!6Ð7Ø•K Ð0Ø•KÐ!3Ð4Ø•KÐ!1Ð2ð	
ˆð %ð 	6ð 	6‰NˆD�#�sØ×"Ò" 3Ñ'Ô'ð ¨6Ø�‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð �MŠM˜#�s 6Ô#3Ñ4Ô4Ñ5Ô5Ð5Ð5ð		6ð 	6s   ÂB'Â'B+	Â.B+	c                 ój   — t           d„ ¦   «         } |¦   «         }|                      |ddi¦  «         d S )Nc                  ó   — i } d| d<   | S r$   r   r'   s    r   r)   z2TestCompiledDict.test_use_curlybraces.<locals>.foos   s   € àˆAØˆAˆa‰DØˆHr   r   r
   r*   r,   s      r   Útest_use_curlybracesz%TestCompiledDict.test_use_curlybracesq   r.   r   c                 ój   — t           d„ ¦   «         } |¦   «         }|                      |ddi¦  «         d S )Nc                  ó
   — ddiS rW   r   r   r   r   r)   z=TestCompiledDict.test_use_curlybraces_with_init1.<locals>.foo~   s   € à�q�6ˆMr   r   r
   r*   r,   s      r   Útest_use_curlybraces_with_init1z0TestCompiledDict.test_use_curlybraces_with_init1|   sH   € å	ð	ð 	ñ 
Œð	ð ˆC‰EŒEˆØ×Ò˜˜Q ˜FÑ#Ô#Ð#Ð#Ð#r   c                 ón   — t           d„ ¦   «         } |¦   «         }|                      |ddddœ¦  «         d S )Nc                  ó   — ddddœS )Nçš™™™™™@çš™™™™™@çffffff@©r   r	   r;   r   r   r   r   r)   z@TestCompiledDict.test_use_curlybraces_with_initmany.<locals>.foo‡   s   € à˜s sÐ+Ð+Ð+r   ro   rp   rq   rr   r*   r,   s      r   Ú"test_use_curlybraces_with_initmanyz3TestCompiledDict.test_use_curlybraces_with_initmany…   sN   € å	ð	,ð 	,ñ 
Œð	,ð ˆC‰EŒEˆØ×Ò˜ ¨°Ð4Ð4Ñ5Ô5Ð5Ð5Ð5r   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó   — ddddœS )Nro   r:   r<   rr   r   r   r   r   r)   zATestCompiledDict.test_curlybraces_init_with_coercion.<locals>.foo�   s   € à˜q QÐ'Ð'Ð'r   ©r   r+   r@   ©r   r)   s     r   Ú#test_curlybraces_init_with_coercionz4TestCompiledDict.test_curlybraces_init_with_coercionŽ   sG   € å	ð	(ð 	(ñ 
Œð	(ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r   c                 ó˜   — t           d„ ¦   «         }d\  }}|                       |||¦  «        |                     ||¦  «        ¦  «         d S )Nc                 ó   — | d|| |z   iS ©Nr   r   )r   Úys     r   r)   z?TestCompiledDict.test_use_curlybraces_with_manyvar.<locals>.foo˜   s   € à�q˜!˜Q ™UÐ#Ð#r   )é
   é   rv   )r   r)   r   r|   s       r   Ú!test_use_curlybraces_with_manyvarz2TestCompiledDict.test_use_curlybraces_with_manyvar–   sZ   € å	ð	$ð 	$ñ 
Œð	$ð ‰ˆˆ1Ø×Ò˜˜˜Q ™œ C§K¢K°°1Ñ$5Ô$5Ñ6Ô6Ð6Ð6Ð6r   c                 ó†   — t           d„ ¦   «         }|                       |¦   «         |                     ¦   «         ¦  «         d S )Nc                  ó>   — t          ¦   «         } ddi| d<   ddi| d<   | S )Nr   r	   r:   r
   r%   ©Úks    r   r)   z=TestCompiledDict.test_mixed_curlybraces_and_dict.<locals>.foo¡   s*   € å‘”ˆAØ�q�6ˆAˆa‰DØ�q�6ˆAˆa‰DØˆHr   rv   rw   s     r   Útest_mixed_curlybraces_and_dictz0TestCompiledDict.test_mixed_curlybraces_and_dictŸ   sG   € å	ð	ð 	ñ 
Œð	ð 	×Ò˜˜™œ §¢¡¤Ñ.Ô.Ð.Ð.Ð.r   c                 óî   — t           d„ ¦   «         }|                      t          ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Nc                  ó   — dd i} | S r{   r   r‚   s    r   r)   z;TestCompiledDict.test_dict_use_with_none_value.<locals>.foo¬   s   € à�D�	ˆAØˆHr   z&Dict.value_type cannot be of type none©r   rZ   r   r[   r\   r]   ©r   r)   re   s      r   Útest_dict_use_with_none_valuez.TestCompiledDict.test_dict_use_with_none_valueª   s¿   € å	ð	ð 	ñ 
Œð	ð ×Ò�{Ñ+Ô+ð 	¨vØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠØ4Ý�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
ó   «AÁAÁ	Ac                 óð   — t           d„ ¦   «         }|                      t          ¦  «        5 } |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Nc                 ó   — | rdnd }d|i}|S ©Ng      @r   r   )ÚchoiceÚoptionalrƒ   s      r   r)   z?TestCompiledDict.test_dict_use_with_optional_value.<locals>.foo»   s   € à$Ð.�s�s¨$ˆHØ�H�ˆAØˆHr   Tz7Dict.value_type cannot be of type OptionalType(float64)r‡   rˆ   s      r   Ú!test_dict_use_with_optional_valuez2TestCompiledDict.test_dict_use_with_optional_value¹   sÁ   € å	ð	ð 	ñ 
Œð	ð
 ×Ò�{Ñ+Ô+ð 	¨vØˆC�‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠØEÝ�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
ó   «AÁAÁ
Ac                 óð   — t           d„ ¦   «         }|                      t          ¦  «        5 } |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Nc                 ó   — | rdnd di}|S r�   r   )rŽ   rƒ   s     r   r)   z=TestCompiledDict.test_dict_use_with_optional_key.<locals>.fooÊ   s   € àÐ(�� D¨!Ð,ˆAØˆHr   Tz5Dict.key_type cannot be of type OptionalType(float64)r‡   rˆ   s      r   Útest_dict_use_with_optional_keyz0TestCompiledDict.test_dict_use_with_optional_keyÈ   sÁ   € å	ð	ð 	ñ 
Œð	ð ×Ò�{Ñ+Ô+ð 	¨vØˆC�‰IŒIˆIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠØCÝ�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
r‘   c                 óî   — t           d„ ¦   «         }|                      t          ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   |                      dt	          |j        ¦  «        ¦  «         d S )Nc                  ó   — d di} | S r{   r   r‚   s    r   r)   z9TestCompiledDict.test_dict_use_with_none_key.<locals>.fooØ   s   € à�q�	ˆAØˆHr   z$Dict.key_type cannot be of type noner‡   rˆ   s      r   Útest_dict_use_with_none_keyz,TestCompiledDict.test_dict_use_with_none_keyÖ   s¿   € å	ð	ð 	ñ 
Œð	ð ×Ò�{Ñ+Ô+ð 	¨vØˆC‰EŒEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à�ŠØ2Ý�Ô Ñ!Ô!ñ	
ô 	
ð 	
ð 	
ð 	
rŠ   N)r   r   r   Ú__doc__r-   rB   rJ   rf   ri   rl   rs   rx   r   r„   r‰   r�   r”   r—   r   r   r   r!   r!      sô   € € € € € ðð ð	$ð 	$ð 	$ðGð Gð Gð0)ð )ð )ð%6ð %6ð %6ðN	$ð 	$ð 	$ð$ð $ð $ð6ð 6ð 6ð/ð /ð /ð7ð 7ð 7ð	/ð 	/ð 	/ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð
ð 
ð 
ð 
ð 
r   r!   Ú__main__)Únumpyr>   Únumbar   Únumba.core.errorsr   ÚunittestÚnumba.tests.supportr   r   r   r   r   r!   r   Úmainr   r   r   ú<module>r       sÿ   ðØ Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø €€€Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ðð ð ðFð Fð Fð Fð F�8ñ Fô Fð FðH
ð H
ð H
ð H
ð H
�xñ H
ô H
ð H
ðT ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   