MCPcopy Index your code
hub / github.com/python/cpython / _count_diff_all_purpose

Function _count_diff_all_purpose

Lib/unittest/util.py:138–171  ·  view source on GitHub ↗

Returns list of (cnt_act, cnt_exp, elem) triples where the counts differ

(actual, expected)

Source from the content-addressed store, hash-verified

136_Mismatch = namedtuple('Mismatch', 'actual expected value')
137
138def _count_diff_all_purpose(actual, expected):
139 'Returns list of (cnt_act, cnt_exp, elem) triples where the counts differ'
140 # elements need not be hashable
141 s, t = list(actual), list(expected)
142 m, n = len(s), len(t)
143 NULL = object()
144 result = []
145 for i, elem in enumerate(s):
146 if elem is NULL:
147 continue
148 cnt_s = cnt_t = 0
149 for j in range(i, m):
150 if s[j] == elem:
151 cnt_s += 1
152 s[j] = NULL
153 for j, other_elem in enumerate(t):
154 if other_elem == elem:
155 cnt_t += 1
156 t[j] = NULL
157 if cnt_s != cnt_t:
158 diff = _Mismatch(cnt_s, cnt_t, elem)
159 result.append(diff)
160
161 for i, elem in enumerate(t):
162 if elem is NULL:
163 continue
164 cnt_t = 0
165 for j in range(i, n):
166 if t[j] == elem:
167 cnt_t += 1
168 t[j] = NULL
169 diff = _Mismatch(0, cnt_t, elem)
170 result.append(diff)
171 return result
172
173def _count_diff_hashable(actual, expected):
174 'Returns list of (cnt_act, cnt_exp, elem) triples where the counts differ'

Callers 1

assertCountEqualMethod · 0.85

Calls 3

listClass · 0.85
enumerateFunction · 0.85
appendMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…