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

Function _compare_approx

src/_pytest/python_api.py:43–66  ·  view source on GitHub ↗
(
    full_object: object,
    message_data: Sequence[Tuple[str, str, str]],
    number_of_elements: int,
    different_ids: Sequence[object],
    max_abs_diff: float,
    max_rel_diff: float,
)

Source from the content-addressed store, hash-verified

41
42
43def _compare_approx(
44 full_object: object,
45 message_data: Sequence[Tuple[str, str, str]],
46 number_of_elements: int,
47 different_ids: Sequence[object],
48 max_abs_diff: float,
49 max_rel_diff: float,
50) -> List[str]:
51 message_list = list(message_data)
52 message_list.insert(0, ("Index", "Obtained", "Expected"))
53 max_sizes = [0, 0, 0]
54 for index, obtained, expected in message_list:
55 max_sizes[0] = max(max_sizes[0], len(index))
56 max_sizes[1] = max(max_sizes[1], len(obtained))
57 max_sizes[2] = max(max_sizes[2], len(expected))
58 explanation = [
59 f"comparison failed. Mismatched elements: {len(different_ids)} / {number_of_elements}:",
60 f"Max absolute difference: {max_abs_diff}",
61 f"Max relative difference: {max_rel_diff}",
62 ] + [
63 f"{indexes:<{max_sizes[0]}} | {obtained:<{max_sizes[1]}} | {expected:<{max_sizes[2]}}"
64 for indexes, obtained, expected in message_list
65 ]
66 return explanation
67
68
69# builtin pytest.approx helper

Callers 3

_repr_compareMethod · 0.85
_repr_compareMethod · 0.85
_repr_compareMethod · 0.85

Calls 1

insertMethod · 0.80

Tested by

no test coverage detected