MCPcopy Index your code
hub / github.com/PAIR-code/lit / assert_deep_almost_equal

Function assert_deep_almost_equal

lit_nlp/lib/testing_utils.py:162–177  ·  view source on GitHub ↗

Checks if provided inputs are almost equal, recurses on dicts values.

(testcase, result, actual, places=4)

Source from the content-addressed store, hash-verified

160
161
162def assert_deep_almost_equal(testcase, result, actual, places=4):
163 """Checks if provided inputs are almost equal, recurses on dicts values."""
164 if isinstance(result, (int, float)):
165 testcase.assertAlmostEqual(result, actual, places=places)
166 elif isinstance(result, (list)):
167 if all(isinstance(n, (int, float)) for n in result):
168 rtol = 10 ** (-1 * places)
169 npt.assert_allclose(result, actual, rtol=rtol, atol=1e-4)
170 elif all(isinstance(n, dict) for n in result):
171 for i in range(len(result)):
172 assert_deep_almost_equal(testcase, result[i], actual[i])
173 elif isinstance(result, dict):
174 if set(result.keys()) != set(actual.keys()):
175 testcase.fail('results and actual have different keys')
176 for key in result:
177 assert_deep_almost_equal(testcase, result[key], actual[key])
178
179
180class CustomOutputModelForTesting(lit_model.BatchedModel):

Callers

nothing calls this directly

Calls 2

rangeFunction · 0.85
keysMethod · 0.80

Tested by

no test coverage detected