(arrays, err_msg, header='Items are not equal:',
verbose=True, names=('ACTUAL', 'DESIRED'), precision=8)
| 229 | |
| 230 | |
| 231 | def build_err_msg(arrays, err_msg, header='Items are not equal:', |
| 232 | verbose=True, names=('ACTUAL', 'DESIRED'), precision=8): |
| 233 | msg = ['\n' + header] |
| 234 | err_msg = str(err_msg) |
| 235 | if err_msg: |
| 236 | if err_msg.find('\n') == -1 and len(err_msg) < 79 - len(header): |
| 237 | msg = [msg[0] + ' ' + err_msg] |
| 238 | else: |
| 239 | msg.append(err_msg) |
| 240 | if verbose: |
| 241 | for i, a in enumerate(arrays): |
| 242 | |
| 243 | if isinstance(a, ndarray): |
| 244 | # precision argument is only needed if the objects are ndarrays |
| 245 | r_func = partial(array_repr, precision=precision) |
| 246 | else: |
| 247 | r_func = repr |
| 248 | |
| 249 | try: |
| 250 | r = r_func(a) |
| 251 | except Exception as exc: |
| 252 | r = f'[repr failed for <{type(a).__name__}>: {exc}]' |
| 253 | if r.count('\n') > 3: |
| 254 | r = '\n'.join(r.splitlines()[:3]) |
| 255 | r += '...' |
| 256 | msg.append(f' {names[i]}: {r}') |
| 257 | return '\n'.join(msg) |
| 258 | |
| 259 | |
| 260 | def assert_equal(actual, desired, err_msg='', verbose=True, *, strict=False): |
searching dependent graphs…