
    xKg                       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jV                  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jh                          yy)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"jF                  e$jJ                  d kD  d!      d"        Z&d# Z'd$ Z(d% Z)d& Z*d' Z+d( Z,d) Z-d* Z.d+ Z/d, Z0e"jb                  d-        Z2d. Z3d/ Z4d0 Z5d1 Z6d2 Z7d3 Z8d4 Z9y5)6TestDictObjectc                     t         d        }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       y	)
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      _/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_dictobject.pyfooz*TestDictObject.test_dict_bool.<locals>.foo    s8    ##E73A1X1u! 7N    r   r"   Fr   T   d   Nr   assertEqualselfr&   s     r%   test_dict_boolzTestDictObject.test_dict_bool   sh     
	 
	 	q5)q4(q4(sT*r'   c                     t         d        }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       y)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   s8    ##E73A1X1u! q6Mr'   r   r(   r   r)   r*   Nr+   r-   s     r%   test_dict_createzTestDictObject.test_dict_create0   sh     
	 
	 	q1%q1%q1%sS)r'   c                     t         d        }| j                   |dg d      g d       | j                   |dg d      g d       | j                   |dg d      g d       y)	zA
        Exercise dictionary creation, insertion and get
        c                     t        j                  t        t              }t	        |       D ]  }|||<   	 g }|D ]"  }|j                  |j                  |             $ |S N)r   r   r   r   r   appendget)r"   targetsr#   r$   outputts         r%   r&   z)TestDictObject.test_dict_get.<locals>.fooH   sU    ##E73A1X!  FaeeAh' Mr'      )r   r   	   )r   r   N
   )r=   r   )Nr=   r   Nr+   r-   s     r%   test_dict_getzTestDictObject.test_dict_getD   s]     
		 
		 	Q	*L9R+Y7R,l;r'   c                     t         d        }| j                   |ddd      d       | j                   |ddd      d       y)z8
        Exercise dict.get(k, d) where d is set
        c                     t        j                  t        t              }t	        |       D ]  }|||<   	 |j                  ||      S r6   r   r   r   r   r   r8   )r"   targetdefaultr#   r$   s        r%   r&   z6TestDictObject.test_dict_get_with_default.<locals>.foo\   s>    ##E73A1X!  55))r'   r<      r?   Nr+   r-   s     r%   test_dict_get_with_defaultz)TestDictObject.test_dict_get_with_defaultX   sH     
	* 
	* 	Q2*Q2+r'   c                    t         d        }g d}g d}| j                   |||d      d       | j                   |||d      d       | j                   |||d      d	       | j                          | j                          | j	                  t
              5   |||d
       ddd       | j	                  t
              5   |||d       ddd       y# 1 sw Y   2xY w# 1 sw Y   yxY w)z1
        Exercise dictionary __getitem__
        c                 z    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   s=    ##E7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     
	 
	 T4+S1T4+S1T4+S1""$!x(dA )x(dA )( )(((s   C C C C)c           	          t         d        }g d}g d}t        dt        |            D ]/  }| j                   ||d| |d|       ||dz
     ||dz
     f       1 y).
        Exercise dictionary .popitem
        c                     t        j                  t        t              }t	        | |      D ]
  \  }}|||<    |j                         S r6   )r   r   r   r   rK   popitemrM   rN   r#   rO   rP   s        r%   r&   z-TestDictObject.test_dict_popitem.<locals>.foo   s?    ##E7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   ss     
	 
	 q#d)$AD!Hd2Ah'a!ed1q5k* %r'   c                    t         d        t         fd       }g d}g d}t        t        |            D ]A  }| j                   |||d      j	                  t        t        ||            d             C | j                          | j                          | j                  t              5   |||d       ddd       y# 1 sw Y   yxY w)	r_   c                 n    d\  }}t        |      D ]  }| j                         \  }}||z  }||z  }! ||fS )Nr   r   )r   ra   )r#   npopkeysumvalsum_rO   rP   s          r%   corez3TestDictObject.test_dict_popitem_many.<locals>.core   sH     "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   s@    ##E51AD$1! ( 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    
 
	" 
	" 
	! 
	! s4y!AD$Q'T#dD/2; " 	""$!x(d# )((s   1CCc                    t         d        }g d}g d}| j                   |||d      d       | j                   |||d      d       | j                   |||d      d	       | j                   |||d
      d       | j                          | j                          t         d        }| j	                  t
              5   |        ddd       y# 1 sw Y   yxY w)*
        Exercise dictionary .pop
        c                     t        j                  t        t              }t	        | |      D ]
  \  }}|||<    |j                  |d       t        |      fS r6   )r   r   r   r   rK   popr2   rL   s         r%   r&   z)TestDictObject.test_dict_pop.<locals>.foo   sM    ##E73AD$1! ( 55&A..r'   rQ   rR   r   )rS   r)   r)   )rT   r)   rF   )rU   r)   r   NrF   c                  `    t        j                  t        t              } | j	                  d      S )Nr   r   r   r   r   rv   r#   s    r%   r&   z)TestDictObject.test_dict_pop.<locals>.foo   s!    ##E73A558Or'   NrW   r\   s       r%   test_dict_popzTestDictObject.test_dict_pop   s     
	/ 
	/ T4+X6T4+X6T4+X6T4+Y7 	""$!		 
	
 x(E )((s   >CCc                     t         d        t         fd       }g d}g d}g d}| j                   ||||      j                  t        t	        ||            |             y)rt   c                 j    d}|D ]+  }||| j                  |d      z   t        |       z   z  }|dz  }- |S )Nr   grh|?r)   )rv   r2   )r#   popstotalrO   s       r%   rk   z/TestDictObject.test_dict_pop_many.<locals>.core   sC    EQUU1e_,s1v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   s@    ##E73AD$1! ( 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   so    
 
	 
	 
	! 
	! +dD!LLc$o.5	
r'   c                 p   t         d        }g d}g d}| j                   |||d      d       | j                   |||d      d       | j                   |||d      d       | j                          | j                          | j	                  t
              5   |||d       d d d        y # 1 sw Y   y xY w)	Nc                     t        j                  t        t              }t	        | |      D ]
  \  }}|||<    ||= t        |      |j                  |      fS r6   )r   r   r   r   rK   r2   r8   rL   s         r%   r&   z-TestDictObject.test_dict_delitem.<locals>.foo  sO    ##E73AD$1! (&	q6155=((r'   rQ   rR   r   )r)   Nr)   rF   r   rW   r\   s       r%   test_dict_delitemz TestDictObject.test_dict_delitem  s    		) 
	) T4+Y7T4+Y7T4+Y7""$!x(dA )((s   B,,B5c                 ^    t         d        }g d}g d}| j                   |||      d       y)z%
        Exercise dict.clear
        c                     t        j                  t        t              }t	        | |      D ]
  \  }}|||<    t        |      }|j                          |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   sQ    ##E73AD$1! (QBGGIs1v:r'   rQ   rR   )rF   r   Nr+   r\   s       r%   test_dict_clearzTestDictObject.test_dict_clear  s8     
	 
	 T4&1r'   c           	          t         d        }g d}g d}| j                   |||      t        t        ||                   t         d        }| j                   |       g        y)z%
        Exercise dict.items
        c                     t        j                  t        t              }t	        | |      D ]
  \  }}|||<    g }|j                         D ]  }|j                  |        |S r6   )r   r   r   r   rK   itemsr7   )rM   rN   r#   rO   rP   outkvs          r%   r&   z+TestDictObject.test_dict_items.<locals>.foo3  sV    ##E73AD$1! (Cggi

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

2  Jr'   N)r   r,   listrK   r\   s       r%   test_dict_itemszTestDictObject.test_dict_items/  so     
	 
	 dOT4!	
 
	 
	 	#r'   c                 ^    t         d        }g d}g d}| j                   |||      |       y)z$
        Exercise dict.keys
        c                     t        j                  t        t              }t	        | |      D ]
  \  }}|||<    g }|j                         D ]  }|j                  |        |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  sV    ##E73AD$1! (CVVX

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

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

1 Jr'   rQ   rR   Nr+   r\   s       r%   test_dict_iterzTestDictObject.test_dict_iter  s<     
	 
	 dO	
r'   c                 h    t         d        }g d}g d}| j                   |||g d      g d       y)z,
        Exercise operator.contains
        c                     t        j                  t        t              }t	        | |      D ]
  \  }}|||<    g }|D ]  }|j                  ||v         |S r6   r   )rM   rN   	checklistr#   rO   rP   r   s          r%   r&   z.TestDictObject.test_dict_contains.<locals>.foo  sU    ##E7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  s?     
	 
	 dO,,	
r'   c           	          t         d        }t        t        d            }t        |      D cg c]  \  }}||dz  z    }}} |||      }| j	                  |t        t        ||                   yc c}}w )z$
        Exercise dict.copy
        c                     t        j                  t        t              }t	        | |      D ]
  \  }}|||<    t        |j                         j                               S r6   )r   r   r   r   rK   r   copyr   rb   s        r%   r&   z*TestDictObject.test_dict_copy.<locals>.foo  sI    ##E73AD$1! (())r'   rn   r*   N)r   r   r   	enumerater,   rK   )r.   r&   rM   r$   xrN   r   s          r%   test_dict_copyzTestDictObject.test_dict_copy  st     
	* 
	* E"I(1$81AG8$od3tT?34 9s   A3c                 J    t         d        }| j                   |       d       y)z*
        Exercise dict.setdefault
        c                  
   t        j                  t        t              } | j	                  dd       | j                  d      }d| d<   | j                  d      }d| d<   | j	                  dd       | j                  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  st    ##E7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  s*     
		 
		 	0r'   c                     t         d        }| j                   |dddd      d       | j                   |dddd      d       | j                   |dddd      d       | j                   |dddd      d       y)	z2
        Exercise dict.__eq__ and .__ne__
        c                     t        j                  t        t              }t        j                  t        t              }t	        |       D ]
  }||z  ||<    t	        |      D ]
  }||z  ||<    ||k(  ||k7  fS r6   r   r   r   r   r   )nanbfafbdadbr$   s          r%   r&   z.TestDictObject.test_dict_equality.<locals>.foo  so    $$UG4B$$UG4B2YB1 2Y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                 l   t         d        }g d}g d}g d}g d}| j                   |||||             g d}g d}g d}g d}| j                   |||||             g d}g d}g d}g d}| j                   |||||             g d}g d}g d}g d}| j                   |||||             y)	&
        Exercise dict.__eq__
        c                    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&  sw     $$UG4B$$UG4B3r7^qE2a5	 $3r7^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"  s     
	 
	 BB+, BB+, RR,- RR,-r'   c                 |    t         d        }| j                   |dd             | j                   |dd             y)r   c                 r    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  s4    $$UG4B2Y1 7Nr'   r>   r   )r   Nr   r   r-   s     r%   test_dict_equality_diff_typez+TestDictObject.test_dict_equality_diff_typeM  s@     
	 
	 	R$R'r'   c                 D   t         d        t         fd       }t        j                  t        t              t         fd       } |d      }| j                  |j                  d        ||      }t        j                  d            }| j                  ||       y)zB
        Exercise dictobject.{_as_meminfo, _from_meminfo}
        c              3   J   K   t        |       D ]  }|||dz   dz  z   f  y wNr   r*   r   )nelemr$   s     r%   make_contentz>TestDictObject.test_dict_to_from_meminfo.<locals>.make_contenta  s,     5\a!es]*** "s   !#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  sB    ##E73A$U+1! ,))!,,r'   c                 b    t        j                  |       }t        |j                               S r6   )r   _from_meminfor   r   )mir#   dcttypes     r%   unboxerz9TestDictObject.test_dict_to_from_meminfo.<locals>.unboxero  s%    ((W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		# 
	# 2Ya(bk,,R01h'r'   c                     t         d        }| j                  t              5 } |d       d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                     t        j                  t        t              }t	        |       D ]
  }|dz   ||<    |j                  d      }|S )Nr                 ?rC   r"   r#   r$   zs       r%   r&   z8TestDictObject.test_001_cannot_downcast_key.<locals>.foo|  sC    ##E73A1X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{  sX    		 
	 {+vG ,4  !	
 ,+   	AA"c                     t         d        }| j                  t              5 } |d       d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                     t        j                  t        t              }t	        |       D ]
  }|dz   ||<    |j                  d| z  d      }|S )Nr   r)   r   rC   r   s       r%   r&   z<TestDictObject.test_002_cannot_downcast_default.<locals>.foo  sJ    ##E73A1X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  sX    		 
	 {+vG ,6  !	
 ,+r   c                     t         d        }| j                  t              5 } |d       d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                     t        j                  t        t              }t	        |       D ]
  }|dz   ||<    |j                  d      }|S )Nr   g333333@rC   r   s       r%   r&   z8TestDictObject.test_003_cannot_downcast_key.<locals>.foo  sC    ##E73A1X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  sX    		 
	 {+vG ,1  !	
 ,+r   c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  J    t        j                  t        t              } d| d<   y )N      @r   r   r   r   r   rz   s    r%   r&   z8TestDictObject.test_004_cannot_downcast_key.<locals>.foo  s    ##E73AAbEr'   r   r   r   s      r%   test_004_cannot_downcast_keyz+TestDictObject.test_004_cannot_downcast_key  sV    		 
	
 {+vE ,4  !	
 ,+   AA!c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  J    t        j                  t        t              } d| d<   y )Nr   r   r  rz   s    r%   r&   z:TestDictObject.test_005_cannot_downcast_value.<locals>.foo  s    ##E73AAaDr'   r   r   r   s      r%   test_005_cannot_downcast_valuez-TestDictObject.test_005_cannot_downcast_value  sV    		 
	
 {+vE ,6  !	
 ,+r  c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  J    t        j                  t        t              } | d    y )Ng      '@r  rz   s    r%   r&   z8TestDictObject.test_006_cannot_downcast_key.<locals>.foo  s    ##E73AdGr'   r   r   r   s      r%   test_006_cannot_downcast_keyz+TestDictObject.test_006_cannot_downcast_key  sV    		 
	
 {+vE ,1  !	
 ,+r  l        z64 bit test onlyc                     t         d        }d\  }} |||      \  }}| j                  ||       | j                  ||       y )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  si    ##E73A;'B1B8tBx'''AbEAbEbE1R5>!r'   )g      $@g      4@r+   )r.   r&   r   r   r   ys         r%   test_007_collision_checksz(TestDictObject.test_007_collision_checks  sP     
	" 
	" 11ay1AAr'   c                    t         d        }d} ||      \  }}| j                  |t        t        |            D cg c]  }| c}       | j                  |t        t        |            D cg c]  }|dz   	 c}       y c c}w c c}w )Nc                    t        j                  t        t              }t	        |       D ]
  }|dz   ||<    g }g }t	        |       D ]:  }|j                         }|j                  |d          |j                  |d          < ||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3A1X1u! DD1XiikCF#CF#  :r'   r>   r   )r   r,   reversedr   )r.   r&   r   gkgvr   s         r%   test_008_lifo_popitemz$TestDictObject.test_008_lifo_popitem  s    	
	 

	 QB%();<);Aa);<=XeAh-?@-?a!e-?@A =@s   	B
.B
c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  x    t        j                  t        t              } d| d<   d| d<   | j	                  dd       y )N      @r   r  r   r                 (@ry   rz   s    r%   r&   z<TestDictObject.test_010_cannot_downcast_default.<locals>.foo  s3    ##E73AAaDAaDEE"cNr'   r   r   r   s      r%    test_010_cannot_downcast_defaultz/TestDictObject.test_010_cannot_downcast_default   sV    		 
	 {+vE ,6  !	
 ,+r  c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  v    t        j                  t        t              } d| d<   d| d<   | j	                  d       y )Nr!  r   r  r   y              &@ry   rz   s    r%   r&   z8TestDictObject.test_011_cannot_downcast_key.<locals>.foo  s1    ##E73AAaDAaDEE#Jr'   r   r   r   s      r%   test_011_cannot_downcast_keyz+TestDictObject.test_011_cannot_downcast_key  sV    		 
	 {+vE ,4  !	
 ,+r  c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  P    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3AAaD7Nr'   r   r   r   s      r%   test_012_cannot_downcast_keyz+TestDictObject.test_012_cannot_downcast_key   sV    		 
	 {+vE ,4  !	
 ,+r  c                 H    t         d        }| j                   |              y )Nc                  F    t        j                  t        t              } d| v S r   r  rz   s    r%   r&   z8TestDictObject.test_013_contains_empty_dict.<locals>.foo0  s    ##E73A6Mr'   r   r-   s     r%   test_013_contains_empty_dictz+TestDictObject.test_013_contains_empty_dict/  s&    		 
	
 	r'   c                 H    t         d        }| j                   |              y )Nc                  F    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3AA:r'   )r   r   r-   s     r%    test_014_not_contains_empty_dictz/TestDictObject.test_014_not_contains_empty_dict8  s$    		 
	
 	r'   c                 T    t         d        }d}| j                   ||      |df       y )Nc                     t        j                  t        t              }t	        |       D ]
  }|dz   ||<    t        |      }|j                          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  sS    ##E73A1X1u! AAGGIAAa4Kr'   r>   r   r+   )r.   r&   ms      r%   test_015_dict_clearz"TestDictObject.test_015_dict_clearA  s3    		 
	 Q!Q(r'   c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  d    t        j                  t        t              } | j	                  dd       y )Nr         (@r   r   r   r   r   rz   s    r%   r&   z8TestDictObject.test_016_cannot_downcast_key.<locals>.fooP  s"    ##E73ALLS!r'   r   r   r   s      r%   test_016_cannot_downcast_keyz+TestDictObject.test_016_cannot_downcast_keyO  sV    		" 
	"
 {+vE ,4  !	
 ,+r  c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  d    t        j                  t        t              } | j	                  dd       y )Nr   r"  r7  rz   s    r%   r&   z<TestDictObject.test_017_cannot_downcast_default.<locals>.foo^  s"    ##E73ALLD!r'   r   r   r   s      r%    test_017_cannot_downcast_defaultz/TestDictObject.test_017_cannot_downcast_default]  sV    		" 
	"
 {+vE ,6  !	
 ,+r  c                 |    t         d        } |       \  }}| j                  ||       | j                  |ddg       y )Nc                      t        j                  t        t              } d| d<   | j	                         }d| d<   | j	                         }|D cg c]  }| }}|D cg c]  }| }}||fS c c}w c c}w )Nr6  r         "@   r   r   r   r   rM   )r#   k1k2r   rk1rk2s         r%   r&   z8TestDictObject.test_018_keys_iter_are_views.<locals>.foon  sq    ##E73AAbEBAbEB /b1bC/ /b1bC/8O "!s   	A+	A0r   r?  r+   )r.   r&   r   r   s       r%   test_018_keys_iter_are_viewsz+TestDictObject.test_018_keys_iter_are_viewsk  sG     
	 
	 u1ARH%r'   c                 <    t         d        }t         |              y )Nc                  ~    t        j                  t        t              } d| d<   d| d<   | j	                         dhz  }|S )Nr6  r   r>  r?     r@  )r#   rB  s     r%   r&   z$TestDictObject.test_019.<locals>.foo  s=    ##E73AAbEAbERF"BIr'   )r   printr-   s     r%   test_019zTestDictObject.test_019~  s!     
	 
	 	cer'   c                 |    t         d        } |       \  }}| j                  |g d       | j                  |d       y )Nc                      t        j                  t        j                  t              } d| d<   d| d<   d| d<   d| d<   g }| j                         D ]  }|j                  |        || 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  sl    ##E$6$6@AAcFAcFAcFAcFCWWY

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

3 "AAaDqwwy/CJr'   r   rT  r   r+   r-   s     r%   test_021_long_str_keyz$TestDictObject.test_021_long_str_key  s4    		 
	 	#+q!1 23r'   c                     t         d        } |       \  }}}| j                  |ddg       | j                  |ddg       | j                  |ddg       y )Nc                     t        j                  t        t              } | }d| d<   d|d<   t        j                  t        t              }d|d<   d|d<   | }|} | j	                         D cg c]  }| }}|j	                         D cg c]  }| }}|j	                         D cg c]  }| }}|||fS c c}w c c}w c c}w )Nr6  r         ,@r)         Y@     @@)r   r   r   r   r   )r#   efr   rA  rB  k3s          r%   r&   z6TestDictObject.test_022_references_juggle.<locals>.foo  s    ##E73AAAaDAaD##E73AAaDAaDAAWWY'Y!YB'WWY'Y!YB'WWY'Y!YB'r2:	 (''s   )	B3	B8#	B=)r   r\  )r)   r]  )r   rH  )r)      r+   )r.   r&   rA  rB  r`  s        r%   test_022_references_jugglez)TestDictObject.test_022_references_juggle  sb    		 
	" U
Bj+67j+67gw/0r'   c                 N    t         d        }| j                   |       ddg       y )Nc                      t        j                  t        t              fd}  |         j	                         D cg c]  }| c}S c c}w )Nc                      d d<   d d<   y )Nr6  r   r[  r)    rz   s   r%   barz9TestDictObject.test_023_closure.<locals>.foo.<locals>.bar  s    !!r'   r@  )rg  r   r#   s     @r%   r&   z,TestDictObject.test_023_closure.<locals>.foo  s?    ##E73A E vvx(x!Ax(((s   	A
r   r)   r+   r-   s     r%   test_023_closurezTestDictObject.test_023_closure  s,    		) 
	) 	A'r'   c                     t         d        }| j                   |       |j                                t         d        }| j                   |       |j                                y )Nc                      d} | d   di}|d   S )Nu   aሴr   r   r   rf  rW  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   rf  rk  s     r%   r&   z9TestDictObject.test_024_unicode_getitem_keys.<locals>.foo  s    A2AAS6Mr'   r   r,   rp   r-   s     r%   test_024_unicode_getitem_keysz,TestDictObject.test_024_unicode_getitem_keys  sZ    		 
	
 	.		 
	
 	.r'   c                     t        j                  t         j                  t         j                  g      t        fd       }| j                   |              y )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3A1#RYY/B4&

3B5'4B "1Ar!ubenqE2a5>Q&&r'   )r   Tupler  r   r   r   )r.   r&   rv  s     @r%    test_issue6570_alignment_paddingz/TestDictObject.test_issue6570_alignment_padding  sB    
 U\\5==9:		' 
	' 	r'   c                     d}d }|} t               |      } ||      } ||      }| j                  ||       d }|} t               |      } ||      } ||      }| j                  ||       y)zD
        Tests dict.update works with various dictionaries.
        r>   c                     t        |       D ci c]  }||dz   
 }}t        |       D ci c]  }d|z  |
 }}|j                  |       |S c c}w c c}w )z@
            Test update with a regular dictionary.
            r   rF   r   update)r"   r$   d1d2s       r%   f1z+TestDictObject.test_dict_update.<locals>.f1  s\     %*!H-Hq!QU(HB-$)!H-Hq!a%(HB-IIbMI .-s
   AAc                 v    dddd}t        |       D ci c]  }d|z  |
 }}|j                  |       |S c c}w )zo
            Test update where one of the dictionaries
            is created as a Python literal.
            r)   rV      )r   rF   r<   rF   r{  )r"   r}  r$   r~  s       r%   f2z+TestDictObject.test_dict_update.<locals>.f2  sK     B
 %*!H-Hq!a%(HB-IIbMI .s   6Nr+   )r.   r"   r  rp   cfuncr   r   r  s           r%   test_dict_updatezTestDictObject.test_dict_update  s     	 r
AJ!HA	 r
AJ!H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&  r)  r,  r/  r3  r8  r;  rE  expectedFailurerJ  rQ  rX  rb  rh  rn  rx  r  rf  r'   r%   r   r      s?   +(*(<(, 8,'$R"H
>,2& $D
.
(
.
(
&
.
.5"1$;.).V( (<
"
"
$


 Xw.0BC D"B*
 
 
 )

&& 
 
!"410(/$$'r'   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestDictTypeCastingc                     t        ||       y r6   r   )r.   fromtytotys      r%   
check_goodzTestDictTypeCasting.check_good  s    &$'r'   c                     | j                  t              5 }t        ||       d d d        | j                   dj                  di t               t        j                               y # 1 sw Y   GxY w)Nz%cannot safely cast {fromty} to {toty}rf  )rZ   r   r   r   formatlocalsr   r   )r.   r  r  r   s       r%   	check_badzTestDictTypeCasting.check_bad   sZ    {+vfd+ ,:3::FVXF  !	
 ,+s   A))A2c                 ,   | j                  t        j                  t        j                         | j                  t        j                  t        j                         | j                  t        j                  t        j
                         | j                  t        j                  t        j
                         | j                  t        j                  t        j                         | j                  t        j                  t        j                         y 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U]]3U%5%56U%5%56u{{EOO4

EOO4r'   c                    | j                  t        j                  t        j                         | j                  t        j                  t        j                         | j                  t        j                  t        j
                         y r6   )r  r   r   r   r  r  r  s    r%   test_cast_float_toz&TestDictTypeCasting.test_cast_float_to0  sF    u}}5u7u'7'78r'   c                    | j                  t        j                  t        j                         | j                  t        j                  t        j                         | j                  t        j                  t        j
                         y r6   )r  r   booleanr   r   r  r  s    r%   test_cast_bool_toz%TestDictTypeCasting.test_cast_bool_to5  sF    u{{3u}}5u'7'78r'   N)r  r  r  r  r  r  r  r  rf  r'   r%   r  r    s    (
59
9r'   r  c                   8    e Zd Zd Zd Zd Zd Zd	dZd Zd Z	y)
TestTypedDictc                    t        j                  t        t              }| j	                  t        |      d       d|d<   d|d<   d|d<   | j	                  t        |      d       | j	                  t        |j                               g d       t        t        |j                               g d      D ]  \  }}| j                  ||d	
        | j                  |d   d       | j                  |d   dd	
       | j                  |d   dd	
       |d= | j	                  t        |      d       | j                  |j                  d             |j                  dd       |j                  dd       | j	                  |d   d       | j                  |d   dd	
       |j                  ddd       | j                  |d	   d       | j                  |d   d       | j                  d	|v        t!        |j#                               }| j	                  t        |      t        |             | j                  |j%                  d	      d       t        |      }|j'                         \  }}| j	                  t        |      |dz
         | j                  ||v       |j)                         }| j	                  ||       | j	                  t        |j#                               t        |j#                                      y )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<  sm   JJug&Q#!!!Q#affh3QXXZ(-8DAq""1a"2 9 	qtQ'qtS3qtS3aDQ#!%%(#	Q	Q1s#qtS3	Q1qtQ'qtQ'Q1779oS3q6*quuQx+Ayy{1Q+
##flln-tAGGI?r'   c                 6   t        t        d      t        dd            D ci c]  \  }}|t        |       }}}t        j                  t
        t              }|j                         D ]
  \  }}|||<    t        |      }| j                  ||       y c c}}w )Nr>   rn   )
rK   r   floatr
   r  r   r   r   rq   r,   )r.   rO   rP   expectnbdr   s         r%   test_copy_from_dictz!TestTypedDict.test_copy_from_dictm  s    *-eBir2*GH*G$!Q!U1X+*GHjj(LLNDAqCF #3if% Is   Bc                 v    t         d        }t         d        } |       } ||      }| j                  |d       y )Nc                  L    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   rf  rz   s    r%   consumerz-TestTypedDict.test_compiled.<locals>.consumer|  s    Q4Kr'   r  r+   )r.   r  r  r#   vals        r%   test_compiledzTestTypedDict.test_compiledu  sJ    		 
	
 
	 
	 Jqkd#r'   c                     t        j                  t        j                  t        j                  t        j                  g      t
              }d|d<   | j                  |d   |j                  d             y )Nkey_type
value_typei90  )r   r   )r
   r  r   rw  uint32r   r,   r8   r.   r#   s     r%   test_gh7908zTestTypedDict.test_gh7908  sX    JJ[[%,,"',,"0 1
 &	6AEE&M2r'   c                    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   ||<     | ||       ||             |r'| j                   ||      j                  d             y y )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    jj&A!#)$--t/?/?a%*%A!a%*%r2AUCFq5AaD  	a%*%OOE#J11*=> r'   c                 2    | j                  t        d       y )NT)r  )r  reprr  s    r%   	test_reprzTestTypedDict.test_repr  s    T$/r'   c                 .    | j                  t               y 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  rf  r'   r%   r  r  ;  s'    /@b&$3?"0"r'   r  c                       e Zd Zd Zy)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 ]9  \  }}}| j                  r || }n |j                  | }| j	                  ||       ; y )Nc                 0    t        t        | |            }|S r6   r
   rK   )r   r   r#   s      r%   func1z>DictIterableCtor.test_iterable_type_constructor.<locals>.func1  s    SAYAHr'   c                 B    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                 4    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As1ay)**r'   c                 @    t        t        t        | |      |            S r6   r  r   r   s     r%   func5z>DictIterableCtor.test_iterable_type_constructor.<locals>.func5  s    C1Iq)**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    t               }| j                         D ]
  \  }}|||<    |S r6   )r
   r   )py_dictr#   rO   rP   s       r%   	_get_dictzBDictIterableCtor.test_iterable_type_constructor.<locals>._get_dict  s+    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&	ccc2J(KLY&	ccc2J(KLY&	ccc2J(KLY&	!mF)H IY&	#=)? @ )+Y337G-HIUIq%j12IsAh4GHUIq%j12I	1e*-.50 1UDO,iY(/* +
" %) D$Dk"dllD)##Hc2 %)r'   N)r  r  r  r  rf  r'   r%   r  r    s    D3r'   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestDictIterableCtorJitc                     d| _         y )NTr  r  s    r%   setUpzTestDictIterableCtorJit.setUp  s
    r'   c                     t         d        }d}| j                  t        |      5   |        d d d        y # 1 sw Y   y xY w)Nc                      t        d      S rw   r  rf  r'   r%   ctorzDTestDictIterableCtorJit.test_exception_no_iterable_arg.<locals>.ctor  s    7Nr'   !.*No implementation of function.*r   assertRaisesRegexr   r.   r  msgs      r%   test_exception_no_iterable_argz6TestDictIterableCtorJit.test_exception_no_iterable_arg  s<    		 
	 2##K5F 655   6?c                     t         d        }d}| j                  t        |      5   |        d d d        y # 1 sw Y   y xY w)Nc                      t        ddd      S )Nr)   rV   r  r  rf  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F 655r  c                     t         d        }d}| j                  t        |      5   |        d d d        y # 1 sw Y   y xY w)Nc                      t        d      S )Nr  )r)   r   rF   r  rf  r'   r%   r  z<TestDictIterableCtorJit.test_exception_setitem.<locals>.ctor  s    /00r'   r  r  r   s      r%   test_exception_setitemz.TestDictIterableCtorJit.test_exception_setitem  s<    		1 
	1 2##K5F 655r  N)r  r  r  r  r  r  r
  rf  r'   r%   r  r    s     r'   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestDictIterableCtorNoJitc                     d| _         y )NFr  r  s    r%   r  zTestDictIterableCtorNoJit.setUp  s
     r'   c                 v    d}| j                  t        |      5  t        dd       d d d        y # 1 sw Y   y xY w)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AJ 655s   /8c                 x    d}| j                  t        |      5  t        ddi       d d d        y # 1 sw Y   y xY w)Nz$.*dict\(mapping\) is not supported.*r   r)   r  r  s     r%   test_exception_mapping_ctorz5TestDictIterableCtorNoJit.test_exception_mapping_ctor  s.    5##K5!QL 655s   09c                 t    d}| j                  t        |      5  t        d       d d d        y # 1 sw Y   y xY w)Nz.*object is not iterable.*rF   r  r  s     r%   test_exception_non_iterable_argz9TestDictIterableCtorNoJit.test_exception_non_iterable_arg  s*    *##K5G 655   .7c                 t    d}| j                  t        |      5  t        d       d d d        y # 1 sw Y   y xY w)Nz6.*dictionary update sequence element #1 has length 3.*r	  )r  
ValueErrorr
   r  s     r%   r
  z0TestDictIterableCtorNoJit.test_exception_setitem#  s,    F##J4() 544r  N)r  r  r  r  r  r  r  r
  rf  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
y	)
TestDictRefctTypesc                     t         d        } |       }| j                  |d   d       | j                  |d   d       ddd}| j                  t        |      |       d|d<   d|d<   | j                  |d   d       | j                  t        |      |       d}t        |      D ]  }||t	        |      <   ||t	        |      <     t        |      D ]   }| j                  |t	        |         |       " | j                  t        |      |       y )	Nc                      t        j                  t        j                  t        j                        } d| d<   d| d<   | S )Nr  {   123A  321)r
   r  r   rP  r   rz   s    r%   r&   z,TestDictRefctTypes.test_str_key.<locals>.foo,  s9    

++ ;;A AeHAeHHr'   r  r  r   r  )r  r      r*   r   r,   rq   r   r   r.   r&   r#   r  r   r$   s         r%   test_str_keyzTestDictRefctTypes.test_str_key+  s   		 
	 E53'53'S)a&)%u53'a&)uAAc!fIF3q6N  uAQs1vY* a&)r'   c                    t         d        } |       }| j                  |d   d       | j                  |d   d       ddd}| j                  t        |      |       d|d<   d|d<   | j                  t        |      |       d}t        |      D ]  }t	        |      ||<   t	        |      ||<     t        |      D ]   }| j                  ||   t	        |             " | j                  t        |      |       y )	Nc                      t        j                  t        j                  t        j                        } d| d<   d| d<   | S )Nr  r  r  r   r  )r
   r  r   r   rP  rz   s    r%   r&   z,TestDictRefctTypes.test_str_val.<locals>.fooJ  s9    

 --A AcFAcFHr'   r  r  r  r   r  r  231r   r"  r#  s         r%   test_str_valzTestDictRefctTypes.test_str_valI  s    		 
	 E3'3'5)a&)#sa&)uAq6AaDAF1I  uAQqT3q6* a&)r'   c                 D   t         j                  j                  d       t        j                  t
        j                  t
        j                  d d        }g }|j                  t         j                  j                  d             |d   |d<   |j                  t         j                  j                  d             |d   |d<   t        d      D ]A  }|j                  t         j                  j                  |             |d   |t        |      <   C | j                  t        |      t        |             | j                  |d   |d	          | j                  |d   |d
          t        |j                         |      D ]  \  }}| j                  ||        | j!                  d|v        | j!                  d|v        |d= | j#                  d|v        |d= | j#                  d|v        |d	d= t        d      D ]7  }|j%                         \  }}|j'                         }| j                  ||       9 |j                  t         j                  j                  d             |d   |d<   t        |j                         |      D ]  \  }}| j                  ||        y )Nr  r  r>   r?   massrn   velocityr*   r   r   r)   Z   last)r  randomseedr
   r  r   rP  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JJ''}}Q'
 bii&&r*+2J&	bii&&r*+r
*sAMM"))**1-.r
Ac!fI  	QV-&	6!95*vay9AHHJ/HC##C- 0 	!$
a(fI1%jMq)1Q3KrA99;DAq

A##Aq)  	bii&&r*+2J&	 AHHJ/HC##C- 0r'   c                    d }t        j                  t        j                  t        j                  t        j                  t        j                              }d } |||      } |i t
              }| j                  |t
               | j                  t        |      |       dD ]#  }||= ||= | j                  t        |      |       % y )Nc                  l    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    t        d      D ])  } |       }t        |dz         D ]
  }|dz  ||<    || |<   + | S )Nr*   r   rT  r   )r#   make_inner_dictr$   midjs        r%   usecasez@TestDictRefctTypes.test_dict_of_dict_int_keyval.<locals>.usecase  sG    3Z%'q1uAYCF &!	  
 Hr'   )rH  rF   r     r>   )r
   r  r   r8  r   rq   assertIsInstancer,   )r.   r9  r#   r>  r   r  wheres          r%   test_dict_of_dict_int_keyvalz/TestDictRefctTypes.test_dict_of_dict_int_keyval  s    	 JJZZ~~ejj%**=

	 a)*T"fd+cF+ 'EE
uT#Y/ 'r'   c                   	 t        j                  t         j                  t         j                        t        d        	t        	fd       } |d      }d}|j	                         D ]R  \  }}|dz  }| j                  t        |      |dz          |j	                         D ]  \  }}| j                  ||        T | j                  |d       y )Nc                  l    t        j                  t        j                  t        j                        } | S r6  r7  rz   s    r%   r9  zBTestDictRefctTypes.test_dict_of_dict_npm.<locals>.inner_numba_dict  s%    

 ::A Hr'   c                     t        j                  t        j                        }t	        |       D ]'  }        ||<   t	        |dz         D ]
  }|||   |<    ) |S )Nr  r   )r
   r  r   r8  r   )countr#   r$   r=  inner_dict_tyr9  s       r%   r&   z5TestDictRefctTypes.test_dict_of_dict_npm.<locals>.foo  s]    

(A 5\')!q1uAAaDG & "
 Hr'   r*   r   r   )r   r   r8  r   r   r,   r2   )
r.   r&   r#   ctrO   ddkkvvrG  r9  s
           @@r%   test_dict_of_dict_npmz(TestDictRefctTypes.test_dict_of_dict_npm  s    uzz5::>		 
	 

	 

	 HWWYEAr!GBSWa!e,((*B  R( %  	S!r'   c                     t        j                  t        j                  t        j                        }d|d<   t
        d        } ||d       | j                  t        |      d       | j                  |       y )Nappler   c                 
    | d= y r   rf  )r   rO   s     r%   r&   z,TestDictRefctTypes.test_delitem.<locals>.foo  s	    !r'   r   )	r
   r  r   r   rP  r   r,   r2   r   )r.   r#   r&   s      r%   test_delitemzTestDictRefctTypes.test_delitem  sd    JJu{{E$6$67!		 
	 	Aq	Q#r'   c                    t        j                  t        j                  t        j                  d d        }t	        j
                  dt        j                        |d<   t        d        } ||       |j                  d   j                  }| j                  |t        j                         | j                  |t        j                         | j                  |d   t	        j
                  dt        j                        dz          y )Nr>   rq  r   c                 &    | dxx   dz  cc<   | d   S r   rf  rz   s    r%   r&   z8TestDictRefctTypes.test_getitem_return_type.<locals>.foo  s    aDCKDQ4Kr'   r   r*   )r
   r  r   r   r  aranger   nopython_signaturesreturn_typer@  ArrayassertNotIsInstanceOptionalr   )r.   r#   r&   rettys       r%   test_getitem_return_typez+TestDictRefctTypes.test_getitem_return_type  s    JJu{{EKKN3yy288,!		 
	 	A''*66eU[[1  7!bii"((&Cc&IJr'   c                     t               }g d}|D ]  }|||<   	 t        |      D ]  \  }}| j                  ||   |        y )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  sO     f
 ACF  cNDAqSVQ' #r'   N)r  r  r  r$  r)  r3  rB  rL  rP  rZ  r^  rf  r'   r%   r  r  )  s.    *<*:).V 0D "D
K$(r'   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestDictForbiddenTypesc                     | j                  t              5 } |        d d d        t        j                        }| j	                  ||       y # 1 sw Y   1xY wr6   )rZ   r   r   r   r   )r.   r  callabler   r  s        r%   assert_disallowz&TestDictForbiddenTypes.assert_disallow  sC    {+vJ ,&""#fc" ,+s   AAc                     dj                        }| j                  |fd       t        fd       }| j                  ||       y )Nz{} as key is forbiddenc                  L    t        j                   t        j                        S r6   r7  tys   r%   <lambda>z<TestDictForbiddenTypes.assert_disallow_key.<locals>.<lambda>  s    $**R*Dr'   c                  N    t        j                   t        j                         y r6   r7  rf  s   r%   r&   z7TestDictForbiddenTypes.assert_disallow_key.<locals>.foo  s    JJr5::&r'   r  rc  r   r.   rg  r  r&   s    `  r%   assert_disallow_keyz*TestDictForbiddenTypes.assert_disallow_key  sF    &--b1S"DE		' 
	'S#&r'   c                     dj                        }| j                  |fd       t        fd       }| j                  ||       y )Nz{} as value is forbiddenc                  L    t        j                  t        j                         S r6   r7  rf  s   r%   rh  z>TestDictForbiddenTypes.assert_disallow_value.<locals>.<lambda>  s    $**UZZ*Dr'   c                  N    t        j                  t        j                          y r6   r7  rf  s   r%   r&   z9TestDictForbiddenTypes.assert_disallow_value.<locals>.foo  s    JJuzz2&r'   rj  rk  s    `  r%   assert_disallow_valuez,TestDictForbiddenTypes.assert_disallow_value  sF    (//3S"DE		' 
	'S#&r'   c                     | j                  t        j                  t        j                               | j	                  t        j                  t        j                               y r6   )rl  r   r   r8  rp  r  s    r%   test_disallow_listz)TestDictForbiddenTypes.test_disallow_list  s8      EJJ!78""5::ejj#9:r'   c                     | j                  t        j                  t        j                               | j	                  t        j                  t        j                               y r6   )rl  r   Setr8  rp  r  s    r%   test_disallow_setz(TestDictForbiddenTypes.test_disallow_set!  s8      5::!67""599UZZ#89r'   N)r  r  r  rc  rl  rp  rr  ru  rf  r'   r%   r`  r`    s    #'';:r'   r`  c                   l    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y)TestDictInferredc                 &   t         d        }d\  }} |       }| j                  t        |      ||i       | j                  t        |      j                  t        |             | j                  t        |      j
                  t        |             y )Nc                  $    t               } d| d<   | S )Nr  r  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'  sz    		 
	
 1Ea1a&)++VAY7--vay9r'   c                 *   t         d        }d\  }} |||      }| j                  t        |      ||i       | j                  t        |      j                  t        |             | j                  t        |      j
                  t        |             y )Nc                 $    t               }||| <   |S r6   r  r  s      r%   r&   z.TestDictInferred.test_simple_args.<locals>.foo5  r  r'   r'  rz  r{  s        r%   test_simple_argsz!TestDictInferred.test_simple_args4  s~    		 
	
 11Ia1a&)++VAY7--vay9r'   c                 .   t         d        }d\  }}} ||||      }| j                  t        |      ||i       | j                  t        |      j                  t        |             | j                  t        |      j
                  t        |             y )Nc                 .    t               }||| <   ||| <   |S r6   r  rO   rP   r2  r#   s       r%   r&   z0TestDictInferred.test_simple_upcast.<locals>.fooB       AAaDAaDHr'   )r  @@r  rz  )r.   r&   rO   rP   r2  r#   s         r%   test_simple_upcastz#TestDictInferred.test_simple_upcastA  s    		 
	 !1a1aLa1a&)++VAY7--vay9r'   c                 
   t         d        }d\  }}}| j                  t              5 } ||||       d d d        | j                  dj	                  t        |            t        j                               y # 1 sw Y   GxY w)Nc                 .    t               }||| <   ||| <   |S r6   r  r  s       r%   r&   z9TestDictInferred.test_conflicting_value_type.<locals>.fooP  r  r'   )r  r  r   cannot safely cast float64 to {}r   rZ   r   r   r  r	   r   r   )r.   r&   rO   rP   r2  r   s         r%   test_conflicting_value_typez,TestDictInferred.test_conflicting_value_typeO  sv    		 
	 !1a{+v1aL ,.55fQi@  !	
 ,+   A99Bc                 
   t         d        }d\  }}}| j                  t              5 } ||||       d d d        | j                  dj	                  t        |            t        j                               y # 1 sw Y   GxY w)Nc                 .    t               }||| <   |||<   |S r6   r  )rO   hrP   r#   s       r%   r&   z7TestDictInferred.test_conflicting_key_type.<locals>.foo`  r  r'   )r  gfffff^@r  r  r  )r.   r&   rO   r  rP   r   s         r%   test_conflicting_key_typez*TestDictInferred.test_conflicting_key_type_  sv    		 
	 "1a{+v1aL ,.55fQi@  !	
 ,+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        | j                  t              d       d}| j                  |t        |d                t        j                               }	| j                  |	d   d	       | j                  |t        j                  d      t        j                  d      f          y # 1 sw Y   xY w)
Nc                 .    t               }||| <   |||   fS r6   r  )rA  r  rB  r#   s       r%   r&   z?TestDictInferred.test_conflict_key_type_non_number.<locals>.fooq  s    AAbEae8Or'   r   r)   r  T)recordz:unsafe cast from UniTuple(int32 x 2) to UniTuple(int8 x 2)r   )r   r)   )r   r  r  r   r8  warningscatch_warningsr,   r2   r   r   r   rM   )
r.   r&   rA  rB  r  r2  r#   dk2r  rM   s
             r%   !test_conflict_key_type_non_numberz2TestDictInferred.test_conflict_key_type_non_numbero  s   		 
	 ggaj"''!*%hhqk288A;'WWS\$$D1QR_FAs 2Q#Jc3qt9%AFFH~a&)a!bhhqk :;< 21s   E		Ec                     t         d        }d\  }} |||      }| j                  t        |      ||i       d\  }} |||      }| j                  t        |      d|dz   i       y )Nc                 <    t               }| r||| <   |S |dz   |d<   |S )Nr     r  r  s      r%   r&   z>TestDictInferred.test_ifelse_filled_both_branches.<locals>.foo  s0    A! H E&	Hr'   r'  rf   r  r   r   r,   rq   r{  s        r%    test_ifelse_filled_both_branchesz1TestDictInferred.test_ifelse_filled_both_branches  sr    		 
	 11Ia1a&)11Ia61q5/2r'   c                 |   t         d        }d\  }} |||      }| j                  t        |      ||i       d\  }} |||      }| j                  t        |      i        | j                  t        |      j                  t        |             | j                  t        |      j
                  t        |             y )Nc                 (    t               }| r||| <   |S r6   r  r  s      r%   r&   z:TestDictInferred.test_ifelse_empty_one_branch.<locals>.foo  s    A!Hr'   r'  rf   rz  r{  s        r%   test_ifelse_empty_one_branchz-TestDictInferred.test_ifelse_empty_one_branch  s    		 
	 11Ia1a&)11Ia"%++VAY7--vay9r'   c           	          t         d        }t        t        d            }t        t        d |            } |||      }| j	                  t        |      t        t        ||                   y )Nc                 L    t               }t        | |      D ]
  \  }}|||<    |S r6   r  )ksvsr#   rO   rP   s        r%   r&   z'TestDictInferred.test_loop.<locals>.foo  s+    AB1! $Hr'   rV   c                     | dz   S )Nr*   rf  r   s    r%   rh  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_    		 
	 %(^#("-.BKa$s2r{"34r'   c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)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  sV    		 
	 {+vE ,  !	
 ,+r  c                 L   t         d        } |d      \  }}}| j                  |d       | j                  |d       | j                  t        |      ddi        |d      \  }}}| j                  |d       | j                  t        |      i        | j                  |d       y )Nc                     t               }t        |      }|j                         D ]
  \  }}||z  } | rd|d<   ||t        |      fS Nr)   r   )r
   r2   r   )definer#   rH  rO   rP   s        r%   r&   z3TestDictInferred.test_define_after_use.<locals>.foo  sM    AQB	1a " !q#a&= r'   Tr   r   r)   Fr  )r.   r&   rH  r#   r"   s        r%   test_define_after_usez&TestDictInferred.test_define_after_use  s    			! 
		! t9AqQAa1a&)u:AqQa"%Ar'   c           	          t         d        }d\  }}} ||||      }| j                  t        |      ||dz   ||z   i||dz   ||z   ii       y )Nc                     t               }t               }|| z   || dz   <   t               }||z   ||dz   <   ||| <   |||<   |S Nr   r)   r  )rA  rB  rP   r#   z1z2s         r%   r&   z/TestDictInferred.test_dict_of_dict.<locals>.foo  sP    ABRBrAvJBRBrAvJAbEAbEHr'   )r*   r  r  r   r)   r  )r.   r&   rA  rB  rP   r#   s         r%   test_dict_of_dictz"TestDictInferred.test_dict_of_dict  sl    		 
	 "	BBNGR!VR!V$R!VR!V$	
r'   c                 f    t         d        }| j                   |       |j                                y )Nc                  F    t        d      D  ci c]  } | d| z  
 c} S c c} w )Nr>   r)   r   )r$   s    r%   r&   z6TestDictInferred.test_comprehension_basic.<locals>.foo  s&    &+Bi0iAq1uHi000s   rm  r-   s     r%   test_comprehension_basicz)TestDictInferred.test_comprehension_basic  s.    		1 
	1 	.r'   c                 f    t         d        }| j                   |       |j                                y )Nc                      t        t        d      t        ddd            D  ci c]  \  } }| t        |       c}} S c c}} w )Nr>   r   r?   )rK   r   r  )r$   r=  s     r%   r&   zATestDictInferred.test_comprehension_basic_mixed_type.<locals>.foo  s<    ,/b	5Q;K,LM,LDAqAuQxK,LMMMs   >rm  r-   s     r%   #test_comprehension_basic_mixed_typez4TestDictInferred.test_comprehension_basic_mixed_type  s0    		N 
	N 	.r'   c                 f    t         d        }| j                   |       |j                                y )Nc                  X    dddd} t        d      D ci c]  }d|z   | |    c}S c c}w )NABCr  rF   r   r   r$   s     r%   r&   z9TestDictInferred.test_comprehension_involved.<locals>.foo  s6    CC(A).q2AAE1Q4K222   'rm  r-   s     r%   test_comprehension_involvedz,TestDictInferred.test_comprehension_involved   s.    		3 
	3 	.r'   c                     t         d        }| j                  t              5 } |        d d d        t        j                        }| j                  d|       y # 1 sw Y   1xY w)Nc                  X    dddd} t        d      D ci c]  }d|z   | |    c}S c c}w )Nr  r  r   r  rF   r   r  s     r%   r&   z@TestDictInferred.test_comprehension_fail_mixed_type.<locals>.foo	  s6    CB'A).q2AAE1Q4K222r  z&Cannot cast complex128 to unicode_type)r   rZ   r   r   r   r   )r.   r&   r^  excstrs       r%   "test_comprehension_fail_mixed_typez3TestDictInferred.test_comprehension_fail_mixed_type  sX    		3 
	3 {+qE , Q[[!>G	 ,+   AA#N)r  r  r  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rf  r'   r%   rw  rw  &  sS    :::
 
 =03$:$5
.
,///
Hr'   rw  c                       e Zd Zd Zd Zd Zy)TestNonCompiledInferc                 :   t               }| j                  |j                         | j                  t	        |      d       | j                  t        |      t        i              | j                  t        t        |            g        | j                  t              5 }|d    d d d        | j                  t        j                        t        t        d                   | j                  t              5 }|d= d d d        | j                  t        |j                        t        t        d                   | j                  t              5  |j                  d       d d d        | j                  t        |j                        t        t        d                   | j                  |j                  dd       d        | j                  |j                  d      d        | j                  t              5 }|j                          d d d        | j                  t        |j                        t        t        d                   | j                  t              5 }|j!                  d       d d d        | j                  t        |j                        t        t        d                   | j                  d|v        | j                  |j                         y # 1 sw Y   <xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w)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  s5   F"Q#QR)d1g+x(FaD )V--.HQK0@Ax(F! )V--.HQK0@Ax(EE!H )V--.HQK0@AaeeAtnd+aeeAh%x(FIIK )V--.X&;<=	? y)VLLO *  !	CDE	

 	a "= )( )( )( )(
 *)s<   K8K+K89LLK(+K58LLLc                     t               }d|d<   | j                  |j                         | j                  |d   d       y r  )r
   r   r  r,   r  s     r%   test_getitemz!TestNonCompiledInfer.test_getitem>  s6    F!!1q!r'   c                     t               }|j                  dd       | j                  |j                         | j	                  |d   d       y r  )r
   r   r   r  r,   r  s     r%   test_setdefaultz$TestNonCompiledInfer.test_setdefaultF  s;    F	Q!1q!r'   N)r  r  r  r  r  r  rf  r'   r%   r  r    s    &#P""r'   r  r   )specc                       e Zd Zd Zd Zy)Bagc                     || _         y 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    DFF|r'   N)r  r  r  r  r  rf  r'   r%   r  r  O  s    r'   r  c                       e Zd Zd Zy)TestDictWithJitclassc                     t         d        } |t        d            }| j                  |d   j                  d       | j                  |d   j                  d       y )Nc                 @    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s8AaDHr'   r*   r  r   r   r  )r   r  r,   r   )r.   r&   r#   s      r%   test_jitclass_as_valuez+TestDictWithJitclass.test_jitclass_as_valueY  sS    		 
	 c
O1%1%r'   N)r  r  r  r  rf  r'   r%   r  r  X  s    
&r'   r  c                   "    e Zd ZdZd Zd Zd Zy)	TestNoJitz0Exercise dictionary creation with JIT disabled. c                     t        dd      5  t               5  t        j                  t        t
              }| j                  t        |      t               d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w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  sU    ]D1!''w7  a$/ " 21!! 21s"   A3>A'A3'A0	,A33A<c                     t        dd      5  t               5  t               }| j                  t	        |      t
               d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w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  sJ    ]D1!F  a$/ " 21!! 21s"   A*AAA	AA(c                 &   t        dd      5  t               5  t        j                  t        j
                  t        j                        }| j                  t        |      t               d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w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!JJu{{EMM:  a$/ " 21!! 21s#   BAA;*B;B	 BBN)r  r  r  __doc__r  r  r  rf  r'   r%   r  r  f  s    :000r'   r  c                       e Zd Zd Zy)TestDictIteratorc                    t         d        }t         d        } |       } |       }| j                  g d|d          | j                  g d|d          | j                  g d|d          | j                  g d|d          y )	Nc                      t        j                  t        j                  t        j                        } d| d<   d| d<   d| d<   t	        | j                               t	        | j                               fS )Nr  r>   r   rn   r   ro   r)   r
   r  r   r8  r   rM   r   rI  s    r%   fun1z1TestDictIterator.test_dict_iterator.<locals>.fun1~  X    UZZ',zz3BBqEBqEBqE	?D$555r'   c                      t        j                  t        j                  t        j                        } d| d<   d| d<   d| d<   t	        | j                               t	        | j                               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 vv$q'*T!W-$q'*T!W-r'   N)r  r  r  r  rf  r'   r%   r  r  |  s    .r'   r  c                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	TestTypedDictInitialValueszBTests that typed dictionaries carry their initial value if presentc                 ^     d t               fd       }t        fd       } |        y )Nc                      y r6   rf  rz   s    r%   rg  zDTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.bar      r'   c                     | j                   d S j                  t        | t        j                               j                  | j                   dddd       j                  t        | d      d       d S )	Nc                     t        |       S r6   r   rz   s    r%   rh  zYTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.ol_bar.<locals>.<lambda>      1r'   r   r)   rF   r  literal_valueFc                     | S r6   rf  rz   s    r%   rh  zYTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.ol_bar.<locals>.<lambda>      Qr'   )initial_valuer   
isinstancer   r   r,   hasattrr#   r.   s    r%   ol_barzGTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.ol_bar  sb    &--OOJq%..9:Q__AAA.FGWQ8%@r'   c                  "    dddd}  |        y )Nr   r)   rF   r  rf  r   rg  s    r%   r&   zDTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.foo  s     aa(AFr'   r   r   r.   r  r&   rg  s   `  @r%   test_homogeneous_and_literalz7TestTypedDictInitialValues.test_homogeneous_and_literal  s;    	 
#	 
	 
	 
	
 	r'   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r6   rf  rz   s    r%   rg  zVTestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.bar  r  r'   c                     j                  t        | t        j                               j	                  | j
                  d        j	                  t        | d      d       d S )Nr  Fc                     | S r6   rf  rz   s    r%   rh  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  sK    OOJq%..9:Q__d3WQ8%@r'   c                  "    dddd}  |        y )Nr   r)   rF   r  rf  r  s    r%   r&   zVTestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.foo  s     qq)AFr'   r  r  s   `  @r%   .test_heterogeneous_but_castable_to_homogeneouszITestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous  s;    	 
#	 
	 
	 
	 	r'   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r6   rf  rz   s    r%   rg  zZTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.bar  r  r'   c                 b   dddd}d }|j                         D ci c]!  \  }}t        j                  |       ||      # }}}j                  t	        | t        j
                               j                  | j                  |       j                  t        | d      d       d S c c}}w )	Nr                  @rF   r  c                 l    t        j                  |       rt        j                  |       S 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+Au}}Q'PvayPr'   r
  Fc                     | S r6   rf  rz   s    r%   rh  zoTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.ol_bar.<locals>.<lambda>  r	  r'   )	r   r   r   r   r  LiteralStrKeyDictr,   r  r  )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EFWWYOYTQa(+a.8YHOOOJq%*A*ABCQ__h7WQ8%@	 Ps   &B+c                  "    dddd}  |        y )Nr   r  rF   r  rf  r  s    r%   r&   zZTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.foo  s     bq)AFr'   r  r  s   `  @r%   2test_heterogeneous_but_not_castable_to_homogeneouszMTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous  s;    	 
#		 
		 
	 
	 	r'   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r6   rf  rz   s    r%   rg  zATestTypedDictInitialValues.test_mutation_not_carried.<locals>.bar  r  r'   c                     | j                   d S j                  t        | t        j                               j                  | j                   dddd       d S )Nc                     t        |       S r6   r  rz   s    r%   rh  zVTestTypedDictInitialValues.test_mutation_not_carried.<locals>.ol_bar.<locals>.<lambda>  r  r'   r   r)   rF   r  c                     | S r6   rf  rz   s    r%   rh  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  sK    &--OOJq%..9:Q__AAA.FGr'   c                  ,    dddd} d| d<    |        y Nr   r)   rF   r  rV   r#   rf  r  s    r%   r&   zATestTypedDictInitialValues.test_mutation_not_carried.<locals>.foo  s!     aa(AAcFFr'   r  r  s   `  @r%   test_mutation_not_carriedz4TestTypedDictInitialValues.test_mutation_not_carried  s;    	 
#	 
	 
	 
	 	r'   c                    t         d        }|d ft        ddddffD ]k  \  }t         d        d t              fd       }t         fd	       } |        j                  d
   d
   }| j	                  |j
                  |       m y )Nc                       y r6   rf  )r  s    r%   nopzQTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.nop  s    r'   r   r)   rF   r  c                      y r6   rf  r  s    r%   bazzQTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.baz  s    r'   c                      y r6   rf  r!  s    r%   rg  zQTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.bar      r'   c                     fd}|S )Nc                 &     |         |        y r6   rf  )r   r3  fns    r%   implzbTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.ol_bar.<locals>.impl
  s    qEFr'   rf  )r   r9  r3  r8  s     r%   r  zTTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.ol_bar  s     r'   c                  .    dddd}  |        d| d<   | S r-  rf  r  s    r%   r&   zQTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.foo  s$    !!,A#r'   r   )r   r   r   
signaturesr,   r
  )	r.   r1  ivr  r&   largrg  r3  r8  s	         @@@r%   )test_mutation_not_carried_single_functionzDTestTypedDictInitialValues.test_mutation_not_carried_single_function  s     
	 
	 DkIQQQ/G#HHFB  c]    E >>!$Q'DT//45 Ir'   c                     t         d        t         fd       }t               }d|d<   t               }d|d<   | j                   |d      |       | j                   |d      |       y )	Nc                     ddi}| rddi}|S )Nr   r)   rF   rf  )r   os     r%   rg  zGTestTypedDictInitialValues.test_unify_across_function_call.<locals>.bar  s    AAFHr'   c                 (    | rddi}|S  |       }|S )NrF   rV   rf  )r   r#   rg  s     r%   r&   zGTestTypedDictInitialValues.test_unify_across_function_call.<locals>.foo%  s&    F H FHr'   rV   rF   r)   r   TF)r   r
   r,   )r.   r&   e1e2rg  s       @r%   test_unify_across_function_callz:TestTypedDictInitialValues.test_unify_across_function_call  ss    		 
	 
	 
	 V1V1TB'UR(r'   N)
r  r  r  r  r  r  r&  r.  r>  rE  rf  r'   r%   r  r    s$    L*,6,!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y)TestLiteralStrKeyDictzB Tests for dictionaries with string keys that can map to anything!c                 J    t         d        }| j                   |       d       y )Nc                  *    dddd} | d   | d   | d   fS )Nr   r  r#   r  r   r   r   rf  lds    r%   r&   zCTestLiteralStrKeyDict.test_basic_const_lowering_boxing.<locals>.foo9  s'    r,BsGRWbg..r'   )r   r  r#   r+   r-   s     r%    test_basic_const_lowering_boxingz6TestLiteralStrKeyDict.test_basic_const_lowering_boxing8  s(    		/ 
	/ 	-r'   c                 x    t         d        }| j                   |d             | j                   |d             y )Nc                 6    | dz   }|dkD  rdnd}ddd|d}|d	   S )
Nr<   r)   TFr   r  r#   )r   r   r   	non_constrO  rf  )r   r  r^  rK  s       r%   r&   z?TestLiteralStrKeyDict.test_basic_nonconst_in_scope.<locals>.fooA  s0    AAA5Ar!<Bk?"r'   "   r   r-   s     r%   test_basic_nonconst_in_scopez2TestLiteralStrKeyDict.test_basic_nonconst_in_scope@  s8    		# 
	# 	B T#r'   c                 f     dd t               fd       }t        fd       } |        y )Nr<   c                      y r6   rf  r  s    r%   rg  z>TestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.barQ      r'   c                 r   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   r  r   r#   r<   c                      y r6   rf  r  s    r%   r9  zOTestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.ol_bar.<locals>.impl\  r5  r'   r,   r  r   r   r	   r   r9  r.   s     r%   r  zATestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.ol_barT  s    Q__#mmC0%--2B#mmC0&*#mmC0%--2D#mmC0%--2BDEKr'   c                  $    dddd}  |        y )Nr   r  r#   r   r   r   r#   rf  )rK  rg  r^  s    r%   r&   z>TestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.foo`  s    r!4BGr'   r  )r.   r  r&   rg  r^  s   `  @@r%   test_basic_nonconst_freevarz1TestLiteralStrKeyDict.test_basic_nonconst_freevarN  s@    	 
#		 
		 
	 
	 	r'   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r6   rf  r  s    r%   rg  z5TestLiteralStrKeyDict.test_literal_value.<locals>.bari  rU  r'   c                 "   j                  | j                  t        j                  d      t        j                  d      t        j                  d      t	        d      t        j                  d      t        j                  d      i       d }|S )Nr   r   r   r  r   r#   c                      y r6   rf  r  s    r%   r9  zFTestLiteralStrKeyDict.test_literal_value.<locals>.ol_bar.<locals>.impls  r5  r'   rX  rY  s     r%   r  z8TestLiteralStrKeyDict.test_literal_value.<locals>.ol_barl  sh    Q__#mmC0%--2B#mmC0&*#mmC0%--2DFG
Kr'   c                  "    dddd}  |        y Nr   r  r#   r  rf  rK  rg  s    r%   r&   z5TestLiteralStrKeyDict.test_literal_value.<locals>.foow  s    r,BGr'   r  r  s   `  @r%   test_literal_valuez(TestLiteralStrKeyDict.test_literal_valueg  s;    	 
#	 
	 
	 
	 	r'   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r6   rf  r  s    r%   rg  z?TestLiteralStrKeyDict.test_list_and_array_as_value.<locals>.bar  rU  r'   c                 l   j                  | 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                      y r6   rf  r  s    r%   r9  zPTestLiteralStrKeyDict.test_list_and_array_as_value.<locals>.ol_bar.<locals>.impl  r5  r'   )	r,   r  r   r   r   r8  r	   r  zerosrY  s     r%   r  zBTestLiteralStrKeyDict.test_list_and_array_as_value.<locals>.ol_bar  sx    Q__#mmC0%--2B#mmC0#jj7K#mmC0&!2EGHKr'   c                  P    g d} d| t        j                  d      d} |       y )NrQ   r   r<   r  r  ri  )r   rK  rg  s     r%   r&   z?TestLiteralStrKeyDict.test_list_and_array_as_value.<locals>.foo  s#    Aqrxx{3BGr'   r  r  s   `  @r%   test_list_and_array_as_valuez2TestLiteralStrKeyDict.test_list_and_array_as_value~  s;    	 
#		 
		 
	 
	
 	r'   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r6   rf  r  s    r%   rg  zBTestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.bar  rU  r'   c                 "   j                  | j                  t        j                  d      t        j                  d      t        j                  d      t	        d      t        j                  d      t        j                  d      i       d }|S )Nr   aaaar   r  r   r#   c                      y r6   rf  r  s    r%   r9  zSTestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.ol_bar.<locals>.impl  r5  r'   rX  rY  s     r%   r  zETestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.ol_bar  sj     Q__#mmC0%--2G#mmC0&*#mmC0%--2DFG
Kr'   c                  &    dddddd}  |        y )Nr   r>   r  r#   rp  )r   r   r   r   r   rf  rc  s    r%   r&   zBTestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.foo  s    r6BBGr'   r  r  s   `  @r%   test_repeated_key_literal_valuez5TestLiteralStrKeyDict.test_repeated_key_literal_value  s;    	 
#		 
		 
	 
	 	r'   c                     d }d }d }d }||||f}|D ]K  }| j                  |j                        5  | j                   t        |              |              d d d        M y # 1 sw Y   XxY w)Nc                  $    dddd} t        |       S rb  )r2   rJ  s    r%   _lenz2TestLiteralStrKeyDict.test_read_only.<locals>._len  s    r,Br7Nr'   c                      dddd} | d   S )Nr   r  r#   r  r   rf  rJ  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   r  r#   r  r   r_  rf  rJ  s    r%   containsz6TestLiteralStrKeyDict.test_read_only.<locals>.contains  s!    r,B"9cRi''r'   c                  8    dddd} | j                         }| |k(  S rb  )r   )rK  news     r%   r   z2TestLiteralStrKeyDict.test_read_only.<locals>.copy  s#    r,B'')C9r'   )subTestr  r   r   )r.   rv  rx  rz  r   rdonlystests          r%   test_read_onlyz$TestLiteralStrKeyDict.test_read_only  si    			(	
 48Ddmm,''
T
df= -, ,,s   &A$$A-	c                 h   d }d }d }d }d }d }||||||f}|D ]{  }| j                  |j                        5  | j                  t              5 }	 t	        |              d d d        d}
| j                  |
t        	j                               d d d        } y # 1 sw Y   ;xY w# 1 sw Y   xY w)Nc                      dddd} d| d<   y )Nr   r  r#   r  rH  r   rf  rJ  s    r%   setitemz<TestLiteralStrKeyDict.test_mutation_failure.<locals>.setitem  s    r,BBsGr'   c                      dddd} | d= y )Nr   r  r#   r  r   rf  rJ  s    r%   delitemz<TestLiteralStrKeyDict.test_mutation_failure.<locals>.delitem  s    r,B3r'   c                  0    dddd} | j                          y rb  )ra   rJ  s    r%   ra   z<TestLiteralStrKeyDict.test_mutation_failure.<locals>.popitem  s    r,BJJLr'   c                  0    dddd} | j                          y rb  )rv   rJ  s    r%   rv   z8TestLiteralStrKeyDict.test_mutation_failure.<locals>.pop  s    r,BFFHr'   c                  0    dddd} | j                          y rb  )r   rJ  s    r%   r   z:TestLiteralStrKeyDict.test_mutation_failure.<locals>.clear  s    r,BHHJr'   c                  4    dddd} | j                  dd       y )Nr   r  r#   r  r_  )r   rJ  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dmm,&&{3vDJL 4=fc&*:*:&;<	 -, 33 -,s#   B(B"/B(B%!B((B1	c                 X   t         d        }t         d        }||fD ]s  }| j                  |j                        5  | j                  t              5 } |d       d d d        d}| j                  |t        j                               d d d        u y # 1 sw Y   ;xY w# 1 sw Y   xY w)Nc                 .    ddd}|j                  |       S Nr  r#   )r   r   )r8   r   rK  s     r%   r8   z+TestLiteralStrKeyDict.test_get.<locals>.get  s    $B66!9r'   c                     ddd}||    S r  rf  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  s    		 
	 
	 
	 'NDdmm,&&{3vI 4Efc&*:*:&;<	 -, #33 -,s#   B 	B/B BB  B)	c                 N    t         d        }| j                   |       ddg       y )Nc                  R    ddd} | j                         D cg c]  }| c}S c c}w r  )rM   )rK  r   s     r%   r&   z1TestLiteralStrKeyDict.test_dict_keys.<locals>.foo 	  s*    $B!wwy)y!Ay)))s   	$r   r   r+   r-   s     r%   r   z$TestLiteralStrKeyDict.test_dict_keys  s,    		* 
	* 	c
+r'   c                 J    t         d        }| j                   |       d       y )Nc                  ,    ddd} | j                         S r  )r   rJ  s    r%   r&   z3TestLiteralStrKeyDict.test_dict_values.<locals>.foo		  s    $B99;r'   )r  r#   r+   r-   s     r%   r   z&TestLiteralStrKeyDict.test_dict_values	  s(    		 
	 		*r'   c           	      z    t         d        }| j                   |       dddt        j                  d      ff       y )Nc                  T    ddt        j                  d      d} | j                         S )Nr  r#   r<   )r   r   r_  )r  ri  r   rJ  s    r%   r&   z2TestLiteralStrKeyDict.test_dict_items.<locals>.foo	  s"    "((A-8B88:r'   )r   r  )r   r#   r_  r<   )r   r   r  ri  r-   s     r%   r   z%TestLiteralStrKeyDict.test_dict_items	  s@    		 
	 	!*Jbhhm8L M	Or'   c                     t         d        }| j                  t              5 } |        d d d        t        j                        }| j                  d|       y # 1 sw Y   1xY w)Nc                      ddd} | S r  rf  rJ  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	  sZ    		 
	
 y)VE * V%%&;VD	 *)r  c                    t         d        }| j                   |d      d       | j                   |d      d       | j                   |d      |j                  d             | j                   |d      |j                  d             y )Nc                     | dz   dkD  rddt        j                  d      d}|d	   S ddt        j                  d      d}|d	   S )
N   rV   r  r#   r   r   r^                @CATr<   r   rk  )r   r   s     r%   r&   z2TestLiteralStrKeyDict.test_dict_unify.<locals>.foo(	  sK    1uqy3RXXa[9 S6M 5rxx~>S6Mr'   r*   r#   rQ  r  rm  r-   s     r%   test_dict_unifyz%TestLiteralStrKeyDict.test_dict_unify'	  sx    		 
	 	S3'TE*S3;;s#34TCKK$56r'   c                    t         d        }| j                  t              5 } |d       d d d        | j                  dt	        j
                               t         d        }| j                  t              5 } |d       d d d        | j                  dt	        |j
                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)Nc                     | dz   dkD  rddt        j                  d      d}nddt        j                  d      d	}d
}d}d}d}|d   S )Nr  rV   r  r#   )BAD_KEYr   r^  r  r  r  r  r   r)   rF   r   rk  r   r   py310_defeat1py310_defeat2py310_defeat3py310_defeat4s         r%   key_mismatchz?TestLiteralStrKeyDict.test_dict_not_unify.<locals>.key_mismatch8	  sR    1uqy "288A;?5rxx~>MMMMS6Mr'   r*   zCannot unify LiteralStrKeyc                     | dz   dkD  rddt        j                  d      d}nddt        j                  d	      d}d
}d}d}d}|d   S )Nr  rV   r  r#   )rV   rF   r  r  r  r  r   r)   rF   r   rk  r  s         r%   value_type_mismatchzFTestLiteralStrKeyDict.test_dict_not_unify.<locals>.value_type_mismatchJ	  sS    1uqy3RXXf-=>5rxx~>MMMMS6Mr'   r   )r.   r  r   r  s       r%   test_dict_not_unifyz)TestLiteralStrKeyDict.test_dict_not_unify6	  s    	
	 

	 {+v , 	2C8H8H4IJ	
	 

	 {+v$ , 	2C8H8H4IJ+ ,+$ ,+s   	B09	B<0B9<C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 |j                         D ]5  \  }t               fd       }|\  t        fd       } |        7 y )Nc                      y r6   rf  r  s    r%   rg  z;TestLiteralStrKeyDict.test_dict_value_coercion.<locals>.barp	  rU  r'   c                 D    j                  t        |              d }|S )Nc                      y r6   rf  r  s    r%   r9  zLTestLiteralStrKeyDict.test_dict_value_coercion.<locals>.ol_bar.<locals>.implx	  s    r'   )r   r  )r   r9  	containerr.   s     r%   r  z>TestLiteralStrKeyDict.test_dict_value_coercion.<locals>.ol_bart	  s     
1i 89r'   c                  8     d       d      d}  |        y )Nr   r)   r  rf  )r#   rg  ty1ty2s    r%   r&   z;TestLiteralStrKeyDict.test_dict_value_coercion.<locals>.foo~	  s    a&s1v.Ar'   )r  r   r   r   r  r  r$  rs  r   r   r   r   r   )	r.   pdtsr  r&   rg  r  r  r  s	   `    @@@@r%   test_dict_value_coercionz.TestLiteralStrKeyDict.test_dict_value_coercion\	  s    hh!5>>hh %..mmRXX&hh&(?(?hh!5#:#:hh!5#:#:ggrxx %"9"9hh

#U%<%<?"	  ggiNCc]  HC  E! (r'   c                 X    d t              d        }t        fd       } |        y )Nc                      y r6   rf  r  s    r%   rg  z9TestLiteralStrKeyDict.test_build_map_op_code.<locals>.bar	  rU  r'   c                     d }|S )Nc                      y r6   rf  r  s    r%   r9  zJTestLiteralStrKeyDict.test_build_map_op_code.<locals>.ol_bar.<locals>.impl	  r5  r'   rf  )r   r9  s     r%   r  z<TestLiteralStrKeyDict.test_build_map_op_code.<locals>.ol_bar	  s    Kr'   c                  $    ddddi}  |        y )Nr   r>   string)b1b2rf  )r   rg  s    r%   r&   z9TestLiteralStrKeyDict.test_build_map_op_code.<locals>.foo	  s    Rx01AFr'   r  r  s      @r%   test_build_map_op_codez,TestLiteralStrKeyDict.test_build_map_op_code	  s;    
	 
#	 
	
 
	 
	 	r'   c                     t         dd       t         fd       }t        j                  j                   |       t        j                  d      dz         y )Nc                 ,    | | d   d d xxx dz  ccc y y )Nr#   r>   rf  fake_kwargss    r%   rg  z3TestLiteralStrKeyDict.test_dict_as_arg.<locals>.bar	  s"    &C #r)# 'r'   c                  d    d} d}d}t        j                  d      }| |||d} |       |d   S )Nr   r  r  rF   r[  r  r#   rk  )r   r   r   r#   r^  rg  s        r%   r&   z3TestLiteralStrKeyDict.test_dict_as_arg.<locals>.foo	  s>    AAAAaaa0AAS6Mr'   rF   r>   r6   )r   r  testingassert_allcloseonesr.   r&   rg  s     @r%   test_dict_as_argz&TestLiteralStrKeyDict.test_dict_as_arg	  sM    		* 
	*
 
	 
	 	

""35"''!*r/:r'   c                 f    t         d        }| j                   |       |j                                y )Nc                  ,    dd dgi}  | d   d   d      S )Nr  c                     d| z  S )Nr)   rf  r  s    r%   rh  z\TestLiteralStrKeyDict.test_dict_with_single_literallist_value.<locals>.foo.<locals>.<lambda>	  s    Qr'   r  r   r<   rf  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	  s.    		  
	  	s{{}5r'   c                 ^     d t               fd       }t        fd       } |        y )Nc                      y r6   rf  r  s    r%   rg  z8TestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.bar	  rU  r'   c                     j                  t        | t        j                               j	                  t        | t        j
                               d S )Nc                      y)N.rf  r  s    r%   rh  zMTestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.ol_bar.<locals>.<lambda>	  s    Sr'   )r   r  r   	BaseTupler   r$  )r   r.   s    r%   r  z;TestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.ol_bar	  s;    Z5??;<OOJq%*A*ABC  r'   c                       ddd}  |        y )Nr   r   r  rf  )r#   rg  s    r%   r&   z8TestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.foo	  s    c"AFr'   r  r  s   `  @r%   test_tuple_not_in_mroz+TestLiteralStrKeyDict.test_tuple_not_in_mro	  s;    	 
#	! 
	!
 
	 
	 	r'   c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  >    ddt        j                  d      d} | d   S )Nr  r#   rV   )not_ar   r^  r   rk  r  s    r%   r&   z=TestLiteralStrKeyDict.test_const_key_not_in_dict.<locals>.foo	  s    3RXXa[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	  sU    		 
	 {+vE , 	/V5E5E1FG ,+r  c                     t         d        }| j                   |       |j                                t         d        }| j                   |       |j                                y )Nc                  H    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    ggajq)Aq6Mr'   c                  H    t        j                  d      dd} t        |       S )Nr<   rV   )+zx--r  rz   s    r%   rg  z<TestLiteralStrKeyDict.test_uncommon_identifiers.<locals>.bar	  s    ggaj+Aq6Mr'   r  r  s      r%   test_uncommon_identifiersz/TestLiteralStrKeyDict.test_uncommon_identifiers	  s^    
 
	 
	 	s{{}5 
	 
	 	s{{}5r'   c                     t         d        }| j                  t              5 } |        d d d        | j                  dt	        j
                               y # 1 sw Y   /xY w)Nc                  8    dddd} | j                  ddi       | S )Nr)   rV   r   r  r   rF   )r|  )r}  s    r%   r&   z4TestLiteralStrKeyDict.test_update_error.<locals>.foo	  s+     B
 IIsAhIr'   r  r   r   s      r%   test_update_errorz'TestLiteralStrKeyDict.test_update_error	  sZ     
	 
	 {+vE , 	0  !	
 ,+r  N)r  r  r  r  rL  rR  r\  rd  rl  rs  r  r  r  r   r   r   r  r  r  r  r  r  r  r  r  r  r  rf  r'   r%   rG  rG  5  s    L.$2.20>2!=F=&,+OE7$KL'R*;&6&
H6(
r'   rG  __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  r  r`  rw  r  r8  objectr  r  r  r  r  rG  r  mainrf  r'   r%   <module>r     sd      ! 0 0  . . : ) B B ' $~_h ~B 9( 9>g"OX g"TF3 F3Rh(8 B**: *4X(( X(v:X :DlHx lH^7"8 7"t 
ejj!"#&  $&8 &0 0,.x .<X)( X)vH
OX H
V zHMMO r'   