HspecのExpectations(`shouldBe` とか)について質問です
数値をテストする際に、浮動少数計算によって起きる僅かな誤差を取り除いてくれるExpectationってありますか...?
今3次元ベクトルを回転行列で変換する関数を書いていて、そのテストをしたいのですが三角関数周りの誤差でテストが書けずにいます...
例えば
現在は、ある程度の誤差を無視する以下のような関数を作成してそれで判定をしているのですが、何かしら一般的な方法があったりしますでしょうか...?
数値をテストする際に、浮動少数計算によって起きる僅かな誤差を取り除いてくれるExpectationってありますか...?
今3次元ベクトルを回転行列で変換する関数を書いていて、そのテストをしたいのですが三角関数周りの誤差でテストが書けずにいます...
例えば
cos (pi/2)
shouldBe` 0` は成功してほしいのですが失敗するなどします。現在は、ある程度の誤差を無視する以下のような関数を作成してそれで判定をしているのですが、何かしら一般的な方法があったりしますでしょうか...?
almostEqual :: Float -> Float -> Bool almostEqual a b = a+diff >= b && b <= a+diff where diff = 0.1 -- 無視してよい誤差の範囲を決めるよしなな数字、今は適当