python (3.12.0)

(root)/
lib/
python3.12/
unittest/
__pycache__/
util.cpython-312.opt-1.pyc

̑e_dZddlmZmZddlmZdZdZdZdZ	dZ
dZee	ezezeze
zz
ZdZ
d	Zdd
ZdZdZd
ZdZeddZdZdZy)zVarious utility functions.)
namedtupleCounter)commonprefixTPcnt||z
|z
}|tkDrd|d|||t||z
dfz}|S)Nz%s[%d chars]%s)len_PLACEHOLDER_LEN)s	prefixlen	suffixlenskips    A/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/unittest/util.py_shortenrsKq6I	)D*9
tQs1v	7I7J5KLLHcttt|}ttt|}|t
kr|St
|t	t
|z
tztzz
}|tkDr&tt|tfd|DSttttfd|DS)Nc3.K|]}|dzywN.0rprefixr
s  r	<genexpr>z'_common_shorten_repr.<locals>.<genexpr>'s:Va	
m+:sc3TK|]}t|dttz!ywr)r
_MIN_DIFF_LEN_MIN_END_LENrs  rrz'_common_shorten_repr.<locals>.<genexpr>*s- (1YZ=-NN s%()tuplemap	safe_reprmaxr
_MAX_LENGTHr_MIN_BEGIN_LENr_MIN_COMMON_LENr)argsmaxlen
common_lenrr
s   @@r_common_shorten_reprr(sY%&D
S$
 F

$
FFI9$~58HHJJO#&.*=:T:::
fno
>F    rc	t|}|rt	|t
kr|S|dt
dzS#t$rtj|}YBwxYw)Nz [truncated]...)repr	Exceptionobject__repr__r
r")objshortresults   rr r -sW&cCK+-
,;"333	&%&s/AAc8|jd|jS)N.)
__module____qualname__)clss rstrclassr66snnc&6&677rcdx}}g}g}		||}||}||kr-|j||dz
}|||k(ry|dz
}|||k(rnj||kDr-|j||dz
}|||k(rG|dz
}|||k(rn8|dz
}	|||k(r|dz
}|||k(r|dz
}|||k(r|dz
}|||k(r	#|dz
}|||k(r|dz
}|||k(rwwxYw#t$r.|j||d|j||dY||fSwxYw)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.
    rN)append
IndexErrorextend)expectedactualijmissing
unexpectedeas        rsorted_list_differencerD9s
IAGJ
	Aq	A1uq!QqkQ&FAqkQ&Q!!!$QQi1nFAQi1nQ"1+*Q#1+*FA )q.Q!)q.+(FA )q.Q!)q.	NN8AB<(fQRj)J		sA:C1C8C?B2C0C2CCC1D
	D
cg}|r%|j}	|j||r%||fS#t$r|j|Y#wxYw)zSame 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.)popremove
ValueErrorr9)r<r=r@items    runorderable_list_differencerJbsVG
||~	!MM$F?		!NN4 	!s.A
Ac||kD||kz
S)z.Return -1 if x < y, 0 if x == y and 1 if x > yr)xys  r
three_way_cmprNss
Ea!erMismatchzactual expected valuec<t|t|}}t|t|}}t}g}t|D]y\}}	|	|urdx}
}t	||D]}|||	k(s|
dz
}
|||<t|D]\}}
|
|	k(s|dz
}|||<|
|k7s\t|
||	}|j
|{t|D]N\}}	|	|urd}t	||D]}|||	k(s|dz
}|||<td||	}|j
|P|S)HReturns list of (cnt_act, cnt_exp, elem) triples where the counts differrr8)listr
r,	enumeraterange	_Mismatchr9)r=r<rtmnNULLr0r>elemcnt_scnt_tr?
other_elemdiffs               r_count_diff_all_purposer_ysb<hqAq63q6qA8D
FQ< 44<q!	Att|
!	'q\	MAzT!
!	E>UE40DMM$  Q<	44<q!	Att|
!	E4(

d	MrcHt|t|}}g}|jD];\}}|j|d}||k7st|||}|j	|=|jD](\}}||vstd||}|j	|*|S)rQr)ritemsgetrUr9)	r=r<rrVr0rZr[r\r^s	         r_count_diff_hashablercs6?GH-qA
Fwwy edAE>UE40DMM$	 
wwy eq=Qt,DMM$ MrN)F)__doc__collectionsrros.pathr
__unittestr"rr#rr$rrr(r r6rDrJrNrUr_rcrrr<module>rhs + 

!11OC !#/01

 *48&R"
z#:;	!Fr