
    <e              	          d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlZd dl	Z	d dl
Z
d dlZd dlmZ d dlmZmZ d dlmZ  ej        ddg          Z ej        ddg	          Zej        d
             Z G d d          Z G d dee
j                  Z G d de
j                  Zd                                D ]Z eee eee                     [ e
j         ed           G d dee
j                              Z! G d de          Z" G d de!          Z# G d de
j                  Z$ e
j         ed           G d de
j                              Z% G d dej&                  Z' e
j         ed           G d d ej&                              Z( G d! d"ej&                  Z) e
j         ed           G d# d$ej&                              Z* G d% d&          Z+ G d' d(          Z, G d) d*e,e
j                  Z- e
j         ed           G d+ d,e,e
j                              Z.e/d-k    r e
j0                     dS dS ).    N)	randrangeshuffle)MutableMapping)mapping_testssupport)import_helpercollections_collections)blocked)freshc              #      K   t           j        |          }|t           j        | <   	 d V  |t           j        | <   d S # |t           j        | <   w xY wN)sysmodules)namereplacementoriginal_modules      -/usr/lib/python3.11/test/test_ordered_dict.pyreplaced_moduler      sV      k$'O#CK,+DOD++++s	   : Ac                   N   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2e3j4        d1             Z5d2S )3OrderedDictTestsc                 2   | j         }|                     t                    5   |ddgd            d d d            n# 1 swxY w Y   g d}|                     t	           |t          |                                                              |           |                     t	           |di t          |                                                    |           |                     t           ||                                                    |           |                     t           |g ddd                                                    |           |                     t           |d	                                                    d
g           |                     t           |d                                                    dg           |                     t          |d           |                     t          |dd           |                     t          |j                    |g d          }|                    ddgdd           |                     t          |                                          g d           d S )Na   b   r   r   c   d   e   r   r   )r!   	   r#   r"   r(   r!   r'   *   self)r.   r,   other)r0   r,    r   r   r    )r$   ,   )r'   7   r&   f      r%   gr$   r   r   r    r#   r&   r5   )r:   r8   )	OrderedDictassertRaises	TypeErrorassertEqualsorteddictitemslist__init__)r.   r<   pairsr$   s       r   	test_initzOrderedDictTests.test_init"   s   &y)) 	4 	4K8,d333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4BBBDKK 8 8 > > @ @AA5III : :d5kk : : @ @ B BCCUKKKkk%006688995AAAkk*R*R*R,-4 4 449EGG= =>C	E 	E 	E 	kkr22288::;;l^LLLkk33399;;<<}oNNN)["555)["b999)[%9::: KLLLMM	

Hh'1
222aggiiRRR	T 	T 	T 	T 	T   =AAc                     | j         }g d}t          |            ||          } |di |}|                     t          |                                          |           d S )Nr;   r1   )r<   r   r?   rC   rB   )r.   r<   rB   argdictr$   s        r   test_468zOrderedDictTests.test_468:   sn    &VVV+e$$K""'""aggii%00000    c                 @   | j         }|                     t                    5   |                                ddgd            d d d            n# 1 swxY w Y   g d} |            }|                    t	          |                     |                     t          |                                          |            |            } |j        di t	          |           |                     t          |                                          |            |            }|                    |           |                     t          |                                          |            |            }|                    g ddd           |                     t          |                                          |            |            }|                    d	           |                     t          |                                          d
g            |            }|                    i            |                     t          |                                          di fg            |            }|                    dddd           |                     t          t          |                                                    g d            |g d          }|                    ddgdd           |                     t          |                                          g d           |                     t           |            j        d           |                     t           |            j        dd           |                     t          |j                   |                     t           |            j        d           |                     t           |            j        dd           |                     t          |j                   d S )Nr   r   r   r)   r"   r(   r+      r-   )r.   rM   r/   r0   r7   r8      )redbluer0   r.   ))rP   r7   )r0   r8   )rO   r(   )r.   rN   r2   r&   r5   r%   r9   r;   r,   r1   )	r<   r=   r>   updaterA   r?   r@   rB   rC   )r.   r<   rE   odr$   s        r   test_updatezOrderedDictTests.test_updateB   s   &y)) 	= 	=KMM  (H!5t<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=BBB[]]
		$u++

++U333[]]	  DKK   

++U333[]]
		%bhhjj))5111[]]
		:::a1	EEEbhhjj))5111 []]
		r	bhhjj))L>:::[]]
			bhhjj))WbM?;;;[]]
		aaqq	111RXXZZ 0 011MMM	O 	O 	O
 KLLLMM	(H%a000aggiiRRR	T 	T 	T 	)[[]]%92>>>)[[]]%92rBBB)[%7888)[[]]%92>>>)[[]]%92rBBB)[%788888s   !AAAc                     g  G fdd          }|                       |                       |                     dg           d S )Nc                   $    e Zd Z fdZ fdZdS ).OrderedDictTests.test_init_calls.<locals>.Spamc                 2                         d           dS )Nkeysr1   appendr.   callss    r   rX   z3OrderedDictTests.test_init_calls.<locals>.Spam.keyss   s    V$$$rrK   c                 2                         d           dS )NrB   r1   rY   r[   s    r   rB   z4OrderedDictTests.test_init_calls.<locals>.Spam.itemsv   s    W%%%rrK   N)__name__
__module____qualname__rX   rB   )r\   s   r   SpamrV   r   sG                  rK   ra   rX   )r<   r?   )r.   ra   r\   s     @r   test_init_callsz OrderedDictTests.test_init_callsp   st    	 	 	 	 	 	 	 	 	 	 	   )))))rK   c                 N    | j         } G d d|          } |            }d|d<   d S )Nc                       e Zd Zd ZdS )3OrderedDictTests.test_overridden_init.<locals>.ODNIc                      d S r   r1   )argskwargss     r   rD   z<OrderedDictTests.test_overridden_init.<locals>.ODNI.__init__   s    rK   N)r^   r_   r`   rD   r1   rK   r   ODNIre      s#            rK   ri   r   r   r<   )r.   r<   ri   rR   s       r   test_overridden_initz%OrderedDictTests.test_overridden_init}   sP     &	 	 	 	 	; 	 	 	 TVV3rK   c                    | j         }|                    d          }|                     t          |                                          d dD                        |                    dd           }|                     t          |                                          d dD                        |                    dd          }|                     t          |                                          d dD                        d S )Nabcc                     g | ]}|d fS r   r1   .0r!   s     r   
<listcomp>z2OrderedDictTests.test_fromkeys.<locals>.<listcomp>       +E+E+E!QI+E+E+ErK   valuec                     g | ]}|d fS r   r1   ro   s     r   rq   z2OrderedDictTests.test_fromkeys.<locals>.<listcomp>   rr   rK   r   c                     g | ]}|d fS r   r1   ro   s     r   rq   z2OrderedDictTests.test_fromkeys.<locals>.<listcomp>   s    +B+B+BqQF+B+B+BrK   )r<   fromkeysr?   rC   rB   r.   r<   rR   s      r   test_fromkeyszOrderedDictTests.test_fromkeys   s    &!!%((bhhjj))+E+Eu+E+E+EFFF!!%t!44bhhjj))+E+Eu+E+E+EFFF!!%q!11bhhjj))+B+BE+B+B+BCCCCCrK   c                     | j         }|                      |            t                     |                     t	          |t                               d S r   )r<   assertIsInstancer   
assertTrue
issubclass)r.   r<   s     r   test_abczOrderedDictTests.test_abc   sH    &kkmm^<<<
;??@@@@@rK   c                    | j         }g d}t          |            ||          }|                     t          |          t          |                     |                                 |                     t          |          d           d S N)r!   r   r   )r   r"   r#   r&   r5   r   )r<   r   r?   lenclearr.   r<   rE   rR   s       r   
test_clearzOrderedDictTests.test_clear   s    &LLL[R#e**---



R!$$$$$rK   c                 ^   | j         }g d} ||          }|d= |                     d|           |                     t                    5  |d= d d d            n# 1 swxY w Y   |                     t          |                                          |d d         |dd          z              d S )Nr   r   r   r"   )r<   assertNotInr=   KeyErrorr?   rC   rB   r   s       r   test_delitemzOrderedDictTests.test_delitem   s    &LLL[sGb!!!x(( 	 	3	 	 	 	 	 	 	 	 	 	 	 	 	 	 	bhhjj))5!9uQRRy+@AAAAAs   
AA!Ac                     | j         } |g d          }d|d<   d|d<   |                     t          |                                          g d           d S )N)r$   r   r   r    r   r%   r&   
   r!      r6   )r   r   )r!   r   r   r&   )r6   r   r<   r?   rC   rB   ry   s      r   test_setitemzOrderedDictTests.test_setitem   st    &[KKKLL33bhhjj))WWW	Y 	Y 	Y 	Y 	YrK   c                    | j         }g d}t          |            ||          }|                     t          |          d |D                        |                     t          |                                          d |D                        |                     t          |                                          d |D                        |                     t          |                                          |           |                     t          t          |                    d t          |          D                        |                     t          t          |                                                    d t          |          D                        |                     t          t          |                                                    d t          |          D                        |                     t          t          |                                                    t          t          |                               d S )Nr   c                     g | ]
}|d          S rw   r1   rp   ts     r   rq   z3OrderedDictTests.test_iterators.<locals>.<listcomp>   s    #8#8#8QAaD#8#8#8rK   c                     g | ]
}|d          S rw   r1   r   s     r   rq   z3OrderedDictTests.test_iterators.<locals>.<listcomp>   s    *?*?*?A1Q4*?*?*?rK   c                     g | ]
}|d          S r   r1   r   s     r   rq   z3OrderedDictTests.test_iterators.<locals>.<listcomp>       ,A,A,AaQqT,A,A,ArK   c                     g | ]
}|d          S rw   r1   r   s     r   rq   z3OrderedDictTests.test_iterators.<locals>.<listcomp>       8881!A$888rK   c                     g | ]
}|d          S rw   r1   r   s     r   rq   z3OrderedDictTests.test_iterators.<locals>.<listcomp>   r   rK   c                     g | ]
}|d          S r   r1   r   s     r   rq   z3OrderedDictTests.test_iterators.<locals>.<listcomp>   r   rK   )r<   r   r?   rC   rX   valuesrB   reversedr   s       r   test_iteratorszOrderedDictTests.test_iterators   s   &LLL[b#8#8%#8#8#8999bggii*?*?*?*?*?@@@biikk**,A,A5,A,A,ABBBbhhjj))5111hrll++88888	: 	: 	:hrwwyy112288888	: 	: 	:hryy{{334488888	: 	: 	:hrxxzz2233T(5//5J5JKKKKKrK   c                    | j         }|                    d          }t          |          }t          |          }||= |                     t
                    5  t          |           d d d            d S # 1 swxY w Y   d S )Nrm   )r<   rx   iternextr=   	Exception)r.   r<   rR   itkeys        r   %test_detect_deletion_during_iterationz6OrderedDictTests.test_detect_deletion_during_iteration   s    &!!%(("XX2hhsGy)) 	 	 HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A55A9<A9c           	         | j         }|                     t                    5   |ddgd            d d d            n# 1 swxY w Y   g d} ||          }|                     t	          |          d |D                        |                     t	          |                                          d |D                        |                     t	          |                                          d |D                        |                     t	          |                                          |           |                     t	          t          |                    t	          d t          |          D                                  d S )Nr   r   r   c                     g | ]
}|d          S rw   r1   r   s     r   rq   z:OrderedDictTests.test_sorted_iterators.<locals>.<listcomp>   s    %:%:%:qad%:%:%:rK   c                     g | ]
}|d          S rw   r1   r   s     r   rq   z:OrderedDictTests.test_sorted_iterators.<locals>.<listcomp>   r   rK   c                     g | ]
}|d          S r   r1   r   s     r   rq   z:OrderedDictTests.test_sorted_iterators.<locals>.<listcomp>   s    .C.C.Cqt.C.C.CrK   c                     g | ]
}|d          S rw   r1   r   s     r   rq   z:OrderedDictTests.test_sorted_iterators.<locals>.<listcomp>   s     ? ? ?!1 ? ? ?rK   )	r<   r=   r>   r?   r@   rX   r   rB   r   r   s       r   test_sorted_iteratorsz&OrderedDictTests.test_sorted_iterators   s   &y)) 	4 	4K8,d333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4BBB[%:%:E%:%:%:;;;		**,A,A5,A,A,ABBB		,,.C.CU.C.C.CDDD

++U333-- ? ?x ? ? ?@@	B 	B 	B 	B 	BrG   c                    | j         } |            }g }|                     t          |          |           |                     t          |                                          |           |                     t          |                                          |           |                     t          |                                          |           |                     t          t          |                    |           |                     t          t          |                                                    |           |                     t          t          |                                                    |           |                     t          t          |                                                    |           d S r   )r<   r?   rC   rX   r   rB   r   )r.   r<   rR   emptys       r   test_iterators_emptyz%OrderedDictTests.test_iterators_empty   sZ   &[]]b5)))bggii%000biikk**E222bhhjj))5111hrll++U333hrwwyy1122E:::hryy{{3344e<<<hrxxzz2233U;;;;;rK   c                    | j         }g d}t          |            ||          }|r<|                     |                                |                                           |<|                     t                    5  |                                 d d d            n# 1 swxY w Y   |                     t          |          d           d S r   )r<   r   r?   popitempopr=   r   r   r   s       r   test_popitemzOrderedDictTests.test_popitem   s    &LLL[ 	8RZZ\\599;;777  	8x(( 	 	JJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	R!$$$$$s   >BB#&B#c                 F   | j         }d t          d          D             } ||          }t          d          D ]}|                    d           |                    d           |                    d           |                     t	          |          d           d S )Nc                     g | ]}||fS r1   r1   rp   is     r   rq   z6OrderedDictTests.test_popitem_last.<locals>.<listcomp>   s    +++A!Q+++rK      rN   Tlastr   )r<   ranger   r?   r   )r.   r<   rE   objr   s        r   test_popitem_lastz"OrderedDictTests.test_popitem_last   s    &++r+++k%  q 	 	AKKDS2&&&&&rK   c                 4   | j         }g d}t          |            ||          }t          |           |rB|                                \  }}|                     |                    |          |           |B|                     t
                    5  |                    d           d d d            n# 1 swxY w Y   |                     t          |          d           |                     |                    |d          d            G d d|          } |d          }|                     |                    d	d
          d
           |                     |                    dd          d           |                     |                    dd          d           |                     |                    dd          d           |                     t
                    5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   xyzr   i90  c                       e Zd Zd ZdS )*OrderedDictTests.test_pop.<locals>.Missingc                     dS Nr   r1   r.   r   s     r   __missing__z6OrderedDictTests.test_pop.<locals>.Missing.__missing__      qrK   Nr^   r_   r`   r   r1   rK   r   Missingr     #            rK   r   r   r   r   r(   r   r7   default)r<   r   r   r?   r=   r   r   )r.   r<   rE   rR   kvr   ms           r   test_popzOrderedDictTests.test_pop   s   &LLL[ 	+99;;DAqRVVAYY***  	+ x(( 	 	FF5MMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	R!$$$5))5111	 	 	 	 	k 	 	 	 GaLLLsA***sA***sA***sA..222x(( 	 	EE#JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   B55B9<B9*HHHc                    | j         }g d}t          |            ||          } ||          }|                     ||           |dd          |d d         z   } ||          }|                     ||           |                     |t	          |                     |                     t	          |          |           |                     | ||d d                              d S )Nr   r   )r<   r   r?   assertNotEqualrA   )r.   r<   rE   od1od2s        r   test_equalityzOrderedDictTests.test_equality  s    &LLLk%  k%  c"""abb	E"1"I%k%  C%%%d3ii(((cC(((CU3B3Z!8!899999rK   c           	      
     j         }g d} ||          dg_        dg_         fd} |                                           t          j                  } ||                                |j        j                                        |j        j                                        t          |d                     t          j                  } ||                                |j        j                    	                    |j        j                                        |j        j                    	                    |j        j                                        t          |d                     t          d j                  5  t          t          j        dz             D ]}                     |          5  t          j        t          j        |                    } ||                                |j        j                                        |j        j                                        t          |d                     d d d            n# 1 swxY w Y   	 d d d            n# 1 swxY w Y    |t%          t'                                          |            }|                                ||            | |                     d S )	Nr   xzc                    d| d}                     | |                               |                                t          |                                           t                                                                                   t	          |           t	                                                   t          |           t                               d S )Nz
copy: z
od: )assertIsNotr?   rC   rB   r   type)dupmsgrR   r.   s     r   checkz,OrderedDictTests.test_copying.<locals>.check/  s     *-##rr2CS"c***S"%%%T#))++..RXXZZ0@0@AAASXXs2ww///T#YYR11111rK   yr	   r   )proto)r<   r   r   copyassertIsassertFalsehasattrdeepcopyr?   r   r   moduler   pickleHIGHEST_PROTOCOLsubTestloadsdumpsevalreprrQ   )r.   r<   rE   r   r   r   update_testrR   s   `      @r   test_copyingzOrderedDictTests.test_copying'  sW   & MLL[uu	2 	2 	2 	2 	2 	2 	bggiiimmc


ceRT"""ceRT"""c**+++mBc


%%%%%%%%%%%%c**+++]DK88 	8 	8v6:;; 8 8\\\.. 8 8 ,v|B'>'>??CE#JJJ$$SUBD111$$SUBD111$$WS#%6%67778 8 8 8 8 8 8 8 8 8 8 8 8 8 88	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	d488nn!kmm2kkk"oos7   %5JBI<0J<J  JJ JJJc                     | j         }g d} ||          }|                     t          d |                                d         D                                  d S )Nr   c              3   F   K   | ]}t          |          t          k    V  d S r   )r   rC   )rp   pairs     r   	<genexpr>z5OrderedDictTests.test_yaml_linkage.<locals>.<genexpr>Z  s-      LLDJJ,LLLLLLrK   r   )r<   r}   all
__reduce__r   s       r   test_yaml_linkagez"OrderedDictTests.test_yaml_linkageR  se    & MLL[ 	LL9KLLLLLMMMMMrK   c                 |   | j         }g d} ||          }|                     |j        t                     |                     |                                d                    d|_        |                     |j        d         d           |                     |                                d         ddi           d S )Nr   r   r   r   )r<   r|   __dict__rA   assertIsNoner   r   r?   r   s       r   test_reduce_not_too_fatz(OrderedDictTests.test_reduce_not_too_fat\  s    &LLL[bk4000"--//!,---S)2...+c2Y77777rK   c                    | j         } |            }||d<   t          d| j                  5  t          dt          j        dz             D ]}t	          j        t	          j        ||                    }|                     ||           | 	                    t          |                                          dg           |                     |d         |           	 d d d            d S # 1 swxY w Y   d S )Nr   r	   r   )r<   r   r   r   r   r   r   r   r   r?   rC   rX   r   )r.   r<   rR   r   r   s        r   test_pickle_recursivez&OrderedDictTests.test_pickle_recursiveg  s0   &[]]1 ]DK88 	+ 	+r6#:Q#>?? + +l6<E#:#:;;  b)))  chhjj!1!1A3777c!fc****	+	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   B0C**C.1C.c                 *   | j         } |g d          }|                     t          |          d           |                     t          t          |                    |           |                     t           |                      d           d S )Nr   zIOrderedDict([('c', 1), ('b', 2), ('a', 3), ('d', 4), ('e', 5), ('f', 6)])zOrderedDict())r<   r?   r   r   ry   s      r   	test_reprzOrderedDictTests.test_reprt  s    &[UUUVVbW	Y 	Y 	Yd2hh,,,kkmm,,o>>>>>rK   c                     | j         }|                    d          }||d<   |                     t          |          d           d S )Nrm   r   z@OrderedDict([('a', None), ('b', None), ('c', None), ('x', ...)]))r<   rx   r?   r   ry   s      r   test_repr_recursivez$OrderedDictTests.test_repr_recursive|  sX    &!!%((3bN	P 	P 	P 	P 	PrK   c                 ,   | j         } |            }|                                |d<   t          |          }|                     |t                     |                                |d<   t          |          }|                     |t                     d S )Nr,   )r<   r   r   r|   strrB   )r.   r<   rR   rs       r   test_repr_recursive_valuesz+OrderedDictTests.test_repr_recursive_values  s    &[]]2HH 	a%%%2HHa%%%%%rK   c                    | j         }g d}t          |            ||          }t          |                                          }|                     |                    dd          d           |                     t          |                                          |           |                     |                    dd          d           |                     t          |                                          d         d           |                     |                    dd	
          d	            G d d|          }|                      |                                dd	          d	           d S )Nr   r   r   r"   r   r   )r   r   r:   r*   r   c                       e Zd Zd ZdS )1OrderedDictTests.test_setdefault.<locals>.Missingc                     dS r   r1   r   s     r   r   z=OrderedDictTests.test_setdefault.<locals>.Missing.__missing__  r   rK   Nr   r1   rK   r   r   r	    r   rK   r   r(   )r<   r   rC   rB   r?   
setdefault)r.   r<   rE   rR   
pair_orderr   s         r   test_setdefaultz OrderedDictTests.test_setdefault  sa   &LLL["((**%%
sB//333bhhjj)):666sB//444bhhjj))"-y999sA66:::	 	 	 	 	k 	 	 	 	--a33Q77777rK   c                 &   | j         } |            }d|d<   d|d<   |d= |                     t          |                                          dg           d|d<   |                     t          |                                          ddg           d S )Nr   r   r   r   r   r   r   ry   s      r   test_reinsertzOrderedDictTests.test_reinsert  s    & []]33sGbhhjj))H:6663bhhjj))Hh+?@@@@@rK   c                 x   | j         }|                    d          }|                     t          |          t          d                     |                    d           |                     t          |          t          d                     |                    dd           |                     t          |          t          d                     |                    dd           |                     t          |          t          d                     |                    d           |                     t          |          t          d                     |                    dd           |                     t          |          t          d	                     |                     t                    5  |                    d
           d d d            n# 1 swxY w Y   |                     t                    5  |                    d
d           d d d            d S # 1 swxY w Y   d S )Nabcder!   abdecFcabder'   r   r   bcader   )r<   rx   r?   rC   move_to_endr=   r   ry   s      r   test_move_to_endz!OrderedDictTests.test_move_to_end  sR   &!!'**b4==111
sb4==111
sE"""b4==111
sE"""b4==111
sb4==111
s'''b4==111x(( 	  	 NN3	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 x(( 	' 	'NN3&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's$   G&&G*-G*H//H36H3c                    | j         }|                    d          }|                    dd           |                     t	          |          t	          d                     |                    dd           |                     t	          |          t	          d                     |                    d          }|                    d           |                     t	          |          t	          d                     |                    d           |                     t	          |          t	          d	                     d S )
Nrm   r!   Fr   cabr   acbbcabac)r<   rx   r  r?   rC   ry   s      r   test_move_to_end_issue25406z,OrderedDictTests.test_move_to_end_issue25406  s   &!!%((
s'''b4;;///
s'''b4;;///!!%((
sb4;;///
sb4;;/////rK   c                     | j         }t          d          } |di |}|                     t          j        |          t          j        |                     d S )Nr   r   r1   )r<   rA   assertGreaterr   	getsizeof)r.   r<   r$   rR   s       r   test_sizeofzOrderedDictTests.test_sizeof  s\    &1III[13=,,cmA.>.>?????rK   c                    | j         }d                                }|                    |          }|                     |                                t          |                                                     |                     |                                t          |                                                     d S )Nz@the quick brown fox jumped over a lazy dog yesterday before dawn)r<   splitrx   r?   rX   rA   rB   )r.   r<   srR   s       r   
test_viewszOrderedDictTests.test_views  s    &NTTVV!!!$$DHHMMOO444T"XX^^%5%566666rK   c                     | j         } G d d|          }g d}|                     t           ||                                                    |           d S )Nc                       e Zd Zd ZdS )3OrderedDictTests.test_override_update.<locals>.MyODc                     t                      r   )r   )r.   rg   kwdss      r   rQ   z:OrderedDictTests.test_override_update.<locals>.MyOD.update  s    kk!rK   N)r^   r_   r`   rQ   r1   rK   r   MyODr'    s#        " " " " "rK   r*  )r   r    r   r   )r.   r<   r*  rB   s       r   test_override_updatez%OrderedDictTests.test_override_update  sy    &	" 	" 	" 	" 	"; 	" 	" 	" /..dd5kk//1122E:::::rK   c                     | j         }d }t          d          D ]} |d |fg          }~t          j                     d S )Ni  )r<   r   r   
gc_collect)r.   r<   r   _s       r   test_highly_nestedz#OrderedDictTests.test_highly_nested  sU     &t 	- 	-A+c{m,,CCrK   c           
      .   | j         }g  G fdd|          }d }t          d          D ]} |d |fg          }||_        ~t          j                     |                     t          t          t          d                                         d S )Nc                       e Zd Z fdZdS ):OrderedDictTests.test_highly_nested_subclass.<locals>.MyODc                 <                         | j                   d S r   )rZ   r   )r.   deleteds    r   __del__zBOrderedDictTests.test_highly_nested_subclass.<locals>.MyOD.__del__  s    tv&&&&&rK   N)r^   r_   r`   r5  )r4  s   r   r*  r2    s.        ' ' ' ' ' ' 'rK   r*  d   )r<   r   r   r   r-  r?   rC   r   )r.   r<   r*  r   r   r4  s        @r   test_highly_nested_subclassz,OrderedDictTests.test_highly_nested_subclass  s     &	' 	' 	' 	' 	' 	' 	'; 	' 	' 	' s 	 	A$s}%%CCEE$xc

';';"<"<=====rK   c                 F   | j         } G d d          }d }d} ||          } ||          } | ||                    } |            }d||<   d||<   d||<   d|d<   ||= ||= |                     t          |                                          |dfdg           d S )Nc                   &    e Zd Zd Zd Zd Zd ZdS )9OrderedDictTests.test_delitem_hash_collision.<locals>.Keyc                 V    || _         t          t          |                     | _        d S r   )_hashr  idrt   )r.   hashs     r   rD   zBOrderedDictTests.test_delitem_hash_collision.<locals>.Key.__init__  s     !
 D]]


rK   c                     | j         S r   )r<  r-   s    r   __hash__zBOrderedDictTests.test_delitem_hash_collision.<locals>.Key.__hash__  
    z!rK   c                 F    	 | j         |j         k    S # t          $ r Y dS w xY w)NF)rt   AttributeError)r.   r0   s     r   __eq__z@OrderedDictTests.test_delitem_hash_collision.<locals>.Key.__eq__  s8    !:44% ! ! ! 55!s    
  c                     | j         S r   rs   r-   s    r   __repr__zBOrderedDictTests.test_delitem_hash_collision.<locals>.Key.__repr__  rA  rK   N)r^   r_   r`   rD   r@  rD  rF  r1   rK   r   Keyr:  
  sP        + + +" " "! ! !
" " " " "rK   rG  c                 2    d}| |dz
  z  }|dz  |z   | z   dz   S )NrN   r   r   r1   )r>  MINSIZEr   s      r   blocking_hashzCOrderedDictTests.test_delitem_hash_collision.<locals>.blocking_hash  s-    G	!AFa<$&**rK   r   .after)rK  .r   )	r.   r<   rG  rJ  	COLLIDINGr   	collidingblockingrR   s	            r   test_delitem_hash_collisionz,OrderedDictTests.test_delitem_hash_collision  s    &	" 	" 	" 	" 	" 	" 	" 	"	+ 	+ 	+ 	c)nnC	NN	3}}Y//00[]]3897xLyMbhhjj))S#J+GHHHHHrK   c                    | j         } G d d          } |            }t          d          D ]} |            }|||<   |                     t                    5  t	          |                                           d d d            n# 1 swxY w Y   |                     t                    5  t	          |                                           d d d            n# 1 swxY w Y   |                     t                    5  t          |           d d d            n# 1 swxY w Y   |                     t                    5  |                                 d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )-OrderedDictTests.test_issue24347.<locals>.Keyc                      t          d          S )Ni )r   r-   s    r   r@  z6OrderedDictTests.test_issue24347.<locals>.Key.__hash__2  s     (((rK   Nr^   r_   r`   r@  r1   rK   r   rG  rR  1  s#        ) ) ) ) )rK   rG  r6  )	r<   r   r=   r   rC   r   rB   r   r   )r.   r<   rG  rR   r   r   s         r   test_issue24347z OrderedDictTests.test_issue24347.  sc   &	) 	) 	) 	) 	) 	) 	) 	) []]s 	 	A#%%CBsGG x(( 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	x(( 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	x(( 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	x(( 	 	GGIII	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sH   "BBB-"CC"C DD #D E##E'*E'c                     | j         } G d d          } |            }d| |            <   |                                 d S )Nc                       e Zd Zd ZdS )-OrderedDictTests.test_issue24348.<locals>.Keyc                     dS )Nr   r1   r-   s    r   r@  z6OrderedDictTests.test_issue24348.<locals>.Key.__hash__H  r   rK   NrT  r1   rK   r   rG  rX  G  r   rK   rG  r   )r<   r   )r.   r<   rG  rR   s       r   test_issue24348z OrderedDictTests.test_issue24348D  s_    &	 	 	 	 	 	 	 	 []]3355	


rK   c                     	 | j         } |            }dD ]:}dD ]5}t          |          dk    r|                    d           ||z   }|||<   6;d S )N0123456789ABCDEFr%   Fr   )r<   r   r   )r.   r<   rR   c0c1r   s         r   test_issue24667z OrderedDictTests.test_issue24667P  s    
	 &[]]$ 	 	B(  r77a<<JJEJ***2g3	 	rK   c                     | j         } |            }t                              |dd           |                     dt	          |                     d S Nspamr   NULL)r<   rA   __setitem__r   r   ry   s      r   test_dict_setitemz"OrderedDictTests.test_dict_setitemi  sO    &[]]VQ'''b*****rK   c                     | j         } |            }d|d<   d|d<   t                              |d           |                     t                    5  t          |           d d d            d S # 1 swxY w Y   d S Nr   rb  r   ham)r<   rA   __delitem__r=   r   r   ry   s      r   test_dict_delitemz"OrderedDictTests.test_dict_delitemo  s    &[]]6
5	V$$$x(( 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   A..A25A2c                     | j         } |            }d|d<   d|d<   t                              |           |                     dt	          |                     d S )Nr   rb  r   rh  rc  )r<   rA   r   r   r   ry   s      r   test_dict_clearz OrderedDictTests.test_dict_clearx  sX    &[]]6
5	

2b*****rK   c                     | j         } |            }d|d<   d|d<   t                              |d           |                     t                    5  t          |           d d d            d S # 1 swxY w Y   d S rg  )r<   rA   r   r=   r   r   ry   s      r   test_dict_popzOrderedDictTests.test_dict_pop  s    &[]]6
5	Vx(( 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rk  c                     | j         } |            }d|d<   d|d<   t                              |           |                     t                    5  t          |           d d d            d S # 1 swxY w Y   d S rg  )r<   rA   r   r=   r   r   ry   s      r   test_dict_popitemz"OrderedDictTests.test_dict_popitem  s    &[]]6
5	Rx(( 	 	HHH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A--A14A1c                     | j         } |            }t                              |dd           |                     dt	          |                     d S ra  )r<   rA   r  r   r   ry   s      r   test_dict_setdefaultz%OrderedDictTests.test_dict_setdefault  sM    &[]]FA&&&b*****rK   c                     | j         } |            }t                              |dg           |                     dt	          |                     d S )N)rb  r   rc  )r<   rA   rQ   r   r   ry   s      r   test_dict_updatez!OrderedDictTests.test_dict_update  sM    &[]]B&&&b*****rK   c                     | j          G fdd          }d |j        |<   t          j        |          }~t	          j                     |                      |                       d S )Nc                   $    e Zd Z              ZdS )/OrderedDictTests.test_reference_loop.<locals>.AN)r^   r_   r`   rR   rj   s   r   Arx    s        BBBrK   ry  )r<   rR   weakrefrefgccollectr   )r.   ry  r  r<   s      @r   test_reference_loopz$OrderedDictTests.test_reference_loop  s    &	 	 	 	 	 	 	 	 	 	QKNN

!!##rK   c                     t          j        | t          | j                   t          j        | d | j                   t          j        | d | j                   t          j        | d | j                   d S )Nc                 D    t          |                                           S r   )r   rX   r$   s    r   <lambda>z<OrderedDictTests.test_free_after_iterating.<locals>.<lambda>  s    4>> rK   c                 D    t          |                                           S r   )r   r   r  s    r   r  z<OrderedDictTests.test_free_after_iterating.<locals>.<lambda>  s    4

;K;K rK   c                 D    t          |                                           S r   )r   rB   r  s    r   r  z<OrderedDictTests.test_free_after_iterating.<locals>.<lambda>  s    4		?? rK   )r   check_free_after_iteratingr   r<   r-   s    r   test_free_after_iteratingz*OrderedDictTests.test_free_after_iterating  st    *4t7GHHH*41I1I4K[\\\*41K1KTM]^^^*41J1JDL\]]]]]rK   c                    | j         } |dddd          } |dddd          }|                                }|                                }||z  }|t          |                                          z  } |ddddd          }|                     |t          |          z  |           |                     ||z  |           |                     ||           |                     ||           |                                }||z  } |ddddd          }|                     t          |          |z  |           |                     ||z  |           |                     ||           |                     t          ||z            |           |                     t          t          |          |z            |           |                     t          |t          |          z            |           |                                }|d	z  }|d
z  }|                     ||           |                     t                    5  |d z   d d d            n# 1 swxY w Y   |                     t                    5  |d	z   d d d            n# 1 swxY w Y   |                     t                    5  |dz   d d d            n# 1 swxY w Y   |                     t                    5  |d
z   d d d            n# 1 swxY w Y   |                     t                    5  |dz  }d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   r   r   r"   )r   r   r"   )r   r   r   r"   )r   r   r"   r   r1    BAD)r<   r   rC   rB   r?   rA   r   r   r=   r>   
ValueError)r.   r<   r   r   r!   r$   expecteds          r   test_merge_operatorz$OrderedDictTests.test_merge_operator  sa   &KA!**++KA!**++FFHHFFHH	Q	T!''))__;1qQ7788T!WWh///Q)))H%%%H%%%FFHH	Q;1qQ7788a1h///Q)))H%%%d1q5kk;///d477Q;''555d1tAww;''5556688	R	RH%%%y)) 	 	HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	FF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	II	 	 	 	 	 	 	 	 	 	 	 	 	 	 	y)) 	 	FF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	z** 	 	JA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sZ   
II #I JJJ8K

KK/LLL&L99L= L=c                     t          |                     d g i                                                    }t          j                     |                     t          j        t          |                               d S r   )r   r<   rB   r|  r}  r}   
is_trackedr   )r.   r   s     r   !test_ordered_dict_items_result_gcz2OrderedDictTests.test_ordered_dict_items_result_gc  sd    
 $""D":..446677

 	d2hh//00000rK   N)6r^   r_   r`   rF   rJ   rS   rb   rk   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   r$  r+  r/  r7  rO  rU  rZ  r_  re  rj  rm  ro  rq  rs  ru  r~  r  r  r   cpython_onlyr  r1   rK   r   r   r       s.       T T T01 1 1,9 ,9 ,9\* * *	 	 	D D DA A A
% % %B B BY Y YL L L"	 	 	B B B< < <	% 	% 	%	' 	' 	'  4: : : ) ) )VN N N	8 	8 	8+ + +? ? ?P P P& & &8 8 8(
A 
A 
A' ' '&0 0 0@ @ @7 7 7; ; ;	 	 	> > >"%I %I %IN  ,
 
 
  2+ + +  + + +    + + ++ + +	 	 	^ ^ ^) ) )V 	1 	1 	1 	1 	1rK   r   c                        e Zd ZeZej        ZdS )PurePythonOrderedDictTestsNr^   r_   r`   py_collr   r<   r1   rK   r   r  r    s        F%KKKrK   r  c                       e Zd Z	 eZeZdS )CPythonBuiltinDictTestsN)r^   r_   r`   builtinsr   rA   r<   r1   rK   r   r  r    s        
 FKKKrK   r  ztest_init test_update test_abc test_clear test_delitem test_setitem test_detect_deletion_during_iteration test_popitem test_reinsert test_override_update test_highly_nested test_highly_nested_subclass test_delitem_hash_collision z0requires the C version of the collections modulec                   z    e Zd ZeZej        Zej        Zej        d             Z	d Z
d Zej        d             ZdS )CPythonOrderedDictTestsc                    | j         }t          j        }t          j        }| j        } |d          } |d          } |d          } |d          } |d          }	 |            }
 ||
|           d|
_         ||
|           |
                    d t          d          D                         ||
||z   d	|z  z   d	z   d
|z  z   d|	z  z              |
                    d t          dd          D                         ||
||z   d|z  z   dz   d|z  z   d|	z  z               ||
	                                 |d                      ||

                                 |d                      ||
                                 |d                      |d          } |t          |
          |            |t          |
	                                          |            |t          |

                                          |            |t          |
                                          |           d S )NnQ2P3PnPn2Pn2BI2nn2PPPn2Pr   c                     g | ]}||fS r1   r1   r   s     r   rq   z=CPythonOrderedDictTests.test_sizeof_exact.<locals>.<listcomp>  s    ,,,aAq6,,,rK   r"   rN   r(   c                     g | ]}||fS r1   r1   r   s     r   rq   z=CPythonOrderedDictTests.test_sizeof_exact.<locals>.<listcomp>  s    000aAq6000rK   r      iP2n2P)r<   structcalcsizer   calcobjsizecheck_sizeofr   rQ   r   rX   rB   r   r   )r.   r<   r  sizer   	basicsizekeysize	entrysizepnodesizerR   itersizes               r   test_sizeof_exactz)CPythonOrderedDictTests.test_sizeof_exact  sR   &?"!D+,,	(8$$HUOO	HSMM8F##[]]b)b)
		,,588,,,---b)g%!+a/!I+=(
JKKK
		005B<<000111b)g%1,r1ByL@2h;NOOObggiic###bhhjj$$s))$$$biikk4499%%%4>>d2hh!!!d27799oox(((d288::)))d299;;*****rK   c                    | j         }|                    d          }|                     t          |          t          d                     |                     t
                    5  t          |          D ]0\  }}|                    |           |                     |d           1	 d d d            n# 1 swxY w Y   |                     t
                    5  |D ]}d |d<   	 d d d            n# 1 swxY w Y   |                     t
                    5  |D ]}|d= 	 d d d            n# 1 swxY w Y   |                     t          |          t          d                     d S )Nr  r(   r6   r!   bdeaf)	r<   rx   r?   rC   r=   RuntimeError	enumerater  
assertLess)r.   r<   rR   r   r   s        r    test_key_change_during_iterationz8CPythonOrderedDictTests.test_key_change_during_iteration'  s+   &!!'**b4==111|,, 	& 	&!" & &1q!!!1%%%%&	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& |,, 	 	  3	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 |,, 	 	  sGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	b4==11111s7   'AB55B9<B9C22C69C6	D--D14D1c                 d   | j         }g d} ||          }dD ]}t          ||          }t           |                      dd          }t          t          j        dz             D ]}|                     ||          5  t           |                      }t          |           t	          j	        ||          }	t	          j
        |	          }
|                     t          |
          |           |                     t          |          |           d d d            n# 1 swxY w Y   ǐd S )Nr   )rX   r   rB   r   )method_nameprotocol)r<   getattrrC   r   r   r   r   r   r   r   r   r?   )r.   r<   rE   rR   r  methr  r   r   r  	unpickleds              r   test_iterators_picklingz/CPythonOrderedDictTests.test_iterators_pickling8  sh   &LLL[6 
	9 
	9K2{++DDDFF||ABB'H62Q677 9 9\\kA\FF 9 9ddffBHHHR++A &QI$$T)__h???$$T"XXx8889 9 9 9 9 9 9 9 9 9 9 9 9 9 99
	9 
	9s    BD""D&)D&c                    t          j                     |                                 }||_        g }|                    |           t          j        |          }|                    |           ~~~t          j                     d S r   )r|  r}  r<   cyclerZ   rz  r{  )r.   r   r  x_refs       r   "test_weakref_list_is_not_traversedz:CPythonOrderedDictTests.test_weakref_list_is_not_traversedI  ss    
 	
UAUue

rK   N)r^   r_   r`   c_collr   r<   r   r  r  r  r  r  r  r1   rK   r   r  r    s         F$K'L+ + +@2 2 2"9 9 9"     rK   r  c                   8    e Zd ZeZ G d dej                  ZdS )"PurePythonOrderedDictSubclassTestsc                       e Zd ZdS ).PurePythonOrderedDictSubclassTests.OrderedDictNr^   r_   r`   r1   rK   r   r<   r  a          rK   r<   Nr  r1   rK   r   r  r  ^  sF        F    g)     rK   r  c                   8    e Zd ZeZ G d dej                  ZdS )CPythonOrderedDictSubclassTestsc                       e Zd ZdS )+CPythonOrderedDictSubclassTests.OrderedDictNr  r1   rK   r   r<   r  h  r  rK   r<   N)r^   r_   r`   r  r   r<   r1   rK   r   r  r  e  sF        F    f(     rK   r  c                   F    e Zd ZeZ G d dej                  Zej        ZdS )*PurePythonOrderedDictWithSlotsCopyingTestsc                       e Zd ZdZdS )6PurePythonOrderedDictWithSlotsCopyingTests.OrderedDictr   r   Nr^   r_   r`   	__slots__r1   rK   r   r<   r  o          			rK   r<   N)r^   r_   r`   r  r   r<   r   r   r1   rK   r   r  r  l  sH        F    g)   #0LLLrK   r  c                   F    e Zd ZeZ G d dej                  Zej        ZdS )'CPythonOrderedDictWithSlotsCopyingTestsc                       e Zd ZdZdS )3CPythonOrderedDictWithSlotsCopyingTests.OrderedDictr  Nr  r1   rK   r   r<   r  x  r  rK   r<   N)r^   r_   r`   r  r   r<   r   r   r1   rK   r   r  r  t  sJ         F    f(   #0LLLrK   r  c                   *    e Zd Zed             Zd ZdS )PurePythonGeneralMappingTestsc                 (    t           j        | _        d S r   r  r<   	type2testclss    r   
setUpClassz(PurePythonGeneralMappingTests.setUpClass  s    +rK   c                 n    |                                  }|                     t          |j                   d S r   _empty_mappingr=   r   r   r.   r$   s     r   r   z*PurePythonGeneralMappingTests.test_popitem  1    !!(AI.....rK   Nr^   r_   r`   classmethodr  r   r1   rK   r   r  r  }  s<        , , [,/ / / / /rK   r  c                   *    e Zd Zed             Zd ZdS )CPythonGeneralMappingTestsc                 (    t           j        | _        d S r   r  r<   r  r  s    r   r  z%CPythonGeneralMappingTests.setUpClass  s    *rK   c                 n    |                                  }|                     t          |j                   d S r   r  r  s     r   r   z'CPythonGeneralMappingTests.test_popitem  r  rK   Nr  r1   rK   r   r  r    s>         + + [+/ / / / /rK   r  c                   *    e Zd Zed             Zd ZdS )PurePythonSubclassMappingTestsc                 D     G d dt           j                  }|| _        d S )Nc                       e Zd ZdS )@PurePythonSubclassMappingTests.setUpClass.<locals>.MyOrderedDictNr  r1   rK   r   MyOrderedDictr            DrK   r  r  r  r  s     r   r  z)PurePythonSubclassMappingTests.setUpClass  s:    	 	 	 	 	G/ 	 	 	%rK   c                 n    |                                  }|                     t          |j                   d S r   r  r  s     r   r   z+PurePythonSubclassMappingTests.test_popitem  r  rK   Nr  r1   rK   r   r  r    s<        & & [&
/ / / / /rK   r  c                   *    e Zd Zed             Zd ZdS )CPythonSubclassMappingTestsc                 D     G d dt           j                  }|| _        d S )Nc                       e Zd ZdS )=CPythonSubclassMappingTests.setUpClass.<locals>.MyOrderedDictNr  r1   rK   r   r  r    r  rK   r  r  r  s     r   r  z&CPythonSubclassMappingTests.setUpClass  s:    	 	 	 	 	F. 	 	 	%rK   c                 n    |                                  }|                     t          |j                   d S r   r  r  s     r   r   z(CPythonSubclassMappingTests.test_popitem  r  rK   Nr  r1   rK   r   r  r    s>         & & [&
/ / / / /rK   r  c                   <     e Zd Z fdZ fdZ fdZ fdZ xZS )SimpleLRUCachec                     t                                                       || _        t                              dd          | _        d S )Ngetsetdelr   )superrD   r  rA   rx   counts)r.   r  	__class__s     r   rD   zSimpleLRUCache.__init__  s:    	mm$91==rK   c                     | j         dxx         dz  cc<   t                                          |          }|                     |           |S )Nr  r   )r  r  __getitem__r  )r.   itemrt   r  s      r   r  zSimpleLRUCache.__getitem__  sQ    Ea##D))rK   c                 <   | j         dxx         dz  cc<   || vrJt          |           | j        k    r2|                     d           || vrt          |           | j        k    2t	                                          ||           |                     |           d S )Nr   r   Fr   )r  r   r  r   r  rd  r  )r.   r   rt   r  s      r   rd  zSimpleLRUCache.__setitem__  s    Eaoo#d))ty"8"8LLeL$$$ oo#d))ty"8"8C'''rK   c                 t    | j         dxx         dz  cc<   t                                          |           d S )Nr  r   )r  r  ri  )r.   r   r  s     r   ri  zSimpleLRUCache.__delitem__  s?    EaC     rK   )r^   r_   r`   rD   r  rd  ri  __classcell__)r  s   @r   r  r    s        > > > > >
        ! ! ! ! ! ! ! ! !rK   r  c                   &    e Zd Zd Zd Zd Zd ZdS )SimpleLRUCacheTestsc                    |                      d          }d|d<   d|d<   d|d<   |                     |j        dddd           |                     t          |          ddg           |                     |j        dddd           d S )	Nr   r   t1t2r"   t3r   r  )r  r?   r  rC   )r.   r!   s     r   test_add_after_fullz'SimpleLRUCacheTests.test_add_after_full  s    NN1$$$1Qq#A#ABBBa4,///1Qq#A#ABBBBBrK   c                 F   |                      d          }t          dd          D ]}|||<   |                     |                    d          d           |                     |                    d          d           |                     |j        d	dd	d
           d S )Nr"   r   r%   Fr   )r   r   T)r"   r"   r   r  )r  r   r?   r   r  r.   r!   r   s      r   r   z SimpleLRUCacheTests.test_popitem  s    NN1q! 	 	AAaDD..777--v6661Qq#A#ABBBBBrK   c                 @   |                      d          }t          dd          D ]}|||<   |                     |j        dddd           |                     |                    d          d           |                     |j        dddd           |                     |                    dd          d           |                     |j        dddd           |                     t          |j        d           |                     |j        dddd           d S )Nr"   r   r%   r   r  r   )r  r   r?   r  r   r=   r   r  s      r   r   zSimpleLRUCacheTests.test_pop  s   NN1q! 	 	AAaDD1Qq#A#ABBBq1%%%1Qq#A#ABBBq!a(((1Qq#A#ABBB(AE1---1Qq#A#ABBBBBrK   c           	         |                      d          }t          dd          D ]}|||<   |                     t          |          t          t          dd                               |                     |j        dddd           |                     |d         d           |                     |j        dddd           |                     t          |          g d           d S )Nr"   r   r%   r   r  r   )r   r"   r   )r  r   r?   rC   r  r  s      r   test_change_order_on_getz,SimpleLRUCacheTests.test_change_order_on_get  s    NN1q! 	 	AAaDDa$uQ{{"3"34441Qq#A#ABBB1q!!!1Qq#A#ABBBa))),,,,,rK   N)r^   r_   r`   r  r   r   r  r1   rK   r   r  r    sY        C C CC C C
C 
C 
C- - - - -rK   r  c                   6    e Zd Z G d deej                  ZdS )PySimpleLRUCacheTestsc                       e Zd ZdS )PySimpleLRUCacheTests.type2testNr  r1   rK   r   r  r    r  rK   r  N)r^   r_   r`   r  r  r<   r  r1   rK   r   r  r    sC            NG$7     rK   r  c                   $    e Zd Zed             ZdS )CSimpleLRUCacheTestsc                 P     G d dt           t          j                  }|| _        d S )Nc                       e Zd ZdS )2CSimpleLRUCacheTests.setUpClass.<locals>.type2testNr  r1   rK   r   r  r    r  rK   r  )r  r  r<   r  )r  r  s     r   r  zCSimpleLRUCacheTests.setUpClass  s<    	 	 	 	 	(: 	 	 	!rK   N)r^   r_   r`   r  r  r1   rK   r   r  r    s/         " " [" " "rK   r  __main__)1r  
contextlibr   r|  r   randomr   r   r  r   unittestrz  collections.abcr   testr   r   test.supportr   import_fresh_moduler  r  contextmanagerr   r   TestCaser  r  r"  methodsetattrr  
skipUnlessr  r  r  r  r  BasicTestMappingProtocolr  r  r  r  r  r  r  r  r^   mainr1   rK   r   <module>r/     s         				  % % % % % % % %  



   * * * * * * ' ' ' ' ' ' ' ' & & & & & & ,-
+M5C4DF F F	*	*=2@1A
C 
C 
C , , ,D1 D1 D1 D1 D1 D1 D1 D1L& & & & &!183D & & &    h/   # %*EGGP PF G#VWW5Ev-N-NOOOO
 VOPP[ [ [ [ [.0A [ [ QP[|    )C       &=   1 1 1 1 11B 1 1 1 VOPP1 1 1 1 1h.? 1 1 QP1/ / / / /M$J / / / VOPP/ / / / /!G / / QP/
/ 
/ 
/ 
/ 
/]%K 
/ 
/ 
/ VOPP
/ 
/ 
/ 
/ 
/-"H 
/ 
/ QP
/! ! ! ! ! ! ! !2'- '- '- '- '- '- '- '-T    /1B    VOPP" " " " ".0A " " QP" zHMOOOOO rK   