답변:
어설 기능에 체크 아웃 numpy.testing
, 예를 들어,
assert_array_equal
부동 소수점 배열의 경우 동등성 테스트가 실패 할 수 있으며 assert_almost_equal
더 안정적입니다.
최신 정보
몇 가지 버전 전에 얻은 numpy assert_allclose
는 절대 및 상대 오류를 모두 지정할 수 있고 근접성 기준으로 소수 반올림이 필요하지 않기 때문에 이제 제가 가장 좋아하는 것입니다.
unittest
할 때 사용할 수 있습니다 . self.assertIsNone(np.testing.assert_array_equal(a, b))
None
사용하는 self.assertEqual(arr1.tolist(), arr2.tolist())
것이 배열을 unittest와 비교하는 가장 쉬운 방법 이라는 것을 알았습니다
.
나는 그것이 가장 예쁜 해결책이 아니며 아마도 가장 빠르지는 않지만 아마도 나머지 테스트 케이스와 더 균일하고 모든 단위 테스트 오류 설명을 얻고 구현하기가 정말 간단하다는 데 동의합니다.
np.nan
때문에, np.nan != np.nan
그리고 self.assertEqual
시도가 그것을 위해 계정에 할 수 없습니다.
Python 3.2부터 assertSequenceEqual(array1.tolist(), array2.tolist())
.
이것은 배열이 다른 정확한 항목을 표시하는 추가 가치가 있습니다.
float
유형일 때는 제대로 작동하지 않습니다 . 우리는 정말로 필요합니다assertSequenceAlmostEqual
내 테스트에서 나는 이것을 사용합니다.
try:
numpy.testing.assert_array_equal(arr1, arr2)
res = True
except AssertionError as err:
res = False
print (err)
self.assertTrue(res)
(np.array([1, 1]) == np.array([1])).all()
True