Fluent断言:近似地比较两个数字集合
本文关键字:两个 集合 数字 比较 断言 Fluent | 更新日期: 2023-09-27 18:17:52
我有两个双精度数组。是否有一种方法使用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);
有其他方法吗?
在泛型集合断言上有一个重载,它接受一个Func,您可以使用该Func在比较期间应用任何谓词。有了它,你可以这样做:
source.Should().Equal(target, (left, right) => AreEqualApproximately(left, right, 0.01));
我知道比较列表是可取的,但你可以迭代它并单独比较它们。我现在不能测试代码,但下面应该可以工作…
double[] source = { 10.01, 8.01, 6.01 };
double[] target = { 10.0, 8.0, 6.0 };
for(var i=0; i<source.Length; i++)
target[i].Should().BeApproximately(source[i], 0.01)