
    xKg                         d dl Zd dlmZmZ d dlmZ d dlZd dlm	Z	 d Z
d Z G d de	      Z G d	 d
e	      Zedk(  r ej                          yy)    N)njitjit)TypingErrorTestCasec                      dddS )N      )r       r       Z/home/alanp/www/video.onchill/myenv/lib/python3.12/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d Zd Zd Zy)DictTestCasec                 `     t        d      |      }| j                   |        |              y )NT)forceobj)r   assertPreciseEqual)selfpyfunccfuncs      r   checkzDictTestCase.check   s'    "T"6*%'2r   c                 .    | j                  t               y N)r   r   r   s    r   test_build_mapzDictTestCase.test_build_map   s    

9r   c                 .    | j                  t               y r   )r   r   r   s    r   test_build_map_from_local_varsz+DictTestCase.test_build_map_from_local_vars   s    

,-r   N)__name__
__module____qualname__r   r   r!   r   r   r   r   r      s    3.r   r   c                   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)TestCompiledDictzSTesting `dict()` and `{}` usage that are redirected to
    `numba.typed.Dict`.
    c                 R    t         d        } |       }| j                  |ddi       y )Nc                  $    t               } d| d<   | S Nr   r	   dictds    r   fooz+TestCompiledDict.test_use_dict.<locals>.foo$   s    AAaDHr   r	   r   r   assertEqualr   r.   r-   s      r   test_use_dictzTestCompiledDict.test_use_dict"   1    		 
	
 EQF#r   c           
      f   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 ]3  \  }} |||      }| j                  |t	        t        ||                   5 | j                   |       |j                                y )Nc                 0    t        t        | |            }|S r   )r+   zip)abr-   s      r   dict_iterable_1zETestCompiledDict.test_use_dict_iterable_args.<locals>.dict_iterable_1/   s    SAY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_24   s     IJJr   )r	   r   r
   )         r?   abc)r	   r   r
   r?   )r   nparanger0   r+   r6   py_func)r   r9   r>   inpsr7   r8   r-   s          r   test_use_dict_iterable_argsz,TestCompiledDict.test_use_dict_iterable_args-   s    		 
	 
	K 
	K
 	"YYq\299Q<(5!	
 DAq1%AQSAY0  	*O,C,C,EFr   c                 h    t         d        }t        ddi      } |       }| j                  ||       y )Nc                      t        d      S )N)r	   r   rJ   r*   r   r   r   ctorz7TestCompiledDict.test_ctor_iterable_tuple.<locals>.ctorF   s    ())r   r	   r   )r   r+   r0   )r   rK   expectedgots       r   test_ctor_iterable_tuplez)TestCompiledDict.test_ctor_iterable_tupleE   s:    		* 
	* A<f3'r   c                 z   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 ]L  \  }
}}| j	                  |      5 } |
        d d d        | j                  |t        j                               N y # 1 sw Y   1xY w)
Nr   )_message_dict_supportc                  6    t               } d| d<   t        |       S r)   r*   r,   s    r   ctor1z;TestCompiledDict.test_unsupported_dict_usage.<locals>.ctor1R   s    AAaD7Nr   c                      t        d      S )N)rJ   )r
   r7   r*   r   r   r   ctor2z;TestCompiledDict.test_unsupported_dict_usage.<locals>.ctor2X   s    *++r   c                      t        d      S )N))r7   r8   c)r-   efr*   r   r   r   ctor3z;TestCompiledDict.test_unsupported_dict_usage.<locals>.ctor3\   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2q'*++r   z(Non-iterable args used in dict(iterable)z0dictionary update sequence element has length 3;zUnhashable type)numba.core.typing.dictdeclrP   r   r   assertRaisesassertInstr	exception)r   rP   rR   rT   rY   r\   _non_iter_args_dict_upd_item_len_unhashable_typeinputsfuncexcmsgraisess                 r   test_unsupported_dict_usagez,TestCompiledDict.test_unsupported_dict_usageN   s    D		 
	
 
	, 
	, 
	< 
	< 
	, 
	, DO, K!67K0K!34K!12	
 %ND#s""3'6 ( MM#s6#3#345	 %''s   9B11B:	c                 R    t         d        } |       }| j                  |ddi       y )Nc                      i } d| d<   | S r)   r   r,   s    r   r.   z2TestCompiledDict.test_use_curlybraces.<locals>.foow   s    AAaDHr   r	   r   r/   r1   s      r   test_use_curlybracesz%TestCompiledDict.test_use_curlybracesu   r3   r   c                 R    t         d        } |       }| j                  |ddi       y )Nc                  
    ddiS r[   r   r   r   r   r.   z=TestCompiledDict.test_use_curlybraces_with_init1.<locals>.foo   s    q6Mr   r	   r   r/   r1   s      r   test_use_curlybraces_with_init1z0TestCompiledDict.test_use_curlybraces_with_init1   s1    		 
	 EQF#r   c                 V    t         d        } |       }| j                  |dddd       y )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    ss++r   rs   rt   ru   rv   r/   r1   s      r   "test_use_curlybraces_with_initmanyz3TestCompiledDict.test_use_curlybraces_with_initmany   s4    		, 
	, E45r   c                 f    t         d        }| j                   |       |j                                y )Nc                      ddddS )Nrs   r?   rA   rv   r   r   r   r   r.   zATestCompiledDict.test_curlybraces_init_with_coercion.<locals>.foo   s    qQ''r   r   r0   rE   r   r.   s     r   #test_curlybraces_init_with_coercionz4TestCompiledDict.test_curlybraces_init_with_coercion   s.    		( 
	( 	.r   c                 x    t         d        }d\  }}| j                   |||      |j                  ||             y )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   )
      rz   )r   r.   r   r   s       r   !test_use_curlybraces_with_manyvarz2TestCompiledDict.test_use_curlybraces_with_manyvar   s@    		$ 
	$ 1QCKK1$56r   c                 f    t         d        }| j                   |       |j                                y )Nc                  6    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q6AaDq6AaDHr   rz   r{   s     r   test_mixed_curlybraces_and_dictz0TestCompiledDict.test_mixed_curlybraces_and_dict   s.    		 
	 	.r   c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)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   r^   r   r_   r`   ra   r   r.   ri   s      r   test_dict_use_with_none_valuez.TestCompiledDict.test_dict_use_with_none_value   sV    		 
	 {+vE ,4  !	
 ,+   AA!c                     t         d        }| j                  t              5 } |d       d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)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$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   sX    		 
	
 {+vI ,E  !	
 ,+   	AA"c                     t         d        }| j                  t              5 } |d       d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)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   sX    		 
	 {+vI ,C  !	
 ,+r   c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)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   sV    		 
	 {+vE ,2  !	
 ,+r   N)r"   r#   r$   __doc__r2   rG   rN   rj   rm   rp   rw   r|   r   r   r   r   r   r   r   r   r   r&   r&      sO    	$G0(%6N	$$6/7	/



r   r&   __main__)numpyrC   numbar   r   numba.core.errorsr   unittestnumba.tests.supportr   r   r   r   r&   r"   mainr   r   r   <module>r      sS      )  (
.8 
.H
x H
T zHMMO r   