a 4êdg®ã@sbddlZddlZddlZddlZddlZddlmZdd„ZGdd„dejƒZ e dkr^e  ¡dS)éN)Ú defaultdictcCstS©N)Úlist©rrú1/usr/local/lib/python3.9/test/test_defaultdict.pyÚfoobar src@sleZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)ÚTestDefaultDictc Csîtƒ}| |jd¡t|_|d d¡| |ddgi¡|d d¡| |dddgi¡|d|d| |ddgggdœ¡| |d|duo¦|dun¡ttddd }| |jt¡| |ddd œ¡| |d d¡| |d d¡| |dg¡| d |¡| d | ¡¡| d |¡| d | ¡¡| d|¡| d| ¡¡| d|¡| d| ¡¡d|_| |jd¡z |d Wn4t yÐ}z| |j d ¡WYd}~nd}~00|  d¡|  t td¡dS)Né é*éé é)r r r éé)ÚfooÚbarrré)rzd2[15] didn't raise KeyError)rÚ assertEqualÚdefault_factoryrÚappendÚ assertTrueZassertInÚkeysZ assertNotInÚKeyErrorÚargsÚfailÚ assertRaisesÚ TypeError)ÚselfÚd1Úd2ÚerrrrrÚ test_basicsB*     $ zTestDefaultDict.test_basiccCs2tƒ}| t|jd¡t|_| | d¡g¡dS©Nr )rrrÚ __missing__rrr)rrrrrÚ test_missing4szTestDefaultDict.test_missingcCsÂtƒ}| |jd¡| t|ƒd¡| tt|ƒƒ|¡d|d<| t|ƒd¡ttƒ}| |jt¡d|d<| t|ƒd¡dd „}t|ƒ}| |j|u¡|d | t|ƒd t|ƒ¡dS) Nzdefaultdict(None, {})é)é zdefaultdict(None, {11: 41})r r z$defaultdict(, {12: 42})cSsdS)Né+rrrrrrEóz&TestDefaultDict.test_repr..foor zdefaultdict(%s, {13: 43}))rrrÚreprÚevalÚintr)rrrrÚd3rrrÚ test_repr:szTestDefaultDict.test_reprc Cs¸tƒ}dd„}t|ddiƒ}t ¡}z‚t|dƒ}z^t||dt||d| d¡| | ¡t|ƒd¡| | ¡t|ƒd¡W|  ¡n |  ¡0Wt   |¡n t   |¡0dS) NcSsdSr"rrrrrrMr(z'TestDefaultDict.test_print..foorrúw+©ÚfilerÚ ) rÚtempfileÚmktempÚopenÚprintÚseekrÚreadliner)ÚcloseÚosÚremove)rrrrÚtfnÚfrrrÚ test_printKs    zTestDefaultDict.test_printcCsòtƒ}| ¡}| t|ƒt¡| |jd¡| |i¡t|_| ¡}| t|ƒt¡| |jt¡| |i¡|d| ¡}| t|ƒt¡| |jt¡| |dgi¡|d| |ggdœ¡tƒ}d|d<| ¡}| |dd¡dS)Nr r )r r Úa)rÚcopyrÚtyperr)rrrr,Zd4ÚdÚerrrÚ test_copy`s*  zTestDefaultDict.test_copycCs`ttddiƒ}t |¡}| |jt¡| ||¡t|_t |¡}| |jt¡| ||¡dS©Nr)rrr?rrr©rrrrrrÚtest_shallow_copyys   z!TestDefaultDict.test_shallow_copycCsxttddgiƒ}t |¡}| |jt¡| ||¡| |d|du¡t|_t |¡}| |jt¡| ||¡dSrD)rrr?ÚdeepcopyrrrrrErrrÚtest_deep_copyƒs   zTestDefaultDict.test_deep_copyc CsXtƒ}z |dWn6tyH}z| |jdd¡WYd}~nd}~00| d¡dS)N)rrzexpected KeyError)rrrrr)rrr rrrÚtest_keyerror_without_factoryŽs  (z-TestDefaultDict.test_keyerror_without_factoryc Cs|Gdd„dtƒ}|ƒ}| t|ƒd¡t ¡}z.subcSs |j|_dSr)Ú_factoryr©rrrrÚ__init__šsz9TestDefaultDict.test_recursive_repr..sub.__init__cSsgSrrrKrrrrJœsz9TestDefaultDict.test_recursive_repr..sub._factoryN)Ú__name__Ú __module__Ú __qualname__rLrJrrrrÚsub™srPzBsub\(, \{\}\)r.r/) rZ assertRegexr)r2r3r4r5r8r9r:)rrPrAr;r<rrrÚtest_recursive_repr—s ÿ z#TestDefaultDict.test_recursive_reprcCs| tti¡dSr)rrrrKrrrÚtest_callable_arg¯sz!TestDefaultDict.test_callable_argcCsJttƒ}|dttjdƒD]&}t ||¡}t |¡}| ||¡qdSrD)rr+ÚrangeÚpickleÚHIGHEST_PROTOCOLÚdumpsÚloadsr)rrAÚprotoÚsÚorrrÚ test_pickling²s   zTestDefaultDict.test_picklingcCsttdddœƒ}ttdddœƒ}||B}| |jt¡| |ddddœ¡| t|ƒgd¢¡||B}| |jt¡| |ddddœ¡| t|ƒgd¢¡|t|ƒB}| |jt¡| |ddddœ¡| t|ƒgd¢¡t|ƒ|B}| |jt¡| |ddddœ¡| t|ƒgd¢¡|  t ¡ |t|  ¡ƒBWdƒn1sR0Y|  t ¡ t|  ¡ƒ|BWdƒn1sŽ0Y|t|  ¡ƒO}| |jt¡| |ddddœ¡| t|ƒgd¢¡|  t ¡|dO}Wdƒn1s0YdS) Nrr)rrZzeroZone)rr)rrr)rrr) rr+ÚstrZassertIsrZassertDictEqualrrÚdictrrÚitems)rÚirYZi_sZs_iZi_dsZds_irrrÚ test_unionºs8   0 0 zTestDefaultDict.test_unionN)rMrNrOr!r$r-r=rCrFrHrIrQrRr[r`rrrrrs$   rÚ__main__) r9r?rTr2ZunittestÚ collectionsrrZTestCaserrMÚmainrrrrÚs S