当前位置: 首页 > 知识库问答 >
问题:

我如何使用Hamcrest来检查双打数组中的每个元素是否与另一个数组中的每个元素“接近”?

支华池
2023-03-14

我想比较两个数组的双打。使用香草JUnit,我可以:

double[] a = new double[]{1.0, 2.0, 3.0};
double[] b = new double[]{1.0, 2.0, 3.0};
assertEquals(a, b, 1e-10);

共有1个答案

邰钟展
2023-03-14

如果将a更改为Double[],则可以使用以下帮助器方法执行AssertThat(a,arrayCloseTo(b,.2));:

public static Matcher<Double[]> arrayCloseTo(double[] array, double error) {
    List<Matcher<? super Double>> matchers = new ArrayList<Matcher<? super Double>>();
    for (double d : array)
        matchers.add(closeTo(d, error));
    return arrayContaining(matchers);
}

您也可以使用原始数组来完成,但是您需要一个自定义匹配器。

 类似资料: