
    sh                       S r SSKrSSKrSSKrSSKJrJr  SSKJrJ	r	J
r
Jr  SSKJr  SSKJrJrJr  SSKJr  SSKJr  SS	KJr  SS
KJrJrJrJrJr  SSKJr  SSKJ r    " S S\\5      r! " S S\5      r" " S S\\5      r# " S S5      r$ " S S\\$5      r% " S S\\$5      r& " S S\\5      r' " S S\5      r( " S S\5      r) " S S \5      r*\" S!\RV                  4/S"9 " S# S$\,5      5       r- " S% S&\5      r. " S' S(\5      r/ " S) S*\5      r0 " S+ S,\\5      r1 " S- S.\\5      r2\3S/:X  a  \Rh                  " 5         gg)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                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"\#RH                  " \%RL                  S!:  S"5      S# 5       r'S$ r(S% r)S& r*S' r+S( r,S) r-S* r.S+ r/S, r0S- r1\#Rd                  S. 5       r3S/ r4S0 r5S1 r6S2 r7S3 r8S4 r9S5 r:S6r;g7)8TestDictObject   c                     [         S 5       nU R                  U" SS9S5        U R                  U" SS9S5        U R                  U" SS9S5        U R                  U" SS9S5        g	)
z
Exercise bool(dict)
c                     [         R                  " [        [        5      n[	        U 5       H
  nUS-   X'   M     [        U5      $ N   )r   new_dictr   r   rangeboolndis      o/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_dictobject.pyfoo*TestDictObject.test_dict_bool.<locals>.foo    s6    ##E73A1X1u 7N    r   r#   Fr   T   d   Nr   assertEqualselfr'   s     r&   test_dict_boolTestDictObject.test_dict_bool   sh     
	 
	 	q5)q4(q4(sT*r)   c                     [         S 5       nU R                  U" SS9S5        U R                  U" SS9S5        U R                  U" SS9S5        U R                  U" SS9S5        g)z1
Exercise dictionary creation, insertion and len
c                     [         R                  " [        [        5      n[	        U 5       H
  nUS-   X'   M     [        U5      $ r   )r   r   r   r   r    lenr"   s      r&   r'   ,TestDictObject.test_dict_create.<locals>.foo4   s6    ##E73A1X1u q6Mr)   r   r*   r   r+   r,   Nr-   r/   s     r&   test_dict_createTestDictObject.test_dict_create0   sh     
	 
	 	q1%q1%q1%sS)r)   c                     [         S 5       nU R                  U" S/ SQ5      / SQ5        U R                  U" S/ SQ5      / SQ5        U R                  U" S/ SQ5      / SQ5        g)	z1
Exercise dictionary creation, insertion and get
c                     [         R                  " [        [        5      n[	        U 5       H  nX2U'   M	     / nU H#  nUR                  UR                  U5      5        M%     U$ N)r   r   r   r   r    appendget)r#   targetsr$   r%   outputts         r&   r'   )TestDictObject.test_dict_get.<locals>.fooH   sS    ##E73A1X!  FaeeAh' Mr)      )r   r   	   )r   r   N
   )rC   r   )NrC   r   Nr-   r/   s     r&   test_dict_getTestDictObject.test_dict_getD   s]     
		 
		 	Q	*L9R+Y7R,l;r)   c                     [         S 5       nU R                  U" SSS5      S5        U R                  U" SSS5      S5        g)z(
Exercise dict.get(k, d) where d is set
c                     [         R                  " [        [        5      n[	        U 5       H  nXCU'   M	     UR                  X5      $ r;   r   r   r   r   r    r=   )r#   targetdefaultr$   r%   s        r&   r'   6TestDictObject.test_dict_get_with_default.<locals>.foo\   s:    ##E73A1X!  55))r)   rB      rE   Nr-   r/   s     r&   test_dict_get_with_default)TestDictObject.test_dict_get_with_defaultX   sH     
	* 
	* 	Q2*Q2+r)   c                    [         S 5       n/ SQn/ SQnU R                  U" X#S5      S5        U R                  U" X#S5      S5        U R                  U" X#S5      S	5        U R                  5         U R                  5         U R	                  [
        5         U" X#S
5        SSS5        U R	                  [
        5         U" X#S5        SSS5        g! , (       d  f       N6= f! , (       d  f       g= f)z!
Exercise dictionary __getitem__
c                 x    [         R                  " [        [        5      n[	        X5       H	  u  pEXSU'   M     X2   $ r;   r   r   r   r   zipkeysvalsrK   r$   kvs         r&   r'   -TestDictObject.test_dict_getitem.<locals>.fool   s5    ##E73AD! ( 9r)   r   r+   rN   皙?皙?333333?r   r]   r+   r^   rN   r_   r   N   r   r.   assert_no_memory_leakdisable_leak_checkassertRaisesKeyErrorr0   r'   rV   rW   s       r&   test_dict_getitem TestDictObject.test_dict_getitemh   s     
	 
	 T+S1T+S1T+S1""$!x(A )x(A )( )(((s   
C<
C 
C 
C.c           	          [         S 5       n/ SQn/ SQn[        S[        U5      5       H.  nU R                  U" USU USU 5      X$S-
     X4S-
     45        M0     g)
Exercise dictionary .popitem
c                     [         R                  " [        [        5      n[	        X5       H	  u  p4XBU'   M     UR                  5       $ r;   )r   r   r   r   rT   popitemrV   rW   r$   rX   rY   s        r&   r'   -TestDictObject.test_dict_popitem.<locals>.foo   s9    ##E73AD! ( 99;r)   r[   r\   r   N)r   r    r5   r.   )r0   r'   rV   rW   r%   s        r&   test_dict_popitem TestDictObject.test_dict_popitem   so     
	 
	 q#d)$AD!Hd2Ah'!edq5k* %r)   c                   ^ [         S 5       m[         U4S j5       n/ SQn/ SQn[        [        U5      5       H:  nU R                  U" X#SS9TR	                  [        [        X#5      5      SS95        M<     U R                  5         U R                  5         U R                  [        5         U" X#SS9  SSS5        g! , (       d  f       g= f)	rj   c                 h    Su  p#[        U5       H  nU R                  5       u  pVX%-  nX6-  nM     X#4$ )Nr   r   )r    rl   )r$   npopkeysumvalsum_rX   rY   s          r&   core3TestDictObject.test_dict_popitem_many.<locals>.core   s>     "NF4[yy{ ! >!r)   c                    > [         R                  " [        [        5      n[        X5       H	  u  pEXSU'   M     T" X25      $ r;   )r   r   r   rT   )rV   rW   rt   r$   rX   rY   rx   s         r&   r'   2TestDictObject.test_dict_popitem_many.<locals>.foo   s8    ##E51AD! ( = r)   r[   rD         rN   )rt   r`   N)r   r    r5   r.   py_funcdictrT   rb   rc   rd   re   )r0   r'   rV   rW   r%   rx   s        @r&   test_dict_popitem_many%TestDictObject.test_dict_popitem_many   s    
 
	" 
	" 
	! 
	! s4y!ADQ'T#d/2; " 	""$!x(# )((s   ,B==
Cc                    [         S 5       n/ SQn/ SQnU R                  U" X#S5      S5        U R                  U" X#S5      S5        U R                  U" X#S5      S	5        U R                  U" X#S
5      S5        U R                  5         U R                  5         [         S 5       nU R	                  [
        5         U" 5         SSS5        g! , (       d  f       g= f)
Exercise dictionary .pop
c                     [         R                  " [        [        5      n[	        X5       H	  u  pEXSU'   M     UR                  US 5      [        U5      4$ r;   )r   r   r   r   rT   popr5   rU   s         r&   r'   )TestDictObject.test_dict_pop.<locals>.foo   sG    ##E73AD! ( 55&A..r)   r[   r\   r   )r]   r+   r+   )r^   r+   rN   )r_   r+   r   NrN   c                  b    [         R                  " [        [        5      n U R	                  S5      $ )Nr   r   r   r   r   r   r$   s    r&   r'   r      s!    ##E73A558Or)   Nra   rf   s       r&   test_dict_popTestDictObject.test_dict_pop   s     
	/ 
	/ T+X6T+X6T+X6T+Y7 	""$!		 
	
 x(E )((s   :C
Cc                    ^ [         S 5       m[         U4S j5       n/ SQn/ SQn/ SQnU R                  U" X#U5      TR                  [        [	        X#5      5      U5      5        g)r   c                 l    SnU H+  nX#U R                  US5      -   [        U 5      -   -  nUS-  nM-     U$ )Nr   grh|?r+   )r   r5   )r$   popstotalrX   s       r&   rx   /TestDictObject.test_dict_pop_many.<locals>.core   sA    EQUU1e_,s1v55
  Lr)   c                    > [         R                  " [        [        5      n[	        X5       H	  u  pEXSU'   M     T" X25      $ r;   rS   )rV   rW   r   r$   rX   rY   rx   s         r&   r'   .TestDictObject.test_dict_pop_many.<locals>.foo   s8    ##E73AD! ( = r)   r[   r\   )	r+   rN   rN   r   r   r+   r   r   rE   N)r   r.   r   r   rT   )r0   r'   rV   rW   r   rx   s        @r&   test_dict_pop_many!TestDictObject.test_dict_pop_many   sk    
 
	 
	 
	! 
	! +D!LLc$o.5	
r)   c                 r   [         S 5       n/ SQn/ SQnU R                  U" X#S5      S5        U R                  U" X#S5      S5        U R                  U" X#S5      S5        U R                  5         U R                  5         U R	                  [
        5         U" X#S5        S S S 5        g ! , (       d  f       g = f)	Nc                     [         R                  " [        [        5      n[	        X5       H	  u  pEXSU'   M     X2	 [        U5      UR                  U5      4$ r;   )r   r   r   r   rT   r5   r=   rU   s         r&   r'   -TestDictObject.test_dict_delitem.<locals>.foo  sG    ##E73AD! (	q6155=((r)   r[   r\   r   )r+   Nr+   rN   r   ra   rf   s       r&   test_dict_delitem TestDictObject.test_dict_delitem  s    		) 
	) T+Y7T+Y7T+Y7""$!x(A )((s   
B((
B6c                 \    [         S 5       n/ SQn/ SQnU R                  U" X#5      S5        g)z
Exercise dict.clear
c                     [         R                  " [        [        5      n[	        X5       H	  u  p4XBU'   M     [        U5      nUR                  5         U[        U5      4$ r;   )r   r   r   r   rT   r5   clear)rV   rW   r$   rX   rY   b4s         r&   r'   +TestDictObject.test_dict_clear.<locals>.foo   sK    ##E73AD! (QBGGIs1v:r)   r[   r\   )rN   r   Nr-   rf   s       r&   test_dict_clearTestDictObject.test_dict_clear  s6     
	 
	 T&1r)   c           	          [         S 5       n/ SQn/ SQnU R                  U" X#5      [        [        X#5      5      5        [         S 5       nU R                  U" 5       / 5        g)z
Exercise dict.items
c                     [         R                  " [        [        5      n[	        X5       H	  u  p4XBU'   M     / nUR                  5        H  nUR                  U5        M     U$ r;   )r   r   r   r   rT   itemsr<   )rV   rW   r$   rX   rY   outkvs          r&   r'   +TestDictObject.test_dict_items.<locals>.foo3  sP    ##E73AD! (Cggi

2  Jr)   r[   r\   c                      [         R                  " [        [        5      n / nU R	                  5        H  nUR                  U5        M     U$ r;   )r   r   r   r   r   r<   )r$   r   r   s      r&   r'   r   G  s9    ##E73ACggi

2  Jr)   N)r   r.   listrT   rf   s       r&   test_dict_itemsTestDictObject.test_dict_items/  sk     
	 
	 OT!	
 
	 
	 	#r)   c                 \    [         S 5       n/ SQn/ SQnU R                  U" X#5      U5        g)z
Exercise dict.keys
c                     [         R                  " [        [        5      n[	        X5       H	  u  p4XBU'   M     / nUR                  5        H  nUR                  U5        M     U$ r;   )r   r   r   r   rT   rV   r<   rV   rW   r$   rX   rY   r   s         r&   r'   *TestDictObject.test_dict_keys.<locals>.fooU  sP    ##E73AD! (CVVX

1 Jr)   r[   r\   Nr-   rf   s       r&   test_dict_keysTestDictObject.test_dict_keysQ  :     
	 
	 O	
r)   c                 n    [         S 5       n/ SQn/ SQnU R                  U" X#5      [        U5      5        g)z
Exercise len(dict.keys())
c                     [         R                  " [        [        5      n[	        X5       H	  u  p4XBU'   M     [        UR                  5       5      $ r;   )r   r   r   r   rT   r5   rV   rm   s        r&   r'   .TestDictObject.test_dict_keys_len.<locals>.fool  s;    ##E73AD! (qvvx= r)   r[   r\   Nr   r.   r5   rf   s       r&   test_dict_keys_len!TestDictObject.test_dict_keys_lenh  s>     
	! 
	! OI	
r)   c                 \    [         S 5       n/ SQn/ SQnU R                  U" X#5      U5        g)z
Exercise dict.values
c                     [         R                  " [        [        5      n[	        X5       H	  u  p4XBU'   M     / nUR                  5        H  nUR                  U5        M     U$ r;   )r   r   r   r   rT   valuesr<   r   s         r&   r'   ,TestDictObject.test_dict_values.<locals>.foo  sP    ##E73AD! (CXXZ

1  Jr)   r[   r\   Nr-   rf   s       r&   test_dict_valuesTestDictObject.test_dict_values|  r   r)   c                 n    [         S 5       n/ SQn/ SQnU R                  U" X#5      [        U5      5        g)z
Exercise len(dict.values())
c                     [         R                  " [        [        5      n[	        X5       H	  u  p4XBU'   M     [        UR                  5       5      $ r;   )r   r   r   r   rT   r5   r   rm   s        r&   r'   0TestDictObject.test_dict_values_len.<locals>.foo  s;    ##E73AD! (qxxz?"r)   r[   r\   Nr   rf   s       r&   test_dict_values_len#TestDictObject.test_dict_values_len  s>     
	# 
	# OI	
r)   c                 n    [         S 5       n/ SQn/ SQnU R                  U" X#5      [        U5      5        g)z
Exercise len(dict.items())
c                     [         R                  " [        [        5      n[	        X5       H	  u  p4XBU'   M     [        UR                  5       5      $ r;   )r   r   r   r   rT   r5   r   rm   s        r&   r'   /TestDictObject.test_dict_items_len.<locals>.foo  s;    ##E73AD! (qwwy>!r)   r[   r\   N)r   assertPreciseEqualr5   rf   s       r&   test_dict_items_len"TestDictObject.test_dict_items_len  s>     
	" 
	" OI	
r)   c                 `    [         S 5       n/ SQn/ SQnU R                  U" X#5      / SQ5        g)z
Exercise iter(dict)
c                     [         R                  " [        [        5      n[	        X5       H	  u  p4XBU'   M     / nU H  nUR                  U5        M     U$ r;   r   r   r   r   rT   r<   r   s         r&   r'   *TestDictObject.test_dict_iter.<locals>.foo  sJ    ##E73AD! (C

1 Jr)   r[   r\   Nr-   rf   s       r&   test_dict_iterTestDictObject.test_dict_iter  s:     
	 
	 O	
r)   c                 f    [         S 5       n/ SQn/ SQnU R                  U" X#/ SQ5      / SQ5        g)z
Exercise operator.contains
c                     [         R                  " [        [        5      n[	        X5       H	  u  pEXSU'   M     / nU H  nUR                  XC;   5        M     U$ r;   r   )rV   rW   	checklistr$   rX   rY   r   s          r&   r'   .TestDictObject.test_dict_contains.<locals>.foo  sM    ##E73AD! (C

16" Jr)   r[   r\   )r+   rN   r`   r   r   )TTFTFNr-   rf   s       r&   test_dict_contains!TestDictObject.test_dict_contains  s=     
	 
	 O,,	
r)   c           	          [         S 5       n[        [        S5      5      n[        U5       VVs/ s H  u  p4XCS-  -   PM     nnnU" X%5      nU R	                  U[        [        X%5      5      5        gs  snnf )z
Exercise dict.copy
c                     [         R                  " [        [        5      n[	        X5       H	  u  p4XBU'   M     [        UR                  5       R                  5       5      $ r;   )r   r   r   r   rT   r   copyr   rm   s        r&   r'   *TestDictObject.test_dict_copy.<locals>.foo  sC    ##E73AD! (())r)   r}   r,   N)r   r   r    	enumerater.   rT   )r0   r'   rV   r%   xrW   r   s          r&   test_dict_copyTestDictObject.test_dict_copy  sl     
	* 
	* E"I(1$8G8$od3t?34 9s   A2c                 J    [         S 5       nU R                  U" 5       S5        g)z
Exercise dict.setdefault
c                  
   [         R                  " [        [        5      n U R	                  SS5        U R                  S5      nSU S'   U R                  S5      nSU S'   U R	                  SS5        U R                  S5      nXU4$ )Nr   333333?ffffff@333333@r+   g      @)r   r   r   r   
setdefaultr=   )r$   abcs       r&   r'   0TestDictObject.test_dict_setdefault.<locals>.foo  sr    ##E73ALLC aAAaDaAAaDLLC aA7Nr)   )r   r   r   Nr-   r/   s     r&   test_dict_setdefault#TestDictObject.test_dict_setdefault  s*     
		 
		 	0r)   c                     [         S 5       nU R                  U" SSSS5      S5        U R                  U" SSSS5      S5        U R                  U" SSSS5      S5        U R                  U" SSSS5      S5        g)	z"
Exercise dict.__eq__ and .__ne__
c                     [         R                  " [        [        5      n[         R                  " [        [        5      n[	        U 5       H	  nXb-  XF'   M     [	        U5       H	  nXc-  XV'   M     XE:H  XE:g  4$ r;   r   r   r   r   r    )nanbfafbdadbr%   s          r&   r'   .TestDictObject.test_dict_equality.<locals>.foo  sc    $$UG4B$$UG4B2Y 2Y 8RX%%r)   rD   rN   )TFg@)FT   Nr-   r/   s     r&   test_dict_equality!TestDictObject.test_dict_equality  s     
	& 
	& 	RQ*M:RQ,m<RQ*M:RQ*M:r)   c                 \   [         S 5       n/ SQn/ SQn/ SQn/ SQnU R                  U" X#XE5      5        / SQn/ SQn/ SQn/ SQnU R                  U" X#XE5      5        / SQn/ SQn/ SQn/ SQnU R                  U" X#XE5      5        / SQn/ SQn/ SQn/ SQnU R                  U" X#XE5      5        g)	
Exercise dict.__eq__
c                    [         R                  " [        [        5      n[         R                  " [        [
        5      n[        [        U 5      5       H  nX   X@U   '   M     [        [        U5      5       H  nX6   XRU   '   M     XE:H  $ r;   )r   r   r   r   r   r   r    r5   )akavbkbvr   r   r%   s          r&   r'   3TestDictObject.test_dict_equality_more.<locals>.foo&  sm     $$UG4B$$UG4B3r7^Ea5	 $3r7^Ea5	 $8Or)   r[   )r+   rN   r`   )r   r+   r+   rN   )r+   r   rN   r`   )r+   r   r`   )r   r+   rN   Nr   
assertTrueassertFalse)r0   r'   r   r   r   r   s         r&   test_dict_equality_more&TestDictObject.test_dict_equality_more"  s     
	 
	 BB+, BB+, RR,- RR,-r)   c                 |    [         S 5       nU R                  U" SS5      5        U R                  U" SS5      5        g)r   c                 t    [         R                  " [        [        5      n[	        U 5       H  nX2U'   M	     X!:H  $ r;   r   )r   r   r   r%   s       r&   r'   8TestDictObject.test_dict_equality_diff_type.<locals>.fooQ  s0    $$UG4B2Y1 7Nr)   rD   r   )r   Nr   r  r/   s     r&   test_dict_equality_diff_type+TestDictObject.test_dict_equality_diff_typeM  s@     
	 
	 	R$R'r)   c                 H  ^^ [         S 5       m[         U4S j5       n[        R                  " [        [        5      m[         U4S j5       nU" S5      nU R                  UR                  S5        U" U5      n[        TR                  S5      5      nU R                  XE5        g)z2
Exercise dictobject.{_as_meminfo, _from_meminfo}
c              3   L   #    [        U 5       H  nXUS-   S-  -   4v   M     g 7fNr   r,   r    )nelemr%   s     r&   make_content>TestDictObject.test_dict_to_from_meminfo.<locals>.make_contenta  s)     5\a!es]*** "s   "$c                    > [         R                  " [        [        5      nT" U 5       H	  u  p#X1U'   M     [         R                  " U5      $ r;   )r   r   r   r   _as_meminfo)r  r$   rX   rY   r  s       r&   boxer7TestDictObject.test_dict_to_from_meminfo.<locals>.boxerf  s>    ##E73A$U+! ,))!,,r)   c                 d   > [         R                  " U T5      n[        UR                  5       5      $ r;   )r   _from_meminfor   r   )mir$   dcttypes     r&   unboxer9TestDictObject.test_dict_to_from_meminfo.<locals>.unboxero  s%    ((W5A	?"r)   rD   r   N)	r   r   DictTyper   r   r.   refcountr   r   )r0   r  r  r  gotexpectedr  r  s         @@r&   test_dict_to_from_meminfo(TestDictObject.test_dict_to_from_meminfo]  s     
	+ 
	+ 
	- 
	- ..0		# 
	# 2Ya(bk,,R01'r)   c                     [         S 5       nU R                  [        5       nU" S5        S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                     [         R                  " [        [        5      n[	        U 5       H
  nUS-   X'   M     UR                  S5      nU$ )Nr                 ?rJ   r#   r$   r%   zs       r&   r'   8TestDictObject.test_001_cannot_downcast_key.<locals>.foo|  sA    ##E73A1X1u  b	AHr)   rD   &cannot safely cast complex128 to int32r   rd   r   assertInstr	exceptionr0   r'   raisess      r&   test_001_cannot_downcast_key+TestDictObject.test_001_cannot_downcast_key{  sX    		 
	 {+vG ,4  !	
 ,+   	A
A'c                     [         S 5       nU R                  [        5       nU" S5        S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                     [         R                  " [        [        5      n[	        U 5       H
  nUS-   X'   M     UR                  SU -  S5      nU$ )Nr   r+   r$  rJ   r%  s       r&   r'   <TestDictObject.test_002_cannot_downcast_default.<locals>.foo  sH    ##E73A1X1u  a!eR AHr)   rD   (cannot safely cast complex128 to float64r)  r-  s      r&    test_002_cannot_downcast_default/TestDictObject.test_002_cannot_downcast_default  sX    		 
	 {+vG ,6  !	
 ,+r1  c                     [         S 5       nU R                  [        5       nU" S5        S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                     [         R                  " [        [        5      n[	        U 5       H
  nUS-   X'   M     UR                  S5      nU$ )Nr   g333333@rJ   r%  s       r&   r'   8TestDictObject.test_003_cannot_downcast_key.<locals>.foo  sA    ##E73A1X1u  c
AHr)   rD   #cannot safely cast float64 to int32r)  r-  s      r&   test_003_cannot_downcast_key+TestDictObject.test_003_cannot_downcast_key  sX    		 
	 {+vG ,1  !	
 ,+r1  c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  L    [         R                  " [        [        5      n SU S'   g )N      @r$  r   r   r   r   r   s    r&   r'   8TestDictObject.test_004_cannot_downcast_key.<locals>.foo  s    ##E73AAbEr)   r(  r)  r-  s      r&   test_004_cannot_downcast_key+TestDictObject.test_004_cannot_downcast_key  sV    		 
	
 {+vE ,4  !	
 ,+   A
A&c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  L    [         R                  " [        [        5      n SU S'   g )Nr$  r   rA  r   s    r&   r'   :TestDictObject.test_005_cannot_downcast_value.<locals>.foo  s    ##E73AAaDr)   r5  r)  r-  s      r&   test_005_cannot_downcast_value-TestDictObject.test_005_cannot_downcast_value  sV    		 
	
 {+vE ,6  !	
 ,+rE  c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  L    [         R                  " [        [        5      n U S     g )Ng      '@rA  r   s    r&   r'   8TestDictObject.test_006_cannot_downcast_key.<locals>.foo  s    ##E73AdGr)   r;  r)  r-  s      r&   test_006_cannot_downcast_key+TestDictObject.test_006_cannot_downcast_key  sV    		 
	
 {+vE ,1  !	
 ,+rE  l        z64 bit test onlyc                 |    [         S 5       nSu  p#U" X#5      u  pEU R                  XB5        U R                  XS5        g )Nc                     [         R                  " [        [        5      n[        R
                  " S5      n[        R
                  " S5      n[        U5      [        U5      :X  d   eXU'   XU'   X#   X$   4$ )Nl    r   )r   r   r   r   npuint64hash)v1v2r$   c1c2s        r&   r'   5TestDictObject.test_007_collision_checks.<locals>.foo  sa    ##E73A;'B1B8tBx'''bEbEE15>!r)   )g      $@g      4@r-   )r0   r'   r   r   r   ys         r&   test_007_collision_checks(TestDictObject.test_007_collision_checks  sF     
	" 
	" 1yr)   c                    [         S 5       nSnU" U5      u  p4U R                  U[        [        U5      5       Vs/ s H  oUPM     sn5        U R                  U[        [        U5      5       Vs/ s H  oUS-   PM	     sn5        g s  snf s  snf )Nc                    [         R                  " [        [        5      n[	        U 5       H
  nUS-   X'   M     / n/ n[	        U 5       H;  nUR                  5       nUR                  US   5        UR                  US   5        M=     X44$ )Nr   r   )r   r   r   r   r    rl   r<   )r#   r$   r%   rV   rW   tmps         r&   r'   1TestDictObject.test_008_lifo_popitem.<locals>.foo  sz    ##E73A1X1u DD1XiikCF#CF#  :r)   rD   r   )r   r.   reversedr    )r0   r'   r&  gkgvr   s         r&   test_008_lifo_popitem$TestDictObject.test_008_lifo_popitem  s    	
	 

	 Q%();<);Aa);<=XeAh-?@-?!e-?@A =@s   B
/B

c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  z    [         R                  " [        [        5      n SU S'   SU S'   U R	                  SS5        g )N      @r   r@  r   r                 (@r   r   s    r&   r'   <TestDictObject.test_010_cannot_downcast_default.<locals>.foo  s3    ##E73AAaDAaDEE"cNr)   r5  r)  r-  s      r&    test_010_cannot_downcast_default/TestDictObject.test_010_cannot_downcast_default   sV    		 
	 {+vE ,6  !	
 ,+rE  c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  x    [         R                  " [        [        5      n SU S'   SU S'   U R	                  S5        g )Nrh  r   r@  r   y              &@r   r   s    r&   r'   8TestDictObject.test_011_cannot_downcast_key.<locals>.foo  s1    ##E73AAaDAaDEE#Jr)   r(  r)  r-  s      r&   test_011_cannot_downcast_key+TestDictObject.test_011_cannot_downcast_key  sV    		 
	 {+vE ,4  !	
 ,+rE  c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  T    [         R                  " [        [        5      n SU S'   SU ;   $ )Nrh  r   r$  rA  r   s    r&   r'   8TestDictObject.test_012_cannot_downcast_key.<locals>.foo!  s&    ##E73AAaD7Nr)   r(  r)  r-  s      r&   test_012_cannot_downcast_key+TestDictObject.test_012_cannot_downcast_key   sV    		 
	 {+vE ,4  !	
 ,+rE  c                 H    [         S 5       nU R                  U" 5       5        g )Nc                  J    [         R                  " [        [        5      n SU ;   $ r   rA  r   s    r&   r'   8TestDictObject.test_013_contains_empty_dict.<locals>.foo0  s    ##E73A6Mr)   r  r/   s     r&   test_013_contains_empty_dict+TestDictObject.test_013_contains_empty_dict/  s&    		 
	
 	r)   c                 H    [         S 5       nU R                  U" 5       5        g )Nc                  J    [         R                  " [        [        5      n SU ;  $ r   rA  r   s    r&   r'   <TestDictObject.test_014_not_contains_empty_dict.<locals>.foo9  s    ##E73AA:r)   )r   r  r/   s     r&    test_014_not_contains_empty_dict/TestDictObject.test_014_not_contains_empty_dict8  s$    		 
	
 	r)   c                 T    [         S 5       nSnU R                  U" U5      US45        g )Nc                     [         R                  " [        [        5      n[	        U 5       H
  nUS-   X'   M     [        U5      nUR                  5         [        U5      nX44$ r   )r   r   r   r   r    r5   r   )r#   r$   r%   r   rZ  s        r&   r'   /TestDictObject.test_015_dict_clear.<locals>.fooB  sO    ##E73A1X1u AAGGIAA4Kr)   rD   r   r-   )r0   r'   ms      r&   test_015_dict_clear"TestDictObject.test_015_dict_clearA  s3    		 
	 Q!Q(r)   c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  f    [         R                  " [        [        5      n U R	                  SS5        g )Nr$        (@r   r   r   r   r   r   s    r&   r'   8TestDictObject.test_016_cannot_downcast_key.<locals>.fooP  s"    ##E73ALLS!r)   r(  r)  r-  s      r&   test_016_cannot_downcast_key+TestDictObject.test_016_cannot_downcast_keyO  sV    		" 
	"
 {+vE ,4  !	
 ,+rE  c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  f    [         R                  " [        [        5      n U R	                  SS5        g )Nr   ri  r  r   s    r&   r'   <TestDictObject.test_017_cannot_downcast_default.<locals>.foo^  s"    ##E73ALLD!r)   r5  r)  r-  s      r&    test_017_cannot_downcast_default/TestDictObject.test_017_cannot_downcast_default]  sV    		" 
	"
 {+vE ,6  !	
 ,+rE  c                 x    [         S 5       nU" 5       u  p#U R                  X#5        U R                  USS/5        g )Nc                      [         R                  " [        [        5      n SU S'   U R	                  5       nSU S'   U R	                  5       nU Vs/ s H  o3PM     nnU Vs/ s H  o3PM     nnXE4$ s  snf s  snf )Nr  r         "@   r   r   r   r   rV   )r$   k1k2r   rk1rk2s         r&   r'   8TestDictObject.test_018_keys_iter_are_views.<locals>.foon  so    ##E73AAbEBAbEB /b1bC/ /b1bC/8O "!s   A/A4r   r  r-   )r0   r'   r   r   s       r&   test_018_keys_iter_are_views+TestDictObject.test_018_keys_iter_are_viewsk  sC     
	 
	 uRH%r)   c                 <    [         S 5       n[        U" 5       5        g )Nc                      [         R                  " [        [        5      n SU S'   SU S'   U R	                  5       S1-  nU$ )Nr  r   r  r     r  )r$   r  s     r&   r'   $TestDictObject.test_019.<locals>.foo  s=    ##E73AAbEAbERF"BIr)   )r   printr/   s     r&   test_019TestDictObject.test_019~  s!     
	 
	 	cer)   c                 z    [         S 5       nU" 5       u  p#U R                  U/ SQ5        U R                  US5        g )Nc                      [         R                  " [        R                  [        5      n SU S'   SU S'   SU S'   SU S'   / nU R                  5        H  nUR                  U5        M     XS   4$ )	N      ?r          @r         @r   g      @r$   )r   r   r   unicode_typer   r   r<   )r$   r   r   s      r&   r'   /TestDictObject.test_020_string_key.<locals>.foo  sj    ##E$6$6@AAcFAcFAcFAcFCWWY

1 #;r)   ))r   r  )r   r  )r   r  )r$   r`   r  r-   )r0   r'   r   r   s       r&   test_020_string_key"TestDictObject.test_020_string_key  s@    			 
		 E	 KLR r)   c                 V    [         S 5       nU R                  U" 5       SS-  S4/5        g )Nc                      [         R                  " [        R                  [        5      n / n[        S5       H  nUR                  S5        M     SR                  U5      nSX'   [        U R                  5       5      nU$ )N'  r    r  )
r   r   r   r  r   r    r<   joinr   r   )r$   r_  r%   sr   s        r&   r'   1TestDictObject.test_021_long_str_key.<locals>.foo  s`    ##E$6$6@AC5\

3 "AADqwwy/CJr)   r   r  r   r-   r/   s     r&   test_021_long_str_key$TestDictObject.test_021_long_str_key  s4    		 
	 	#+q!1 23r)   c                     [         S 5       nU" 5       u  p#nU R                  USS/5        U R                  USS/5        U R                  USS/5        g )Nc                     [         R                  " [        [        5      n U nSU S'   SUS'   [         R                  " [        [        5      nSUS'   SUS'   U nUn U R	                  5        Vs/ s H  o3PM     nnUR	                  5        Vs/ s H  o3PM     nnUR	                  5        Vs/ s H  o3PM     nnXEU4$ s  snf s  snf s  snf )Nr  r         ,@r+         Y@     @@)r   r   r   r   r   )r$   efr   r  r  k3s          r&   r'   6TestDictObject.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'2:	 (''s   +B:
B?)C)r   r  )r+   r  )r   r  )r+      r-   )r0   r'   r  r  r  s        r&   test_022_references_juggle)TestDictObject.test_022_references_juggle  s`    		 
	" U
j+67j+67gw/0r)   c                 N    [         S 5       nU R                  U" 5       SS/5        g )Nc                     ^ [         R                  " [        [        5      mU4S jn U " 5         TR	                  5        Vs/ s H  oPM     sn$ s  snf )Nc                     > ST S'   ST S'   g )Nr  r   r  r+    r   s   r&   bar9TestDictObject.test_023_closure.<locals>.foo.<locals>.bar  s    !!r)   r  )r  r   r$   s     @r&   r'   ,TestDictObject.test_023_closure.<locals>.foo  s?    ##E73A E vvx(x!Ax(((s    Ar   r+   r-   r/   s     r&   test_023_closureTestDictObject.test_023_closure  s,    		) 
	) 	A'r)   c                     [         S 5       nU R                  U" 5       UR                  5       5        [         S 5       nU R                  U" 5       UR                  5       5        g )Nc                      Sn U S   S0nUS   $ )Nu   aሴr   r   r   r  r  r$   s     r&   r'   9TestDictObject.test_024_unicode_getitem_keys.<locals>.foo  s    A1
AS6Mr)   c                      Sn U S S S0nUS   $ )Nu   abcሴr   r   r  r  s     r&   r'   r    s    A2AAS6Mr)   r   r.   r   r/   s     r&   test_024_unicode_getitem_keys,TestDictObject.test_024_unicode_getitem_keys  sZ    		 
	
 	.		 
	
 	.r)   c                    ^ [         R                  " [         R                  [         R                  /5      m[        U4S j5       nU R                  U" 5       5        g )Nc                  J  > [         R                  " T[        5      n [        R                  " S/[        R
                  S9n[        R                  " S/[        R                  S9n[        R                  " S/[        R                  S9nUS   XS   US   4'   US   US   4U ;   $ )NrN   dtypegGz@g(\u$@r   )r   r   r   rR  arrayrS  r   )r$   t1t2rU  keytys       r&   r'   <TestDictObject.test_issue6570_alignment_padding.<locals>.foo  s    ##E73A1#RYY/B4&

3B5'4B "1A!ubenqE2a5>Q&&r)   )r   TuplerS  r   r   r  )r0   r'   r  s     @r&    test_issue6570_alignment_padding/TestDictObject.test_issue6570_alignment_padding  sB    
 U\\5==9:		' 
	' 	r)   c                     SnS nUn[        5       " U5      nU" U5      nU" U5      nU R                  XV5        S nUn[        5       " U5      nU" U5      nU" U5      nU R                  XV5        g)z4
Tests dict.update works with various dictionaries.
rD   c                     [        U 5       Vs0 s H  oUS-   _M
     nn[        U 5       Vs0 s H	  nSU-  U_M     nnUR                  U5        U$ s  snf s  snf )z(
Test update with a regular dictionary.
r   rN   r    update)r#   r%   d1d2s       r&   f1+TestDictObject.test_dict_update.<locals>.f1  sZ     %*!H-HqQU(HB-$)!H-Hq!a%(HB-IIbMI .-s
   AAc                 |    SSSS.n[        U 5       Vs0 s H	  nSU-  U_M     nnUR                  U5        U$ s  snf )zK
Test update where one of the dictionaries
is created as a Python literal.
r+   r`      )r   rN   rB   rN   r  )r#   r  r%   r  s       r&   f2+TestDictObject.test_dict_update.<locals>.f2  sK     B
 %*!H-Hq!a%(HB-IIbMI .s   9Nr-   )r0   r#   r  r   cfuncr   r   r  s           r&   test_dict_updateTestDictObject.test_dict_update  sw     	 r
AJ!H	 r
AJ!Hr)   r  N)<__name__
__module____qualname____firstlineno__r1   r7   rF   rO   rg   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r   r/  r6  r<  rC  rI  rN  r   
skipUnlesssysmaxsizer[  rd  rk  rp  ru  rz  r  r  r  r  r  expectedFailurer  r  r  r  r  r  r  r  __static_attributes__r  r)   r&   r   r      s=   +(*(<(, 8,'$R"H
>,2& $D
.
(
.
(
&
.
.5"1$;.).V( (<
"
"
$


 w.0BC D"B*
 
 
 )

&& 
 
!"410(/$$'r)   r   c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestDictTypeCastingi  c                     [        X5        g r;   r   )r0   fromtytotys      r&   
check_goodTestDictTypeCasting.check_good  s
    &'r)   c                     U R                  [        5       n[        X5        S S S 5        U R                  SR                  " S0 [        5       D6[        WR                  5      5        g ! , (       d  f       NL= f)Nz%cannot safely cast {fromty} to {toty}r  )rd   r   r   r*  formatlocalsr+  r,  )r0   r  r  r.  s       r&   	check_badTestDictTypeCasting.check_bad   sU    {+vf+ ,3::FVXF  !	
 ,+s   A((
A6c                 ,   U R                  [        R                  [        R                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R
                  5        U R                  [        R                  [        R
                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R                  5        g r;   )
r  r   r   r   r   
complex128r   r  	complex64int8r0   s    r&   test_cast_int_to$TestDictTypeCasting.test_cast_int_to(  s    U]]3U]]3U%5%56U%5%56u{{EOO4

EOO4r)   c                    U R                  [        R                  [        R                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R
                  5        g r;   )r  r   r   r   r  r  r	  s    r&   test_cast_float_to&TestDictTypeCasting.test_cast_float_to0  sF    u}}5u7u'7'78r)   c                    U R                  [        R                  [        R                  5        U R                  [        R                  [        R                  5        U R                  [        R                  [        R
                  5        g r;   )r  r   booleanr   r   r  r	  s    r&   test_cast_bool_to%TestDictTypeCasting.test_cast_bool_to5  sF    u{{3u}}5u'7'78r)   r  N)
r  r  r  r  r  r  r
  r  r  r  r  r)   r&   r  r    s    (
59
9r)   r  c                   B    \ rS rSrS rS rS rS rSS jrS r	S r
S	rg
)TestTypedDicti;  c                    [         R                  " [        [        5      nU R	                  [        U5      S5        SUS'   SUS'   SUS'   U R	                  [        U5      S5        U R	                  [        UR                  5       5      / SQ5        [        [        UR                  5       5      / SQ5       H  u  p#U R                  X#S	S
9  M     U R                  US   S5        U R                  US   SS	S
9  U R                  US   SS	S
9  US	 U R	                  [        U5      S5        U R                  UR                  S5      5        UR                  SS5        UR                  SS5        U R	                  US   S5        U R                  US   SS	S
9  UR                  SSS.5        U R                  US	   S5        U R                  US   S5        U R                  S	U;   5        [!        UR#                  5       5      nU R	                  [        U5      [        U5      5        U R                  UR%                  S	5      S5        [        U5      nUR'                  5       u  pgU R	                  [        U5      US-
  5        U R                  Xa;  5        UR)                  5       nU R	                  X5        U R	                  [        UR#                  5       5      [        UR#                  5       5      5        g )Nr   r   r   r+   r   rN   r[   )r   r   r   r`   )placesr,      rB   r  )r`   rB   )r
   emptyr   r   r.   r5   r   rV   rT   r   assertAlmostEqualassertIsNoner=   r   r  r  r   r   r   rl   r   )	r0   r$   r   rZ  pydr  rX   rY   copieds	            r&   
test_basicTestTypedDict.test_basic<  sc   JJug&Q#!!!Q#affh3QXXZ(-8DA""1"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{Q+
##flln-tAGGI?r)   c                 :   [        [        S5      [        SS5      5       VVs0 s H  u  pU[        U5      _M     nnn[        R                  " [
        [        5      nUR                  5        H	  u  pX$U'   M     [        U5      nU R                  XS5        g s  snnf )NrD   r}   )
rT   r    floatr
   r  r   r   r   r   r.   )r0   rX   rY   expectnbdr  s         r&   test_copy_from_dict!TestTypedDict.test_copy_from_dictm  sy    *-eBir2*GH*G$!!U1X+*GHjj(LLNDAF #3i% Is   Bc                 v    [         S 5       n[         S 5       nU" 5       nU" U5      nU R                  US5        g )Nc                  N    [         R                  " [        [        5      n SU S'   U $ )NGz?r   )r
   r  r   r   r   s    r&   producer-TestTypedDict.test_compiled.<locals>.producerv  s     

5'*AAaDHr)   c                     U S   $ r   r  r   s    r&   consumer-TestTypedDict.test_compiled.<locals>.consumer|  s    Q4Kr)   r'  r-   )r0   r(  r+  r$   vals        r&   test_compiledTestTypedDict.test_compiledu  sJ    		 
	
 
	 
	 Jqkd#r)   c                     [         R                  " [        R                  " [        R                  [        R                  /5      [
        S9nSUS'   U R                  US   UR                  S5      5        g )Nkey_type
value_typei90  )r   r   )r
   r  r   r  uint32r   r.   r=   r0   r$   s     r&   test_gh7908TestTypedDict.test_gh7908  sX    JJ[[%,,"',,"0 1
 &	6AEE&M2r)   c                    [         R                  " [        [        5      n0 nSUS'   SUS'   U(       a  U R                  OU R                  nU" U" U5      U" U5      5        SUS'   SUS'   U" U" U5      U" U5      5        [        SS5       H  nUS-   X6'   US-   XF'   M     U" U" U5      U" U5      5        U(       a'  U R                  U" U5      R                  S5      5        g g )Nr+   r   rN   rD   r}   r  )r
   r  r   r*  r.   r    r  
startswith)r0   strfnprefixr"  r$   checkerr%   s          r&   check_stringifyTestTypedDict.check_stringify  s    jj&A!#)$--t/?/?a%*%A!a%*%r2AUCFq5AD  	a%*%OOE#J11*=> r)   c                 ,    U R                  [        SS9  g )NT)r;  )r=  reprr	  s    r&   	test_reprTestTypedDict.test_repr  s    T$/r)   c                 .    U R                  [        5        g r;   )r=  r+  r	  s    r&   test_strTestTypedDict.test_str  s    S!r)   r  N)F)r  r  r  r  r  r#  r.  r6  r=  rA  rD  r  r  r)   r&   r  r  ;  s'    /@b&$3?"0"r)   r  c                       \ rS rSrS rSrg)DictIterableCtori  c                    [         S 5       n[         S 5       n[         S 5       n[         S 5       n[         S 5       n[         S 5       n[         S 5       n[         S 5       nS	 n	US
S/U	" SSSS
.5      4US
S/U	" SSSS
.5      4US
S/U	" SSSS
.5      4US
S/U	" SSSS
.5      4US
S/U	" SSSS.5      4US/U	" SSS.5      4USU	" SS05      /U	" SS05      4USU	" SS05      /U	" SU	" SS05      05      4US[        / SQ5      /U	" S[        / SQ5      05      44	n
U
 H=  u  pnU R                  (       a  U" U6 nOUR                  " U6 nU R	                  X5        M?     g )Nc                 .    [        [        X5      5      nU$ r;   r
   rT   )r   r   r$   s      r&   func1>DictIterableCtor.test_iterable_type_constructor.<locals>.func1  s    SYAHr)   c                 @    [        S5      n[        [        X!5      5      $ r   )r    r
   rT   a_r   r   s      r&   func2>DictIterableCtor.test_iterable_type_constructor.<locals>.func2  s    aAA	?"r)   c                 2    / SQn[        [        X!5      5      $ )Nr   r   r+   rJ  rN  s      r&   func3>DictIterableCtor.test_iterable_type_constructor.<locals>.func3  s    AA	?"r)   c           	      T    [        X5      n[        [        U [        X 5      5      5      $ r;   )rT   r
   r   r   r   s      r&   func4>DictIterableCtor.test_iterable_type_constructor.<locals>.func4  s!    A	AAs1y)**r)   c                 >    [        [        [        X5      U5      5      $ r;   rJ  r   r   s     r&   func5>DictIterableCtor.test_iterable_type_constructor.<locals>.func5  s    CIq)**r)   c                     [        U 5      $ r;   r
   )r   s    r&   func6>DictIterableCtor.test_iterable_type_constructor.<locals>.func6  s    ;r)   c                     [        X05      $ r;   r_  )rX   rY   s     r&   func7>DictIterableCtor.test_iterable_type_constructor.<locals>.func7  s    <r)   c                 "    [        5       nXU '   U$ r;   r_  rX   rY   r$   s      r&   func8>DictIterableCtor.test_iterable_type_constructor.<locals>.func8      AaDHr)   c                 T    [        5       nU R                  5        H	  u  p#X1U'   M     U$ r;   )r
   r   )py_dictr$   rX   rY   s       r&   	_get_dictBDictIterableCtor.test_iterable_type_constructor.<locals>._get_dict  s'    A! (Hr)   rS  abcr   r   r   )r   r   r   )r   r   r   )r+   r   r+   )ro  rp  rq  )r   r   )rN   r   r   rN   keyr   rX   r[   )r   r   jit_enabledr   r   )r0   rK  rP  rT  rX  r\  r`  rc  rg  rl  rW   funcargsr  r  s                  r&   test_iterable_type_constructor/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llD)##H2 %)r)   r  N)r  r  r  r  rx  r  r  r)   r&   rG  rG    s    D3r)   rG  c                   ,    \ rS rSrS rS rS rS rSrg)TestDictIterableCtorJiti  c                     SU l         g )NTru  r	  s    r&   setUpTestDictIterableCtorJit.setUp  s
    r)   c                     [         S 5       nSnU R                  [        U5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                      [        S5      $ r   r_  r  r)   r&   ctorDTestDictIterableCtorJit.test_exception_no_iterable_arg.<locals>.ctor  s    7Nr)   !.*No implementation of function.*r   assertRaisesRegexr   r0   r  msgs      r&   test_exception_no_iterable_arg6TestDictIterableCtorJit.test_exception_no_iterable_arg  s<    		 
	 2##K5F 655	   6
Ac                     [         S 5       nSnU R                  [        U5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                      [        SSS.5      $ )Nr+   r`   rs  r_  r  r)   r&   r  ATestDictIterableCtorJit.test_exception_dict_mapping.<locals>.ctor  s    A!%%r)   r  r  r  s      r&   test_exception_dict_mapping3TestDictIterableCtorJit.test_exception_dict_mapping  s<    		& 
	& 2##K5F 655r  c                     [         S 5       nSnU R                  [        U5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                      [        S5      $ )Nrr  )r+   r   rN   r_  r  r)   r&   r  <TestDictIterableCtorJit.test_exception_setitem.<locals>.ctor  s    /00r)   r  r  r  s      r&   test_exception_setitem.TestDictIterableCtorJit.test_exception_setitem  s<    		1 
	1 2##K5F 655r  r}  N)	r  r  r  r  r~  r  r  r  r  r  r)   r&   r{  r{    s     r)   r{  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestDictIterableCtorNoJiti  c                     SU l         g )NFr}  r	  s    r&   r~  TestDictIterableCtorNoJit.setUp  s
     r)   c                     SnU R                  [        U5         [        SS5        S S S 5        g ! , (       d  f       g = f)Nz%Dict expect at most 1 argument, got 2r   r+   r  r   r
   r0   r  s     r&   test_exception_nargs.TestDictIterableCtorNoJit.test_exception_nargs  s,    5##K5AJ 655s   /
=c                     SnU R                  [        U5         [        SS05        S S S 5        g ! , (       d  f       g = f)Nz$.*dict\(mapping\) is not supported.*r   r+   r  r  s     r&   test_exception_mapping_ctor5TestDictIterableCtorNoJit.test_exception_mapping_ctor  s.    5##K5!QL 655s   0
>c                 ~    SnU R                  [        U5         [        S5        S S S 5        g ! , (       d  f       g = f)Nz.*object is not iterable.*rN   r  r  s     r&   test_exception_non_iterable_arg9TestDictIterableCtorNoJit.test_exception_non_iterable_arg  s*    *##K5G 655   .
<c                 ~    SnU R                  [        U5         [        S5        S S S 5        g ! , (       d  f       g = f)Nz6.*dictionary update sequence element #1 has length 3.*r  )r  
ValueErrorr
   r  s     r&   r  0TestDictIterableCtorNoJit.test_exception_setitem#  s,    F##J4() 544r  r}  N)
r  r  r  r  r~  r  r  r  r  r  r  r)   r&   r  r    s    !


*r)   r  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestDictRefctTypesi)  c                 $   [         S 5       nU" 5       nU R                  US   S5        U R                  US   S5        SSS.nU R                  [        U5      U5        SUS'   SUS'   U R                  US   S5        U R                  [        U5      U5        Sn[        U5       H  nXR[	        U5      '   XS[	        U5      '   M     [        U5       H!  nU R                  U[	        U5         U5        M#     U R                  [        U5      U5        g )	Nc                  |    [         R                  " [        R                  [        R                  S9n SU S'   SU S'   U $ )Nr1  {   123A  321)r
   r  r   r  r   r   s    r&   r'   ,TestDictRefctTypes.test_str_key.<locals>.foo,  s9    

++ ;;A AeHAeHHr)   r  r  r  r  )r  r     r,   r   r.   r   r    r+  r0   r'   r$   r!  r  r%   s         r&   test_str_keyTestDictRefctTypes.test_str_key+  s   		 
	 E53'53'S)a&)%u53'a&)uAc!fI3q6N  uAQs1vY* a&)r)   c                    [         S 5       nU" 5       nU R                  US   S5        U R                  US   S5        SSS.nU R                  [        U5      U5        SUS'   SUS'   U R                  [        U5      U5        Sn[        U5       H  n[	        U5      X%'   [	        U5      X5'   M     [        U5       H   nU R                  X%   [	        U5      5        M"     U R                  [        U5      U5        g )	Nc                  |    [         R                  " [        R                  [        R                  S9n SU S'   SU S'   U $ )Nr1  r  r  r  r  )r
   r  r   r   r  r   s    r&   r'   ,TestDictRefctTypes.test_str_val.<locals>.fooJ  s9    

 --A AcFAcFHr)   r  r  r  r  r  r  231r   r  r  s         r&   test_str_valTestDictRefctTypes.test_str_valI  s    		 
	 E3'3'5)a&)#sa&)uAq6ADAFI  uAQT3q6* a&)r)   c                 L   [         R                  R                  S5        [        R                  " [
        R                  [
        R                  S S  S9n/ nUR                  [         R                  R                  S5      5        US   US'   UR                  [         R                  R                  S5      5        US   US'   [        S5       HB  nUR                  [         R                  R                  U5      5        US   U[        U5      '   MD     U R                  [        U5      [        U5      5        U R                  US   US	   5        U R                  US   US
   5        [        UR                  5       U5       H  u  pEU R                  XE5        M     U R!                  SU;   5        U R!                  SU;   5        US	 U R#                  SU;   5        US	 U R#                  SU;   5        US	S2	 [        S5       H6  nUR%                  5       u  pgUR'                  5       nU R                  Xx5        M8     UR                  [         R                  R                  S5      5        US   US'   [        UR                  5       U5       H  u  pEU R                  XE5        M     g )Nr  r1  rD   rE   massr}   velocityr,   r   r   r+   Z   last)rR  randomseedr
   r  r   r  r   r<   r    r+  r.   r5   r   rT   r   r  r  rl   r   )	r0   r$   r!  r%   r  exprX   rY   ws	            r&   test_str_key_array_value+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;DA

A##A)  	bii&&r*+2J&	 AHHJ/HC##C- 0r)   c                    S n[         R                  " [        R                  [        R                  " [        R                  [        R                  5      S9nS nU" X!5      nU" 0 [
        5      nU R                  U[
        5        U R                  [        U5      U5        S H"  nXF	 XV	 U R                  [        U5      U5        M$     g )Nc                  h    [         R                  " [        R                  [        R                  S9n U $ Nr1  r
   r  r   intpr   s    r&   inner_numba_dictITestDictRefctTypes.test_dict_of_dict_int_keyval.<locals>.inner_numba_dict  s%    

 ::A Hr)   r1  c                 x    [        S5       H*  nU" 5       n[        US-   5       H
  nUS-  X4'   M     X0U'   M,     U $ )Nr,   r   r  r  )r$   make_inner_dictr%   midjs        r&   usecase@TestDictRefctTypes.test_dict_of_dict_int_keyval.<locals>.usecase  sC    3Z%'q1uAYCF &!	  
 Hr)   )r  rN   r     rD   )r
   r  r   r  r  r   assertIsInstancer.   )r0   r  r$   r  r  r!  wheres          r&   test_dict_of_dict_int_keyval/TestDictRefctTypes.test_dict_of_dict_int_keyval  s    	 JJZZ~~ejj%**=

	 a*T"fd+cF+ 'E
T#Y/ 'r)   c                   ^^	 [         R                  " [         R                  [         R                  5      m[        S 5       m	[        UU	4S j5       nU" S5      nSnUR	                  5        HR  u  pEUS-  nU R                  [        U5      US-   5        UR	                  5        H  u  pgU R                  Xg5        M     MT     U R                  US5        g )Nc                  h    [         R                  " [        R                  [        R                  S9n U $ r  r  r   s    r&   r  BTestDictRefctTypes.test_dict_of_dict_npm.<locals>.inner_numba_dict  s%    

 ::A Hr)   c                    > [         R                  " [        R                  TS9n[	        U 5       H(  nT" 5       X'   [	        US-   5       H
  nX1U   U'   M     M*     U$ )Nr1  r   )r
   r  r   r  r    )countr$   r%   r  inner_dict_tyr  s       r&   r'   5TestDictRefctTypes.test_dict_of_dict_npm.<locals>.foo  sY    

(A 5\')q1uAaDG & "
 Hr)   r,   r   r   )r   r  r  r   r   r.   r5   )
r0   r'   r$   ctrX   ddkkvvr  r  s
           @@r&   test_dict_of_dict_npm(TestDictRefctTypes.test_dict_of_dict_npm  s    uzz5::>		 
	 

	 

	 HWWYEA!GBSWa!e,((*  ( %  	S!r)   c                     [         R                  " [        R                  [        R                  5      nSUS'   [
        S 5       nU" US5        U R                  [        U5      S5        U R                  U5        g )Nappler   c                 
    U S	 g r   r  )r   rX   s     r&   r'   ,TestDictRefctTypes.test_delitem.<locals>.foo  s	    !r)   r   )	r
   r  r   r   r  r   r.   r5   r  )r0   r$   r'   s      r&   test_delitemTestDictRefctTypes.test_delitem  sd    JJu{{E$6$67!		 
	 	Aq	Q#r)   c                    [         R                  " [        R                  [        R                  S S  5      n[        R
                  " S[        R                  S9US'   [        S 5       nU" U5        UR                  S   R                  nU R                  U[        R                  5        U R                  U[        R                  5        U R                  US   [        R
                  " S[        R                  S9S-   5        g )NrD   r  r   c                 &    U S==   S-  ss'   U S   $ r  r  r   s    r&   r'   8TestDictRefctTypes.test_getitem_return_type.<locals>.foo  s    aDCKDQ4Kr)   r   r,   )r
   r  r   r   rR  aranger   nopython_signaturesreturn_typer  ArrayassertNotIsInstanceOptionalr   )r0   r$   r'   rettys       r&   test_getitem_return_type+TestDictRefctTypes.test_getitem_return_type  s    JJu{{EKKN3yy288,!		 
	 	A''*66eU[[1  7!bii"((&Cc&IJr)   c                     [        5       n/ SQnU H  nX1U'   M	     [        U5       H  u  pCU R                  X   U5        M     g )N))r   Tr   )r   Fr   )r   Fr   )r
   r   r.   )r0   dctrefr   r%   s        r&   test_storage_model_mismatch.TestDictRefctTypes.test_storage_model_mismatch  sI     f
 AF  cNDASVQ' #r)   r  N)r  r  r  r  r  r  r  r  r  r  r  r  r  r  r)   r&   r  r  )  s.    *<*:).V 0D "D
K$(r)   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestDictForbiddenTypesi  c                     U R                  [        5       nU" 5         S S S 5        [        WR                  5      nU R	                  X5        g ! , (       d  f       N5= fr;   )rd   r   r+  r,  r*  )r0   r!  callabler.  r  s        r&   assert_disallow&TestDictForbiddenTypes.assert_disallow  sA    {+vJ ,&""#f" ,+s   A
Ac                    ^ SR                  T5      nU R                  UU4S j5        [        U4S j5       nU R                  X#5        g )Nz{} as key is forbiddenc                  N   > [         R                  " T [        R                  5      $ r;   r  tys   r&   <lambda><TestDictForbiddenTypes.assert_disallow_key.<locals>.<lambda>  s    $**R*Dr)   c                  P   > [         R                  " T [        R                  5        g r;   r  r  s   r&   r'   7TestDictForbiddenTypes.assert_disallow_key.<locals>.foo  s    JJr5::&r)   r  r  r   r0   r	  r  r'   s    `  r&   assert_disallow_key*TestDictForbiddenTypes.assert_disallow_key  sD    &--b1S"DE		' 
	'S&r)   c                    ^ SR                  T5      nU R                  UU4S j5        [        U4S j5       nU R                  X#5        g )Nz{} as value is forbiddenc                  N   > [         R                  " [        R                  T 5      $ r;   r  r  s   r&   r
  >TestDictForbiddenTypes.assert_disallow_value.<locals>.<lambda>  s    $**UZZ*Dr)   c                  P   > [         R                  " [        R                  T 5        g r;   r  r  s   r&   r'   9TestDictForbiddenTypes.assert_disallow_value.<locals>.foo  s    JJuzz2&r)   r  r  s    `  r&   assert_disallow_value,TestDictForbiddenTypes.assert_disallow_value  sD    (//3S"DE		' 
	'S&r)   c                     U R                  [        R                  " [        R                  5      5        U R	                  [        R                  " [        R                  5      5        g r;   )r  r   r   r  r  r	  s    r&   test_disallow_list)TestDictForbiddenTypes.test_disallow_list  s8      EJJ!78""5::ejj#9:r)   c                     U R                  [        R                  " [        R                  5      5        U R	                  [        R                  " [        R                  5      5        g r;   )r  r   Setr  r  r	  s    r&   test_disallow_set(TestDictForbiddenTypes.test_disallow_set!  s8      5::!67""599UZZ#89r)   r  N)
r  r  r  r  r  r  r  r  r  r  r  r)   r&   r  r    s    #'';:r)   r  c                   t    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)TestDictInferredi&  c                 "   [         S 5       nSu  p#U" 5       nU R                  [        U5      X#05        U R                  [        U5      R                  [        U5      5        U R                  [        U5      R
                  [        U5      5        g )Nc                  $    [        5       n SU S'   U $ )Nr  r  r_  r   s    r&   r'   1TestDictInferred.test_simple_literal.<locals>.foo(  s    AAcFHr)   r  r   r.   r   r	   r2  r3  r0   r'   rX   rY   r$   s        r&   test_simple_literal$TestDictInferred.test_simple_literal'  sv    		 
	
 Ea1&)++VAY7--vay9r)   c                 $   [         S 5       nSu  p#U" X#5      nU R                  [        U5      X#05        U R                  [        U5      R                  [        U5      5        U R                  [        U5      R
                  [        U5      5        g )Nc                 "    [        5       nXU '   U$ r;   r_  rf  s      r&   r'   .TestDictInferred.test_simple_args.<locals>.foo5  ri  r)   r  r%  r&  s        r&   test_simple_args!TestDictInferred.test_simple_args4  sx    		 
	
 Ia1&)++VAY7--vay9r)   c                 (   [         S 5       nSu  p#nU" X#U5      nU R                  [        U5      X$05        U R                  [        U5      R                  [        U5      5        U R                  [        U5      R
                  [        U5      5        g )Nc                 *    [        5       nXU '   X#U '   U$ r;   r_  rX   rY   r  r$   s       r&   r'   0TestDictInferred.test_simple_upcast.<locals>.fooB      AaDaDHr)   )r  @@r  r%  )r0   r'   rX   rY   r  r$   s         r&   test_simple_upcast#TestDictInferred.test_simple_upcastA  s|    		 
	 !aaLa1&)++VAY7--vay9r)   c                    [         S 5       nSu  p#nU R                  [        5       nU" X#U5        S S S 5        U R                  SR	                  [        U5      5      [        WR                  5      5        g ! , (       d  f       NL= f)Nc                 *    [        5       nXU '   X#U '   U$ r;   r_  r0  s       r&   r'   9TestDictInferred.test_conflicting_value_type.<locals>.fooP  r2  r)   )r  r  r3   cannot safely cast float64 to {}r   rd   r   r*  r  r	   r+  r,  )r0   r'   rX   rY   r  r.  s         r&   test_conflicting_value_type,TestDictInferred.test_conflicting_value_typeO  sr    		 
	 !a{+vaL ,.55fQi@  !	
 ,+   
A77
Bc                    [         S 5       nSu  p#nU R                  [        5       nU" X#U5        S S S 5        U R                  SR	                  [        U5      5      [        WR                  5      5        g ! , (       d  f       NL= f)Nc                 *    [        5       nX#U '   X#U'   U$ r;   r_  )rX   hrY   r$   s       r&   r'   7TestDictInferred.test_conflicting_key_type.<locals>.foo`  r2  r)   )r  gfffff^@r  r9  r:  )r0   r'   rX   r@  rY   r.  s         r&   test_conflicting_key_type*TestDictInferred.test_conflicting_key_type_  sr    		 
	 "a{+vaL ,.55fQi@  !	
 ,+r=  c                    [         S 5       n[        R                  " S5      [        R                  " S5      4n[        R                  " S5      [        R                  " S5      4n[        R                  " S5      n[
        R                  " SS9 nU" X$U5      u  pgS S S 5        U R                  [        W5      S5        SnU R                  U[        US   5      5        [        WR                  5       5      n	U R                  U	S   S	5        U R                  WU[        R                  " S5      [        R                  " S5      4   5        g ! , (       d  f       N= f)
Nc                 *    [        5       nXU '   X3U   4$ r;   r_  )r  rU  r  r$   s       r&   r'   ?TestDictInferred.test_conflict_key_type_non_number.<locals>.fooq  s    AbEe8Or)   r   r+   r  T)recordz:unsafe cast from UniTuple(int32 x 2) to UniTuple(int8 x 2)r   )r   r+   )r   rR  r  r   r  warningscatch_warningsr.   r5   r*  r+  r   rV   )
r0   r'   r  r  rU  r  r$   dk2r  rV   s
             r&   !test_conflict_key_type_non_number2TestDictInferred.test_conflict_key_type_non_numbero  s    		 
	 ggaj"''!*%hhqk288A;'WWS\$$D1Q_FA 2Q#Jc3qt9%AFFH~a&)a!bhhqk :;< 21s   E
Ec                     [         S 5       nSu  p#U" X#5      nU R                  [        U5      X#05        Su  p#U" X#5      nU R                  [        U5      SUS-   05        g )Nc                 D    [        5       nU (       a  XU '   U$ US-   US'   U$ )Nr     r_  rf  s      r&   r'   >TestDictInferred.test_ifelse_filled_both_branches.<locals>.foo  s.    A! H E&	Hr)   r  rs   rO  r   r   r.   r   r&  s        r&    test_ifelse_filled_both_branches1TestDictInferred.test_ifelse_filled_both_branches  sh    		 
	 Ia1&)Ia61q5/2r)   c                 r   [         S 5       nSu  p#U" X#5      nU R                  [        U5      X#05        Su  p#U" X#5      nU R                  [        U5      0 5        U R                  [        U5      R                  [        U5      5        U R                  [        U5      R
                  [        U5      5        g )Nc                 0    [        5       nU (       a  XU '   U$ r;   r_  rf  s      r&   r'   :TestDictInferred.test_ifelse_empty_one_branch.<locals>.foo  s    A!Hr)   r  rs   r%  r&  s        r&   test_ifelse_empty_one_branch-TestDictInferred.test_ifelse_empty_one_branch  s    		 
	 Ia1&)Ia"%++VAY7--vay9r)   c           	          [         S 5       n[        [        S5      5      n[        [        S U5      5      nU" X25      nU R	                  [        U5      [        [        X25      5      5        g )Nc                 J    [        5       n[        X5       H	  u  p4XBU'   M     U$ r;   rJ  )ksvsr$   rX   rY   s        r&   r'   'TestDictInferred.test_loop.<locals>.foo  s%    AB! $Hr)   r`   c                     U S-   $ )Nr,   r  r   s    r&   r
  ,TestDictInferred.test_loop.<locals>.<lambda>  s    Sr)   )r   r   r    mapr.   r   rT   )r0   r'   r\  r[  r$   s        r&   	test_loopTestDictInferred.test_loop  s[    		 
	 %(^#("-.Ka$s2{"34r)   c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                      [        5       n U $ r;   r_  r   s    r&   r'   )TestDictInferred.test_unused.<locals>.foo  s    AHr)   zimprecise typer)  r-  s      r&   test_unusedTestDictInferred.test_unused  sV    		 
	 {+vE ,  !	
 ,+rE  c                 H   [         S 5       nU" S5      u  p#nU R                  US5        U R                  US5        U R                  [        U5      SS05        U" S5      u  p#nU R                  US5        U R                  [        U5      0 5        U R                  US5        g )Nc                     [        5       n[        U5      nUR                  5        H	  u  p4X$-  nM     U (       a  SUS'   X![        U5      4$ Nr+   r   )r
   r5   r   )definer$   r  rX   rY   s        r&   r'   3TestDictInferred.test_define_after_use.<locals>.foo  sG    AQB	 " !#a&= r)   Tr   r   r+   FrQ  )r0   r'   r  r$   r#   s        r&   test_define_after_use&TestDictInferred.test_define_after_use  s    			! 
		! t9qQAa1a&)u:qQa"%Ar)   c           	          [         S 5       nSu  p#nU" X#U5      nU R                  [        U5      X"S-   X$-   0X3S-   X4-   005        g )Nc                 v    [        5       n[        5       nX -   X@S-   '   [        5       nX!-   XQS-   '   XCU '   XSU'   U$ Nr   r+   r_  )r  r  rY   r$   z1z2s         r&   r'   /TestDictInferred.test_dict_of_dict.<locals>.foo  sD    ABBAvJBBAvJbEbEHr)   )r,   r  r  r   r+   rQ  )r0   r'   r  r  rY   r$   s         r&   test_dict_of_dict"TestDictInferred.test_dict_of_dict  s`    		 
	 "	NG!VRV$!VRV$	
r)   c                 f    [         S 5       nU R                  U" 5       UR                  5       5        g )Nc                  J    [        S5       V s0 s H  o SU -  _M
     sn $ s  sn f )NrD   r+   r  )r%   s    r&   r'   6TestDictInferred.test_comprehension_basic.<locals>.foo  s$    &+Bi0iq1uHi000s    r  r/   s     r&   test_comprehension_basic)TestDictInferred.test_comprehension_basic  s.    		1 
	1 	.r)   c                 f    [         S 5       nU R                  U" 5       UR                  5       5        g )Nc                      [        [        S5      [        SSS5      5       V Vs0 s H  u  pU [        U5      _M     snn $ s  snn f )NrD   r   rE   )rT   r    r   )r%   r  s     r&   r'   ATestDictInferred.test_comprehension_basic_mixed_type.<locals>.foo  s:    ,/b	5Q;K,LM,LDAAuQxK,LMMMs   A r  r/   s     r&   #test_comprehension_basic_mixed_type4TestDictInferred.test_comprehension_basic_mixed_type  s0    		N 
	N 	.r)   c                 f    [         S 5       nU R                  U" 5       UR                  5       5        g )Nc                  \    SSSS.n [        S5       Vs0 s H  nSU-   X   _M     sn$ s  snf )NABCrS  rN   r  r   r%   s     r&   r'   9TestDictInferred.test_comprehension_involved.<locals>.foo  s4    CC(A).q2AAE14K222   )r  r/   s     r&   test_comprehension_involved,TestDictInferred.test_comprehension_involved   s.    		3 
	3 	.r)   c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        [        WR                  5      nU R                  SU5        g ! , (       d  f       N6= f)Nc                  \    SSSS.n [        S5       Vs0 s H  nSU-   X   _M     sn$ s  snf )Nr  r  r$  rS  rN   r  r  s     r&   r'   @TestDictInferred.test_comprehension_fail_mixed_type.<locals>.foo	  s4    CB'A).q2AAE14K222r  z&Cannot cast complex128 to unicode_type)r   rd   r   r+  r,  r*  )r0   r'   r  excstrs       r&   "test_comprehension_fail_mixed_type3TestDictInferred.test_comprehension_fail_mixed_type  sX    		3 
	3 {+qE , Q[[!>G	 ,+   A
A(r  N)r  r  r  r  r'  r,  r4  r;  rB  rK  rR  rW  rb  rg  rn  rv  r{  r  r  r  r  r  r)   r&   r!  r!  &  sS    :::
 
 =03$:$5
.
,///
Hr)   r!  c                   &    \ rS rSrS rS rS rSrg)TestNonCompiledInferi  c                 p   [        5       nU R                  UR                  5        U R                  [	        U5      S5        U R                  [        U5      [        0 5      5        U R                  [        [        U5      5      / 5        U R                  [        5       nUS     S S S 5        U R                  [        WR                  5      [        [        S5      5      5        U R                  [        5       nUS	 S S S 5        U R                  [        UR                  5      [        [        S5      5      5        U R                  [        5         UR                  S5        S S S 5        U R                  [        UR                  5      [        [        S5      5      5        U R                  UR                  SS 5      S 5        U R                  UR                  S5      S 5        U R                  [        5       nUR                  5         S S S 5        U R                  [        UR                  5      [        [        S5      5      5        U R                  [        5       nUR!                  S5        S S S 5        U R                  [        UR                  5      [        [        S5      5      5        U R                  SU;   5        U R                  UR                  5        g ! , (       d  f       GNB= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f)Nr   r   zdictionary is emptyz'invalid operation on untyped dictionary)r
   r  _typedr.   r5   r+  r   iterrd   re   r,  r   assertIsr=   rl   	TypeErrorr   )r0   r$   r.  s      r&   test_check_untyped_dict_ops0TestNonCompiledInfer.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K1L9LL'
K.1
L 
L
L$'
L5c                     [        5       nSUS'   U R                  UR                  5        U R                  US   S5        g rk  )r
   r  r  r.   r5  s     r&   test_getitem!TestNonCompiledInfer.test_getitem>  s6    F!!1q!r)   c                     [        5       nUR                  SS5        U R                  UR                  5        U R	                  US   S5        g rr  )r
   r   r  r  r.   r5  s     r&   test_setdefault$TestNonCompiledInfer.test_setdefaultF  s;    F	Q!1q!r)   r  N)r  r  r  r  r  r  r  r  r  r)   r&   r  r    s    &#P""r)   r  r   )specc                        \ rS rSrS rS rSrg)BagiO  c                     Xl         g r;   r   )r0   r   s     r&   __init__Bag.__init__Q  s    r)   c                 ,    [        U R                  5      $ r;   )rT  r   r	  s    r&   __hash__Bag.__hash__T  s    DFF|r)   r  N)r  r  r  r  r  r  r  r  r)   r&   r  r  O  s    r)   r  c                       \ rS rSrS rSrg)TestDictWithJitclassiX  c                     [         S 5       nU" [        SS95      nU R                  US   R                  S5        U R                  US   R                  S5        g )Nc                 >    [        5       nXS'   [        S5      US'   U$ )Nr   e   r   )r
   r  )r   r$   s     r&   r'   8TestDictWithJitclass.test_jitclass_as_value.<locals>.fooZ  s"    AaDs8AaDHr)   r,   r  r   r   r  )r   r  r.   r   )r0   r'   r$   s      r&   test_jitclass_as_value+TestDictWithJitclass.test_jitclass_as_valueY  sS    		 
	 c
O1%1%r)   r  N)r  r  r  r  r  r  r  r)   r&   r  r  X  s    
&r)   r  c                   *    \ rS rSrSrS rS rS rSrg)	TestNoJitif  z0Exercise dictionary creation with JIT disabled. c                    [        SS5         [        5          [        R                  " [        [
        5      nU R                  [        U5      [        5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fNDISABLE_JITT)	r   r   r   r   r   r   r.   typer   r5  s     r&   &test_dict_create_no_jit_using_new_dict0TestNoJit.test_dict_create_no_jit_using_new_dicti  sU    ]D1!''w7  a$/ " 21!! 21s"   A9?A(A9(
A6	2A99
Bc                     [        SS5         [        5          [        5       nU R                  [	        U5      [
        5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fr  )r   r   r
   r.   r  r   r5  s     r&   "test_dict_create_no_jit_using_Dict,TestNoJit.test_dict_create_no_jit_using_Dicto  sJ    ]D1!F  a$/ " 21!! 21s"   A$*AA$
A!	A$$
A2c                 <   [        SS5         [        5          [        R                  " [        R
                  [        R                  5      nU R                  [        U5      [        5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fr  )
r   r   r
   r  r   r   r   r.   r  r   r5  s     r&   #test_dict_create_no_jit_using_empty-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r  N)	r  r  r  r  __doc__r  r  r  r  r  r)   r&   r  r  f  s    :000r)   r  c                       \ rS rSrS rSrg)TestDictIteratori|  c                    [         S 5       n[         S 5       nU" 5       nU" 5       nU R                  / SQUS   5        U R                  / SQUS   5        U R                  / SQUS   5        U R                  / SQUS   5        g )	Nc                      [         R                  " [        R                  [        R                  S9n SU S'   SU S'   SU S'   [	        U R                  5       5      [	        U R                  5       5      4$ )Nr1  rD   r   r}   r   r~   r+   r
   r  r   r  r   rV   r   r  s    r&   fun11TestDictIterator.test_dict_iterator.<locals>.fun1~  X    UZZ',zz3BBqEBqEBqE	?D$555r)   c                      [         R                  " [        R                  [        R                  S9n SU S'   SU S'   SU S'   [	        U R                  5       5      [	        U R                  5       5      4$ )Nr1  M   r`   X   rB   c   r  r  r  s    r&   fun21TestDictIterator.test_dict_iterator.<locals>.fun2  r  r)   rS  r   r|   r   )r`   rB   r  )r  r  r  r-   )r0   r  r  res1res2s        r&   test_dict_iterator#TestDictIterator.test_dict_iterator}  s    		6 
	6 
	6 
	6 vv$q'*T!W-$q'*T!W-r)   r  N)r  r  r  r  r  r  r  r)   r&   r  r  |  s    .r)   r  c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)TestTypedDictInitialValuesi  zBTests that typed dictionaries carry their initial value if presentc                 b   ^ ^ S m[        T5      U 4S j5       n[        U4S j5       nU" 5         g )Nc                     g r;   r  r   s    r&   r  DTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.bar      r)   c                    > U R                   c  S $ TR                  [        U [        R                  5      5        TR                  U R                   SSSS.5        TR                  [        U S5      S5        S $ )	Nc                     [        U 5      $ r;   r   r   s    r&   r
  YTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.ol_bar.<locals>.<lambda>      1r)   r   r+   rN   rW  literal_valueFc                     U $ r;   r  r   s    r&   r
  r        Qr)   )initial_valuer  
isinstancer   r  r.   hasattrr$   r0   s    r&   ol_barGTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.ol_bar  sb    &--OOJq%..9:Q__AAA.FGWQ8%@r)   c                  "   > SSSS.n T" U 5        g )Nr   r+   rN   rW  r  r   r  s    r&   r'   DTestTypedDictInitialValues.test_homogeneous_and_literal.<locals>.foo  s     aa(AFr)   r   r   r0   r  r'   r  s   `  @r&   test_homogeneous_and_literal7TestTypedDictInitialValues.test_homogeneous_and_literal  s;    	 
#	 
	 
	 
	
 	r)   c                 b   ^ ^ S m[        T5      U 4S j5       n[        U4S j5       nU" 5         g )Nc                     g r;   r  r   s    r&   r  VTestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.bar  r  r)   c                    > TR                  [        U [        R                  5      5        TR	                  U R
                  S 5        TR	                  [        U S5      S5        S $ )Nr  Fc                     U $ r;   r  r   s    r&   r
  kTestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.ol_bar.<locals>.<lambda>  r  r)   )r  r  r   r  r.   r  r  r  s    r&   r  YTestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.ol_bar  sK    OOJq%..9:Q__d3WQ8%@r)   c                  "   > SSSS.n T" U 5        g )Nr$  r+   rN   rW  r  r  s    r&   r'   VTestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous.<locals>.foo  s     qq)AFr)   r  r  s   `  @r&   .test_heterogeneous_but_castable_to_homogeneousITestTypedDictInitialValues.test_heterogeneous_but_castable_to_homogeneous  s;    	 
#	 
	 
	 
	 	r)   c                 b   ^ ^ S m[        T5      U 4S j5       n[        U4S j5       nU" 5         g )Nc                     g r;   r  r   s    r&   r  ZTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.bar  r  r)   c                 h  > SSSS.nS nUR                  5        VVs0 s H"  u  p4[        R                  " U5      U" U5      _M$     nnnTR                  [	        U [        R
                  5      5        TR                  U R                  U5        TR                  [        U S5      S5        S $ s  snnf )	Nr                  @rN   rW  c                 z    [         R                  " U 5      (       a  [         R                  " U 5      $ [        U 5      $ r;   )r   maybe_literalliteralr	   r&  s    r&   specific_tyrTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.ol_bar.<locals>.specific_ty  s*    +0+>+>q+A+Au}}Q'PvayPr)   r  Fc                     U $ r;   r  r   s    r&   r
  oTestTypedDictInitialValues.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   rZ  r  r0   s         r&   r  ]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                  "   > SSSS.n T" U 5        g )Nr   r   rN   rW  r  r  s    r&   r'   ZTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous.<locals>.foo  s     bq)AFr)   r  r  s   `  @r&   2test_heterogeneous_but_not_castable_to_homogeneousMTestTypedDictInitialValues.test_heterogeneous_but_not_castable_to_homogeneous  s;    	 
#		 
		 
	 
	 	r)   c                 b   ^ ^ S m[        T5      U 4S j5       n[        U4S j5       nU" 5         g )Nc                     g r;   r  r   s    r&   r  ATestTypedDictInitialValues.test_mutation_not_carried.<locals>.bar  r  r)   c                    > U R                   c  S $ TR                  [        U [        R                  5      5        TR                  U R                   SSSS.5        S $ )Nc                     [        U 5      $ r;   r  r   s    r&   r
  VTestTypedDictInitialValues.test_mutation_not_carried.<locals>.ol_bar.<locals>.<lambda>  r  r)   r   r+   rN   rW  c                     U $ r;   r  r   s    r&   r
  r    r  r)   )r  r  r  r   r  r.   r  s    r&   r  DTestTypedDictInitialValues.test_mutation_not_carried.<locals>.ol_bar  sK    &--OOJq%..9:Q__AAA.FGr)   c                  ,   > SSSS.n SU S'   T" U 5        g Nr   r+   rN   rW  r`   r$   r  r  s    r&   r'   ATestTypedDictInitialValues.test_mutation_not_carried.<locals>.foo  s!     aa(AAcFFr)   r  r  s   `  @r&   test_mutation_not_carried4TestTypedDictInitialValues.test_mutation_not_carried  s;    	 
#	 
	 
	 
	 	r)   c                 &  ^^^ [         S 5       nUS 4[        SSSS.44 Hn  u  mn[         S 5       mS m[        T5      UU4S j5       n[         U4S	 j5       nU" 5         TR                  S
   S
   nU R	                  UR
                  U5        Mp     g )Nc                      g r;   r  )rw  s    r&   nopQTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.nop  s    r)   r   r+   rN   rW  c                     g r;   r  r_  s    r&   bazQTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.baz  s    r)   c                     g r;   r  r  s    r&   r  QTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.bar      r)   c                    > UU4S jnU$ )Nc                 &   > T" U 5        T" U 5        g r;   r  )r&  r!  fns    r&   implbTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.ol_bar.<locals>.impl
  s    qEFr)   r  )r&  r)  r!  r(  s     r&   r  TTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.ol_bar  s     r)   c                  .   > SSSS.n T" U 5        SU S'   U $ r  r  r  s    r&   r'   QTestTypedDictInitialValues.test_mutation_not_carried_single_function.<locals>.foo  s$    !!,A#r)   r   )r   r   r   
signaturesr.   r  )	r0   r  ivr  r'   largr  r!  r(  s	         @@@r&   )test_mutation_not_carried_single_functionDTestTypedDictInitialValues.test_mutation_not_carried_single_function  s     
	 
	 DkIQQQ/G#HHFB  c]    E >>!$Q'DT//45 Ir)   c                    ^ [         S 5       m[         U4S j5       n[        5       nSUS'   [        5       nSUS'   U R                  U" S5      U5        U R                  U" S5      U5        g )	Nc                 $    SS0nU (       a  SS0nU$ )Nr   r+   rN   r  )r   os     r&   r  GTestTypedDictInitialValues.test_unify_across_function_call.<locals>.bar  s    AAFHr)   c                 2   > U (       a  SS0nU$ T" U 5      nU$ )NrN   r`   r  )r   r$   r  s     r&   r'   GTestTypedDictInitialValues.test_unify_across_function_call.<locals>.foo%  s&    F H FHr)   r`   rN   r+   r   TF)r   r
   r.   )r0   r'   e1e2r  s       @r&   test_unify_across_function_call:TestTypedDictInitialValues.test_unify_across_function_call  ss    		 
	 
	 
	 V1V1TB'UR(r)   r  N)r  r  r  r  r  r  r  r  r  r1  r;  r  r  r)   r&   r  r    s$    L*,6,!5F)r)   r  c                       \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestLiteralStrKeyDicti5  zATests for dictionaries with string keys that can map to anything!c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  *    SSSS.n U S   U S   U S   4$ )Nr   r   r$   rW  r   r   r   r  lds    r&   r'   CTestLiteralStrKeyDict.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_boxing6TestLiteralStrKeyDict.test_basic_const_lowering_boxing8  s(    		/ 
	/ 	-r)   c                 x    [         S 5       nU R                  U" S5      5        U R                  U" S5      5        g )Nc                 8    U S-   nUS:  a  SOSnSSSUS.nUS	   $ )
NrB   r+   TFr   r   r$   )r   r   r   	non_constrH  r  )r   rZ  r  rB  s       r&   r'   ?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_scope2TestLiteralStrKeyDict.test_basic_nonconst_in_scope@  s8    		# 
	# 	B T#r)   c                 j   ^ ^^ SmS m[        T5      U 4S j5       n[        UU4S j5       nU" 5         g )NrB   c                     g r;   r  r_  s    r&   r  >TestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.barQ      r)   c                   > TR                  U R                  [        R                  " S5      [        R                  " S5      [        R                  " S5      [	        S5      [        R                  " S5      [        R                  " S5      [        R                  " S5      [        R                  " S5      05        S nU$ )	Nr   r   r   r   r   r$   rB   c                     g r;   r  r_  s    r&   r)  OTestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.ol_bar.<locals>.impl\  r%  r)   r.   r  r   r  r	   r   r)  r0   s     r&   r  ATestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.ol_barT  s    Q__#mmC0%--2B#mmC0&*#mmC0%--2D#mmC0%--2BDEKr)   c                  $   > SSSTS.n T" U 5        g )Nr   r   r$   r   r   r   r$   r  )rB  r  r  s    r&   r'   >TestLiteralStrKeyDict.test_basic_nonconst_freevar.<locals>.foo`  s    r!4BGr)   r  )r0   r  r'   r  r  s   `  @@r&   test_basic_nonconst_freevar1TestLiteralStrKeyDict.test_basic_nonconst_freevarN  s@    	 
#		 
		 
	 
	 	r)   c                 b   ^ ^ S m[        T5      U 4S j5       n[        U4S j5       nU" 5         g )Nc                     g r;   r  r_  s    r&   r  5TestLiteralStrKeyDict.test_literal_value.<locals>.bari  rQ  r)   c                 ,  > TR                  U R                  [        R                  " S5      [        R                  " S5      [        R                  " S5      [	        S5      [        R                  " S5      [        R                  " S5      05        S nU$ )Nr   r   r   r   r   r$   c                     g r;   r  r_  s    r&   r)  FTestLiteralStrKeyDict.test_literal_value.<locals>.ol_bar.<locals>.impls  r%  r)   rU  rV  s     r&   r  8TestLiteralStrKeyDict.test_literal_value.<locals>.ol_barl  sh    Q__#mmC0%--2B#mmC0&*#mmC0%--2DFG
Kr)   c                  "   > SSSS.n T" U 5        g Nr   r   r$   rW  r  rB  r  s    r&   r'   5TestLiteralStrKeyDict.test_literal_value.<locals>.foow  s    r,BGr)   r  r  s   `  @r&   test_literal_value(TestLiteralStrKeyDict.test_literal_valueg  s;    	 
#	 
	 
	 
	 	r)   c                 b   ^ ^ S m[        T5      U 4S j5       n[        U4S j5       nU" 5         g )Nc                     g r;   r  r_  s    r&   r  ?TestLiteralStrKeyDict.test_list_and_array_as_value.<locals>.bar  rQ  r)   c                 r  > TR                  U R                  [        R                  " S5      [        R                  " S5      [        R                  " S5      [        R                  " [        R
                  / SQS9[        R                  " S5      [        [        R                  " S5      5      05        S nU$ )	Nr   r   r   r[   )r  r   rB   c                     g r;   r  r_  s    r&   r)  PTestLiteralStrKeyDict.test_list_and_array_as_value.<locals>.ol_bar.<locals>.impl  r%  r)   )	r.   r  r   r  r   r  r	   rR  zerosrV  s     r&   r  BTestLiteralStrKeyDict.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                  R   > / SQn SU [         R                  " S5      S.nT" U5        g )Nr[   r   rB   rW  rR  rp  )r   rB  r  s     r&   r'   ?TestLiteralStrKeyDict.test_list_and_array_as_value.<locals>.foo  s#    Aqrxx{3BGr)   r  r  s   `  @r&   test_list_and_array_as_value2TestLiteralStrKeyDict.test_list_and_array_as_value~  s;    	 
#		 
		 
	 
	
 	r)   c                 b   ^ ^ S m[        T5      U 4S j5       n[        U4S j5       nU" 5         g )Nc                     g r;   r  r_  s    r&   r  BTestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.bar  rQ  r)   c                 ,  > TR                  U R                  [        R                  " S5      [        R                  " S5      [        R                  " S5      [	        S5      [        R                  " S5      [        R                  " S5      05        S nU$ )Nr   aaaar   r   r   r$   c                     g r;   r  r_  s    r&   r)  STestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.ol_bar.<locals>.impl  r%  r)   rU  rV  s     r&   r  ETestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.ol_bar  sj     Q__#mmC0%--2G#mmC0&*#mmC0%--2DFG
Kr)   c                  &   > SSSSSS.n T" U 5        g )Nr   rD   r   r$   r{  )r   r   r   r   r   r  rf  s    r&   r'   BTestLiteralStrKeyDict.test_repeated_key_literal_value.<locals>.foo  s    r6BBGr)   r  r  s   `  @r&   test_repeated_key_literal_value5TestLiteralStrKeyDict.test_repeated_key_literal_value  s;    	 
#		 
		 
	 
	 	r)   c                     S nS nS nS nXX44nU HL  nU R                  UR                  5         U R                  [        U5      " 5       U" 5       5        S S S 5        MN     g ! , (       d  f       M`  = f)Nc                  $    SSSS.n [        U 5      $ re  )r5   rA  s    r&   _len2TestLiteralStrKeyDict.test_read_only.<locals>._len  s    r,Br7Nr)   c                      SSSS.n U S   $ )Nr   r   r$   rW  r   r  rA  s    r&   static_getitem<TestLiteralStrKeyDict.test_read_only.<locals>.static_getitem  s    r,Bc7Nr)   c                  "    SSSS.n SU ;   SU ;   4$ )Nr   r   r$   rW  r   r  r  rA  s    r&   contains6TestLiteralStrKeyDict.test_read_only.<locals>.contains  s!    r,B"9cRi''r)   c                  6    SSSS.n U R                  5       nX:H  $ re  )r   )rB  news     r&   r   2TestLiteralStrKeyDict.test_read_only.<locals>.copy  s!    r,B'')C9r)   )subTestr  r   r   )r0   r  r  r  r   rdonlystests          r&   test_read_only$TestLiteralStrKeyDict.test_read_only  sc    			(	
 8Ddmm,''T
df= -, ,,s   &A$$
A3	c                 |   S nS nS nS nS nS nXX4XV4nU H|  nU R                  UR                  5         U R                  [        5       n	[	        U5      " 5         S S S 5        Sn
U R                  U
[        W	R                  5      5        S S S 5        M~     g ! , (       d  f       NB= f! , (       d  f       M  = f)Nc                      SSSS.n SU S'   g )Nr   r   r$   rW  r  r   r  rA  s    r&   setitem<TestLiteralStrKeyDict.test_mutation_failure.<locals>.setitem  s    r,BBsGr)   c                      SSSS.n U S	 g )Nr   r   r$   rW  r   r  rA  s    r&   delitem<TestLiteralStrKeyDict.test_mutation_failure.<locals>.delitem  s    r,B3r)   c                  0    SSSS.n U R                  5         g re  )rl   rA  s    r&   rl   <TestLiteralStrKeyDict.test_mutation_failure.<locals>.popitem  s    r,BJJLr)   c                  0    SSSS.n U R                  5         g re  )r   rA  s    r&   r   8TestLiteralStrKeyDict.test_mutation_failure.<locals>.pop  s    r,BFFHr)   c                  0    SSSS.n U R                  5         g re  )r   rA  s    r&   r   :TestLiteralStrKeyDict.test_mutation_failure.<locals>.clear  s    r,BHHJr)   c                  4    SSSS.n U R                  SS5        g )Nr   r   r$   rW  r  )r   rA  s    r&   r   ?TestLiteralStrKeyDict.test_mutation_failure.<locals>.setdefault  s    r,BMM#q!r)   "Cannot mutate a literal dictionary)r  r  rd   r   r   r*  r+  r,  )r0   r  r  rl   r   r   r   illegalsr  r.  r!  s              r&   test_mutation_failure+TestLiteralStrKeyDict.test_mutation_failure  s    						" gEFDdmm,&&{3vJL 4=fc&*:*:&;<	 -, 33 -,s#   B,B/B,
B)%B,,
B;	c                 p   [         S 5       n[         S 5       nX4 Ht  nU R                  UR                  5         U R                  [        5       nU" S5        S S S 5        SnU R                  U[        WR                  5      5        S S S 5        Mv     g ! , (       d  f       NB= f! , (       d  f       M  = f)Nc                 .    SSS.nUR                  U 5      $ Nr   r$   )r   r   )r=   r   rB  s     r&   r=   +TestLiteralStrKeyDict.test_get.<locals>.get  s    $B66!9r)   c                     SSS.nX   $ r  r  r  s     r&   getitem/TestLiteralStrKeyDict.test_get.<locals>.getitem  s    $B5Lr)   r   z*Cannot get{item}() on a literal dictionary)r   r  r  rd   r   r*  r+  r,  )r0   r=   r  r  r.  r!  s         r&   test_getTestLiteralStrKeyDict.test_get  s    		 
	 
	 
	 NDdmm,&&{3vI 4Efc&*:*:&;<	 -, #33 -,s#   B&	B/B&
B#B&&
B5	c                 N    [         S 5       nU R                  U" 5       SS/5        g )Nc                  V    SSS.n U R                  5        Vs/ s H  oPM     sn$ s  snf r  )rV   )rB  r   s     r&   r'   1TestLiteralStrKeyDict.test_dict_keys.<locals>.foo 	  s*    $B!wwy)y!Ay)))s   &r   r   r-   r/   s     r&   r   $TestLiteralStrKeyDict.test_dict_keys  s,    		* 
	* 	c
+r)   c                 J    [         S 5       nU R                  U" 5       S5        g )Nc                  ,    SSS.n U R                  5       $ r  )r   rA  s    r&   r'   3TestLiteralStrKeyDict.test_dict_values.<locals>.foo		  s    $B99;r)   )r   r$   r-   r/   s     r&   r   &TestLiteralStrKeyDict.test_dict_values	  s(    		 
	 		*r)   c           	      |    [         S 5       nU R                  U" 5       SSS[        R                  " S5      445        g )Nc                  V    SS[         R                  " S5      S.n U R                  5       $ )Nr   r$   rB   )r   r   r  )rR  rp  r   rA  s    r&   r'   2TestLiteralStrKeyDict.test_dict_items.<locals>.foo	  s"    "((A-8B88:r)   )r   r   )r   r$   r  rB   )r   r   rR  rp  r/   s     r&   r   %TestLiteralStrKeyDict.test_dict_items	  s@    		 
	 	!*Jbhhm8L M	Or)   c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        [        WR                  5      nU R                  SU5        g ! , (       d  f       N6= f)Nc                      SSS.n U $ r  r  rA  s    r&   r'   3TestLiteralStrKeyDict.test_dict_return.<locals>.foo	  s    $BIr)   z#cannot convert native LiteralStrKey)r   rd   r  r+  r,  r*  )r0   r'   r.  r  s       r&   test_dict_return&TestLiteralStrKeyDict.test_dict_return	  sZ    		 
	
 y)VE * V%%&;VD	 *)r  c                    [         S 5       nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      UR                  S5      5        U R                  U" S5      UR                  S5      5        g )Nc                     U S-   S:  a  SS[         R                  " S5      S.nUS	   $ SS[         R                  " S5      S.nUS	   $ )
N   r`   r   r$   r   r   r                @CATrB   r   rs  )r   r   s     r&   r'   2TestLiteralStrKeyDict.test_dict_unify.<locals>.foo(	  sK    1uqy3RXXa[9 S6M 5rxx~>S6Mr)   r,   r$   rK  r  r  r/   s     r&   test_dict_unify%TestLiteralStrKeyDict.test_dict_unify'	  sx    		 
	 	S3'TE*S3;;s#34TCKK$56r)   c                    [         S 5       nU R                  [        5       nU" S5        S S S 5        U R                  S[	        WR
                  5      5        [         S 5       nU R                  [        5       nU" S5        S S S 5        U R                  S[	        UR
                  5      5        g ! , (       d  f       N= f! , (       d  f       NE= f)Nc                     U S-   S:  a  SS[         R                  " S5      S.nOSS[         R                  " S5      S	.nS
nSnSnSnUS   $ )Nr  r`   r   r$   )BAD_KEYr   r  r  r  r  r  r   r+   rN   r   rs  r   r   py310_defeat1py310_defeat2py310_defeat3py310_defeat4s         r&   key_mismatch?TestLiteralStrKeyDict.test_dict_not_unify.<locals>.key_mismatch8	  sR    1uqy "288A;?5rxx~>MMMMS6Mr)   r,   zCannot unify LiteralStrKeyc                     U S-   S:  a  SS[         R                  " S5      S.nOSS[         R                  " S	5      S.nS
nSnSnSnUS   $ )Nr  r`   r   r$   )r`   rN   r  r  r  r  r   r+   rN   r   rs  r  s         r&   value_type_mismatchFTestLiteralStrKeyDict.test_dict_not_unify.<locals>.value_type_mismatchJ	  sS    1uqy3RXXf-=>5rxx~>MMMMS6Mr)   r)  )r0   r  r.  r  s       r&   test_dict_not_unify)TestLiteralStrKeyDict.test_dict_not_unify6	  s    	
	 

	 {+v , 	2C8H8H4IJ	
	 

	 {+v$ , 	2C8H8H4IJ+ ,+$ ,+s   	B09	C0
B>
Cc                   ^ ^^^^ [         R                  [         R                  4[        R                  [         R                  [         R                  4[        R                  [         R
                  [         R                  4[        R                  [         R                  [         R
                  4[        R                  [         R                  [         R                  4[        R                  [         R                  [         R                  4[        R                  [         R                  [         R                  4[        R                  [         R                  [         R                  4[        R                  0nS mUR                  5        H8  u  nm[        T5      UU 4S j5       nUu  mm[        UUU4S j5       nU" 5         M:     g )Nc                     g r;   r  r_  s    r&   r  ;TestLiteralStrKeyDict.test_dict_value_coercion.<locals>.barp	  rQ  r)   c                 D   > TR                  [        U T5      5        S nU$ )Nc                     g r;   r  r_  s    r&   r)  LTestLiteralStrKeyDict.test_dict_value_coercion.<locals>.ol_bar.<locals>.implx	  s    r)   )r  r  )r   r)  	containerr0   s     r&   r  >TestLiteralStrKeyDict.test_dict_value_coercion.<locals>.ol_bart	  s     
1i 89r)   c                  8   > T" S5      T" S5      S.n T" U 5        g )Nr   r+   r[  r  )r$   r  ty1ty2s    r&   r'   ;TestLiteralStrKeyDict.test_dict_value_coercion.<locals>.foo~	  s    a&s1v.Ar)   )rR  r   r   r  r  r  r	  r  r   r   r   r   r   )	r0   pdtsr  r'   r  r  r  r  s	   `    @@@@r&   test_dict_value_coercion.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                 Z   ^ S m[        T5      S 5       n[        U4S j5       nU" 5         g )Nc                     g r;   r  r_  s    r&   r  9TestLiteralStrKeyDict.test_build_map_op_code.<locals>.bar	  rQ  r)   c                     S nU$ )Nc                     g r;   r  r_  s    r&   r)  JTestLiteralStrKeyDict.test_build_map_op_code.<locals>.ol_bar.<locals>.impl	  r%  r)   r  )r   r)  s     r&   r  <TestLiteralStrKeyDict.test_build_map_op_code.<locals>.ol_bar	  s    Kr)   c                  $   > SSSS.0n T" U 5        g )Nr   rD   string)b1b2r  )r   r  s    r&   r'   9TestLiteralStrKeyDict.test_build_map_op_code.<locals>.foo	  s    Rx01AFr)   r  r  s      @r&   test_build_map_op_code,TestLiteralStrKeyDict.test_build_map_op_code	  s;    
	 
#	 
	
 
	 
	 	r)   c                    ^ [         SS j5       m[         U4S j5       n[        R                  R                  U" 5       [        R                  " S5      S-  5        g )Nc                 .    U b  U S   S S === S-  sss& g g )Nr$   rD   r  fake_kwargss    r&   r  3TestLiteralStrKeyDict.test_dict_as_arg.<locals>.bar	  s"    &C #r)# 'r)   c                  \   > Sn SnSn[         R                  " S5      nXX#S.nT" US9  US   $ )Nr   r   r  rN   rY  r  r$   rs  )r   r   r   r$   r  r  s        r&   r'   3TestLiteralStrKeyDict.test_dict_as_arg.<locals>.foo	  s:    AAAAa0AAS6Mr)   rN   rD   r;   )r   rR  testingassert_allcloseonesr0   r'   r  s     @r&   test_dict_as_arg&TestLiteralStrKeyDict.test_dict_as_arg	  sM    		* 
	*
 
	 
	 	

""35"''!*r/:r)   c                 f    [         S 5       nU R                  U" 5       UR                  5       5        g )Nc                  ,    SS S/0n U S   S   " S5      $ )Nr  c                     SU -  $ )Nr+   r  r  s    r&   r
  \TestLiteralStrKeyDict.test_dict_with_single_literallist_value.<locals>.foo.<locals>.<lambda>	  s    Qr)   r  r   rB   r  r  s    r&   r'   JTestLiteralStrKeyDict.test_dict_with_single_literallist_value.<locals>.foo	  s#    ,-AS6!9Q<r)   r   r   r   r/   s     r&   'test_dict_with_single_literallist_value=TestLiteralStrKeyDict.test_dict_with_single_literallist_value	  s.    		  
	  	s{{}5r)   c                 b   ^ ^ S m[        T5      U 4S j5       n[        U4S j5       nU" 5         g )Nc                     g r;   r  r_  s    r&   r  8TestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.bar	  rQ  r)   c                    > TR                  [        U [        R                  5      5        TR	                  [        U [        R
                  5      5        S $ )Nc                     g)N.r  r_  s    r&   r
  MTestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.ol_bar.<locals>.<lambda>	  s    Sr)   )r  r  r   	BaseTupler  r	  )r   r0   s    r&   r  ;TestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.ol_bar	  s;    Z5??;<OOJq%*A*ABC  r)   c                      > SSS.n T" U 5        g )Nr   r   r[  r  )r$   r  s    r&   r'   8TestLiteralStrKeyDict.test_tuple_not_in_mro.<locals>.foo	  s    c"AFr)   r  r  s   `  @r&   test_tuple_not_in_mro+TestLiteralStrKeyDict.test_tuple_not_in_mro	  s;    	 
#	! 
	!
 
	 
	 	r)   c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  @    SS[         R                  " S5      S.n U S   $ )Nr   r$   r`   )not_ar   r  r   rs  r  s    r&   r'   =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_dict0TestLiteralStrKeyDict.test_const_key_not_in_dict	  sU    		 
	 {+vE , 	/V5E5E1FG ,+rE  c                     [         S 5       nU R                  U" 5       UR                  5       5        [         S 5       nU R                  U" 5       UR                  5       5        g )Nc                  J    [         R                  " S5      SS.n [        U 5      $ )NrB   r`   )01rR  r  r5   r   s    r&   r'   <TestLiteralStrKeyDict.test_uncommon_identifiers.<locals>.foo	  s    ggajq)Aq6Mr)   c                  J    [         R                  " S5      SS.n [        U 5      $ )NrB   r`   )+zx--r%  r   s    r&   r  <TestLiteralStrKeyDict.test_uncommon_identifiers.<locals>.bar	  s    ggaj+Aq6Mr)   r  r  s      r&   test_uncommon_identifiers/TestLiteralStrKeyDict.test_uncommon_identifiers	  s^    
 
	 
	 	s{{}5 
	 
	 	s{{}5r)   c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  8    SSSS.n U R                  SS05        U $ )Nr+   r`   r   rW  r   rN   )r  )r  s    r&   r'   4TestLiteralStrKeyDict.test_update_error.<locals>.foo	  s+     B
 IIsAhIr)   r  r)  r-  s      r&   test_update_error'TestLiteralStrKeyDict.test_update_error	  sZ     
	 
	 {+vE , 	0  !	
 ,+rE  r  N)r  r  r  r  r  rD  rL  r[  rh  ru  r  r  r  r  r   r   r   r  r  r  r  r  r  r  r  r  r*  r/  r  r  r)   r&   r>  r>  5  s    L.$2.20>2!=F=&,+OE7$KL'R*;&6&
H6(
r)   r>  __main__)5r  r  rH  numpyrR  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  rG  r{  r  r  r  r!  r  r  objectr  r  r  r  r  r>  r  mainr  r)   r&   <module>r=     sb      ! 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MMO r)   