o
    8ήc                     @   sJ   d dl Z d dlmZ d dlmZ G dd de jZedkr#e   dS dS )    N)captured_stdout)typedc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
DocsLiteralContainerUsageTestc                    s   t  8 dd l ddlm}m ddlm} dd |fdd}| fdd	}| }t| W d    n1 s>w   Y  | |d
 d S )Nr   )njittypesoverloadc                 S      d S N xr   r   \/tmp/pip-target-vg8gfxp4/lib/python/numba/tests/doc_examples/test_literal_container_usage.py
specialize      zZDocsLiteralContainerUsageTest.test_ex_literal_dict_compile_time_consts.<locals>.specializec                    s   | j }g }| D ]9\}}t|jr8|j }|dkr |d q	|dkr*|d q	t|tr7||j |  q	|dj|jd q	t|  fdd}|S )	NcatMeow!dogWoof!zArray(dim={dim})dimc                        S r
   r   r   const_stringsr   r   impl'   r   zkDocsLiteralContainerUsageTest.test_ex_literal_dict_compile_time_consts.<locals>.ol_specialize.<locals>.impl)	literal_valueitems
isinstanceLiteralappendintformatndimtuple)r   ld
const_exprkvlvr   )r   r   r   ol_specialize   s    
z]DocsLiteralContainerUsageTest.test_ex_literal_dict_compile_time_consts.<locals>.ol_specializec                     s   dddd  dd} | S )N      r   r      )abcde)ones)pets_ints_and_array)npr   r   r   foo+   s   zSDocsLiteralContainerUsageTest.test_ex_literal_dict_compile_time_consts.<locals>.foo)r,   bbr   r   zArray(dim=1)	r   numpynumbar   r   numba.extendingr   printassertEqual)selfr   r   r(   r4   resultr   )r3   r   r   r   (test_ex_literal_dict_compile_time_consts   s   
,zFDocsLiteralContainerUsageTest.test_ex_literal_dict_compile_time_constsc           	         s   t  3 ddlm}m  ddlm} dd | fdd}|fdd	}| }t| W d    n1 s9w   Y  t }d
dddd	 D ]\}}|||< qK| 
|| d S )Nr   r   	literallyr   c                 S   r	   r
   r   r   r   r   r   r   A   r   z`DocsLiteralContainerUsageTest.test_ex_initial_value_dict_compile_time_consts.<locals>.specializec                    s:   | j }|d u r fddS |ddddksJ  fddS )Nc                        | S r
   r   r   r?   r   r   <lambda>H       zuDocsLiteralContainerUsageTest.test_ex_initial_value_dict_compile_time_consts.<locals>.ol_specialize.<locals>.<lambda>r)   r*      r,   r-   r.   c                    r@   r
   r   r   rA   r   r   rB   J   rC   initial_valuer   ivrA   r   r   r(   D   s
   zcDocsLiteralContainerUsageTest.test_ex_initial_value_dict_compile_time_consts.<locals>.ol_specializec                     s$   dddd} d| d< d| d<  | S )	Nr)   r*   rD   rE      r.      r/   r   )r/   r   r   r   r4   L   s   zYDocsLiteralContainerUsageTest.test_ex_initial_value_dict_compile_time_consts.<locals>.foor)   r*   rJ   rK   )r,   r-   r.   r/   )r   r7   r   r?   r8   r   r9   r   Dictr   r:   )	r;   r   r   r(   r4   r<   expectedr%   r&   r   r?   r   r   .test_ex_initial_value_dict_compile_time_consts:   s   

zLDocsLiteralContainerUsageTest.test_ex_initial_value_dict_compile_time_constsc                    s   t  / ddlm} ddlm} dd  | dd }| fdd	}| }t| W d    n1 s5w   Y  d
}| || d S )Nr   )r   r   c                 S   r	   r
   r   r   r   r   r   r   c   r   zFDocsLiteralContainerUsageTest.test_ex_literal_list.<locals>.specializec                    s:   | j }g }|D ]	}|t| qt|  fdd}|S )Nc                    r   r
   r   r   r   r   r   r   n   r   zWDocsLiteralContainerUsageTest.test_ex_literal_list.<locals>.ol_specialize.<locals>.impl)r   r   strr"   )r   lr$   r&   r   r   r   r   r(   f   s   zIDocsLiteralContainerUsageTest.test_ex_literal_list.<locals>.ol_specializec                     s   dddddgg}  | S )Nr,   
   y              ?anotherlistr   )
const_listrL   r   r   r4   r   s   z?DocsLiteralContainerUsageTest.test_ex_literal_list.<locals>.foo)zLiteral[str](a)zLiteral[int](10)
complex128z*list(unicode_type)<iv=['another', 'list']>)r   r7   r   r8   r   r9   r:   r;   r   r   r(   r4   r<   rN   r   rL   r   test_ex_literal_list\   s   

z2DocsLiteralContainerUsageTest.test_ex_literal_listc                    s   t  3 ddlm}m  ddlm} dd | fdd}|fdd	}| }t| W d    n1 s9w   Y  g d
}| || d S )Nr   r>   r   c                 S   r	   r
   r   r   r   r   r   r      r   z`DocsLiteralContainerUsageTest.test_ex_initial_value_list_compile_time_consts.<locals>.specializec                    s2   | j }|d u r fddS |g dksJ dd S )Nc                    r@   r
   r   r   rA   r   r   rB      rC   zuDocsLiteralContainerUsageTest.test_ex_initial_value_list_compile_time_consts.<locals>.ol_specialize.<locals>.<lambda>r)   r*   rD   c                 S   s   | S r
   r   r   r   r   r   rB      s    rF   rH   rA   r   r   r(      s
   zcDocsLiteralContainerUsageTest.test_ex_initial_value_list_compile_time_consts.<locals>.ol_specializec                     s"   g d} d| d< |  d  | S )NrZ   rJ   r*   rK   )r   )rR   rL   r   r   r4      s   
zYDocsLiteralContainerUsageTest.test_ex_initial_value_list_compile_time_consts.<locals>.foo)r)   r*   rJ   rK   )r   r7   r   r?   r8   r   r9   r:   rX   r   rO   r   .test_ex_initial_value_list_compile_time_consts   s   
zLDocsLiteralContainerUsageTest.test_ex_initial_value_list_compile_time_constsN)__name__
__module____qualname__r=   rP   rY   r[   r   r   r   r   r   	   s
    /"#r   __main__)	unittestnumba.tests.supportr   r7   r   TestCaser   r\   mainr   r   r   r   <module>   s    