LoginSignup
0
1

More than 1 year has passed since last update.

浮動小数点に関するテストコード(Swift)

Last updated at Posted at 2023-02-05

浮動小数点に関するテストコード(Swift)

浮動小数点は実際の小数とは異なり、誤差が生じます。ですので、テストで沼にハマります。

例えば、以下のテストコードは失敗します。

let value = 5.11 - 5.10
XCTAssertEqual(value, 0.01)

value0.01は一致しません。エラーメッセージを眺めると、

XCTAssertEqual failed: ("0.010000000000000675") is not equal to ("0.01")

valueは、0.010000000000000675になっているようです。コンピュータ上では、浮動小数点の計算には誤差が付きまといます。

そんな時は、XCTAssertEqual(::accuracy:_:file:line:)を利用しましょう。

例を示します。

let value = 5.11 - 5.10
let epsilon = 0.0001
XCTAssertEqual(value, 0.01, accuracy: epsilon)

accuracyに、許容可能な最大誤差を設定します。今回は0.0001を設定しました。ですので、テストは通ります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1