1. ホーム
  2. java

[解決済み] JUnit assertEquals(double expected, double actual, double epsilon) [重複].

2022-10-26 13:37:01

質問

<余談
この質問には、すでにここで回答があります :
クローズド 10年前 .

重複の可能性あり。

JUnit: ダブル値に対するassertEquals

どうやら assertEquals(double expected, double actual) は非推奨になったようです。

JUnitのjavadocsは、その広い用途を考慮すると、驚くほど不足しています。新しい assertEquals(double expected, double actual, double epsilon) ?

どのように解決するのですか?

エプシロンとは、ファジーファクターのことで、2倍速が正確に等しくない場合があります。イプシロンによって、どの程度近づけなければならないかを記述することができます。

3.14159 を期待していたが、3.14059 から 3.14259 までのどこか(つまり 0.001 以内)を取る場合、次のように書くべきです。

double myPi = 22.0d / 7.0d; //Don't use this in real life!
assertEquals(3.14159, myPi, 0.001);

(ちなみに、22/7は3.1428+となり、アサーションに失敗します。これは良いことです)