Assert.AreEqualは精度を指定できるメソッドがあるけれど、CollectionAssertにはないっぽい。まぁ、それはそうか。
// Assert.AreEqualのオーバーロード: public static void AreEqual (double expected, double actual, double delta);
IComparerを引数にとるメソッドがあるので、これが使えそう。しかし、どうせならIComparer<T>にしてほしかった…。
public class DoubleComparer : IComparer { public int Compare(object x, object y) { return (x, y) switch { (double dx, double dy) => Math.Abs(dx - dy) < double.Epsilon ? 0 : dx.CompareTo(dy), _ => -1 }; } } public void TestMethod() { double[] excepted = ...; double[] actual = ...; CollectionAssert.AreEqual(excepted, actual, new DoubleComparer()); }