例:二重配列を比較するとき、丸め誤差をどのように考慮しますか?
(Actual) array: 0.0402666113, 0.2355691
(Expected) array: 0.04027, 0.23557
私は私の予想される配列は、実際の配列が一致するかどうかを確認するためにJUnitテストを書くことをしようとしています。上記の例では、テストは合格(つまり配列は等しい)ですが、実際にはテストは行いません。私は配列の行に沿ってメッセージを得るでしょう、期待されるインデックス0で異なった配列:0.0402666113;実際の:0.04027 '。これは数値の精度によるものと推測します。 for-loopを使用せずにこれらの配列を比較する方法はありますか?
私は現在、このラインを使用してそれらを比較しようとしている:
assertArrayEquals(expected, actual);
私は、彼らがこのような何かをするだろうとして見てきた:これは動作するはず
final double delta = 0.0001;
assertArrayEquals(expected, actual, delta);
を、しかし、私が取得'メソッドassertArrayEquals(double []、double []、double)'を解決できません。私のJUnitバージョン(4.12)で使用できるのと同等のメソッドがありますか?もしそうでなければ、JUnitをIntelliJでどのように更新できますか?私はこのIDEを最近使用し始めました。
本当にありがとうございました。
'assertArrayEquals'もどこかのループを使用します。 –
Math.round(a/0.0001)== Math.round(b/0.0001) – copeg
カスタム配列の等号を書かずにアサートするために 'boolean'を渡すのはなぜでしょうか? –