Android Studio で Hamcrest の closeTo マッチャーを使いたい

モジュールの build.gradle ファイルの dependencies に以下を追加する。hamcrest.org からライブラリをダウンロードするまでもありません。

dependencies {
  // ...
  testCompile 'junit:junit:4.12'
  testCompile 'org.hamcrest:hamcrest-library:1.3'
}

もう一つの方法(追記)

「File > Project Structure」で開いたダイアログでモジュールの設定の Dependencies タブを選択し、「+」ボタンをクリックして「1 Library dependency」を選択すると「Choose Dependency」ダイアログが表示されます。そこで org.hamcrest を検索するとライブラリがリストアップされるので、そこから選びます。

そして、モジュールの build.gradle ファイルの dependencies に挿入された org.hamcrest の行の先頭を compile から testCompile に変更します。

なぜ closeTo を使いたいのか

JUnit4 で浮動小数点の比較をするアサーションを書くとします。

    assertThat(2.32 * 3, equalTo(6.96));

とすると、成功するように見えて失敗します。浮動小数点の演算で「2.32 * 2」が 6.95999999999 となってしまうためです。
そこで、ある程度の誤差を見込んで:

    assertTrue(Match.abs((2.32 * 3) - 6.96) < 0.0005);

のようにすることもできます。が、これでは失敗したときのメッセージも分かりにくくなります。
そこで Hamcrest の closeTo() というマッチャーを使えば:

import static org.hamcrest.number.IsCloseTo.*;
    // ...
    assertThat(2.32 * 3, closeTo(6.96, 0.0005);

と書けるようになります。