B YI~d_ã@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 ú2/opt/alt/python37/lib64/python3.7/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ú 'sz'_common_shorten_repr..c3s&|]}ˆt|ˆd…ttƒVqdS)N)rÚ _MIN_DIFF_LENÚ _MIN_END_LEN)rr )rr r rr*s) ÚtupleÚmapÚ safe_reprÚmaxrÚ _MAX_LENGTHrÚ_MIN_BEGIN_LENr Ú_MIN_COMMON_LENr)ÚargsÚmaxlenZ common_lenr )rr rÚ_common_shorten_reprs  rFcCsPy t|ƒ}Wntk r*t |¡}YnX|r|rB| ¡}y| |¡Wqtk r>| |¡YqXqW||fS)N)ÚpopÚremoveÚ ValueErrorr*)r-r.r1Úitemr r rÚunorderable_list_differencebsr9cCs||k||kS)Nr )ÚxÚyr r rÚ three_way_cmpssr<ZMismatchzactual expected valuecCsDt|ƒt|ƒ}}t|ƒt|ƒ}}tƒ}g}x¢t|ƒD]–\}} | |krJq8d} } x.t||ƒD] } || | kr^| d7} ||| <q^Wx,t|ƒD] \} } | | krŒ| d7} ||| <qŒW| | kr8t| | | ƒ}| |¡q8Wxlt|ƒD]`\}} | |krîqÜd} x2t||ƒD]$} || | krþ| d7} ||| <qþWtd| | ƒ}| |¡qÜW|S)Nrr))Úlistrr!Ú enumerateÚrangeÚ _Mismatchr*)r.r-r ÚtÚmÚnZNULLr$r/ÚelemÚcnt_sÚcnt_tr0Z other_elemÚdiffr r rÚ_count_diff_all_purposeys<     rHc CsŽt|ƒt|ƒ}}g}x>| ¡D]2\}}| |d¡}||kr t|||ƒ}| |¡q Wx2| ¡D]&\}}||kr`td||ƒ}| |¡q`W|S)Nr)rÚitemsÚgetr@r*) r.r-r rAr$rDrErFrGr r rÚ_count_diff_hashableœs   rKN)F)Ú collectionsrrZos.pathrZ __unittestrr rrrrrrrr(r4r9r<r@rHrKr r r rÚs&  ) #