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]$} || | k�r�| 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&  ) #