import hashlib12import numpy as np34# non-randomized hash function5hash = lambda s: int(hashlib.sha512(s.encode('utf-8')).hexdigest()[:16], 16)678def isclose(a, b, rel_tol=1e-06, abs_tol=0.0):9if np.isnan(a) == np.isnan(b):10return True11if np.isinf(a) == np.isinf(b):12return True13if a == b:14return True15return abs(a - b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)161718def record_arrays_close(x, y):19for field in x.dtype.names:20np.testing.assert_allclose(x[field], y[field], rtol=1e-06)212223