(self, other_side: Sequence[float])
| 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: |
nothing calls this directly
no test coverage detected