I’m writing tests using pytest. I have two dictionaries with numpy arrays that looks something like:
dict_1 = {
'test_1': np.array([-0.1, -0.2, -0.3]),
'test_2': np.array([-0.4, -0.5, -0.6]),
'test_3': np.array([-0.7, -0.8, -0.9]),
}
When I try to compare two of these using assert dict_1 == dict_2, I get an error saying
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
And it seems like any() and all() only work on lists. Would I have to run a loop in those two dicts and compare each values using all() or any()?
Advertisement
Answer
You can use numpy.testing.assert_equal:
np.testing.assert_equal(dict_1,dict_2)
For more information, here is a link to the numpy documentation for np.testing.assert_equal.