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

Method _repr_compare

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

Source from the content-addressed store, hash-verified

319 )
320
321 def _repr_compare(self, other_side: Sequence[float]) -> List[str]:
322 import math
323 import numpy as np
324
325 if len(self.expected) != len(other_side):
326 return [
327 "Impossible to compare lists with different sizes.",
328 f"Lengths: {len(self.expected)} and {len(other_side)}",
329 ]
330
331 approx_side_as_map = _recursive_list_map(self._approx_scalar, self.expected)
332
333 number_of_elements = len(approx_side_as_map)
334 max_abs_diff = -math.inf
335 max_rel_diff = -math.inf
336 different_ids = []
337 for i, (approx_value, other_value) in enumerate(
338 zip(approx_side_as_map, other_side)
339 ):
340 if approx_value != other_value:
341 abs_diff = abs(approx_value.expected - other_value)
342 max_abs_diff = max(max_abs_diff, abs_diff)
343 if other_value == 0.0:
344 max_rel_diff = np.inf
345 else:
346 max_rel_diff = max(max_rel_diff, abs_diff / abs(other_value))
347 different_ids.append(i)
348
349 message_data = [
350 (str(i), str(other_side[i]), str(approx_side_as_map[i]))
351 for i in different_ids
352 ]
353
354 return _compare_approx(
355 self.expected,
356 message_data,
357 number_of_elements,
358 different_ids,
359 max_abs_diff,
360 max_rel_diff,
361 )
362
363 def __eq__(self, actual) -> bool:
364 try:

Callers

nothing calls this directly

Calls 3

_recursive_list_mapFunction · 0.85
_compare_approxFunction · 0.85
appendMethod · 0.80

Tested by

no test coverage detected