
    /hhh                         S SK r S SKrS SKrS SKJr  S r " S S\R                  5      r\S:X  a  \R                  " 5         gg)    N)defaultdictc                      [         $ N)list     >/opt/python-3.13.8/usr/lib/python3.13/test/test_defaultdict.pyfoobarr
   	   s    Kr   c                   V    \ 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)TestDefaultDict   c                 L   [        5       nU R                  UR                  S 5        [        Ul        US   R	                  S5        U R                  USS/05        US   R	                  S5        U R                  USSS/05        US     US     U R                  USS// / S.5        U R                  US   US   s=L=(       a    US   LOs  5        [        [        SSS	9nU R                  UR                  [        5        U R                  USSS	.5        U R                  US
   S5        U R                  US   S5        U R                  US   / 5        U R                  S
U5        U R                  S
UR                  5       5        U R                  SU5        U R                  SUR                  5       5        U R                  SU5        U R                  SUR                  5       5        U R                  SU5        U R                  SUR                  5       5        S Ul        U R                  UR                  S 5         US     U R                  S5        U R                  [        [         S5        g ! [         a&  nU R                  UR                  S5         S nANGS nAff = f)Nr   *            )r   r   r         )foobarr   r      zd2[15] didn't raise KeyError)r   )r   assertEqualdefault_factoryr   append
assertTrueassertInkeysassertNotInfailKeyErrorargsassertRaises	TypeError)selfd1d2errs       r	   
test_basicTestDefaultDict.test_basic   s8   ]++T2!
2bb2$Z(
2bb2r(^,
2
22r(;<2bf::BrF:;1!,++T2Qq12EA&EA&B$eR eRWWY'eR eRWWY'b"b"'')$R RWWY'!++T2	6rF II45)[!4	  	.SXXu--	.s   I3 3
J#=JJ#c                     [        5       nU R                  [        UR                  S5        [        Ul        U R                  UR                  S5      / 5        g )Nr   )r   r"   r    __missing__r   r   r   )r$   r%   s     r	   test_missingTestDefaultDict.test_missing2   s@    ](BNNB7!+R0r   c                 Z   [        5       nU R                  UR                  S 5        U R                  [        U5      S5        U R                  [	        [        U5      5      U5        SUS'   U R                  [        U5      S5        [        [
        5      nU R                  UR                  [
        5        SUS'   U R                  [        U5      S5        S n[        U5      nU R                  UR                  UL 5        US	     U R                  [        U5      S
[        U5      -  5        g )Nzdefaultdict(None, {}))      zdefaultdict(None, {11: 41})r   r   z$defaultdict(<class 'int'>, {12: 42})c                      g)N+   r   r   r   r	   r   &TestDefaultDict.test_repr.<locals>.fooC   s    "r   r   zdefaultdict(%s, {13: 43}))r   r   r   reprevalintr   )r$   r%   r&   r   d3s        r	   	test_reprTestDefaultDict.test_repr8   s    ]++T2b#:;d2h,2b#@A++S12b#IJ**c12
2b#>c#JKr   c                    [        5       nUR                  5       nU R                  [        U5      [         5        U R                  UR                  S 5        U R                  U0 5        [
        Ul        UR                  5       nU R                  [        U5      [         5        U R                  UR                  [
        5        U R                  U0 5        US     UR                  5       nU R                  [        U5      [         5        U R                  UR                  [
        5        U R                  US/ 05        US     U R                  U/ / S.5        [        5       nSUS'   UR                  5       nU R                  US   S5        g )Nr   r   )r   r   a)r   copyr   typer   r   )r$   r%   r&   r7   d4des          r	   	test_copyTestDefaultDict.test_copyI   s8   ]WWYb;/++T2R !WWYb;/++T2R 
2WWYb;/++T2b"X&
2""-. M#FFH3$r   c                 Z   [        [        SS05      n[        R                  " U5      nU R                  UR                  [        5        U R                  X!5        [
        Ul        [        R                  " U5      nU R                  UR                  [
        5        U R                  X!5        g Nr   )r   r
   r<   r   r   r   r$   r%   r&   s      r	   test_shallow_copy!TestDefaultDict.test_shallow_copyb   s|    !Q(YYr]++V4 !YYr]++T2 r   c                    [        [        SS/05      n[        R                  " U5      nU R	                  UR
                  [        5        U R	                  X!5        U R                  US   US   L5        [        Ul        [        R                  " U5      nU R	                  UR
                  [        5        U R	                  X!5        g rD   )r   r
   r<   deepcopyr   r   r   r   rE   s      r	   test_deep_copyTestDefaultDict.test_deep_copyl   s    !aS*]]2++V4 1RU*+!]]2++T2 r   c                     [        5       n US     U R                  S5        g ! [         a)  nU R                  UR                  S   S5         S nAg S nAff = f)N)r   zexpected KeyErrorr   )r   r   r    r   r!   )r$   r%   r'   s      r	   test_keyerror_without_factory-TestDefaultDict.test_keyerror_without_factoryw   sQ    ]	+tH II)*  	0SXXa[$//	0s   # 
AAAc                 f     " S S[         5      nU" 5       nU R                  [        U5      S5        g )Nc                        \ rS rSrS rS rSrg)0TestDefaultDict.test_recursive_repr.<locals>.sub   c                 &    U R                   U l        g r   )_factoryr   r$   s    r	   __init__9TestDefaultDict.test_recursive_repr.<locals>.sub.__init__   s    '+}}$r   c                     / $ r   r   rU   s    r	   rT   9TestDefaultDict.test_recursive_repr.<locals>.sub._factory   s    	r   )r   N)__name__
__module____qualname____firstlineno__rV   rT   __static_attributes__r   r   r	   subrQ      s    5r   r_   zBsub\(<bound method .*sub\._factory of sub\(\.\.\., \{\}\)>, \{\}\))r   assertRegexr4   )r$   r_   r?   s      r	   test_recursive_repr#TestDefaultDict.test_recursive_repr   s0    	+ 	
 Ea/	0r   c                 :    U R                  [        [        0 5        g r   )r"   r#   r   rU   s    r	   test_callable_arg!TestDefaultDict.test_callable_arg   s    )["5r   c                     [        [        5      nUS     [        [        R                  S-   5       H@  n[        R
                  " X5      n[        R                  " U5      nU R                  X5        MB     g rD   )r   r6   rangepickleHIGHEST_PROTOCOLdumpsloadsr   )r$   r?   protosos        r	   test_picklingTestDefaultDict.test_pickling   sV    	!622Q67EQ&AQAQ" 8r   c                    [        [        SSS.5      n[        [        SSS.5      nX-  nU R                  UR                  [        5        U R                  USSSS.5        U R                  [        U5      / SQ5        X!-  nU R                  UR                  [        5        U R                  USSSS.5        U R                  [        U5      / SQ5        U[        U5      -  nU R                  UR                  [        5        U R                  USSSS.5        U R                  [        U5      / SQ5        [        U5      U-  nU R                  UR                  [        5        U R                  USSSS.5        U R                  [        U5      / SQ5        U R                  [        5         U[        UR                  5       5      -    S S S 5        U R                  [        5         [        UR                  5       5      U-    S S S 5        U[        UR                  5       5      -  nU R                  UR                  [        5        U R                  USSSS.5        U R                  [        U5      / SQ5        U R                  [        5         US -  nS S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)	Nr   r   )r   r   zeroone)r   r   )r   r   r   )r   r   r   )r   r6   strassertIsr   assertDictEqualr   r   dictr"   r#   items)r$   irm   i_ss_ii_dsds_is          r	   
test_unionTestDefaultDict.test_union   s   q\*E23ec))3/Sef"=>cI.ec))3/Sfq"9:cI.47{d**C0Tuv#>?dY/Aw{d**C0Tv!#:;dY/y)QWWY *y)Oa * 	
T!'')_a''-QEaF ;<a),y)IA *) *))) *)s$   ,J&J/K 
J,/
J= 
Kr   N)rZ   r[   r\   r]   r(   r,   r8   rA   rF   rJ   rM   ra   rd   ro   r~   r^   r   r   r	   r   r      s;    "5H1L"%2!	!+
06#$r   r   __main__)
r<   rh   unittestcollectionsr   r
   TestCaser   rZ   mainr   r   r	   <module>r      sE       #oh'' ob zMMO r   