@Test public void testShift() { // f1(x) = 1 + x + 2 x^2 PolynomialFunction f1x = new PolynomialFunction(new double[] {1, 1, 2}); PolynomialFunction f1x1 = new PolynomialFunction(PolynomialsUtils.shift(f1x.getCoefficients(), 1)); checkPolynomial(f1x1, "4 + 5 x + 2 x^2"); PolynomialFunction f1xM1 = new PolynomialFunction(PolynomialsUtils.shift(f1x.getCoefficients(), -1)); checkPolynomial(f1xM1, "2 - 3 x + 2 x^2"); PolynomialFunction f1x3 = new PolynomialFunction(PolynomialsUtils.shift(f1x.getCoefficients(), 3)); checkPolynomial(f1x3, "22 + 13 x + 2 x^2"); // f2(x) = 2 + 3 x^2 + 8 x^3 + 121 x^5 PolynomialFunction f2x = new PolynomialFunction(new double[] {2, 0, 3, 8, 0, 121}); PolynomialFunction f2x1 = new PolynomialFunction(PolynomialsUtils.shift(f2x.getCoefficients(), 1)); checkPolynomial(f2x1, "134 + 635 x + 1237 x^2 + 1218 x^3 + 605 x^4 + 121 x^5"); PolynomialFunction f2x3 = new PolynomialFunction(PolynomialsUtils.shift(f2x.getCoefficients(), 3)); checkPolynomial(f2x3, "29648 + 49239 x + 32745 x^2 + 10898 x^3 + 1815 x^4 + 121 x^5"); }
private void checkNullPolynomial(PolynomialFunction p) { for (double coefficient : p.getCoefficients()) { Assert.assertEquals(0, coefficient, 1e-13); } }