MCPcopy
hub / github.com/pytest-dev/pytest / _repr_compare

Method _repr_compare

src/_pytest/python_api.py:330–373  ·  view source on GitHub ↗
(self, other_side: Sequence[float])

Source from the content-addressed store, hash-verified

328 return f"approx({seq_type(self._approx_scalar(x) for x in self.expected)!r})"
329
330 def _repr_compare(self, other_side: Sequence[float]) -> list[str]:
331 import math
332
333 if len(self.expected) != len(other_side):
334 return [
335 "Impossible to compare lists with different sizes.",
336 f"Lengths: {len(self.expected)} and {len(other_side)}",
337 ]
338
339 approx_side_as_map = _recursive_sequence_map(self._approx_scalar, self.expected)
340
341 number_of_elements = len(approx_side_as_map)
342 max_abs_diff = -math.inf
343 max_rel_diff = -math.inf
344 different_ids = []
345 for i, (approx_value, other_value) in enumerate(
346 zip(approx_side_as_map, other_side, strict=True)
347 ):
348 if approx_value != other_value:
349 try:
350 abs_diff = abs(approx_value.expected - other_value)
351 max_abs_diff = max(max_abs_diff, abs_diff)
352 # Ignore non-numbers for the diff calculations (#13012).
353 except TypeError:
354 pass
355 else:
356 if other_value == 0.0:
357 max_rel_diff = math.inf
358 else:
359 max_rel_diff = max(max_rel_diff, abs_diff / abs(other_value))
360 different_ids.append(i)
361 message_data = [
362 (str(i), str(other_side[i]), str(approx_side_as_map[i]))
363 for i in different_ids
364 ]
365
366 return _compare_approx(
367 self.expected,
368 message_data,
369 number_of_elements,
370 different_ids,
371 max_abs_diff,
372 max_rel_diff,
373 )
374
375 def __eq__(self, actual) -> bool:
376 try:

Callers

nothing calls this directly

Calls 3

_recursive_sequence_mapFunction · 0.85
_compare_approxFunction · 0.85
appendMethod · 0.80

Tested by

no test coverage detected