numpy.testing.assert_array_compare()で配列が不一致であることを確認する。
初めに
numpyの公式ドキュメントにこのAPIの仕様がなかったけど、つまったところがあったのでメモしておく。
numpy.testing.assert_array_compare()
2つの配列が不一致であることを確認する
以下のように実装すると2つの配列が不一致であるときのみPASSする。
import numpy as np
import operator
a = np.array([1,2,3])
b = np.array([4,5,6])
# すべての要素が異なる場合はPASS
np.testing.assert_array_compare(operator.__ne__, a, b)
# 1要素でも一致している場合はNG
c = np.array([1,5,6])
np.testing.assert_array_compare(operator.__ne__, a, c)
# ...
# AssertionError:
#
#
# Mismatched elements: 1 / 3 (33.3%)
# Max absolute difference: 3
# Max relative difference: 0.6
# x: array([1, 2, 3])
# y: array([1, 5, 6])
終わりに
なんでこのAPIは仕様が書かれていないのだろうか。。。