a :êdg_ã@s¤ddlmZmZddlmZdZdZdZdZdZ dZ eeee ee Z dd„Z d d „Z dd d „Zdd„Zdd„Zdd„Zdd„ZeddƒZdd„Zdd„ZdS)é)Ú namedtupleÚCounter)Ú commonprefixTéPé écCsBt|ƒ||}|tkr>d|d|…||t|ƒ|d…f}|S)Nz%s[%d chars]%s)ÚlenÚ_PLACEHOLDER_LEN)ÚsÚ prefixlenZ suffixlenÚskip©r ú)/usr/local/lib/python3.9/unittest/util.pyÚ_shortens&rcsœttt|ƒƒ}ttt|ƒƒ}|tkr(|St|ƒ‰tˆƒ‰t|ˆtt}|t krxt ˆt|ƒ‰t‡‡fdd„|DƒƒSt ˆtt ƒ‰t‡‡fdd„|DƒƒS)Nc3s|]}ˆ|ˆd…VqdS©Nr ©Ú.0r ©Úprefixr r rÚ 'óz'_common_shorten_repr..c3s&|]}ˆt|ˆd…ttƒVqdSr)rÚ _MIN_DIFF_LENÚ _MIN_END_LENrrr rr*sÿ) ÚtupleÚmapÚ safe_reprÚmaxrÚ _MAX_LENGTHrÚ_MIN_BEGIN_LENr Ú_MIN_COMMON_LENr)ÚargsÚmaxlenZ common_lenr rrÚ_common_shorten_reprs ÿ  ÿr"FcCsNz t|ƒ}Wnty(t |¡}Yn0|r:t|ƒtkr>|S|dt…dS)Nz [truncated]...)ÚreprÚ ExceptionÚobjectÚ__repr__rr)ÚobjZshortÚresultr r rr-s  rcCsd|j|jfS)Nz%s.%s)Ú __module__Ú __qualname__)Úclsr r rÚstrclass6sr,cCs4d}}g}g}zÚ||}||}||krT| |¡|d7}|||krè|d7}q          þ r9cCsFg}|r>| ¡}z| |¡Wqty:| |¡Yq0q||fSr)ÚpopÚremoveÚ ValueErrorr/)r2r3r6Úitemr r rÚunorderable_list_differencebs r>cCs||k||kSrr )ÚxÚyr r rÚ three_way_cmpssrAZMismatchzactual expected valuecCs,t|ƒt|ƒ}}t|ƒt|ƒ}}tƒ}g}t|ƒD]Ž\}} | |urHq6d} } t||ƒD] } || | krZ| d7} ||| <qZt|ƒD] \} } | | kr„| d7} ||| <q„| | kr6t| | | ƒ}| |¡q6t|ƒD]X\}} | |uràqÎd} t||ƒD] } || | krî| d7} ||| <qîtd| | ƒ}| |¡qÎ|Sr-)Úlistrr%Ú enumerateÚrangeÚ _Mismatchr/)r3r2r ÚtÚmÚnZNULLr(r4ÚelemÚcnt_sÚcnt_tr5Z other_elemÚdiffr r rÚ_count_diff_all_purposeys<         rMc Cs†t|ƒt|ƒ}}g}| ¡D]2\}}| |d¡}||krt|||ƒ}| |¡q| ¡D]&\}}||vrZtd||ƒ}| |¡qZ|S)Nr)rÚitemsÚgetrEr/) r3r2r rFr(rIrJrKrLr r rÚ_count_diff_hashableœs     rPN)F)Ú collectionsrrZos.pathrZ __unittestrr rrrrrr"rr,r9r>rArErMrPr r r rÚs0  ÿÿÿ ) #