値を計算するには 2 つの異なる方法があります。両方のメソッドが実行されると、次のようになります。
decimal a = 145.2344;
decimal b = 145.2345;
私は単体テストを持っています:
Assert.AreEqual(a,b);
+/- .0001 の差を考慮できるようにしたいと考えています。このルールを追加するにはどうすればよいですか?
値を計算するには 2 つの異なる方法があります。両方のメソッドが実行されると、次のようになります。
decimal a = 145.2344;
decimal b = 145.2345;
私は単体テストを持っています:
Assert.AreEqual(a,b);
+/- .0001 の差を考慮できるようにしたいと考えています。このルールを追加するにはどうすればよいですか?
NUnit の制約モデルでは、次のことができます。
Assert.That(Math.Abs(a-b), Is.LessThan(0.0001M));
いっそのこと、それを関数にします:
void AssertDiff(decimal a, decimal b, decimal diff = 0.0001) {
Assert.That(Math.Abs(a-b), Is.LessThan(diff));
}
EDIT: MSユニットテストフレームワークで、これを行います:
void AssertDiff(decimal a, decimal b, decimal diff = 0.0001) {
Assert.IsTrue(Math.Abs(a-b) < diff);
}
単純:
if (Math.Abs(a-b) < 0.0001m)
// equal