a ze@sbddlZddlZddlZddlZddlZddlmZddZGdddejZ e dkr^e dS)N) defaultdictcCstSN)listrrI/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_defaultdict.pyfoobar src@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS)TestDefaultDictc Cst}||jdt|_|dd||ddgi|dd||dddgi|d|d||ddgggd||d|duo|dunttddd }||jt||ddd ||d d||d d||dg|d ||d ||d ||d ||d||d||d||d|d|_||jdz |d Wn4t y}z||j d WYd}~nd}~00| d| t tddS)N * )r r r )foobarrr)rzd2[15] didn't raise KeyError)r assertEqualdefault_factoryrappend assertTrueZassertInkeysZ assertNotInKeyErrorargsfail assertRaises TypeError)selfd1d2errrrr test_basicsB*     $ zTestDefaultDict.test_basiccCs2t}|t|jdt|_||dgdSNr )rrr __missing__rrr)rrrrr test_missing4szTestDefaultDict.test_missingcCst}||jd|t|d|tt||d|d<|t|dtt}||jtd|d<|t|ddd }t|}||j|u|d |t|d t|dS) Nzdefaultdict(None, {})) zdefaultdict(None, {11: 41})r r z$defaultdict(, {12: 42})cSsdS)N+rrrrrrEz&TestDefaultDict.test_repr..foor zdefaultdict(%s, {13: 43}))rrrreprevalintr)rrrrd3rrr test_repr:szTestDefaultDict.test_reprc Cst}dd}t|ddi}t}zt|d}z^t||dt||d|d||t|d||t|dW| n | 0Wt |n t |0dS) NcSsdSr"rrrrrrMr(z'TestDefaultDict.test_print..foorrw+filer ) rtempfilemktempopenprintseekrreadliner)closeosremove)rrrrtfnfrrr test_printKs    zTestDefaultDict.test_printcCst}|}|t|t||jd||it|_|}|t|t||jt||i|d|}|t|t||jt||dgi|d||ggdt}d|d<|}||dddS)Nr r )r r a)rcopyrtyperr)rrrr,Zd4derrr test_copy`s*  zTestDefaultDict.test_copycCs`ttddi}t|}||jt|||t|_t|}||jt|||dSNr)rrr?rrrrrrrrrtest_shallow_copyys   z!TestDefaultDict.test_shallow_copycCsxttddgi}t|}||jt|||||d|dut|_t|}||jt|||dSrD)rrr?deepcopyrrrrrErrrtest_deep_copys   zTestDefaultDict.test_deep_copyc CsXt}z |dWn6tyH}z||jddWYd}~nd}~00|ddS)N)rrzexpected KeyError)rrrrr)rrr rrrtest_keyerror_without_factorys  (z-TestDefaultDict.test_keyerror_without_factoryc Cs|Gdddt}|}|t|dt}z.subcSs |j|_dSr)_factoryrrrrr__init__sz9TestDefaultDict.test_recursive_repr..sub.__init__cSsgSrrrKrrrrJsz9TestDefaultDict.test_recursive_repr..sub._factoryN)__name__ __module__ __qualname__rLrJrrrrsubsrPzBsub\(, \{\}\)r.r/) rZ assertRegexr)r2r3r4r5r8r9r:)rrPrAr;r<rrrtest_recursive_reprs  z#TestDefaultDict.test_recursive_reprcCs|ttidSr)rrrrKrrrtest_callable_argsz!TestDefaultDict.test_callable_argcCsJtt}|dttjdD]&}t||}t|}|||qdSrD)rr+rangepickleHIGHEST_PROTOCOLdumpsloadsr)rrAprotosorrr test_picklings   zTestDefaultDict.test_picklingcCsttddd}ttddd}||B}||jt||dddd|t|gd||B}||jt||dddd|t|gd|t|B}||jt||dddd|t|gdt||B}||jt||dddd|t|gd| t  |t| BWdn1sR0Y| t  t| |BWdn1s0Y|t| O}||jt||dddd|t|gd| t |dO}Wdn1s0YdS) Nrr)rrZzeroZone)rr)rrr)rrr) rr+strZassertIsrZassertDictEqualrrdictrritems)rirYZi_sZs_iZi_dsZds_irrr test_unions8   0 0 zTestDefaultDict.test_unionN)rMrNrOr!r$r-r=rCrFrHrIrQrRr[r`rrrrrs$   r__main__) r9r?rTr2Zunittest collectionsrrZTestCaserrMmainrrrrs S