§ Žæáû—B‡—ãóÀ—dZddlmZmZddlmZdZdZdZdZ dZ dZ ee eze zeze zz Z e dksJ‚d„Z d „Zdd „Zd „Zd „Zd„Zd„Zedd¦«Zd„Zd„ZdS)zVarious utility functions.é)Ú namedtupleÚCounter)Ú commonprefixTéPé écó–—t|¦«|z |z }|tkr(d|d|…||t|¦«|z d…fz}|S)Nz%s[%d chars]%s)ÚlenÚ_PLACEHOLDER_LEN)ÚsÚ prefixlenÚ suffixlenÚskips ú:/opt/alt/python-internal/lib64/python3.11/unittest/util.pyÚ_shortenrsW€Ý ˆq‰6Œ6�IÑ   Ñ )€DØ ÕÒÐØ   * 9 *¤ ¨t°Qµs¸1±v´vÀ Ñ7IÐ7JÐ7JÔ5KÐLÑ LˆØ €HócóV‡‡—ttt|¦«¦«}ttt|¦«¦«}|t kr|St |¦«Št ‰¦«Št |‰z tztzz }|tkrZttztz|‰z zt ksJ‚t‰t|¦«Štˆˆfd„|D¦«¦«St‰tt¦«Štˆˆfd„|D¦«¦«S)Nc3ó2•K—|]}‰|‰d…zV—ŒdS©N©©Ú.0r Úprefixr s €€rú z'_common_shorten_repr..'s0øèè€Ð:Ð:°�V˜a      œmÑ+Ð:Ð:Ð:Ð:Ð:Ð:rc3ód•K—|]*}‰t|‰d…tt¦«zV—Œ+dSr)rÚ _MIN_DIFF_LENÚ _MIN_END_LENrs €€rrz'_common_shorten_repr..*sPøèè€ð ð Øð�( 1 Y Z Z¤=µ-ÅÑNÔNÑNð ð ð ð ð ð r) ÚtupleÚmapÚ safe_reprÚmaxr Ú _MAX_LENGTHrÚ_MIN_BEGIN_LENr Ú_MIN_COMMON_LENr)ÚargsÚmaxlenÚ common_lenrr s @@rÚ_common_shorten_reprr(s8øø€Ý ••Y Ñ%Ô%Ñ &Ô &€DÝ ••S˜$‘”Ñ Ô €FØ •ÒÐØˆ å ˜$Ñ Ô €FÝ�F‘ ” €IåØ˜9Ñ$¥~Ñ5Õ8HÑHñJ€Jà•OÒ#Ð#ÝÕ 0Ñ0µ?ÑBؘÑ"ñ$Ý&1ò2ð2ð2ð2å˜&¥.°*Ñ=Ô=ˆÝÐ:Ð:Ð:Ð:Ð:°TÐ:Ñ:Ô:Ñ:Ô:Ð:å �f�n­oÑ >Ô >€FÝ ð ð ð ð ð Øð ñ ô ñ ô ð rFcóÔ— t|¦«}n*#t$rt |¦«}YnwxYw|rt |¦«t kr|S|dt …dzS)Nz [truncated]...)ÚreprÚ ExceptionÚobjectÚ__repr__r r")ÚobjÚshortÚresults rr r -sv€ð&Ý�c‘”ˆˆøÝ ð&ð&ð&Ý—’ Ñ%Ô%ˆˆˆð&øøøà ð•C˜‘K”K¥+Ò-Ð-؈ Ø �,•;�,Ô Ð"3Ñ 3Ð3s ‚’$9¸9có$—|j›d|j›�S)Nú.)Ú __module__Ú __qualname__)Úclss rÚstrclassr66s€Ø”n�n�n cÔ&6Ð&6Ð 7Ð7rcóª—dx}}g}g} ||}||}||kr8| |¦«|dz }|||kr|dz }|||k°n«||kr8| |¦«|dz }|||kr|dz }|||k°nm|dz } |||kr|dz }|||k°|dz }|||kr|dz }|||k°n'#|dz }|||kr|dz }|||k°wxYwnJ#t$r=| ||d…¦«| ||d…¦«YnwxYw�ŒG||fS)arFinds elements in only one or the other of two, sorted input lists. Returns a two-element tuple of lists. The first list contains those elements in the "expected" list but not in the "actual" list, and the second contains those elements in the "actual" list but not in the "expected" list. Duplicate elements in either input list are ignored. rTéN)ÚappendÚ IndexErrorÚextend)ÚexpectedÚactualÚiÚjÚmissingÚ unexpectedÚeÚas rÚsorted_list_differencerD9sÙ€ð €I€AˆØ€GØ€Jðð Ø˜” ˆAØ�q” ˆAØ�1ŠuˆuØ—’˜qÑ!Ô!Ð!Ø�Q‘�ؘq”k QÒ&Ð&ؘ‘F�Að˜q”k QÒ&Ð&øà�Q’�Ø×!Ò! !Ñ$Ô$Ð$Ø�Q‘�ؘQ”i 1’n�nؘ‘F�Að˜Q”i 1’n�nøð�Q‘�ðØ" 1œ+¨Ò*Ð*ؘQ™˜ð# 1œ+¨Ò*Ð*ð˜‘F�AØ  œ) qš.˜.ؘQ™˜ð! œ) qš.˜.øøð˜‘F�AØ  œ) qš.˜.ؘQ™˜ð! œ) qš.˜.˜.˜.˜.˜.øøåð ð ð Ø �NŠN˜8 A B Bœ<Ñ (Ô (Ð (Ø × Ò ˜f Q R RœjÑ )Ô )Ð )Ø ˆEð øøøñ/ð6 �JÐ Ðs+‹BDÂCÂ:#DÃ$DÄDÄAE Å E có¶—g}|rR| ¦«} | |¦«n%#t$r| |¦«YnwxYw|°R||fS)z­Same behavior as sorted_list_difference but for lists of unorderable items (like dicts). As it does a linear search per item (remove) it has O(n*n) performance.)ÚpopÚremoveÚ ValueErrorr9)r<r=r@Úitems rÚunorderable_list_differencerJbs�€ð €GØ ð!Ø�|Š|‰~Œ~ˆð !Ø �MŠM˜$Ñ Ô Ð Ð øÝð !ð !ð !Ø �NŠN˜4Ñ Ô Ð Ð Ð ð !øøøð ð!ð �Fˆ?Ðsš0°AÁAcó—||k||kz S)z.Return -1 if x < y, 0 if x == y and 1 if x > yr)ÚxÚys rÚ three_way_cmprNss€à �ŠE�a˜!’eÑ ÐrÚMismatchzactual expected valuecó¤—t|¦«t|¦«}}t|¦«t|¦«}}t¦«}g}t|¦«D]ˆ\}} | |urŒ dx} } t ||¦«D]} || | kr | dz } ||| <Œt|¦«D]\} } | | kr | dz } ||| <Œ| | kr&t | | | ¦«}| |¦«Œ‰t|¦«D][\}} | |urŒ d} t ||¦«D]} || | kr | dz } ||| <Œt d| | ¦«}| |¦«Œ\|S)úHReturns list of (cnt_act, cnt_exp, elem) triples where the counts differrr8)Úlistr r,Ú enumerateÚrangeÚ _Mismatchr9)r=r<r ÚtÚmÚnÚNULLr0r>ÚelemÚcnt_sÚcnt_tr?Ú other_elemÚdiffs rÚ_count_diff_all_purposer_ys’€õ �‰<Œ<�˜h™œ€q€AÝ ˆq‰6Œ6•3�q‘6”6€q€AÝ ‰8Œ8€DØ €FݘQ‘<”<ð 𠉈ˆ4Ø �4ˆ<ˆ<Ø ØÐˆ�Ý�q˜!‘”ð ð ˆAØ�Œt�tŠ|ˆ|ؘ‘ �Ø��!‘øÝ& q™\œ\ð ð ‰MˆAˆzؘTÒ!Ð!ؘ‘ �Ø��!‘øØ �EŠ>ˆ>ݘU E¨4Ñ0Ô0ˆDØ �MŠM˜$Ñ Ô Ð øå˜Q‘<”<ð 𠉈ˆ4Ø �4ˆ<ˆ<Ø ØˆÝ�q˜!‘”ð ð ˆAØ�Œt�tŠ|ˆ|ؘ‘ �Ø��!‘øÝ˜˜E 4Ñ(Ô(ˆØ� Š �dÑÔÐÐØ €Mrcó†—t|¦«t|¦«}}g}| ¦«D]G\}}| |d¦«}||kr&t|||¦«}| |¦«ŒH| ¦«D]/\}}||vr&td||¦«}| |¦«Œ0|S)rQr)rÚitemsÚgetrUr9) r=r<r rVr0rZr[r\r^s rÚ_count_diff_hashablercœsÆ€õ �6‰?Œ?�G HÑ-Ô-€q€AØ €FØ—w’w‘y”yð ð ‰ ˆˆeØ—’�d˜A‘”ˆØ �EŠ>ˆ>ݘU E¨4Ñ0Ô0ˆDØ �MŠM˜$Ñ Ô Ð øØ—w’w‘y”yð ð ‰ ˆˆeØ �qˆ=ˆ=ݘQ  tÑ,Ô,ˆDØ �MŠM˜$Ñ Ô Ð øØ €MrN)F)Ú__doc__Ú collectionsrrÚos.pathrÚ __unittestr"r r#rr$rrr(r r6rDrJrNrUr_rcrrrúrhs;ðØ Ð à+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ø Ð Ð Ð Ð Ð à € à€ ØÐ؀؀ Ø€ØØÐ!1Ñ1°OÑCØ ñ!Ø#/ñ0ñ1€ ð˜ÒÐÐÐð ð ð ð  ð ð ð*4ð4ð4ð4ð8ð8ð8ð&ð&ð&ðRððð"ððð ˆJ�zÐ#:Ñ ;Ô ;€ ð!ð!ð!ðFððððr