U
    9%e                     @   s|   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d Z
dd ZG d	d
 d
eZG dd deZedkrxe  dS )    N)njit)TypingError)TestCaseforce_pyobj_flagsc                   C   s
   dddS )N      )r       r	   r	   r	   U/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/numba/tests/test_dicts.py	build_map   s    r   c                  C   s   t } d| | diS )Nr   r   )r   )xr	   r	   r
   build_map_from_local_vars   s    r   c                   @   s$   e Zd ZefddZefddZdS )DictTestCasec                 C   s   | j t|d d S N)flags)run_nullary_funcr   selfr   r	   r	   r
   test_build_map   s    zDictTestCase.test_build_mapc                 C   s   | j t|d d S r   )r   r   r   r	   r	   r
   test_build_map_from_local_vars   s    z+DictTestCase.test_build_map_from_local_varsN)__name__
__module____qualname__r   r   r   r	   r	   r	   r
   r      s   r   c                   @   s   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )TestCompiledDictzSTesting `dict()` and `{}` usage that are redirected to
    `numba.typed.Dict`.
    c                 C   s&   t dd }| }| |ddi d S )Nc                  S   s   t  } d| d< | S Nr   r   dictdr	   r	   r
   foo    s    z+TestCompiledDict.test_use_dict.<locals>.foor   r   r   assertEqualr   r   r   r	   r	   r
   test_use_dict   s    
zTestCompiledDict.test_use_dictc                 C   s   t dd }t dd }dddgdd	d
gftdtdfdddgdfddddgdff}|D ](\}}|||}| |tt|| q^| | |  d S )Nc                 S   s   t t| |}|S )N)r   zip)abr   r	   r	   r
   dict_iterable_1+   s    zETestCompiledDict.test_use_dict_iterable_args.<locals>.dict_iterable_1c                   S   s   t dddgS )N)Zsapei+  )Zguidoi  )Zjacki  r   r	   r	   r	   r
   dict_iterable_20   s    zETestCompiledDict.test_use_dict_iterable_args.<locals>.dict_iterable_2r   r   r            abc)r   npZaranger!   r   r$   py_func)r   r'   r(   Zinpsr%   r&   r   r	   r	   r
   test_use_dict_iterable_args)   s    


z,TestCompiledDict.test_use_dict_iterable_argsc                 C   s.   t dd }tddi}| }| || d S )Nc                   S   s   t dS )N)r   r   r0   r   r	   r	   r	   r
   ctorB   s    z7TestCompiledDict.test_ctor_iterable_tuple.<locals>.ctorr   r   )r   r   ZassertEquals)r   r1   expectedgotr	   r	   r
   test_ctor_iterable_tupleA   s
    
z)TestCompiledDict.test_ctor_iterable_tuplec              
   C   s   ddl m} tdd }tdd }tdd }td	d
 }d}d}d}|t|f|t|f|t|f|t|fg}	|	D ]8\}
}}| |}|
  W 5 Q R X | |t|j qpd S )Nr   )_message_dict_supportc                  S   s   t  } d| d< t | S r   r   r   r	   r	   r
   ctor1N   s    z;TestCompiledDict.test_unsupported_dict_usage.<locals>.ctor1c                   S   s   t dS )N)r0   )r   r%   r   r	   r	   r	   r
   ctor2T   s    z;TestCompiledDict.test_unsupported_dict_usage.<locals>.ctor2c                   S   s   t dS )N))r%   r&   c)r   efr   r	   r	   r	   r
   ctor3X   s    z;TestCompiledDict.test_unsupported_dict_usage.<locals>.ctor3c                   S   s   t i dfi dffS Nr   r   r   r	   r	   r	   r
   ctor4\   s    z;TestCompiledDict.test_unsupported_dict_usage.<locals>.ctor4z(Non-iterable args used in dict(iterable)z0dictionary update sequence element has length 3;zUnhashable type)Znumba.core.typing.dictdeclr5   r   r   assertRaisesassertInstr	exception)r   r5   r6   r7   r;   r=   Z_non_iter_argsZ_dict_upd_item_lenZ_unhashable_typeinputsfuncexcmsgraisesr	   r	   r
   test_unsupported_dict_usageJ   s*    



z,TestCompiledDict.test_unsupported_dict_usagec                 C   s&   t dd }| }| |ddi d S )Nc                  S   s   i } d| d< | S r   r	   r   r	   r	   r
   r   s   s    z2TestCompiledDict.test_use_curlybraces.<locals>.foor   r   r    r"   r	   r	   r
   test_use_curlybracesq   s    
z%TestCompiledDict.test_use_curlybracesc                 C   s&   t dd }| }| |ddi d S )Nc                   S   s   ddiS r<   r	   r	   r	   r	   r
   r   ~   s    z=TestCompiledDict.test_use_curlybraces_with_init1.<locals>.foor   r   r    r"   r	   r	   r
   test_use_curlybraces_with_init1|   s    
z0TestCompiledDict.test_use_curlybraces_with_init1c                 C   s*   t dd }| }| |dddd d S )Nc                   S   s   ddddS )N皙@皙@ffffff@r   r   r*   r	   r	   r	   r	   r
   r      s    z@TestCompiledDict.test_use_curlybraces_with_initmany.<locals>.foorJ   rK   rL   rM   r    r"   r	   r	   r
   "test_use_curlybraces_with_initmany   s    
z3TestCompiledDict.test_use_curlybraces_with_initmanyc                 C   s"   t dd }| | |  d S )Nc                   S   s   ddddS )NrJ   r)   r+   rM   r	   r	   r	   r	   r
   r      s    zATestCompiledDict.test_curlybraces_init_with_coercion.<locals>.foor   r!   r.   r   r   r	   r	   r
   #test_curlybraces_init_with_coercion   s    
z4TestCompiledDict.test_curlybraces_init_with_coercionc                 C   s2   t dd }d\}}| |||||| d S )Nc                 S   s   | d|| | iS Nr   r	   )r   yr	   r	   r
   r      s    z?TestCompiledDict.test_use_curlybraces_with_manyvar.<locals>.foo)
      rO   )r   r   r   rS   r	   r	   r
   !test_use_curlybraces_with_manyvar   s    
z2TestCompiledDict.test_use_curlybraces_with_manyvarc                 C   s"   t dd }| | |  d S )Nc                  S   s"   t  } ddi| d< ddi| d< | S )Nr   r   r)   r   r   kr	   r	   r
   r      s    z=TestCompiledDict.test_mixed_curlybraces_and_dict.<locals>.foorO   rP   r	   r	   r
   test_mixed_curlybraces_and_dict   s    
z0TestCompiledDict.test_mixed_curlybraces_and_dictc              	   C   s>   t dd }| t}|  W 5 Q R X | dt|j d S )Nc                  S   s   dd i} | S rR   r	   rW   r	   r	   r
   r      s    z;TestCompiledDict.test_dict_use_with_none_value.<locals>.fooz&Dict.value_type cannot be of type noner   r>   r   r?   r@   rA   r   r   rF   r	   r	   r
   test_dict_use_with_none_value   s    
z.TestCompiledDict.test_dict_use_with_none_valuec              	   C   s@   t dd }| t}|d W 5 Q R X | dt|j d S )Nc                 S   s   | rdnd }d|i}|S Ng      @r   r	   )choiceoptionalrX   r	   r	   r
   r      s    z?TestCompiledDict.test_dict_use_with_optional_value.<locals>.fooTz7Dict.value_type cannot be of type OptionalType(float64)rZ   r[   r	   r	   r
   !test_dict_use_with_optional_value   s    
z2TestCompiledDict.test_dict_use_with_optional_valuec              	   C   s@   t dd }| t}|d W 5 Q R X | dt|j d S )Nc                 S   s   | rdnd di}|S r]   r	   )r^   rX   r	   r	   r
   r      s    z=TestCompiledDict.test_dict_use_with_optional_key.<locals>.fooTz5Dict.key_type cannot be of type OptionalType(float64)rZ   r[   r	   r	   r
   test_dict_use_with_optional_key   s    
z0TestCompiledDict.test_dict_use_with_optional_keyc              	   C   s>   t dd }| t}|  W 5 Q R X | dt|j d S )Nc                  S   s   d di} | S rR   r	   rW   r	   r	   r
   r      s    z9TestCompiledDict.test_dict_use_with_none_key.<locals>.fooz$Dict.key_type cannot be of type nonerZ   r[   r	   r	   r
   test_dict_use_with_none_key   s    
z,TestCompiledDict.test_dict_use_with_none_keyN)r   r   r   __doc__r#   r/   r4   rG   rH   rI   rN   rQ   rV   rY   r\   r`   ra   rb   r	   r	   r	   r
   r      s   	'			r   __main__)numpyr-   Znumbar   Znumba.core.errorsr   ZunittestZnumba.tests.supportr   r   r   r   r   r   r   mainr	   r	   r	   r
   <module>   s   	 K