git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1538772 13f79535-47bb-0310-9956-ffa450edef68tags/REL_3_10_FINAL
@@ -68,7 +68,7 @@ public final class LinearRegressionFunction extends Fixed2ArgFunction { | |||
super(1); | |||
_value = value; | |||
} | |||
@Override | |||
protected ValueEval getItemInternal(int index) { | |||
return _value; | |||
} | |||
@@ -80,7 +80,7 @@ public final class LinearRegressionFunction extends Fixed2ArgFunction { | |||
super(1); | |||
_ref = ref; | |||
} | |||
@Override | |||
protected ValueEval getItemInternal(int index) { | |||
return _ref.getInnerValueEval(); | |||
} | |||
@@ -95,7 +95,7 @@ public final class LinearRegressionFunction extends Fixed2ArgFunction { | |||
_ae = ae; | |||
_width = ae.getWidth(); | |||
} | |||
@Override | |||
protected ValueEval getItemInternal(int index) { | |||
int rowIx = index / _width; | |||
int colIx = index % _width; | |||
@@ -114,8 +114,8 @@ public final class LinearRegressionFunction extends Fixed2ArgFunction { | |||
ValueEval arg0, ValueEval arg1) { | |||
double result; | |||
try { | |||
ValueVector vvX = createValueVector(arg0); | |||
ValueVector vvY = createValueVector(arg1); | |||
ValueVector vvY = createValueVector(arg0); | |||
ValueVector vvX = createValueVector(arg1); | |||
int size = vvX.getSize(); | |||
if (size == 0 || vvY.getSize() != size) { | |||
return ErrorEval.NA; | |||
@@ -137,7 +137,6 @@ public final class LinearRegressionFunction extends Fixed2ArgFunction { | |||
ErrorEval firstXerr = null; | |||
ErrorEval firstYerr = null; | |||
boolean accumlatedSome = false; | |||
double result = 0.0; | |||
// first pass: read in data, compute xbar and ybar | |||
double sumx = 0.0, sumy = 0.0; | |||
@@ -59,7 +59,7 @@ public final class TestIntercept extends TestCase { | |||
public void testBasic() { | |||
Double exp = Math.pow(10, 7.5); | |||
ValueEval[] xValues = { | |||
ValueEval[] yValues = { | |||
new NumberEval(3+exp), | |||
new NumberEval(4+exp), | |||
new NumberEval(2+exp), | |||
@@ -67,9 +67,9 @@ public final class TestIntercept extends TestCase { | |||
new NumberEval(4+exp), | |||
new NumberEval(7+exp), | |||
}; | |||
ValueEval areaEvalX = createAreaEval(xValues); | |||
ValueEval areaEvalY = createAreaEval(yValues); | |||
ValueEval[] yValues = { | |||
ValueEval[] xValues = { | |||
new NumberEval(1), | |||
new NumberEval(2), | |||
new NumberEval(3), | |||
@@ -77,7 +77,7 @@ public final class TestIntercept extends TestCase { | |||
new NumberEval(5), | |||
new NumberEval(6), | |||
}; | |||
ValueEval areaEvalY = createAreaEval(yValues); | |||
ValueEval areaEvalX = createAreaEval(xValues); | |||
confirm(INTERCEPT, areaEvalX, areaEvalY, -24516534.39905822); | |||
// Excel 2010 gives -24516534.3990583 | |||
} | |||
@@ -86,9 +86,9 @@ public final class TestIntercept extends TestCase { | |||
* number of items in array is not limited to 30 | |||
*/ | |||
public void testLargeArrays() { | |||
ValueEval[] xValues = createMockNumberArray(100, 3); // [1,2,0,1,2,0,...,0,1] | |||
xValues[0] = new NumberEval(2.0); // Changes first element to 2 | |||
ValueEval[] yValues = createMockNumberArray(100, 101); // [1,2,3,4,...,99,100] | |||
ValueEval[] yValues = createMockNumberArray(100, 3); // [1,2,0,1,2,0,...,0,1] | |||
yValues[0] = new NumberEval(2.0); // Changes first element to 2 | |||
ValueEval[] xValues = createMockNumberArray(100, 101); // [1,2,3,4,...,99,100] | |||
confirm(INTERCEPT, createAreaEval(xValues), createAreaEval(yValues), 51.74384236453202); | |||
// Excel 2010 gives 51.74384236453200 | |||
@@ -136,8 +136,8 @@ public final class TestIntercept extends TestCase { | |||
confirmError(areaEvalX, areaEvalX, ErrorEval.REF_INVALID); | |||
// search for errors array by array, not pair by pair | |||
confirmError(areaEvalX, areaEvalY, ErrorEval.REF_INVALID); | |||
confirmError(areaEvalY, areaEvalX, ErrorEval.NULL_INTERSECTION); | |||
confirmError(areaEvalX, areaEvalY, ErrorEval.NULL_INTERSECTION); | |||
confirmError(areaEvalY, areaEvalX, ErrorEval.REF_INVALID); | |||
} | |||
/** |
@@ -54,7 +54,7 @@ public final class TestSlope extends TestCase { | |||
public void testBasic() { | |||
Double exp = Math.pow(10, 7.5); | |||
ValueEval[] xValues = { | |||
ValueEval[] yValues = { | |||
new NumberEval(3+exp), | |||
new NumberEval(4+exp), | |||
new NumberEval(2+exp), | |||
@@ -62,9 +62,9 @@ public final class TestSlope extends TestCase { | |||
new NumberEval(4+exp), | |||
new NumberEval(7+exp), | |||
}; | |||
ValueEval areaEvalX = createAreaEval(xValues); | |||
ValueEval areaEvalY = createAreaEval(yValues); | |||
ValueEval[] yValues = { | |||
ValueEval[] xValues = { | |||
new NumberEval(1), | |||
new NumberEval(2), | |||
new NumberEval(3), | |||
@@ -72,7 +72,7 @@ public final class TestSlope extends TestCase { | |||
new NumberEval(5), | |||
new NumberEval(6), | |||
}; | |||
ValueEval areaEvalY = createAreaEval(yValues); | |||
ValueEval areaEvalX = createAreaEval(xValues); | |||
confirm(SLOPE, areaEvalX, areaEvalY, 0.7752808988764045); | |||
// Excel 2010 gives 0.775280898876405 | |||
} | |||
@@ -81,9 +81,9 @@ public final class TestSlope extends TestCase { | |||
* number of items in array is not limited to 30 | |||
*/ | |||
public void testLargeArrays() { | |||
ValueEval[] xValues = createMockNumberArray(100, 3); // [1,2,0,1,2,0,...,0,1] | |||
xValues[0] = new NumberEval(2.0); // Changes first element to 2 | |||
ValueEval[] yValues = createMockNumberArray(100, 101); // [1,2,3,4,...,99,100] | |||
ValueEval[] yValues = createMockNumberArray(100, 3); // [1,2,0,1,2,0,...,0,1] | |||
yValues[0] = new NumberEval(2.0); // Changes first element to 2 | |||
ValueEval[] xValues = createMockNumberArray(100, 101); // [1,2,3,4,...,99,100] | |||
confirm(SLOPE, createAreaEval(xValues), createAreaEval(yValues), -1.231527093596059); | |||
// Excel 2010 gives -1.23152709359606 | |||
@@ -131,7 +131,7 @@ public final class TestSlope extends TestCase { | |||
confirmError(areaEvalX, areaEvalX, ErrorEval.REF_INVALID); | |||
// search for errors array by array, not pair by pair | |||
confirmError(areaEvalX, areaEvalY, ErrorEval.REF_INVALID); | |||
confirmError(areaEvalY, areaEvalX, ErrorEval.NULL_INTERSECTION); | |||
confirmError(areaEvalX, areaEvalY, ErrorEval.NULL_INTERSECTION); | |||
confirmError(areaEvalY, areaEvalX, ErrorEval.REF_INVALID); | |||
} | |||
} |