web-dev-qa-db-ja.com

numpyテストアサート配列が等しくない

numpy.testing.assert_array_equal 2つの配列が等しいことを表明する必要があります。

しかし、numpy.testing.assert_array_not_equalを実行する、つまり2つの配列が等しくないことを確認するための最良の方法は何でしょうか。

20

特にNumPyテストを使用する場合は、numpy.testing.assert_array_equalnumpy.testing.assert_raises と一緒に使用して逆の結果を得ることができます。例えば:

assert_raises(AssertionError, assert_array_equal, array_1, array_2)

また、numpy.testing.utils.assert_array_comparenumpy.testing.assert_array_equalによって使用されます)がありますが、どこにも文書化されていないので、注意して使用してください。これはすべての要素が異なることを確認するので、これはあなたのユースケースではないと思います:

import operator

assert_array_compare(operator.__ne__, array_1, array_2)
18
Eswcvlad

NumPyテストフレームワークに直接組み込まれているものはないと思いますが、次のものを使用できます。

np.any(np.not_equal(a1,a2))

組み込みのユニットテストフレームワークでtrueをアサートするか、NumPyでassert_equalからTrueとして確認します。

np.testing.assert_equal(np.any(np.not_equal(a,a)), True)
5
Mark

なぜこれが投稿されていないのかわからない、質問を正しく理解していなかったのかもしれませんが、どうですか?

assert not np.array_equal(array1 , array2)

Numpyのテストモジュールだけに保持したい理由はありますか?

2