流利断言:近似比较两个数字集合

Dav*_*d H 5 c# nunit unit-testing fluent-assertions

我有两个double数组.有没有办法使用FluentAssertions使用.BeApproximately()技术逐个元素地比较数组?

一个范围值足以满足整个阵列的要求.

例:

double[] source = { 10.01, 8.01, 6.01 };
double[] target = { 10.0, 8.0, 6.0  };

// THE FOLLOWING IS NOT IMPLEMENTED
target.Should().BeApproximately(source, 0.01);   
Run Code Online (Sandbox Code Playgroud)

有替代方法吗?

Den*_*men 8

泛型集合断言有一个重载,它带有一个Func,您可以在比较期间使用它来应用任何谓词.有了这个,你可以这样做:

source.Should().Equal(target, (left, right) => AreEqualApproximately(left, right, 0.01));
Run Code Online (Sandbox Code Playgroud)

您唯一需要做的就是自己创建该方法.