【发布时间】:2016-05-19 10:05:03
【问题描述】:
目前我依赖于 commons-math 2.1,但我想将其升级到 commons-math 3.6。不幸的是,有些测试用例不再有效。我知道是什么导致了我的问题,但我不知道如何相应地更改测试用例以像以前一样测试正确的行为。
我有以下测试代码:
@Test
public void testIdentityMatrix() {
double[][] x = { { 1, 0, 0, 0 }, { 0, 1, 0, 0 }, { 0, 0, 0, 1 }, { 0, 0, 0, 1 } };
double[] y = { 1, 2, 3, 4 };
OLSMultipleLinearRegression regression = new OLSMultipleLinearRegression();
regression.setNoIntercept(true);
regression.newSampleData(y, x);
double[] b = regression.estimateRegressionParameters();
for (int i = 0; i < y.length; i++)
{
assertEquals(b[i], y[i], 0.001);
}
}
升级到 commons-math 3.6 后,OLSMultipleLinearRegression 检查给定矩阵 x 和向量 y 的有效内容。此验证失败并显示以下消息:
这么多预测变量(4 个预测变量)没有足够的数据(4 行)
我需要更改哪些内容才能更正该测试用例?
【问题讨论】: