web-dev-qa-db-ja.com

JUnit assertEquals(二重期待、二重実際、二重イプシロン)

可能性のある複製:
JUnit:double値のassertEquals

assertEquals(double expected, double actual)は非推奨のようです。

JUnitのjavadocは、その広範な使用を考慮すると、驚くほど不足しています。新しいassertEquals(double expected, double actual, double epsilon)の使用方法を教えてください。

87
LuxuryMode

倍精度は正確に等しくない場合があるため、イプシロンは「ファズ係数」です。イプシロンでは、どれだけ近くにあるかを説明できます。

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+になり、アサーションに失敗します。これは良いことです。)

145
rajah9