
    J/Ph                       d Z ddlZddlZddlZddlmZmZ ddlmZm	Z	m
Z
mZ ddlmZ ddlmZmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZ ddlmZ ddlm Z   G d dee          Z! G d de          Z" G d dee          Z# G d d          Z$ G d dee$          Z% G d dee$          Z& G d dee          Z' G d de          Z( G d de          Z) G d d e          Z* ed!ej+        fg"           G d# d$e,                      Z- G d% d&e          Z. G d' d(e          Z/ G d) d*e          Z0 G d+ d,ee          Z1 G d- d.ee          Z2e3d/k    r ej4                     dS dS )0z
Testing numba implementation of the numba dictionary.

The tests here only check that the numba typing and codegen are working
correctly.  Detailed testing of the underlying dictionary operations is done
in test_dictimpl.py.
    N)njit	literally)int32int64float32float64)typeof)Dict
dictobjectList_sentry_safe_cast)TypingError)types)TestCaseMemoryLeakMixinunittestoverride_configforbid_codegen)jitclass)overloadc                      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 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! e"j#        e$j%        d k    d!          d"             Z&d# Z'd$ Z(d% Z)d& Z*d' Z+d( Z,d) Z-d* Z.d+ Z/d, Z0e"j1        d-             Z2d. Z3d/ Z4d0 Z5d1 Z6d2 Z7d3 Z8d4 Z9d5S )6TestDictObjectc                 &   t           d             }|                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           d	S )
z%
        Exercise bool(dict)
        c                     t          j        t          t                    }t	          |           D ]
}|dz   ||<   t          |          S N   )r   new_dictr   r   rangeboolndis      [/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_dictobject.pyfooz*TestDictObject.test_dict_bool.<locals>.foo    sC    #E733A1XX  1u!77N    r   r"   Fr   T   d   Nr   assertEqualselfr&   s     r%   test_dict_boolzTestDictObject.test_dict_bool   s     
	 	 
	 	q5)))q4(((q4(((sT*****r'   c                 &   t           d             }|                      |d          d           |                      |d          d           |                      |d          d           |                      |d          d           dS )zA
        Exercise dictionary creation, insertion and len
        c                     t          j        t          t                    }t	          |           D ]
}|dz   ||<   t          |          S r   )r   r   r   r   r   lenr!   s      r%   r&   z,TestDictObject.test_dict_create.<locals>.foo4   sC    #E733A1XX  1u!q66Mr'   r   r(   r   r)   r*   Nr+   r-   s     r%   test_dict_createzTestDictObject.test_dict_create0   s     
	 	 
	 	q1%%%q1%%%q1%%%sS)))))r'   c                     t           d             }|                      |dg d          g d           |                      |dg d          g d           |                      |dg d          g d           dS )	zA
        Exercise dictionary creation, insertion and get
        c                     t          j        t          t                    }t	          |           D ]}|||<   g }|D ]*}|                    |                    |                     +|S N)r   r   r   r   r   appendget)r"   targetsr#   r$   outputts         r%   r&   z)TestDictObject.test_dict_get.<locals>.fooH   sl    #E733A1XX  !F ( (aeeAhh''''Mr'      )r   r   	   )r   r   N
   )r=   r   )Nr=   r   Nr+   r-   s     r%   test_dict_getzTestDictObject.test_dict_getD   s     
		 		 
		 	Q			**LLL999R++YYY777R,,lll;;;;;r'   c                     t           d             }|                      |ddd          d           |                      |ddd          d           dS )z8
        Exercise dict.get(k, d) where d is set
        c                     t          j        t          t                    }t	          |           D ]}|||<   |                    ||          S r6   r   r   r   r   r   r8   )r"   targetdefaultr#   r$   s        r%   r&   z6TestDictObject.test_dict_get_with_default.<locals>.foo\   sH    #E733A1XX  !55)))r'   r<      r?   Nr+   r-   s     r%   test_dict_get_with_defaultz)TestDictObject.test_dict_get_with_defaultX   si     
	* 	* 
	* 	Q2***Q2+++++r'   c                 J   t           d             }g d}g d}|                      |||d          d           |                      |||d          d           |                      |||d          d	           |                                  |                                  |                     t
                    5   |||d
           ddd           n# 1 swxY w Y   |                     t
                    5   |||d           ddd           dS # 1 swxY w Y   dS )z1
        Exercise dictionary __getitem__
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   ||         S r6   r   r   r   r   zipkeysvalsrD   r#   kvs         r%   r&   z-TestDictObject.test_dict_getitem.<locals>.fool   sF    #E733AD$  1! V9r'   r   r)   rF   皙?皙?333333?r   rS   r)   rT   rF   rU   r   N   r   r,   assert_no_memory_leakdisable_leak_checkassertRaisesKeyErrorr.   r&   rM   rN   s       r%   test_dict_getitemz TestDictObject.test_dict_getitemh   s    
	 	 
	 yyT4++S111T4++S111T4++S111""$$$!!!x(( 	 	CdA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	x(( 	 	CdA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   >CCC=DDDc           	          t           d             }g d}g d}t          dt          |                    D ]F}|                      ||d|         |d|                   ||dz
           ||dz
           f           GdS ).
        Exercise dictionary .popitem
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   |                                S r6   )r   r   r   r   rK   popitemrM   rN   r#   rO   rP   s        r%   r&   z-TestDictObject.test_dict_popitem.<locals>.foo   sJ    #E733AD$  1! 99;;r'   rQ   rR   r   N)r   r   r2   r,   )r.   r&   rM   rN   r$   s        r%   test_dict_popitemz TestDictObject.test_dict_popitem   s     
	 	 
	 yyq#d))$$ 	 	AD!Hd2A2h''a!ed1q5k*   	 	r'   c                    t           d             t           fd            }g d}g d}t          t          |                    D ]T}|                      |||d                              t          t          ||                    d                     U|                                  |                                  | 	                    t                    5   |||d           ddd           dS # 1 swxY w Y   dS )	r_   c                 z    d\  }}t          |          D ]#}|                                 \  }}||z  }||z  }$||fS )Nr   r   )r   ra   )r#   npopkeysumvalsum_rO   rP   s          r%   corez3TestDictObject.test_dict_popitem_many.<locals>.core   sQ     "NFF4[[  yy{{1!!6>!r'   c                     t          j        t          t                    }t          | |          D ]
\  }}|||<    ||          S r6   )r   r   r   rK   )rM   rN   rg   r#   rO   rP   rk   s         r%   r&   z2TestDictObject.test_dict_popitem_many.<locals>.foo   sK    #E511AD$  1!44== r'   rQ   r>         rF   )rg   rV   N)r   r   r2   r,   py_funcdictrK   rX   rY   rZ   r[   )r.   r&   rM   rN   r$   rk   s        @r%   test_dict_popitem_manyz%TestDictObject.test_dict_popitem_many   s}   
 
	" 	" 
	" 
	! 	! 	! 	! 
	! yy||s4yy!! 	 	AD$Q'''T#dD//22;;    	""$$$!!!x(( 	$ 	$Cd####	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   C;;C?C?c                 (   t           d             }g d}g d}|                      |||d          d           |                      |||d          d           |                      |||d          d	           |                      |||d
          d           |                                  |                                  t           d             }|                     t
                    5   |             ddd           dS # 1 swxY w Y   dS )*
        Exercise dictionary .pop
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   |                    |d           t          |          fS r6   )r   r   r   r   rK   popr2   rL   s         r%   r&   z)TestDictObject.test_dict_pop.<locals>.foo   s[    #E733AD$  1! 55&&A..r'   rQ   rR   r   )rS   r)   r)   )rT   r)   rF   )rU   r)   r   NrF   c                  j    t          j        t          t                    } |                     d          S )Nr   r   r   r   r   rv   r#   s    r%   r&   z)TestDictObject.test_dict_pop.<locals>.foo   s#    #E733A5588Or'   NrW   r\   s       r%   test_dict_popzTestDictObject.test_dict_pop   s    
	/ 	/ 
	/ yyT4++X666T4++X666T4++X666T4++Y777 	""$$$!!!		 	 
	
 x(( 	 	CEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   /DDDc                    t           d             t           fd            }g d}g d}g d}|                      ||||                              t          t	          ||                    |                     dS )rt   c                 v    d}|D ]3}|||                      |d          z   t          |           z   z  }|dz  }4|S )Nr   grh|?r)   )rv   r2   )r#   popstotalrO   s       r%   rk   z/TestDictObject.test_dict_pop_many.<locals>.core   sL    E  QUU1e__,s1vv55
Lr'   c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<    ||          S r6   rJ   )rM   rN   r~   r#   rO   rP   rk   s         r%   r&   z.TestDictObject.test_dict_pop_many.<locals>.foo   sK    #E733AD$  1!44== r'   rQ   rR   )	r)   rF   rF   r   r   r)   r   r   r?   N)r   r,   rp   rq   rK   )r.   r&   rM   rN   r~   rk   s        @r%   test_dict_pop_manyz!TestDictObject.test_dict_pop_many   s    
 
	 	 
	 
	! 	! 	! 	! 
	! yy+++CdD!!LLc$oo..55	
 	
 	
 	
 	
r'   c                    t           d             }g d}g d}|                      |||d          d           |                      |||d          d           |                      |||d          d           |                                  |                                  |                     t
                    5   |||d           d d d            d S # 1 swxY w Y   d S )	Nc                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   ||= t          |          |                    |          fS r6   )r   r   r   r   rK   r2   r8   rL   s         r%   r&   z-TestDictObject.test_dict_delitem.<locals>.foo  s\    #E733AD$  1!&	q66155==((r'   rQ   rR   r   )r)   Nr)   rF   r   rW   r\   s       r%   test_dict_delitemz TestDictObject.test_dict_delitem  sK   		) 	) 
	) yyT4++Y777T4++Y777T4++Y777""$$$!!!x(( 	 	CdA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   >CC Cc                 v    t           d             }g d}g d}|                      |||          d           dS )z%
        Exercise dict.clear
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   t          |          }|                                 |t          |          fS r6   )r   r   r   r   rK   r2   clear)rM   rN   r#   rO   rP   b4s         r%   r&   z+TestDictObject.test_dict_clear.<locals>.foo   sb    #E733AD$  1!QBGGIIIs1vv:r'   rQ   rR   )rF   r   Nr+   r\   s       r%   test_dict_clearzTestDictObject.test_dict_clear  sW     
	 	 
	 yyT4&11111r'   c           	         t           d             }g d}g d}|                      |||          t          t          ||                               t           d             }|                      |            g            dS )z%
        Exercise dict.items
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   g }|                                D ]}|                    |           |S r6   )r   r   r   r   rK   itemsr7   )rM   rN   r#   rO   rP   outkvs          r%   r&   z+TestDictObject.test_dict_items.<locals>.foo3  sl    #E733AD$  1!Cggii  

2Jr'   rQ   rR   c                      t          j        t          t                    } g }|                                 D ]}|                    |           |S r6   )r   r   r   r   r   r7   )r#   r   r   s      r%   r&   z+TestDictObject.test_dict_items.<locals>.fooG  sF    #E733ACggii  

2Jr'   N)r   r,   listrK   r\   s       r%   test_dict_itemszTestDictObject.test_dict_items/  s     
	 	 
	 yyCdOOT4!!	
 	
 	
 
	 	 
	 	#####r'   c                 v    t           d             }g d}g d}|                      |||          |           dS )z$
        Exercise dict.keys
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   g }|                                D ]}|                    |           |S r6   )r   r   r   r   rK   rM   r7   rM   rN   r#   rO   rP   r   s         r%   r&   z*TestDictObject.test_dict_keys.<locals>.fooU  sl    #E733AD$  1!CVVXX  

1Jr'   rQ   rR   Nr+   r\   s       r%   test_dict_keyszTestDictObject.test_dict_keysQ  c     
	 	 
	 yyCdOO	
 	
 	
 	
 	
r'   c                     t           d             }g d}g d}|                      |||          t          |                     dS )z+
        Exercise len(dict.keys())
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   t          |                                          S r6   )r   r   r   r   rK   r2   rM   rb   s        r%   r&   z.TestDictObject.test_dict_keys_len.<locals>.fool  sN    #E733AD$  1!qvvxx== r'   rQ   rR   Nr   r,   r2   r\   s       r%   test_dict_keys_lenz!TestDictObject.test_dict_keys_lenh  si     
	! 	! 
	! yyCdOOII	
 	
 	
 	
 	
r'   c                 v    t           d             }g d}g d}|                      |||          |           dS )z&
        Exercise dict.values
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   g }|                                D ]}|                    |           |S r6   )r   r   r   r   rK   valuesr7   r   s         r%   r&   z,TestDictObject.test_dict_values.<locals>.foo  sl    #E733AD$  1!CXXZZ  

1Jr'   rQ   rR   Nr+   r\   s       r%   test_dict_valueszTestDictObject.test_dict_values|  r   r'   c                     t           d             }g d}g d}|                      |||          t          |                     dS )z-
        Exercise len(dict.values())
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   t          |                                          S r6   )r   r   r   r   rK   r2   r   rb   s        r%   r&   z0TestDictObject.test_dict_values_len.<locals>.foo  sN    #E733AD$  1!qxxzz??"r'   rQ   rR   Nr   r\   s       r%   test_dict_values_lenz#TestDictObject.test_dict_values_len  si     
	# 	# 
	# yyCdOOII	
 	
 	
 	
 	
r'   c                     t           d             }g d}g d}|                      |||          t          |                     dS )z,
        Exercise len(dict.items())
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   t          |                                          S r6   )r   r   r   r   rK   r2   r   rb   s        r%   r&   z/TestDictObject.test_dict_items_len.<locals>.foo  sN    #E733AD$  1!qwwyy>>!r'   rQ   rR   N)r   assertPreciseEqualr2   r\   s       r%   test_dict_items_lenz"TestDictObject.test_dict_items_len  si     
	" 	" 
	" yyCdOOII	
 	
 	
 	
 	
r'   c                 z    t           d             }g d}g d}|                      |||          g d           dS )z%
        Exercise iter(dict)
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   g }|D ]}|                    |           |S r6   r   r   r   r   rK   r7   r   s         r%   r&   z*TestDictObject.test_dict_iter.<locals>.foo  sd    #E733AD$  1!C  

1Jr'   rQ   rR   Nr+   r\   s       r%   test_dict_iterzTestDictObject.test_dict_iter  sg     
	 	 
	 yyCdOOII	
 	
 	
 	
 	
r'   c                     t           d             }g d}g d}|                      |||g d          g d           dS )z,
        Exercise operator.contains
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   g }|D ]}|                    ||v            |S r6   r   )rM   rN   	checklistr#   rO   rP   r   s          r%   r&   z.TestDictObject.test_dict_contains.<locals>.foo  sl    #E733AD$  1!C # #

16""""Jr'   rQ   rR   )r)   rF   rV   r   r   )TTFTFNr+   r\   s       r%   test_dict_containsz!TestDictObject.test_dict_contains  sq     
	 	 
	 yyCdOOO,,,,,	
 	
 	
 	
 	
r'   c           	      
   t           d             }t          t          d                    }d t          |          D             } |||          }|                     |t          t          ||                               dS )z$
        Exercise dict.copy
        c                     t          j        t          t                    }t	          | |          D ]
\  }}|||<   t          |                                                                          S r6   )r   r   r   r   rK   r   copyr   rb   s        r%   r&   z*TestDictObject.test_dict_copy.<locals>.foo  sZ    #E733AD$  1!(()))r'   rn   c                 $    g | ]\  }}||d z  z   S )r*    ).0r$   xs      r%   
<listcomp>z1TestDictObject.test_dict_copy.<locals>.<listcomp>  s$    8881AG888r'   N)r   r   r   	enumerater,   rK   )r.   r&   rM   rN   r   s        r%   test_dict_copyzTestDictObject.test_dict_copy  s     
	* 	* 
	* E"II88	$888c$ood3tT??3344444r'   c                 b    t           d             }|                      |            d           dS )z*
        Exercise dict.setdefault
        c                  4   t          j        t          t                    } |                     dd           |                     d          }d| d<   |                     d          }d| d<   |                     dd           |                     d          }|||fS )Nr   333333?ffffff@333333@r)   g      @)r   r   r   r   
setdefaultr8   )r#   abcs       r%   r&   z0TestDictObject.test_dict_setdefault.<locals>.foo  s    #E733ALLC   aAAaDaAAaDLLC   aAa7Nr'   )r   r   r   Nr+   r-   s     r%   test_dict_setdefaultz#TestDictObject.test_dict_setdefault  sA     
		 		 
		 	00000r'   c                 6   t           d             }|                      |dddd          d           |                      |dddd          d           |                      |dddd          d           |                      |dddd          d           dS )	z2
        Exercise dict.__eq__ and .__ne__
        c                     t          j        t          t                    }t          j        t          t                    }t	          |           D ]
}||z  ||<   t	          |          D ]
}||z  ||<   ||k    ||k    fS r6   r   r   r   r   r   )nanbfafbdadbr$   s          r%   r&   z.TestDictObject.test_dict_equality.<locals>.foo  s    $UG44B$UG44B2YY  B12YY  B18R2X%%r'   r>   rF   )TFg@)FT   Nr+   r-   s     r%   test_dict_equalityz!TestDictObject.test_dict_equality  s     
	& 	& 
	& 	RQ**M:::RQ,,m<<<RQ**M:::RQ**M:::::r'   c                    t           d             }g d}g d}g d}g d}|                      |||||                     g d}g d}g d}g d}|                      |||||                     g d}g d}g d}g d}|                      |||||                     g d}g d}g d}g d}|                      |||||                     dS )	&
        Exercise dict.__eq__
        c                 J   t          j        t          t                    }t          j        t          t
                    }t          t          |                     D ]}||         || |         <   t          t          |                    D ]}||         |||         <   ||k    S r6   )r   r   r   r   r   r   r   r2   )akavbkbvr   r   r$   s          r%   r&   z3TestDictObject.test_dict_equality_more.<locals>.foo&  s     $UG44B$UG44B3r77^^ " "qE2a5		3r77^^ " "qE2a5		8Or'   rQ   )r)   rF   rV   )r   r)   r)   rF   )r)   r   rF   rV   )r)   r   rV   )r   r)   rF   Nr   
assertTrueassertFalse)r.   r&   r   r   r   r   s         r%   test_dict_equality_morez&TestDictObject.test_dict_equality_more"  sG    
	 	 
	 YYYYYYYYBB++,,, YYYY\\\\BB++,,, YYYYYYYYRR,,--- YYYYYYYYRR,,-----r'   c                     t           d             }|                      |dd                     |                      |dd                     dS )r   c                 z    t          j        t          t                    }t	          |           D ]}|||<   ||k    S r6   r   )r   r   r   r$   s       r%   r&   z8TestDictObject.test_dict_equality_diff_type.<locals>.fooQ  s=    $UG44B2YY  17Nr'   r>   r   r   Nr   r   r-   s     r%   test_dict_equality_diff_typez+TestDictObject.test_dict_equality_diff_typeM  sa     
	 	 
	 	R$$$R'''''r'   c                    t           d             t           fd            }t          j        t          t                    t           fd            } |d          }|                     |j        d            ||          }t                              d                    }|                     ||           dS )zB
        Exercise dictobject.{_as_meminfo, _from_meminfo}
        c              3   L   K   t          |           D ]}|||dz   dz  z   fV  d S Nr   r*   r   )nelemr$   s     r%   make_contentz>TestDictObject.test_dict_to_from_meminfo.<locals>.make_contenta  sF      5\\ + +a!es]******+ +r'   c                     t          j        t          t                    } |           D ]
\  }}|||<   t          j        |          S r6   )r   r   r   r   _as_meminfo)r   r#   rO   rP   r   s       r%   boxerz7TestDictObject.test_dict_to_from_meminfo.<locals>.boxerf  sN    #E733A$U++  1!)!,,,r'   c                 p    t          j        |           }t          |                                          S r6   )r   _from_meminfor   r   )mir#   dcttypes     r%   unboxerz9TestDictObject.test_dict_to_from_meminfo.<locals>.unboxero  s)    (W55A		??"r'   r>   r   N)	r   r   DictTyper   r   r,   refcountr   rp   )r.   r   r   r   gotexpectedr   r   s         @@r%   test_dict_to_from_meminfoz(TestDictObject.test_dict_to_from_meminfo]  s     
	+ 	+ 
	+ 
	- 	- 	- 	- 
	- .00		# 	# 	# 	# 
	# U2YYa(((gbkk,,R0011h'''''r'   c                     t           d             }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                     t          j        t          t                    }t	          |           D ]
}|dz   ||<   |                    d          }|S )Nr                 ?rC   r"   r#   r$   zs       r%   r&   z8TestDictObject.test_001_cannot_downcast_key.<locals>.foo|  sL    #E733A1XX  1u!b		AHr'   r>   &cannot safely cast complex128 to int32r   rZ   r   assertInstr	exceptionr.   r&   raisess      r%   test_001_cannot_downcast_keyz+TestDictObject.test_001_cannot_downcast_key{  s    		 	 
	 {++ 	vCGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	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                     t          j        t          t                    }t	          |           D ]
}|dz   ||<   |                    d| z  d          }|S )Nr   r)   r   rC   r   s       r%   r&   z<TestDictObject.test_002_cannot_downcast_default.<locals>.foo  sT    #E733A1XX  1u!a!eR  AHr'   r>   (cannot safely cast complex128 to float64r   r   s      r%    test_002_cannot_downcast_defaultz/TestDictObject.test_002_cannot_downcast_default  s    		 	 
	 {++ 	vCGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	6 !!	
 	
 	
 	
 	
r   c                     t           d             }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                     t          j        t          t                    }t	          |           D ]
}|dz   ||<   |                    d          }|S )Nr   g333333@rC   r   s       r%   r&   z8TestDictObject.test_003_cannot_downcast_key.<locals>.foo  sL    #E733A1XX  1u!c

AHr'   r>   #cannot safely cast float64 to int32r   r   s      r%   test_003_cannot_downcast_keyz+TestDictObject.test_003_cannot_downcast_key  s    		 	 
	 {++ 	vCGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	1 !!	
 	
 	
 	
 	
r   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  N    t          j        t          t                    } d| d<   d S )N      @r   r   r   r   r   rz   s    r%   r&   z8TestDictObject.test_004_cannot_downcast_key.<locals>.foo  s!    #E733AAbEEEr'   r   r   r   s      r%   test_004_cannot_downcast_keyz+TestDictObject.test_004_cannot_downcast_key  s    		 	 
	
 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	4 !!	
 	
 	
 	
 	
   AA	Ac                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  N    t          j        t          t                    } d| d<   d S )Nr   r   r	  rz   s    r%   r&   z:TestDictObject.test_005_cannot_downcast_value.<locals>.foo  s!    #E733AAaDDDr'   r   r   r   s      r%   test_005_cannot_downcast_valuez-TestDictObject.test_005_cannot_downcast_value  s    		 	 
	
 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	6 !!	
 	
 	
 	
 	
r  c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  T    t          j        t          t                    } | d          d S )Ng      '@r	  rz   s    r%   r&   z8TestDictObject.test_006_cannot_downcast_key.<locals>.foo  s!    #E733AdGGGGr'   r  r   r   s      r%   test_006_cannot_downcast_keyz+TestDictObject.test_006_cannot_downcast_key  s    		 	 
	
 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	1 !!	
 	
 	
 	
 	
r  l        z64 bit test onlyc                     t           d             }d\  }} |||          \  }}|                     ||           |                     ||           d S )Nc                    t          j        t          t                    }t	          j        d          }t	          j        d          }t          |          t          |          k    sJ | ||<   |||<   ||         ||         fS )Nl    r   )r   r   r   r   npuint64hash)v1v2r#   c1c2s        r%   r&   z5TestDictObject.test_007_collision_checks.<locals>.foo  sq    #E733A;''B1B88tBxx''''AbEAbEbE1R5>!r'   )g      $@g      4@r+   )r.   r&   r   r   r   ys         r%   test_007_collision_checksz(TestDictObject.test_007_collision_checks  sm     
	" 	" 
	" 1s1ayy1AAr'   c           	      .   t           d             }d} ||          \  }}|                     |d t          t          |                    D                        |                     |d t          t          |                    D                        d S )Nc                 <   t          j        t          t                    }t	          |           D ]
}|dz   ||<   g }g }t	          |           D ]L}|                                }|                    |d                    |                    |d                    M||fS )Nr   r   )r   r   r   r   r   ra   r7   )r"   r#   r$   rM   rN   tmps         r%   r&   z1TestDictObject.test_008_lifo_popitem.<locals>.foo  s    #E733A1XX  1u!DD1XX $ $iikkCF###CF####:r'   r>   c                     g | ]}|S r   r   r   r   s     r%   r   z8TestDictObject.test_008_lifo_popitem.<locals>.<listcomp>  s    <<<Aa<<<r'   c                     g | ]}|d z   S r   r   r!  s     r%   r   z8TestDictObject.test_008_lifo_popitem.<locals>.<listcomp>  s    @@@a!e@@@r'   )r   r,   reversedr   )r.   r&   r   gkgvs        r%   test_008_lifo_popitemz$TestDictObject.test_008_lifo_popitem  s    	
	 
	 

	 QB<<%((););<<<===@@XeAhh-?-?@@@AAAAAr'   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                      t          j        t          t                    } d| d<   d| d<   |                     dd           d S )N      @r   r  r   r                 (@ry   rz   s    r%   r&   z<TestDictObject.test_010_cannot_downcast_default.<locals>.foo  s;    #E733AAaDAaDEE"cNNNNNr'   r   r   r   s      r%    test_010_cannot_downcast_defaultz/TestDictObject.test_010_cannot_downcast_default   s    		 	 
	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	6 !!	
 	
 	
 	
 	
r  c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                      t          j        t          t                    } d| d<   d| d<   |                     d           d S )Nr)  r   r  r   y              &@ry   rz   s    r%   r&   z8TestDictObject.test_011_cannot_downcast_key.<locals>.foo  s9    #E733AAaDAaDEE#JJJJJr'   r   r   r   s      r%   test_011_cannot_downcast_keyz+TestDictObject.test_011_cannot_downcast_key  s    		 	 
	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	4 !!	
 	
 	
 	
 	
r  c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  R    t          j        t          t                    } d| d<   d| v S )Nr)  r   r   r	  rz   s    r%   r&   z8TestDictObject.test_012_cannot_downcast_key.<locals>.foo!  s&    #E733AAaD7Nr'   r   r   r   s      r%   test_012_cannot_downcast_keyz+TestDictObject.test_012_cannot_downcast_key   s    		 	 
	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	4 !!	
 	
 	
 	
 	
r  c                 `    t           d             }|                      |                       d S )Nc                  H    t          j        t          t                    } d| v S r   r	  rz   s    r%   r&   z8TestDictObject.test_013_contains_empty_dict.<locals>.foo0  s    #E733A6Mr'   r   r-   s     r%   test_013_contains_empty_dictz+TestDictObject.test_013_contains_empty_dict/  s=    		 	 
	
 	r'   c                 `    t           d             }|                      |                       d S )Nc                  H    t          j        t          t                    } d| vS r   r	  rz   s    r%   r&   z<TestDictObject.test_014_not_contains_empty_dict.<locals>.foo9  s    #E733AA:r'   )r   r   r-   s     r%    test_014_not_contains_empty_dictz/TestDictObject.test_014_not_contains_empty_dict8  s;    		 	 
	
 	r'   c                 l    t           d             }d}|                      ||          |df           d S )Nc                     t          j        t          t                    }t	          |           D ]
}|dz   ||<   t          |          }|                                 t          |          }||fS r   )r   r   r   r   r   r2   r   )r"   r#   r$   r   r  s        r%   r&   z/TestDictObject.test_015_dict_clear.<locals>.fooB  sd    #E733A1XX  1u!AAGGIIIAAa4Kr'   r>   r   r+   )r.   r&   ms      r%   test_015_dict_clearz"TestDictObject.test_015_dict_clearA  sJ    		 	 
	 Q!Q(((((r'   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  p    t          j        t          t                    } |                     dd           d S )Nr         (@r   r   r   r   r   rz   s    r%   r&   z8TestDictObject.test_016_cannot_downcast_key.<locals>.fooP  s.    #E733ALLS!!!!!r'   r   r   r   s      r%   test_016_cannot_downcast_keyz+TestDictObject.test_016_cannot_downcast_keyO  s    		" 	" 
	"
 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	4 !!	
 	
 	
 	
 	
r  c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  p    t          j        t          t                    } |                     dd           d S )Nr   r*  r?  rz   s    r%   r&   z<TestDictObject.test_017_cannot_downcast_default.<locals>.foo^  s.    #E733ALLD!!!!!r'   r   r   r   s      r%    test_017_cannot_downcast_defaultz/TestDictObject.test_017_cannot_downcast_default]  s    		" 	" 
	"
 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	6 !!	
 	
 	
 	
 	
r  c                     t           d             } |            \  }}|                     ||           |                     |ddg           d S )Nc                      t          j        t          t                    } d| d<   |                                 }d| d<   |                                 }d |D             }d |D             }||fS )Nr>  r         "@   c                     g | ]}|S r   r   r!  s     r%   r   zLTestDictObject.test_018_keys_iter_are_views.<locals>.foo.<locals>.<listcomp>u      ///1///r'   c                     g | ]}|S r   r   r!  s     r%   r   zLTestDictObject.test_018_keys_iter_are_views.<locals>.foo.<locals>.<listcomp>v  rI  r'   r   r   r   r   rM   )r#   k1k2rk1rk2s        r%   r&   z8TestDictObject.test_018_keys_iter_are_views.<locals>.foon  sg    #E733AAbEBAbEB!/b///C!/b///C8Or'   r   rG  r+   )r.   r&   r   r   s       r%   test_018_keys_iter_are_viewsz+TestDictObject.test_018_keys_iter_are_viewsk  sd     
	 	 
	 suu1ARH%%%%%r'   c                 T    t           d             }t           |                       d S )Nc                      t          j        t          t                    } d| d<   d| d<   |                                 dhz  }|S )Nr>  r   rF  rG     rK  )r#   rM  s     r%   r&   z$TestDictObject.test_019.<locals>.foo  s?    #E733AAbEAbERF"BIr'   )r   printr-   s     r%   test_019zTestDictObject.test_019~  s4     
	 	 
	 	cceer'   c                     t           d             } |            \  }}|                     |g d           |                     |d           d S )Nc                      t          j        t          j        t                    } d| d<   d| d<   d| d<   d| d<   g }|                                 D ]}|                    |           || d         fS )	N      ?r          @r         @r   g      @r#   )r   r   r   unicode_typer   r   r7   )r#   r   r   s      r%   r&   z/TestDictObject.test_020_string_key.<locals>.foo  sv    #E$6@@AAcFAcFAcFAcFCWWYY  

1#;r'   ))r   rX  )r   rY  )r   rZ  )r#   rV   rX  r+   )r.   r&   r   r   s       r%   test_020_string_keyz"TestDictObject.test_020_string_key  se    			 		 
		 CEE	r K K KLLLR     r'   c                 n    t           d             }|                      |            ddz  dfg           d S )Nc                     t          j        t          j        t                    } g }t          d          D ]}|                    d           d                    |          }d| |<   t          | 	                                          }|S )N'  r    rX  )
r   r   r   r[  r   r   r7   joinr   r   )r#   r  r$   sr   s        r%   r&   z1TestDictObject.test_021_long_str_key.<locals>.foo  sr    #E$6@@AC5\\    

3AAaDqwwyy//CJr'   r   r_  r   r+   r-   s     r%   test_021_long_str_keyz$TestDictObject.test_021_long_str_key  sK    		 	 
	 	#+q!1 233333r'   c                     t           d             } |            \  }}}|                     |ddg           |                     |ddg           |                     |ddg           d S )Nc                  p   t          j        t          t                    } | }d| d<   d|d<   t          j        t          t                    }d|d<   d|d<   | }|} d |                                 D             }d |                                D             }d	 |                                D             }|||fS )
Nr>  r         ,@r)         Y@     @@c                     g | ]}|S r   r   r!  s     r%   r   zJTestDictObject.test_022_references_juggle.<locals>.foo.<locals>.<listcomp>      '''!'''r'   c                     g | ]}|S r   r   r!  s     r%   r   zJTestDictObject.test_022_references_juggle.<locals>.foo.<locals>.<listcomp>  rj  r'   c                     g | ]}|S r   r   r!  s     r%   r   zJTestDictObject.test_022_references_juggle.<locals>.foo.<locals>.<listcomp>  rj  r'   )r   r   r   r   r   )r#   efrL  rM  k3s         r%   r&   z6TestDictObject.test_022_references_juggle.<locals>.foo  s    #E733AAAaDAaD#E733AAaDAaDAA''QWWYY'''B''QWWYY'''B''QWWYY'''Br2:r'   )r   rg  )r)   rh  )r   rS  )r)      r+   )r.   r&   rL  rM  ro  s        r%   test_022_references_jugglez)TestDictObject.test_022_references_juggle  s    		 	 
	" SUU
Bj+6777j+6777gw/00000r'   c                 f    t           d             }|                      |            ddg           d S )Nc                      t          j        t          t                    fd}  |              d                                 D             S )Nc                      d d<   d d<   d S )Nr>  r   rf  r)   r   rz   s   r%   barz9TestDictObject.test_023_closure.<locals>.foo.<locals>.bar  s    !!r'   c                     g | ]}|S r   r   r!  s     r%   r   z@TestDictObject.test_023_closure.<locals>.foo.<locals>.<listcomp>  s    (((!A(((r'   rK  )ru  r#   s    @r%   r&   z,TestDictObject.test_023_closure.<locals>.foo  sW    #E733A     CEEE((qvvxx((((r'   r   r)   r+   r-   s     r%   test_023_closurezTestDictObject.test_023_closure  sC    		) 	) 
	) 	A'''''r'   c                    t           d             }|                      |            |                                           t           d             }|                      |            |                                           d S )Nc                  *    d} | d         di}|d         S )Nu   aሴr   r   r   r   rb  r#   s     r%   r&   z9TestDictObject.test_024_unicode_getitem_keys.<locals>.foo  s    A1
AS6Mr'   c                  .    d} | d d         di}|d         S )Nu   abcሴr   r   r   rz  s     r%   r&   z9TestDictObject.test_024_unicode_getitem_keys.<locals>.foo  s!    A2A2AS6Mr'   r   r,   rp   r-   s     r%   test_024_unicode_getitem_keysz,TestDictObject.test_024_unicode_getitem_keys  s    		 	 
	
 	...		 	 
	
 	.....r'   c                     t          j        t           j        t           j        g          t          fd            }|                      |                       d S )Nc                  T   t          j        t                    } t          j        dgt          j                  }t          j        dgt          j                  }t          j        dgt          j                  }|d         | |d         |d         f<   |d         |d         f| v S )NrF   dtypegGz@g(\u$@r   )r   r   r   r  arrayr  r   )r#   t1t2r  keytys       r%   r&   z<TestDictObject.test_issue6570_alignment_padding.<locals>.foo  s    #E733A1#RY///B4&
333B5'444B "1Ar!ubenqE2a5>Q&&r'   )r   Tupler  r   r   r   )r.   r&   r  s     @r%    test_issue6570_alignment_paddingz/TestDictObject.test_issue6570_alignment_padding  s`    
 U\5=9::		' 	' 	' 	' 
	' 	r'   c                 *   d}d }|} t                      |          } ||          } ||          }|                     ||           d }|} t                      |          } ||          } ||          }|                     ||           dS )zD
        Tests dict.update works with various dictionaries.
        r>   c                     d t          |           D             }d t          |           D             }|                    |           |S )z@
            Test update with a regular dictionary.
            c                     i | ]}||d z   	S r   r   r   r$   s     r%   
<dictcomp>z?TestDictObject.test_dict_update.<locals>.f1.<locals>.<dictcomp>  s    ---q!QU---r'   c                     i | ]}d |z  |	S rF   r   r  s     r%   r  z?TestDictObject.test_dict_update.<locals>.f1.<locals>.<dictcomp>      ---q!a%---r'   r   updater"   d1d2s      r%   f1z+TestDictObject.test_dict_update.<locals>.f1  sJ     .-E!HH---B--E!HH---BIIbMMMIr'   c                 n    dddd}d t          |           D             }|                    |           |S )zo
            Test update where one of the dictionaries
            is created as a Python literal.
            r)   rV      )r   rF   r<   c                     i | ]}d |z  |	S r  r   r  s     r%   r  z?TestDictObject.test_dict_update.<locals>.f2.<locals>.<dictcomp>  r  r'   r  r  s      r%   f2z+TestDictObject.test_dict_update.<locals>.f2  sH      B
 .-E!HH---BIIbMMMIr'   Nr+   )r.   r"   r  rp   cfuncr   r   r  s           r%   test_dict_updatezTestDictObject.test_dict_update  s     	 	 	 r

GAJJE!HHA	 	 	 r

GAJJE!HHAr'   N):__name__
__module____qualname__r/   r3   r@   rG   r]   rc   rr   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r   
skipUnlesssysmaxsizer  r&  r+  r.  r1  r4  r7  r;  r@  rC  rP  expectedFailurerU  r\  rc  rq  rw  r}  r  r  r   r'   r%   r   r      s>       + + +(* * *(< < <(, , ,   8  ,'$ '$ '$R" " "H
 
 
>  ,2 2 2& $  $  $D
 
 
.
 
 
(
 
 
.
 
 
(
 
 
&
 
 
.
 
 
.5 5 5"1 1 1$; ; ;.). ). ).V( ( ( ( ( (<
 
 
"
 
 
"
 
 
$
 
 

 
 

 
 
 Xw.0BCC  DC"B B B*
 
 
 
 
 
 
 
 
       ) ) )
 
 

 
 
& & && 
 
 
! ! !"4 4 41 1 10( ( (/ / /$  $' ' ' ' 'r'   r   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestDictTypeCastingc                 &    t          ||           d S r6   r   )r.   fromtytotys      r%   
check_goodzTestDictTypeCasting.check_good  s    &$'''''r'   c                    |                      t                    5 }t          ||           d d d            n# 1 swxY w Y   |                      dj        di t                      t          |j                             d S )Nz%cannot safely cast {fromty} to {toty}r   )rZ   r   r   r   formatlocalsr   r   )r.   r  r  r   s       r%   	check_badzTestDictTypeCasting.check_bad   s    {++ 	,vfd+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,:3:FFVXXFF !!	
 	
 	
 	
 	
s   8<<c                    |                      t          j        t          j                   |                      t          j        t          j                   |                      t          j        t          j                   |                      t          j        t          j                   |                     t          j        t          j                   |                      t          j	        t          j                   d S r6   )
r  r   r   r   r   
complex128r   r  	complex64int8r.   s    r%   test_cast_int_toz$TestDictTypeCasting.test_cast_int_to(  s    U]333U]333U%5666U%5666u{EO444
EO44444r'   c                    |                      t          j        t          j                   |                      t          j        t          j                   |                      t          j        t          j                   d S r6   )r  r   r   r   r  r  r  s    r%   test_cast_float_toz&TestDictTypeCasting.test_cast_float_to0  sQ    u}555u777u'788888r'   c                    |                      t          j        t          j                   |                      t          j        t          j                   |                      t          j        t          j                   d S r6   )r  r   booleanr   r   r  r  s    r%   test_cast_bool_toz%TestDictTypeCasting.test_cast_bool_to5  sQ    u{333u}555u'788888r'   N)r  r  r  r  r  r  r  r  r   r'   r%   r  r    s_        ( ( (
 
 
5 5 59 9 9
9 9 9 9 9r'   r  c                   :    e Zd Zd Zd Zd Zd Zd
dZd Zd Z	d	S )TestTypedDictc                    t          j        t          t                    }|                     t          |          d           d|d<   d|d<   d|d<   |                     t          |          d           |                     t          |                                          g d           t          t          |	                                          g d          D ]\  }}| 
                    ||d	
           | 
                    |d         d           | 
                    |d         dd	
           | 
                    |d         dd	
           |d= |                     t          |          d           |                     |                    d                     |                    dd           |                    dd           |                     |d         d           | 
                    |d         dd	
           |                    ddd           | 
                    |d	         d           | 
                    |d         d           |                     d	|v            t!          |                                          }|                     t          |          t          |                     | 
                    |                    d	          d           t          |          }|                                \  }}|                     t          |          |dz
             |                     ||v           |                                }|                     ||           |                     t          |                                          t          |                                                     d S )Nr   r   r   r)   r   rF   rQ   )r   r   r   rV   )placesr*      r<   r  )rV   r<   )r
   emptyr   r   r,   r2   r   rM   rK   r   assertAlmostEqualassertIsNoner8   r   r  r   rq   r   rv   ra   r   )	r.   r#   r   r  pydr   rO   rP   copieds	            r%   
test_basiczTestTypedDict.test_basic<  s=   Jug&&Q###!!!Q###affhh333QXXZZ((---88 	3 	3DAq""1a"2222qtQ'''qtS333qtS333aDQ###!%%((###	Q	Q1s###qtS333	Q1qtQ'''qtQ'''Q17799ooS3q66***quuQxx+++Ayy{{1Q+++
######fllnn--tAGGII?????r'   c                 6   d t          t          d          t          dd                    D             }t          j        t          t
                    }|                                D ]
\  }}|||<   t          |          }|                     ||           d S )Nc                 4    i | ]\  }}|t          |          S r   float)r   rO   rP   s      r%   r  z5TestTypedDict.test_copy_from_dict.<locals>.<dictcomp>n  s$    HHH$!Q!U1XXHHHr'   r>   rn   )	rK   r   r
   r  r   r   r   rq   r,   )r.   expectnbdrO   rP   r   s         r%   test_copy_from_dictz!TestTypedDict.test_copy_from_dictm  s    HH#eBiir2*G*GHHHj((LLNN 	 	DAqCFF3iif%%%%%r'   c                     t           d             }t           d             } |            } ||          }|                     |d           d S )Nc                  N    t          j        t          t                    } d| d<   | S )NGz?r   )r
   r  r   r   rz   s    r%   producerz-TestTypedDict.test_compiled.<locals>.producerv  s!    
5'**AAaDHr'   c                     | d         S r   r   rz   s    r%   consumerz-TestTypedDict.test_compiled.<locals>.consumer|  s    Q4Kr'   r  r+   )r.   r  r  r#   vals        r%   test_compiledzTestTypedDict.test_compiledu  sl    		 	 
	
 
	 	 
	 HJJhqkkd#####r'   c                     t          j        t          j        t          j        t          j        g          t
                    }d|d<   |                     |d         |                    d                     d S )Nkey_type
value_typei90  )r   r   )r
   r  r   r  uint32r   r,   r8   r.   r#   s     r%   test_gh7908zTestTypedDict.test_gh7908  sm    J[%,"',"0 1 1  
 &	6AEE&MM22222r'   Fc                    t          j        t          t                    }i }d|d<   d|d<   |r| j        n| j        } | ||           ||                     d|d<   d|d<    | ||           ||                     t          dd          D ]}|dz   ||<   |dz   ||<    | ||           ||                     |r3|                      ||                              d                     d S d S )Nr)   r   rF   r>   rn   r   )r
   r  r   r   r,   r   r   
startswith)r.   strfnprefixr  r#   checkerr$   s          r%   check_stringifyzTestTypedDict.check_stringify  s(   j&&A!#)?$--t/?a%%**%%%A!a%%**%%%r2 	 	AUCFq5AaDDa%%**%%% 	?OOEE#JJ11*==>>>>>	? 	?r'   c                 >    |                      t          d           d S )NT)r  )r  reprr  s    r%   	test_reprzTestTypedDict.test_repr  s!    T$/////r'   c                 :    |                      t                     d S r6   )r  r   r  s    r%   test_strzTestTypedDict.test_str  s    S!!!!!r'   N)F)
r  r  r  r  r  r  r  r  r  r  r   r'   r%   r  r  ;  s        /@ /@ /@b& & &$ $ $3 3 3? ? ? ?"0 0 0" " " " "r'   r  c                       e Zd Zd ZdS )DictIterableCtorc                 @   t           d             }t           d             }t           d             }t           d             }t           d             }t           d             }t           d             }t           d             }d	 }	|d
dg |	dddd
          f|d
dg |	dddd
          f|d
dg |	dddd
          f|d
dg |	dddd
          f|d
dg |	dddd          f|dg |	ddd          f|d |	ddi          g |	ddi          f|d |	ddi          g |	d |	ddi          i          f|dt          g d          g |	dt          g d          i          ff	}
|
D ]3\  }}}| j        r || }n
 |j        | }|                     ||           4d S )Nc                 @    t          t          | |                    }|S r6   r
   rK   )r   r   r#   s      r%   func1z>DictIterableCtor.test_iterable_type_constructor.<locals>.func1  s    SAYYAHr'   c                 Z    t          d          }t          t          ||                    S rw   )r   r
   rK   a_r   r   s      r%   func2z>DictIterableCtor.test_iterable_type_constructor.<locals>.func2  s!    aAAq		??"r'   c                 D    g d}t          t          ||                    S )Nr   r   r)   r  r  s      r%   func3z>DictIterableCtor.test_iterable_type_constructor.<locals>.func3  s    		AAq		??"r'   c           	      x    t          | |          }t          t          | t          ||                               S r6   )rK   r
   r   r   r   s      r%   func4z>DictIterableCtor.test_iterable_type_constructor.<locals>.func4  s/    Aq		AAs1ayy))***r'   c                 X    t          t          t          | |          |                    S r6   r  r   r   s     r%   func5z>DictIterableCtor.test_iterable_type_constructor.<locals>.func5  s"    C1IIq))***r'   c                      t          |           S r6   r
   )r   s    r%   func6z>DictIterableCtor.test_iterable_type_constructor.<locals>.func6  s    ;;r'   c                 $    t          | |i          S r6   r  )rO   rP   s     r%   func7z>DictIterableCtor.test_iterable_type_constructor.<locals>.func7  s    A<<r'   c                 ,    t                      }||| <   |S r6   r  rO   rP   r#   s      r%   func8z>DictIterableCtor.test_iterable_type_constructor.<locals>.func8      AAaDHr'   c                 `    t                      }|                                 D ]
\  }}|||<   |S r6   )r
   r   )py_dictr#   rO   rP   s       r%   	_get_dictzBDictIterableCtor.test_iterable_type_constructor.<locals>._get_dict  s6    A  1!Hr'   r  abcr   r   r   )r   r   r   )r   r   r   )r)   r   r)   )r  r  r  )r   r   )rF   r   r   rF   keyr   rO   rQ   )r   r   jit_enabledrp   r   )r.   r  r  r  r  r  r  r  r  r  rN   funcargsr   r   s                  r%   test_iterable_type_constructorz/DictIterableCtor.test_iterable_type_constructor  s   		 	 
	 
	# 	# 
	# 
	# 	# 
	# 
	+ 	+ 
	+ 
	+ 	+ 
	+ 
	 	 
	 
	  	  
	  
	 	 
	
	 	 	 Y&		ccc2J2J(K(KLY&		ccc2J2J(K(KLY&		ccc2J2J(K(KLY&		!mFF)H )H IY&		#==)? )? @ )+YY337G7G-H-HIUIIq%j112IIsAh4G4GHUIIq%j112II		1e*--.50 50 1UDOO,iiYYY(/* /* +
" %) 	3 	3 D$ *dDk"dlD)##Hc2222	3 	3r'   N)r  r  r  r  r   r'   r%   r  r    s(        D3 D3 D3 D3 D3r'   r  c                   &    e Zd Zd Zd Zd Zd ZdS )TestDictIterableCtorJitc                     d| _         d S )NTr
  r  s    r%   setUpzTestDictIterableCtorJit.setUp  s    r'   c                     t           d             }d}|                     t          |          5   |             d d d            d S # 1 swxY w Y   d S )Nc                       t          d          S rw   r  r   r'   r%   ctorzDTestDictIterableCtorJit.test_exception_no_iterable_arg.<locals>.ctor  s    77Nr'   !.*No implementation of function.*r   assertRaisesRegexr   r.   r  msgs      r%   test_exception_no_iterable_argz6TestDictIterableCtorJit.test_exception_no_iterable_arg  s    		 	 
	 2##K55 	 	DFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   AA
A
c                     t           d             }d}|                     t          |          5   |             d d d            d S # 1 swxY w Y   d S )Nc                  &    t          ddd          S )Nr)   rV   r  r  r   r'   r%   r  zATestDictIterableCtorJit.test_exception_dict_mapping.<locals>.ctor  s    A!%%%r'   r  r  r  s      r%   test_exception_dict_mappingz3TestDictIterableCtorJit.test_exception_dict_mapping  s    		& 	& 
	& 2##K55 	 	DFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  c                     t           d             }d}|                     t          |          5   |             d d d            d S # 1 swxY w Y   d S )Nc                       t          d          S )Nr  )r)   r   rF   r  r   r'   r%   r  z<TestDictIterableCtorJit.test_exception_setitem.<locals>.ctor  s    /000r'   r  r  r  s      r%   test_exception_setitemz.TestDictIterableCtorJit.test_exception_setitem  s    		1 	1 
	1 2##K55 	 	DFFF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r  N)r  r  r  r  r  r  r#  r   r'   r%   r  r    sP                     r'   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestDictIterableCtorNoJitc                     d| _         d S )NFr  r  s    r%   r  zTestDictIterableCtorNoJit.setUp  s     r'   c                     d}|                      t          |          5  t          dd           d d d            d S # 1 swxY w Y   d S )Nz%Dict expect at most 1 argument, got 2r   r)   r  r   r
   r.   r  s     r%   test_exception_nargsz.TestDictIterableCtorNoJit.test_exception_nargs  s    5##K55 	 	AJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   <A A c                     d}|                      t          |          5  t          ddi           d d d            d S # 1 swxY w Y   d S )Nz$.*dict\(mapping\) is not supported.*r   r)   r(  r)  s     r%   test_exception_mapping_ctorz5TestDictIterableCtorNoJit.test_exception_mapping_ctor  s    5##K55 	 	!QLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   =AAc                     d}|                      t          |          5  t          d           d d d            d S # 1 swxY w Y   d S )Nz.*object is not iterable.*rF   r(  r)  s     r%   test_exception_non_iterable_argz9TestDictIterableCtorNoJit.test_exception_non_iterable_arg  s    *##K55 	 	GGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   ;??c                     d}|                      t          |          5  t          d           d d d            d S # 1 swxY w Y   d S )Nz6.*dictionary update sequence element #1 has length 3.*r"  )r  
ValueErrorr
   r)  s     r%   r#  z0TestDictIterableCtorNoJit.test_exception_setitem#  s    F##J44 	* 	*()))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*r/  N)r  r  r  r  r*  r,  r.  r#  r   r'   r%   r%  r%    s_        ! ! !  
  
  
* * * * *r'   r%  c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestDictRefctTypesc                    t           d             } |            }|                     |d         d           |                     |d         d           ddd}|                     t          |          |           d|d<   d|d<   |                     |d         d           |                     t          |          |           d}t          |          D ]&}||t	          |          <   ||t	          |          <   't          |          D ]+}|                     |t	          |                   |           ,|                     t          |          |           d S )	Nc                  n    t          j        t          j        t          j                  } d| d<   d| d<   | S )Nr  {   123A  321)r
   r  r   r[  r   rz   s    r%   r&   z,TestDictRefctTypes.test_str_key.<locals>.foo,  s<    
+ ;  A AeHAeHHr'   r7  r6  r9  r8  )r7  r9     r*   r   r,   rq   r   r   r.   r&   r#   r  r   r$   s         r%   test_str_keyzTestDictRefctTypes.test_str_key+  sa   		 	 
	 CEE53'''53'''S))a&)))%u53'''a&)))u 	 	AAc!ffIF3q66NNu 	+ 	+AQs1vvY****a&)))))r'   c                    t           d             } |            }|                     |d         d           |                     |d         d           ddd}|                     t          |          |           d|d<   d|d<   |                     t          |          |           d}t          |          D ]&}t	          |          ||<   t	          |          ||<   't          |          D ]+}|                     ||         t	          |                     ,|                     t          |          |           d S )	Nc                  n    t          j        t          j        t          j                  } d| d<   d| d<   | S )Nr  r7  r6  r9  r8  )r
   r  r   r   r[  rz   s    r%   r&   z,TestDictRefctTypes.test_str_val.<locals>.fooJ  s<    
 -  A AcFAcFHr'   r6  r7  r8  r9  r6  r8  231r   r;  r<  s         r%   test_str_valzTestDictRefctTypes.test_str_valI  sG   		 	 
	 CEE3'''3'''5))a&)))#sa&)))u 	 	Aq66AaDAF1IIu 	+ 	+AQqT3q66****a&)))))r'   c                 &   t           j                            d           t          j        t
          j        t
          j        d d                    }g }|                    t           j                            d                     |d         |d<   |                    t           j                            d                     |d         |d<   t          d          D ]L}|                    t           j                            |                     |d         |t          |          <   M|                     t          |          t          |                     |                     |d         |d	                    |                     |d         |d
                    t          |                                |          D ]\  }}|                     ||           |                     d|v            |                     d|v            |d= |                     d|v            |d= |                     d|v            |d	d= t          d          D ]C}|                                \  }}|                                }|                     ||           D|                    t           j                            d                     |d         |d<   t          |                                |          D ]\  }}|                     ||           d S )Nr6  r  r>   r?   massrn   velocityr*   r   r   r)   Z   last)r  randomseedr
   r  r   r[  r   r7   r   r   r,   r2   r   rK   r   r   r   ra   rv   )	r.   r#   r  r$   r   exprO   rP   ws	            r%   test_str_key_array_valuez+TestDictRefctTypes.test_str_key_array_valuef  s   
	sJ'}QQQ'
 
 
 bi&&r**+++2J&	bi&&r**+++r
*s 	# 	#AMM")**1--...r
Ac!ffIIQV---&	6!9555*vay999AHHJJ// 	. 	.HC##C---- 	!$$$
a(((fI1%%%jMq)))1Q3Kr 	* 	*A99;;DAq

A##Aq)))) 	bi&&r**+++2J&	 AHHJJ// 	. 	.HC##C----	. 	.r'   c                    d }t          j        t          j        t          j        t          j        t          j                            }d } |||          } |i t
                    }|                     |t
                     |                     t          |          |           dD ]+}||= ||= |                     t          |          |           ,d S )Nc                  Z    t          j        t          j        t          j                  } | S Nr  r
   r  r   intprz   s    r%   inner_numba_dictzITestDictRefctTypes.test_dict_of_dict_int_keyval.<locals>.inner_numba_dict  s)    
 :  A Hr'   r  c                     t          d          D ].} |            }t          |dz             D ]
}|dz  ||<   || |<   /| S )Nr*   r   r_  r   )r#   make_inner_dictr$   midjs        r%   usecasez@TestDictRefctTypes.test_dict_of_dict_int_keyval.<locals>.usecase  s\    3ZZ  %o''q1u ' 'AYCFF!Hr'   )rS  rF   r     r>   )r
   r  r   rQ  r   rq   assertIsInstancer,   )r.   rR  r#   rW  r   r  wheres          r%   test_dict_of_dict_int_keyvalz/TestDictRefctTypes.test_dict_of_dict_int_keyval  s    	 	 	 JZ~ej%*==
 
 

	 	 	 ga)**T""fd+++cF+++ ' 	0 	0EE
uT#YY////	0 	0r'   c                   	 t          j        t           j        t           j                  t          d             	t          	fd            } |d          }d}|                                D ]`\  }}|dz  }|                     t          |          |dz              |                                D ]\  }}|                     ||           a|                     |d           d S )Nc                  Z    t          j        t          j        t          j                  } | S rO  rP  rz   s    r%   rR  zBTestDictRefctTypes.test_dict_of_dict_npm.<locals>.inner_numba_dict  s)    
 :  A Hr'   c                     t          j        t          j                  }t	          |           D ]/}             ||<   t	          |dz             D ]}|||         |<   0|S )Nr  r   )r
   r  r   rQ  r   )countr#   r$   rV  inner_dict_tyrR  s       r%   r&   z5TestDictRefctTypes.test_dict_of_dict_npm.<locals>.foo  s~    
(  A 5\\    ''))!q1u    AAaDGG  Hr'   r*   r   r   )r   r   rQ  r   r   r,   r2   )
r.   r&   r#   ctrO   ddkkvvr`  rR  s
           @@r%   test_dict_of_dict_npmz(TestDictRefctTypes.test_dict_of_dict_npm  s   uz5:>>		 	 
	 

	 
	 
	 
	 
	 

	 CHHWWYY 	) 	)EAr!GBSWWa!e,,,((** ) )B  R(((() 	S!!!!!r'   c                 
   t          j        t          j        t          j                  }d|d<   t
          d             } ||d           |                     t          |          d           |                     |           d S )Nappler   c                     | d= d S r   r   )r   rO   s     r%   r&   z,TestDictRefctTypes.test_delitem.<locals>.foo  s    !r'   r   )	r
   r  r   r   r[  r   r,   r2   r   )r.   r#   r&   s      r%   test_delitemzTestDictRefctTypes.test_delitem  s    Ju{E$677!		 	 
	 	Aq			Q###r'   c                    t          j        t          j        t          j        d d                    }t	          j        dt          j                  |d<   t          d             } ||           |j        d         j        }| 	                    |t          j
                   |                     |t          j                   |                     |d         t	          j        dt          j                  dz              d S )Nr>   r  r   c                 2    | dxx         dz  cc<   | d         S r   r   rz   s    r%   r&   z8TestDictRefctTypes.test_getitem_return_type.<locals>.foo  s     aDDDCKDDDQ4Kr'   r   r*   )r
   r  r   r   r  aranger   nopython_signaturesreturn_typerY  ArrayassertNotIsInstanceOptionalr   )r.   r#   r&   rettys       r%   test_getitem_return_typez+TestDictRefctTypes.test_getitem_return_type  s    Ju{EKN33y28,,,!		 	 
	 	A'*6eU[111  777!bi"(&C&C&Cc&IJJJJJr'   c                     t                      }g d}|D ]}|||<   t          |          D ]!\  }}|                     ||         |           "d S )N))r   Tr   )r   Fr   )r   Fr   )r
   r   r,   )r.   dctrefr   r$   s        r%   test_storage_model_mismatchz.TestDictRefctTypes.test_storage_model_mismatch  sz     ff
 
 
  	 	ACFFcNN 	( 	(DAqSVQ''''	( 	(r'   N)r  r  r  r=  rB  rL  r[  re  ri  rs  rw  r   r'   r%   r3  r3  )  s        * * *<* * *:). ). ).V 0  0  0D "  "  "D
 
 
K K K$( ( ( ( (r'   r3  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestDictForbiddenTypesc                     |                      t                    5 } |             d d d            n# 1 swxY w Y   t          |j                  }|                     ||           d S r6   )rZ   r   r   r   r   )r.   r  callabler   r  s        r%   assert_disallowz&TestDictForbiddenTypes.assert_disallow  s    {++ 	vHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	&"##fc"""""s   266c                     d                               }|                     |fd           t          fd            }|                     ||           d S )Nz{} as key is forbiddenc                  B    t          j         t          j                  S r6   rP  tys   r%   <lambda>z<TestDictForbiddenTypes.assert_disallow_key.<locals>.<lambda>  s    $*R*D*D r'   c                  F    t          j         t          j                   d S r6   rP  r  s   r%   r&   z7TestDictForbiddenTypes.assert_disallow_key.<locals>.foo  s    Jr5:&&&&&r'   r  r|  r   r.   r  r  r&   s    `  r%   assert_disallow_keyz*TestDictForbiddenTypes.assert_disallow_key  su    &--b11S"D"D"D"DEEE		' 	' 	' 	' 
	'S#&&&&&r'   c                     d                               }|                     |fd           t          fd            }|                     ||           d S )Nz{} as value is forbiddenc                  B    t          j        t          j                   S r6   rP  r  s   r%   r  z>TestDictForbiddenTypes.assert_disallow_value.<locals>.<lambda>  s    $*UZ*D*D r'   c                  F    t          j        t          j                    d S r6   rP  r  s   r%   r&   z9TestDictForbiddenTypes.assert_disallow_value.<locals>.foo  s    Juz2&&&&&r'   r  r  s    `  r%   assert_disallow_valuez,TestDictForbiddenTypes.assert_disallow_value  su    (//33S"D"D"D"DEEE		' 	' 	' 	' 
	'S#&&&&&r'   c                     |                      t          j        t          j                             |                     t          j        t          j                             d S r6   )r  r   r   rQ  r  r  s    r%   test_disallow_listz)TestDictForbiddenTypes.test_disallow_list  sH      EJ!7!7888""5:ej#9#9:::::r'   c                     |                      t          j        t          j                             |                     t          j        t          j                             d S r6   )r  r   SetrQ  r  r  s    r%   test_disallow_setz(TestDictForbiddenTypes.test_disallow_set!  sH      5:!6!6777""59UZ#8#899999r'   N)r  r  r  r|  r  r  r  r  r   r'   r%   ry  ry    s_        # # #' ' '' ' '; ; ;: : : : :r'   ry  c                   n    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 ZdS )TestDictInferredc                 b   t           d             }d\  }} |            }|                     t          |          ||i           |                     t          |          j        t          |                     |                     t          |          j        t          |                     d S )Nc                  ,    t                      } d| d<   | S )Nr8  r6  r  rz   s    r%   r&   z1TestDictInferred.test_simple_literal.<locals>.foo(  s    AAcFHr'   r@  r   r,   rq   r	   r  r  r.   r&   rO   rP   r#   s        r%   test_simple_literalz$TestDictInferred.test_simple_literal'  s    		 	 
	
 1CEEa1a&)))+VAYY777-vayy99999r'   c                 f   t           d             }d\  }} |||          }|                     t          |          ||i           |                     t          |          j        t          |                     |                     t          |          j        t          |                     d S )Nc                 ,    t                      }||| <   |S r6   r  r  s      r%   r&   z.TestDictInferred.test_simple_args.<locals>.foo5  r  r'   r@  r  r  s        r%   test_simple_argsz!TestDictInferred.test_simple_args4  s    		 	 
	
 1C1IIa1a&)))+VAYY777-vayy99999r'   c                 j   t           d             }d\  }}} ||||          }|                     t          |          ||i           |                     t          |          j        t          |                     |                     t          |          j        t          |                     d S )Nc                 6    t                      }||| <   ||| <   |S r6   r  rO   rP   rK  r#   s       r%   r&   z0TestDictInferred.test_simple_upcast.<locals>.fooB  "    AAaDAaDHr'   )r6  @@r8  r  )r.   r&   rO   rP   rK  r#   s         r%   test_simple_upcastz#TestDictInferred.test_simple_upcastA  s    		 	 
	 !1aC1aLLa1a&)))+VAYY777-vayy99999r'   c                 @   t           d             }d\  }}}|                     t                    5 } ||||           d d d            n# 1 swxY w Y   |                     d                    t          |                    t          |j                             d S )Nc                 6    t                      }||| <   ||| <   |S r6   r  r  s       r%   r&   z9TestDictInferred.test_conflicting_value_type.<locals>.fooP  r  r'   )r6  r8  r   cannot safely cast float64 to {}r   rZ   r   r   r  r	   r   r   )r.   r&   rO   rP   rK  r   s         r%   test_conflicting_value_typez,TestDictInferred.test_conflicting_value_typeO  s    		 	 
	 !1a{++ 	vC1aLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	.55fQii@@ !!	
 	
 	
 	
 	
   AAAc                 @   t           d             }d\  }}}|                     t                    5 } ||||           d d d            n# 1 swxY w Y   |                     d                    t          |                    t          |j                             d S )Nc                 6    t                      }||| <   |||<   |S r6   r  )rO   hrP   r#   s       r%   r&   z7TestDictInferred.test_conflicting_key_type.<locals>.foo`  r  r'   )r6  gfffff^@r8  r  r  )r.   r&   rO   r  rP   r   s         r%   test_conflicting_key_typez*TestDictInferred.test_conflicting_key_type_  s    		 	 
	 "1a{++ 	vC1aLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	.55fQii@@ !!	
 	
 	
 	
 	
r  c                    t           d             }t          j        d          t          j        d          f}t          j        d          t          j        d          f}t          j        d          }t          j        d          5 } ||||          \  }}d d d            n# 1 swxY w Y   |                     t          |          d           d}| 	                    |t          |d                              t          |                                          }	|                     |	d         d	           |                     ||t          j        d          t          j        d          f                    d S )
Nc                 <    t                      }||| <   |||         fS r6   r  )rL  r  rM  r#   s       r%   r&   z?TestDictInferred.test_conflict_key_type_non_number.<locals>.fooq  s!    AAbEae8Or'   r   r)   r6  T)recordz:unsafe cast from UniTuple(int32 x 2) to UniTuple(int8 x 2)r   )r   r)   )r   r  r  r   rQ  warningscatch_warningsr,   r2   r   r   r   rM   )
r.   r&   rL  rM  r  rK  r#   dk2r  rM   s
             r%   !test_conflict_key_type_non_numberz2TestDictInferred.test_conflict_key_type_non_numbero  s{   		 	 
	 gajj"'!**%hqkk28A;;'WS\\$D111 	%QSR__FAs	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%Q###Jc3qt99%%%AFFHH~~a&)))a!bhqkk :;<<<<<s   
B''B+.B+c                    t           d             }d\  }} |||          }|                     t          |          ||i           d\  }} |||          }|                     t          |          d|dz   i           d S )Nc                 B    t                      }| r||| <   n|dz   |d<   |S )Nr     r  r  s      r%   r&   z>TestDictInferred.test_ifelse_filled_both_branches.<locals>.foo  s0    A "!E&	Hr'   r@  rf   r  r   r   r,   rq   r  s        r%    test_ifelse_filled_both_branchesz1TestDictInferred.test_ifelse_filled_both_branches  s    		 	 
	 1C1IIa1a&)))1C1IIa61q5/22222r'   c                    t           d             }d\  }} |||          }|                     t          |          ||i           d\  }} |||          }|                     t          |          i            |                     t          |          j        t          |                     |                     t          |          j        t          |                     d S )Nc                 0    t                      }| r||| <   |S r6   r  r  s      r%   r&   z:TestDictInferred.test_ifelse_empty_one_branch.<locals>.foo  s!    A !Hr'   r@  rf   r  r  s        r%   test_ifelse_empty_one_branchz-TestDictInferred.test_ifelse_empty_one_branch  s    		 	 
	 1C1IIa1a&)))1C1IIa"%%%+VAYY777-vayy99999r'   c           	      .   t           d             }t          t          d                    }t          t          d |                    } |||          }|                     t          |          t          t          ||                               d S )Nc                 X    t                      }t          | |          D ]
\  }}|||<   |S r6   r  )ksvsr#   rO   rP   s        r%   r&   z'TestDictInferred.test_loop.<locals>.foo  s6    AB  1!Hr'   rV   c                     | dz   S )Nr*   r   r   s    r%   r  z,TestDictInferred.test_loop.<locals>.<lambda>  s
    S r'   )r   r   r   mapr,   rq   rK   )r.   r&   r  r  r#   s        r%   	test_loopzTestDictInferred.test_loop  s    		 	 
	 %((^^#(("--..CBKKa$s2r{{"3"344444r'   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  "    t                      } | S r6   r  rz   s    r%   r&   z)TestDictInferred.test_unused.<locals>.foo  s    AHr'   zimprecise typer   r   s      r%   test_unusedzTestDictInferred.test_unused  s    		 	 
	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !!	
 	
 	
 	
 	
r  c                    t           d             } |d          \  }}}|                     |d           |                     |d           |                     t          |          ddi            |d          \  }}}|                     |d           |                     t          |          i            |                     |d           d S )Nc                     t                      }t          |          }|                                D ]
\  }}||z  }| rd|d<   ||t          |          fS Nr)   r   )r
   r2   r   )definer#   ra  rO   rP   s        r%   r&   z3TestDictInferred.test_define_after_use.<locals>.foo  s_    AQB		  1a !q#a&&= r'   Tr   r   r)   Fr  )r.   r&   ra  r#   r"   s        r%   test_define_after_usez&TestDictInferred.test_define_after_use  s    			! 		! 
		! 3t99AqQAa1a&)))3u::AqQa"%%%Ar'   c           	          t           d             }d\  }}} ||||          }|                     t          |          ||dz   ||z   i||dz   ||z   ii           d S )Nc                     t                      }t                      }|| z   || dz   <   t                      }||z   ||dz   <   ||| <   |||<   |S Nr   r)   r  )rL  rM  rP   r#   z1z2s         r%   r&   z/TestDictInferred.test_dict_of_dict.<locals>.foo  sV    ABRBrAvJBRBrAvJAbEAbEHr'   )r*   r  r8  r   r)   r  )r.   r&   rL  rM  rP   r#   s         r%   test_dict_of_dictz"TestDictInferred.test_dict_of_dict  s    		 	 
	 "	BCBNNGGR!VR!V$R!VR!V$	
 	
 	
 	
 	
r'   c                     t           d             }|                      |            |                                           d S )Nc                  4    d t          d          D             S )Nc                     i | ]}|d |z  	S )r)   r   r  s     r%   r  zJTestDictInferred.test_comprehension_basic.<locals>.foo.<locals>.<dictcomp>  s    000Aq1u000r'   r>   r   r   r'   r%   r&   z6TestDictInferred.test_comprehension_basic.<locals>.foo  s    00eBii0000r'   r|  r-   s     r%   test_comprehension_basicz)TestDictInferred.test_comprehension_basic  sG    		1 	1 
	1 	.....r'   c                     t           d             }|                      |            |                                           d S )Nc            	      n    d t          t          d          t          ddd                    D             S )Nc                 4    i | ]\  }}|t          |          S r   r  )r   r$   rV  s      r%   r  zUTestDictInferred.test_comprehension_basic_mixed_type.<locals>.foo.<locals>.<dictcomp>  s$    MMMDAqAuQxxMMMr'   r>   r   r?   )rK   r   r   r'   r%   r&   zATestDictInferred.test_comprehension_basic_mixed_type.<locals>.foo  s2    MMCb		5Q;K;K,L,LMMMMr'   r|  r-   s     r%   #test_comprehension_basic_mixed_typez4TestDictInferred.test_comprehension_basic_mixed_type  sJ    		N 	N 
	N 	.....r'   c                     t           d             }|                      |            |                                           d S )Nc                  F     dddd  fdt          d          D             S )NABCr  c                 (    i | ]}d |z   |         S r  r   r   r$   r   s     r%   r  zMTestDictInferred.test_comprehension_involved.<locals>.foo.<locals>.<dictcomp>  #    222AAE1Q4222r'   rF   r   r   s   @r%   r&   z9TestDictInferred.test_comprehension_involved.<locals>.foo  s2    CC((A2222q2222r'   r|  r-   s     r%   test_comprehension_involvedz,TestDictInferred.test_comprehension_involved   sG    		3 	3 
	3 	.....r'   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   t          |j                  }|                     d|           d S )Nc                  F     dddd  fdt          d          D             S )Nr  r  r   r  c                 (    i | ]}d |z   |         S r  r   r  s     r%   r  zTTestDictInferred.test_comprehension_fail_mixed_type.<locals>.foo.<locals>.<dictcomp>  r  r'   rF   r   r  s   @r%   r&   z@TestDictInferred.test_comprehension_fail_mixed_type.<locals>.foo	  s2    CB''A2222q2222r'   z&Cannot cast complex128 to unicode_type)r   rZ   r   r   r   r   )r.   r&   rm  excstrs       r%   "test_comprehension_fail_mixed_typez3TestDictInferred.test_comprehension_fail_mixed_type  s    		3 	3 
	3 {++ 	qCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 Q[!!>GGGGGr  N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r'   r%   r  r  &  s	       : : :: : :: : :
 
 
 
 
 
 = = =03 3 3$: : :$5 5 5
 
 
  .
 
 
,/ / // / // / /
H 
H 
H 
H 
Hr'   r  c                        e Zd Zd Zd Zd ZdS )TestNonCompiledInferc                 ~   t                      }|                     |j                   |                     t	          |          d           |                     t          |          t          i                      |                     t          t          |                    g            |                     t                    5 }|d          d d d            n# 1 swxY w Y   |                     t          |j
                  t          t          d                               |                     t                    5 }|d= d d d            n# 1 swxY w Y   |                     t          |j
                  t          t          d                               |                     t                    5  |                    d           d d d            n# 1 swxY w Y   |                     t          |j
                  t          t          d                               |                     |                    dd           d            |                     |                    d          d            |                     t                    5 }|                                 d d d            n# 1 swxY w Y   |                     t          |j
                  t          t          d                               |                     t                    5 }|                    d           d d d            n# 1 swxY w Y   |                     t          |j
                  t          t          d                               |                     d|v            |                     |j                   d S )Nr   r   zdictionary is emptyz'invalid operation on untyped dictionary)r
   r   _typedr,   r2   r   r   iterrZ   r[   r   rv   assertIsr8   ra   	TypeErrorr   )r.   r#   r   s      r%   test_check_untyped_dict_opsz0TestNonCompiledInfer.test_check_untyped_dict_ops  s3   FF"""Q###QR)))d1gg+++x(( 	FaDD	 	 	 	 	 	 	 	 	 	 	 	 	 	 	V-..HQKK0@0@AAAx(( 	F!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	V-..HQKK0@0@AAAx(( 	 	EE!HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	V-..HQKK0@0@AAAaeeAtnnd+++aeeAhh%%%x(( 	FIIKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	V-..X&;<<==	? 	? 	? y)) 	VLLOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 !!	CDDEE	
 	
 	

 	a   """""sZ   	CC"CEEE9GG"GJ66J:=J:L??MMc                     t                      }d|d<   |                     |j                   |                     |d         d           d S r  )r
   r   r  r,   r  s     r%   test_getitemz!TestNonCompiledInfer.test_getitem>  sH    FF!!!!1q!!!!!r'   c                     t                      }|                    dd           |                     |j                   |                     |d         d           d S r  )r
   r   r   r  r,   r  s     r%   test_setdefaultz$TestNonCompiledInfer.test_setdefaultF  sS    FF	Q!!!1q!!!!!r'   N)r  r  r  r  r  r  r   r'   r%   r  r    sB        &# &# &#P" " "" " " " "r'   r  r   )specc                       e Zd Zd Zd ZdS )Bagc                     || _         d S r6   r  )r.   r   s     r%   __init__zBag.__init__Q  s    r'   c                 *    t          | j                  S r6   )r  r   r  s    r%   __hash__zBag.__hash__T  s    DF||r'   N)r  r  r  r  r  r   r'   r%   r  r  O  s2              r'   r  c                       e Zd Zd ZdS )TestDictWithJitclassc                     t           d             } |t          d                    }|                     |d         j        d           |                     |d         j        d           d S )Nc                 P    t                      }| |d<   t          d          |d<   |S )Nr   e   r   )r
   r  )r   r#   s     r%   r&   z8TestDictWithJitclass.test_jitclass_as_value.<locals>.fooZ  s(    AAaDs88AaDHr'   r*   r  r   r   r  )r   r  r,   r   )r.   r&   r#   s      r%   test_jitclass_as_valuez+TestDictWithJitclass.test_jitclass_as_valueY  sp    		 	 
	 Cc


OO1%%%1%%%%%r'   N)r  r  r  r  r   r'   r%   r  r  X  s#        
& 
& 
& 
& 
&r'   r  c                   $    e Zd ZdZd Zd Zd ZdS )	TestNoJitz0Exercise dictionary creation with JIT disabled. c                 2   t          dd          5  t                      5  t          j        t          t
                    }|                     t          |          t                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S NDISABLE_JITT)	r   r   r   r   r   r   r,   typerq   r  s     r%   &test_dict_create_no_jit_using_new_dictz0TestNoJit.test_dict_create_no_jit_using_new_dicti  s   ]D11 	0 	0!! 0 0'w77  a$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s5   BAA4(B4A8	8B;A8	<BBBc                    t          dd          5  t                      5  t                      }|                     t	          |          t
                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S r  )r   r   r
   r,   r  rq   r  s     r%   "test_dict_create_no_jit_using_Dictz,TestNoJit.test_dict_create_no_jit_using_Dicto  s    ]D11 	0 	0!! 0 0FF  a$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s4   A;7A#A;#A'	'A;*A'	+A;;A?A?c                 F   t          dd          5  t                      5  t          j        t          j        t          j                  }|                     t          |          t                     d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S r  )
r   r   r
   r  r   r   r   r,   r  rq   r  s     r%   #test_dict_create_no_jit_using_emptyz-TestNoJit.test_dict_create_no_jit_using_emptyu  s   ]D11 	0 	0!! 0 0Ju{EM::  a$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s5   BAA>2B>B	BB	BBBN)r  r  r  __doc__r  r  r  r   r'   r%   r  r  f  sG        ::0 0 00 0 00 0 0 0 0r'   r  c                       e Zd Zd ZdS )TestDictIteratorc                 ^   t           d             }t           d             } |            } |            }|                     g d|d                    |                     g d|d                    |                     g d|d                    |                     g d|d                    d S )	Nc                      t          j        t          j        t          j                  } d| d<   d| d<   d| d<   t	          |                                           t	          |                                           fS )Nr  r>   r   rn   r   ro   r)   r
   r  r   rQ  r   rM   r   rb  s    r%   fun1z1TestDictIterator.test_dict_iterator.<locals>.fun1~  e    UZ',z3 3 3BBqEBqEBqE		??D$5$555r'   c                      t          j        t          j        t          j                  } d| d<   d| d<   d| d<   t	          |                                           t	          |                                           fS )Nr  M   rV   X   r<   c   r  r  r  s    r%   fun2z1TestDictIterator.test_dict_iterator.<locals>.fun2  r  r'   r  r   rm   r   )rV   r<   r  )r  r  r  r+   )r.   r  r  res1res2s        r%   test_dict_iteratorz#TestDictIterator.test_dict_iterator}  s    		6 	6 
	6 
	6 	6 
	6 tvvtvv$q'***T!W---$q'***T!W-----r'   N)r  r  r  r  r   r'   r%   r  r  |  s#        . . . . .r'   r  c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	TestTypedDictInitialValueszBTests that typed dictionaries carry their initial value if presentc                 |     d t                     fd            }t          fd            } |             d S )Nc                     d S r6   r   rz   s    r%   ru  zDTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.bar      Cr'   c                     | j         d S                     t          | t          j                                                 | j         dddd                               t          | d          d           d S )	Nc                      t          |           S r6   r   rz   s    r%   r  zYTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.ol_bar.<locals>.<lambda>      1 r'   r   r)   rF   r  literal_valueFc                     | S r6   r   rz   s    r%   r  zYTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.ol_bar.<locals>.<lambda>      Q r'   )initial_valuer   
isinstancer   r   r,   hasattrr#   r.   s    r%   ol_barzGTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.ol_bar  s|    &---OOJq%.99:::Q_AAA.F.FGGGWQ88%@@@;r'   c                  *    dddd}  |            d S )Nr   r)   rF   r  r   r   ru  s    r%   r&   zDTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.foo  s%     aa((ACFFFFFr'   r   r   r.   r*  r&   ru  s   `  @r%   test_homogeneous_and_literalz7TestTypedDictInitialValues.test_homogeneous_and_literal  st    	 	 	 
#	 	 	 	 
	 
	 	 	 	 
	
 	r'   c                 |     d t                     fd            }t          fd            } |             d S )Nc                     d S r6   r   rz   s    r%   ru  zVTestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.bar  r  r'   c                                          t          | t          j                                                 | j        d                                t          | d          d           d S )Nr#  Fc                     | S r6   r   rz   s    r%   r  zkTestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.ol_bar.<locals>.<lambda>  r%  r'   )r   r'  r   r   r,   r&  r(  r)  s    r%   r*  zYTestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.ol_bar  sa    OOJq%.99:::Q_d333WQ88%@@@;r'   c                  *    dddd}  |            d S )Nr   r)   rF   r  r   r,  s    r%   r&   zVTestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.foo  s%     qq))ACFFFFFr'   r-  r.  s   `  @r%   .test_heterogeneous_but_castable_to_homogeneouszITestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous  st    	 	 	 
#	 	 	 	 
	 
	 	 	 	 
	 	r'   c                 |     d t                     fd            }t          fd            } |             d S )Nc                     d S r6   r   rz   s    r%   ru  zZTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.bar  r  r'   c                 6   dddd}d fd|                                 D             }                    t          | t          j                                                 | j        |                               t          | d          d           d	 S )
Nr                  @rF   r  c                 p    t          j        |           rt          j        |           nt          |           S r6   )r   maybe_literalliteralr	   r   s    r%   specific_tyzrTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.ol_bar.<locals>.specific_ty  s-    +0+>q+A+APu}Q'''vayyPr'   c                 R    i | ]#\  }}t          j        |           |          $S r   )r   r<  )r   r   r  r>  s      r%   r  zqTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.ol_bar.<locals>.<dictcomp>  s1    OOOTQa((++a..OOOr'   r&  Fc                     | S r6   r   rz   s    r%   r  zoTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.ol_bar.<locals>.<lambda>  r%  r'   )r   r   r'  r   LiteralStrKeyDictr,   r#  r(  )r#   r   r   r>  r.   s      @r%   r*  z]TestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.ol_bar  s    bq))AQ Q QOOOOQWWYYOOOHOOJq%*ABBCCCQ_h777WQ88%@@@;r'   c                  *    dddd}  |            d S )Nr   r9  rF   r  r   r,  s    r%   r&   zZTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.foo  s%     bq))ACFFFFFr'   r-  r.  s   `  @r%   2test_heterogeneous_but_not_castable_to_homogeneouszMTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous  st    	 	 	 
#		 		 		 		 
		 
	 	 	 	 
	 	r'   c                 |     d t                     fd            }t          fd            } |             d S )Nc                     d S r6   r   rz   s    r%   ru  zATestTypedDictInitialValues.test_mutation_not_carried.<locals>.bar  r  r'   c                     | j         d S                     t          | t          j                                                 | j         dddd           d S )Nc                      t          |           S r6   r!  rz   s    r%   r  zVTestTypedDictInitialValues.test_mutation_not_carried.<locals>.ol_bar.<locals>.<lambda>  r"  r'   r   r)   rF   r  c                     | S r6   r   rz   s    r%   r  zVTestTypedDictInitialValues.test_mutation_not_carried.<locals>.ol_bar.<locals>.<lambda>  r%  r'   )r&  r   r'  r   r   r,   r)  s    r%   r*  zDTestTypedDictInitialValues.test_mutation_not_carried.<locals>.ol_bar  s\    &---OOJq%.99:::Q_AAA.F.FGGG;r'   c                  4    dddd} d| d<    |            d S Nr   r)   rF   r  rV   r#   r   r,  s    r%   r&   zATestTypedDictInitialValues.test_mutation_not_carried.<locals>.foo  s.     aa((AAcFCFFFFFr'   r-  r.  s   `  @r%   test_mutation_not_carriedz4TestTypedDictInitialValues.test_mutation_not_carried  st    	 	 	 
#	 	 	 	 
	 
	 	 	 	 
	 	r'   c                 J   t           d             }|d ft          ddddffD ]}\  }t           d             d t                    fd            }t           fd	            } |             j        d
         d
         }|                     |j        |           ~d S )Nc                      d S r6   r   )r  s    r%   nopzQTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.nop  s    Dr'   r   r)   rF   r  c                     d S r6   r   r  s    r%   bazzQTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.baz  s    r'   c                     d S r6   r   r=  s    r%   ru  zQTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.bar      r'   c                     fd}|S )Nc                 4     |             |            d S r6   r   )r   rP  fns    r%   implzbTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.ol_bar.<locals>.impl
  s!    BqEEECFFFFFr'   r   )r   rV  rP  rU  s     r%   r*  zTTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.ol_bar  s(          r'   c                  4    dddd}  |            d| d<   | S rJ  r   r,  s    r%   r&   zQTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.foo  s-    !!,,A#r'   r   )r   r   r   
signaturesr,   r&  )	r.   rN  ivr*  r&   largru  rP  rU  s	         @@@r%   )test_mutation_not_carried_single_functionzDTestTypedDictInitialValues.test_mutation_not_carried_single_function  s    
	 	 
	 DkIQQQ/G/G#HH 	5 	5FB  T   c]]     ]     T CEEE >!$Q'DT/44445	5 	5r'   c                    t           d             t           fd            }t                      }d|d<   t                      }d|d<   |                      |d          |           |                      |d          |           d S )	Nc                     ddi}| rddi}|S )Nr   r)   rF   r   )r   os     r%   ru  zGTestTypedDictInitialValues.test_unify_across_function_call.<locals>.bar  s!    AA FHr'   c                 ,    | rddi}n |           }|S )NrF   rV   r   )r   r#   ru  s     r%   r&   zGTestTypedDictInitialValues.test_unify_across_function_call.<locals>.foo%  s(     FCFFHr'   rV   rF   r)   r   TF)r   r
   r,   )r.   r&   e1e2ru  s       @r%   test_unify_across_function_callz:TestTypedDictInitialValues.test_unify_across_function_call  s    		 	 
	 
	 	 	 	 
	 VV1VV1TB'''UR(((((r'   N)
r  r  r  r	  r/  r5  rC  rK  r[  rb  r   r'   r%   r  r    su        LL  *  ,  6  ,!5 !5 !5F) ) ) ) )r'   r  c                       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 Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestLiteralStrKeyDictzB Tests for dictionaries with string keys that can map to anything!c                 b    t           d             }|                      |            d           d S )Nc                  <    dddd} | d         | d         | d         fS )Nr   r9  r#   r  r   r   r   r   lds    r%   r&   zCTestLiteralStrKeyDict.test_basic_const_lowering_boxing.<locals>.foo9  s*    r,,BsGRWbg..r'   )r   r9  r#   r+   r-   s     r%    test_basic_const_lowering_boxingz6TestLiteralStrKeyDict.test_basic_const_lowering_boxing8  s?    		/ 	/ 
	/ 	-----r'   c                     t           d             }|                      |d                     |                      |d                     d S )Nc                 >    | dz   }|dk    rdnd}ddd|d}|d	         S )
Nr<   r)   TFr   r9  r#   )r   r   r   	non_constrl  r   )r   r  rm  rh  s       r%   r&   z?TestLiteralStrKeyDict.test_basic_nonconst_in_scope.<locals>.fooA  s7    AAA5Ar!<<Bk?"r'   "   r   r-   s     r%   test_basic_nonconst_in_scopez2TestLiteralStrKeyDict.test_basic_nonconst_in_scope@  sY    		# 	# 
	# 	B   T#####r'   c                      dd t                     fd            }t          fd            } |             d S )Nr<   c                     d S r6   r   r  s    r%   ru  z>TestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.barQ      Dr'   c                 j                        | j        t          j        d          t          j        d          t          j        d          t	          d          t          j        d          t          j        d          t          j        d          t          j        d          i           d }|S )	Nr   r   r   r9  r   r#   r<   c                     d S r6   r   r  s    r%   rV  zOTestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.ol_bar.<locals>.impl\  rR  r'   r,   r#  r   r<  r	   r   rV  r.   s     r%   r*  zATestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.ol_barT  s    Q_#mC00%-2B2B#mC00&**#mC00%-2D2D#mC00%-2B2BDE E E  Kr'   c                  ,    dddd}  |            d S )Nr   r9  r#   r   r   r   r#   r   )rh  ru  rm  s    r%   r&   z>TestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.foo`  s%    r!44BCGGGGGr'   r-  )r.   r*  r&   ru  rm  s   `  @@r%   test_basic_nonconst_freevarz1TestLiteralStrKeyDict.test_basic_nonconst_freevarN  s    	 	 	 
#		 		 		 		 
		 
	 	 	 	 	 
	 	r'   c                 |     d t                     fd            }t          fd            } |             d S )Nc                     d S r6   r   r  s    r%   ru  z5TestLiteralStrKeyDict.test_literal_value.<locals>.bari  rr  r'   c                                         | j        t          j        d          t          j        d          t          j        d          t	          d          t          j        d          t          j        d          i           d }|S )Nr   r   r   r9  r   r#   c                     d S r6   r   r  s    r%   rV  zFTestLiteralStrKeyDict.test_literal_value.<locals>.ol_bar.<locals>.impls  rR  r'   ru  rv  s     r%   r*  z8TestLiteralStrKeyDict.test_literal_value.<locals>.ol_barl  s    Q_#mC00%-2B2B#mC00&**#mC00%-2D2DFG G G
  Kr'   c                  *    dddd}  |            d S Nr   r9  r#   r  r   rh  ru  s    r%   r&   z5TestLiteralStrKeyDict.test_literal_value.<locals>.foow  s#    r,,BCGGGGGr'   r-  r.  s   `  @r%   test_literal_valuez(TestLiteralStrKeyDict.test_literal_valueg  st    	 	 	 
#	 	 	 	 
	 
	 	 	 	 
	 	r'   c                 |     d t                     fd            }t          fd            } |             d S )Nc                     d S r6   r   r  s    r%   ru  z?TestLiteralStrKeyDict.test_list_and_array_as_value.<locals>.bar  rr  r'   c                 ^                        | j        t          j        d          t          j        d          t          j        d          t          j        t          j        g d          t          j        d          t          t          j        d                    i           d }|S )	Nr   r   r   rQ   )r&  r   r<   c                     d S r6   r   r  s    r%   rV  zPTestLiteralStrKeyDict.test_list_and_array_as_value.<locals>.ol_bar.<locals>.impl  rR  r'   )	r,   r#  r   r<  r   rQ  r	   r  zerosrv  s     r%   r*  zBTestLiteralStrKeyDict.test_list_and_array_as_value.<locals>.ol_bar  s    Q_#mC00%-2B2B#mC00#j777KKK#mC00&!2E2EGH H H  Kr'   c                  V    g d} d| t          j        d          d} |           d S )NrQ   r   r<   r  r  r  )r   rh  ru  s     r%   r&   z?TestLiteralStrKeyDict.test_list_and_array_as_value.<locals>.foo  s4    		Aqrx{{33BCGGGGGr'   r-  r.  s   `  @r%   test_list_and_array_as_valuez2TestLiteralStrKeyDict.test_list_and_array_as_value~  st    	 	 	 
#		 		 		 		 
		 
	 	 	 	 
	
 	r'   c                 |     d t                     fd            }t          fd            } |             d S )Nc                     d S r6   r   r  s    r%   ru  zBTestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.bar  rr  r'   c                                         | j        t          j        d          t          j        d          t          j        d          t	          d          t          j        d          t          j        d          i           d }|S )Nr   aaaar   r9  r   r#   c                     d S r6   r   r  s    r%   rV  zSTestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.ol_bar.<locals>.impl  rR  r'   ru  rv  s     r%   r*  zETestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.ol_bar  s     Q_#mC00%-2G2G#mC00&**#mC00%-2D2DFG G G
  Kr'   c                  .    dddddd}  |            d S )Nr   r>   r9  r#   r  )r   r   r   r   r   r   r  s    r%   r&   zBTestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.foo  s'    r6BBBCGGGGGr'   r-  r.  s   `  @r%   test_repeated_key_literal_valuez5TestLiteralStrKeyDict.test_repeated_key_literal_value  st    	 	 	 
#		 		 		 		 
		 
	 	 	 	 
	 	r'   c                     d }d }d }d }||||f}|D ]g}|                      |j                  5  |                      t          |                       |                       d d d            n# 1 swxY w Y   hd S )Nc                  ,    dddd} t          |           S r  )r2   rg  s    r%   _lenz2TestLiteralStrKeyDict.test_read_only.<locals>._len  s    r,,Br77Nr'   c                      dddd} | d         S )Nr   r9  r#   r  r   r   rg  s    r%   static_getitemz<TestLiteralStrKeyDict.test_read_only.<locals>.static_getitem  s    r,,Bc7Nr'   c                      dddd} d| v d| v fS )Nr   r9  r#   r  r   rn  r   rg  s    r%   containsz6TestLiteralStrKeyDict.test_read_only.<locals>.contains  s$    r,,B"9cRi''r'   c                  B    dddd} |                                  }| |k    S r  )r   )rh  news     r%   r   z2TestLiteralStrKeyDict.test_read_only.<locals>.copy  s(    r,,B''))C9r'   )subTestr  r   r   )r.   r  r  r  r   rdonlystests          r%   test_read_onlyz$TestLiteralStrKeyDict.test_read_only  s    	 	 		 	 		( 	( 	(	 	 	
 48 	> 	>Ddm,, > >''
T

ddff===> > > > > > > > > > > > > > >	> 	>s   4A11A5	8A5	c                    d }d }d }d }d }d }||||||f}|D ]}|                      |j                  5  |                     t                    5 }	 t	          |                       d d d            n# 1 swxY w Y   d}
|                     |
t          |	j                             d d d            n# 1 swxY w Y   d S )Nc                      dddd} d| d<   d S )Nr   r9  r#   r  rS  r   r   rg  s    r%   setitemz<TestLiteralStrKeyDict.test_mutation_failure.<locals>.setitem  s    r,,BBsGGGr'   c                      dddd} | d= d S )Nr   r9  r#   r  r   r   rg  s    r%   delitemz<TestLiteralStrKeyDict.test_mutation_failure.<locals>.delitem  s    r,,B3r'   c                  :    dddd} |                                   d S r  )ra   rg  s    r%   ra   z<TestLiteralStrKeyDict.test_mutation_failure.<locals>.popitem  s"    r,,BJJLLLLLr'   c                  :    dddd} |                                   d S r  )rv   rg  s    r%   rv   z8TestLiteralStrKeyDict.test_mutation_failure.<locals>.pop  s"    r,,BFFHHHHHr'   c                  :    dddd} |                                   d S r  )r   rg  s    r%   r   z:TestLiteralStrKeyDict.test_mutation_failure.<locals>.clear  s"    r,,BHHJJJJJr'   c                  >    dddd} |                      dd           d S )Nr   r9  r#   r  rn  )r   rg  s    r%   r   z?TestLiteralStrKeyDict.test_mutation_failure.<locals>.setdefault  s+    r,,BMM#q!!!!!r'   "Cannot mutate a literal dictionary)r  r  rZ   r   r   r   r   r   )r.   r  r  ra   rv   r   r   illegalsr  r   r  s              r%   test_mutation_failurez+TestLiteralStrKeyDict.test_mutation_failure  s   	 	 		 	 		 	 		 	 		 	 		" 	" 	" WgsE:F 	= 	=Ddm,, = =&&{33 !vDJJLLL! ! ! ! ! ! ! ! ! ! ! ! ! ! !=fc&*:&;&;<<<	= = = = = = = = = = = = = = =	= 	=s5   B9A8,B98A<<B9?A< -B99B=	 B=	c                    t           d             }t           d             }||fD ]}|                     |j                  5  |                     t                    5 } |d           d d d            n# 1 swxY w Y   d}|                     |t          |j                             d d d            n# 1 swxY w Y   d S )Nc                 6    ddd}|                     |           S Nr9  r#   r   r   )r8   r   rh  s     r%   r8   z+TestLiteralStrKeyDict.test_get.<locals>.get  s    $$B66!99r'   c                     ddd}||          S r  r   r  s     r%   getitemz/TestLiteralStrKeyDict.test_get.<locals>.getitem  s    $$Ba5Lr'   r   z*Cannot get{item}() on a literal dictionary)r   r  r  rZ   r   r   r   r   )r.   r8   r  r  r   r  s         r%   test_getzTestLiteralStrKeyDict.test_get  sV   		 	 
	 
	 	 
	 'N 	= 	=Ddm,, = =&&{33 vDIII              Efc&*:&;&;<<<	= = = = = = = = = = = = = = =	= 	=s6   B5A4(B54A88B5;A8<-B55B9	<B9	c                 f    t           d             }|                      |            ddg           d S )Nc                  H    ddd} d |                                  D             S )Nr9  r#   r  c                     g | ]}|S r   r   r!  s     r%   r   zETestLiteralStrKeyDict.test_dict_keys.<locals>.foo.<locals>.<listcomp>	  s    )))!A)))r'   )rM   rg  s    r%   r&   z1TestLiteralStrKeyDict.test_dict_keys.<locals>.foo 	  s+    $$B))rwwyy))))r'   r   r   r+   r-   s     r%   r   z$TestLiteralStrKeyDict.test_dict_keys  sC    		* 	* 
	* 	c
+++++r'   c                 b    t           d             }|                      |            d           d S )Nc                  4    ddd} |                                  S r  )r   rg  s    r%   r&   z3TestLiteralStrKeyDict.test_dict_values.<locals>.foo		  s    $$B99;;r'   )r9  r#   r+   r-   s     r%   r   z&TestLiteralStrKeyDict.test_dict_values	  s?    		 	 
	 		*****r'   c           	          t           d             }|                      |            dddt          j        d          ff           d S )Nc                  Z    ddt          j        d          d} |                                 S )Nr9  r#   r<   )r   r   rn  )r  r  r   rg  s    r%   r&   z2TestLiteralStrKeyDict.test_dict_items.<locals>.foo	  s'    "(A--88B88::r'   )r   r9  )r   r#   rn  r<   )r   r   r  r  r-   s     r%   r   z%TestLiteralStrKeyDict.test_dict_items	  sc    		 	 
	 	!*Jbhmm8L M	O 	O 	O 	O 	Or'   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   t          |j                  }|                     d|           d S )Nc                      ddd} | S r  r   rg  s    r%   r&   z3TestLiteralStrKeyDict.test_dict_return.<locals>.foo	  s    $$BIr'   z#cannot convert native LiteralStrKey)r   rZ   r  r   r   r   )r.   r&   r   r  s       r%   test_dict_returnz&TestLiteralStrKeyDict.test_dict_return	  s    		 	 
	
 y)) 	VCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 V%&&;VDDDDDr  c                 j   t           d             }|                      |d          d           |                      |d          d           |                      |d          |                    d                     |                      |d          |                    d                     d S )Nc                     | dz   dk    rddt          j        d          d}nddt          j        d          d}|d	         S )
N   rV   r9  r#   r   r   rm                @CATr<   r   r  )r   r   s     r%   r&   z2TestLiteralStrKeyDict.test_dict_unify.<locals>.foo(	  sJ    1uqyy3RXa[[99 5rx~~>>S6Mr'   r*   r#   rn  r  r|  r-   s     r%   test_dict_unifyz%TestLiteralStrKeyDict.test_dict_unify'	  s    		 	 
	 	S3'''TE***S3;;s#3#3444TCKK$5$566666r'   c                    t           d             }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt	          |j                             t           d             }|                     t                    5 } |d           d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                     | dz   dk    rddt          j        d          d}nddt          j        d          d	}d
}d}d}d}|d         S )Nr  rV   r9  r#   )BAD_KEYr   rm  r  r  r  r  r   r)   rF   r   r  r   r   py310_defeat1py310_defeat2py310_defeat3py310_defeat4s         r%   key_mismatchz?TestLiteralStrKeyDict.test_dict_not_unify.<locals>.key_mismatch8	  s\    1uqyy "28A;;??5rx~~>>MMMMS6Mr'   r*   zCannot unify LiteralStrKeyc                     | dz   dk    rddt          j        d          d}nddt          j        d	          d}d
}d}d}d}|d         S )Nr  rV   r9  r#   )rV   rF   r  r  r  r  r   r)   rF   r   r  r  s         r%   value_type_mismatchzFTestLiteralStrKeyDict.test_dict_not_unify.<locals>.value_type_mismatchJ	  s^    1uqyy3RXf-=-=>>5rx~~>>MMMMS6Mr'   r   )r.   r  r   r  s       r%   test_dict_not_unifyz)TestLiteralStrKeyDict.test_dict_not_unify6	  so   	
	 
	 

	 {++ 	vL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	2C8H4I4IJJJ	
	 
	 

	 {++ 	%v$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	2C8H4I4IJJJJJs#   AA
A B88B<?B<c                     t           j        t           j        ft          j        t           j        t           j        ft          j        t           j        t           j        ft          j        t           j        t           j        ft          j        t           j        t           j        ft          j        t           j        t           j        ft          j        t           j        t           j        ft          j        t           j        t           j	        ft          j        i}d |
                                D ]C\  }t                     fd            }|\  t          fd            } |             Dd S )Nc                     d S r6   r   r  s    r%   ru  z;TestLiteralStrKeyDict.test_dict_value_coercion.<locals>.barp	  rr  r'   c                 T                         t          |                      d }|S )Nc                     d S r6   r   r  s    r%   rV  zLTestLiteralStrKeyDict.test_dict_value_coercion.<locals>.ol_bar.<locals>.implx	  s    Dr'   )r   r'  )r   rV  	containerr.   s     r%   r*  z>TestLiteralStrKeyDict.test_dict_value_coercion.<locals>.ol_bart	  s3    
1i 8 8999  r'   c                  L     d           d          d}  |            d S )Nr   r)   r  r   )r#   ru  ty1ty2s    r%   r&   z;TestLiteralStrKeyDict.test_dict_value_coercion.<locals>.foo~	  s1    #a&&ss1vv..Ar'   )r  r   r   r   r  r  rA  r  r   r   r   r   r   )	r.   pdtsr*  r&   ru  r  r  r  s	   `    @@@@r%   test_dict_value_coercionz.TestLiteralStrKeyDict.test_dict_value_coercion\	  s@    h!5>h %.mRX&h&(?h!5#:h!5#:grx %"9h
#U%<?"	 	 	  ggii 	 	NCc]]     ] HC      T CEEEE!	 	r'   c                 v    d t                    d             }t          fd            } |             d S )Nc                     d S r6   r   r  s    r%   ru  z9TestLiteralStrKeyDict.test_build_map_op_code.<locals>.bar	  rr  r'   c                     d }|S )Nc                     d S r6   r   r  s    r%   rV  zJTestLiteralStrKeyDict.test_build_map_op_code.<locals>.ol_bar.<locals>.impl	  rR  r'   r   )r   rV  s     r%   r*  z<TestLiteralStrKeyDict.test_build_map_op_code.<locals>.ol_bar	  s      Kr'   c                  ,    ddddi}  |            d S )Nr   r>   string)b1b2r   )r   ru  s    r%   r&   z9TestLiteralStrKeyDict.test_build_map_op_code.<locals>.foo	  s&    Rx001ACFFFFFr'   r-  r.  s      @r%   test_build_map_op_codez,TestLiteralStrKeyDict.test_build_map_op_code	  si    
	 	 	 
#	 	 
	
 
	 	 	 	 
	 	r'   c                     t           dd            t           fd            }t          j                             |            t          j        d          dz             d S )Nc                 >    | | d         d d xx         dz  cc<   d S d S )Nr#   r>   r   fake_kwargss    r%   ru  z3TestLiteralStrKeyDict.test_dict_as_arg.<locals>.bar	  s;    &C ###r)##### '&r'   c                  n    d} d}d}t          j        d          }| |||d} |           |d         S )Nr   r9  r  rF   rx  r  r#   r  )r   r   r   r#   rm  ru  s        r%   r&   z3TestLiteralStrKeyDict.test_dict_as_arg.<locals>.foo	  sL    AAAAaaa00ACAS6Mr'   rF   r>   r6   )r   r  testingassert_allcloseonesr.   r&   ru  s     @r%   test_dict_as_argz&TestLiteralStrKeyDict.test_dict_as_arg	  sx    		* 	* 	* 
	*
 
	 	 	 	 
	 	
""3355"'!**r/:::::r'   c                     t           d             }|                      |            |                                           d S )Nc                  >    dd dgi}  | d         d         d          S )Nr  c                     d| z  S )Nr)   r   r  s    r%   r  z\TestLiteralStrKeyDict.test_dict_with_single_literallist_value.<locals>.foo.<locals>.<lambda>	  s
    Q r'   r  r   r<   r   r=  s    r%   r&   zJTestLiteralStrKeyDict.test_dict_with_single_literallist_value.<locals>.foo	  s)    ,-A1S6!9Q<<r'   r   r   rp   r-   s     r%   'test_dict_with_single_literallist_valuez=TestLiteralStrKeyDict.test_dict_with_single_literallist_value	  sG    		  	  
	  	s{{}}55555r'   c                 |     d t                     fd            }t          fd            } |             d S )Nc                     d S r6   r   r  s    r%   ru  z8TestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.bar	  rr  r'   c                                          t          | t          j                                                 t          | t          j                             d S )Nc                     dS )N.r   r  s    r%   r  zMTestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.ol_bar.<locals>.<lambda>	  s    S r'   )r   r'  r   	BaseTupler   rA  )r   r.   s    r%   r*  z;TestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.ol_bar	  sJ    Z5?;;<<<OOJq%*ABBCCC = r'   c                  (    ddd}  |            d S )Nr   r   r  r   )r#   ru  s    r%   r&   z8TestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.foo	  s!    c""ACFFFFFr'   r-  r.  s   `  @r%   test_tuple_not_in_mroz+TestLiteralStrKeyDict.test_tuple_not_in_mro	  st    	 	 	 
#	! 	! 	! 	! 
	!
 
	 	 	 	 
	 	r'   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  B    ddt          j        d          d} | d         S )Nr9  r#   rV   )not_ar   rm  r   r  r  s    r%   r&   z=TestLiteralStrKeyDict.test_const_key_not_in_dict.<locals>.foo	  s"    3RXa[[99AS6Mr'   zKey 'a' is not in dict.r   r   s      r%   test_const_key_not_in_dictz0TestLiteralStrKeyDict.test_const_key_not_in_dict	  s    		 	 
	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	/V5E1F1FGGGGGr  c                    t           d             }|                      |            |                                           t           d             }|                      |            |                                           d S )Nc                  N    t          j        d          dd} t          |           S )Nr<   rV   )01r  r  r2   rz   s    r%   r&   z<TestLiteralStrKeyDict.test_uncommon_identifiers.<locals>.foo	  s"    gajjq))Aq66Mr'   c                  N    t          j        d          dd} t          |           S )Nr<   rV   )+zx--r  rz   s    r%   ru  z<TestLiteralStrKeyDict.test_uncommon_identifiers.<locals>.bar	  s"    gajj++Aq66Mr'   r  r  s      r%   test_uncommon_identifiersz/TestLiteralStrKeyDict.test_uncommon_identifiers	  s    
 
	 	 
	 	s{{}}555 
	 	 
	 	s{{}}55555r'   c                     t           d             }|                     t                    5 } |             d d d            n# 1 swxY w Y   |                     dt	          |j                             d S )Nc                  @    dddd} |                      ddi           | S )Nr)   rV   r   r  r   rF   )r  )r  s    r%   r&   z4TestLiteralStrKeyDict.test_update_error.<locals>.foo	  s6      B
 IIsAhIr'   r  r   r   s      r%   test_update_errorz'TestLiteralStrKeyDict.test_update_error	  s     
	 	 
	 {++ 	vCEEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	0 !!	
 	
 	
 	
 	
r  N)r  r  r  r	  ri  ro  ry  r  r  r  r  r  r  r   r   r   r  r  r  r  r  r  r  r  r  r  r  r   r'   r%   rd  rd  5  s       LL. . .$ $ $  2  .  2  0> > >2!= != !=F= = =&, , ,+ + +O O OE E E7 7 7$K $K $KL' ' 'R  *; ; ;&6 6 6  &
H 
H 
H6 6 6(
 
 
 
 
r'   rd  __main__)5r	  r  r  numpyr  numbar   r   r   r   r   r   r	   numba.typedr
   r   r   numba.typed.typedobjectutilsr   numba.core.errorsr   
numba.corer   numba.tests.supportr   r   r   r   r   numba.experimentalr   numba.extendingr   r   r  r  r  r  r%  r3  ry  r  r  rQ  objectr  r  r  r  r  rd  r  mainr   r'   r%   <module>r     s    


      ! ! ! ! ! ! ! ! 0 0 0 0 0 0 0 0 0 0 0 0       . . . . . . . . . . : : : : : : ) ) ) ) ) )      B B B B B B B B B B B B B B ' ' ' ' ' ' $ $ $ $ $ $~ ~ ~ ~ ~_h ~ ~ ~B 9 9 9 9 9( 9 9 9>g" g" g" g" g"OX g" g" g"TF3 F3 F3 F3 F3 F3 F3 F3R    h(8   B* * * * **: * * *4X( X( X( X( X(( X( X( X(v: : : : :X : : :DlH lH lH lH lHx lH lH lH^7" 7" 7" 7" 7"8 7" 7" 7"t 
ej!"###    &   $#& & & & &8 & & &0 0 0 0 0 0 0 0,. . . . .x . . .<X) X) X) X) X)( X) X) X)vH
 H
 H
 H
 H
OX H
 H
 H
V zHMOOOOO r'   