MCPcopy Create free account
hub / github.com/pytest-dev/pytest / _repr_compare

Method _repr_compare

src/_pytest/python_api.py:251–287  ·  view source on GitHub ↗
(self, other_side: Mapping[object, float])

Source from the content-addressed store, hash-verified

249 )
250
251 def _repr_compare(self, other_side: Mapping[object, float]) -> List[str]:
252 import math
253
254 approx_side_as_map = {
255 k: self._approx_scalar(v) for k, v in self.expected.items()
256 }
257
258 number_of_elements = len(approx_side_as_map)
259 max_abs_diff = -math.inf
260 max_rel_diff = -math.inf
261 different_ids = []
262 for (approx_key, approx_value), other_value in zip(
263 approx_side_as_map.items(), other_side.values()
264 ):
265 if approx_value != other_value:
266 max_abs_diff = max(
267 max_abs_diff, abs(approx_value.expected - other_value)
268 )
269 max_rel_diff = max(
270 max_rel_diff,
271 abs((approx_value.expected - other_value) / approx_value.expected),
272 )
273 different_ids.append(approx_key)
274
275 message_data = [
276 (str(key), str(other_side[key]), str(approx_side_as_map[key]))
277 for key in different_ids
278 ]
279
280 return _compare_approx(
281 self.expected,
282 message_data,
283 number_of_elements,
284 different_ids,
285 max_abs_diff,
286 max_rel_diff,
287 )
288
289 def __eq__(self, actual) -> bool:
290 try:

Callers

nothing calls this directly

Calls 3

_compare_approxFunction · 0.85
_approx_scalarMethod · 0.80
appendMethod · 0.80

Tested by

no test coverage detected