@Test
    public void testSubtract() {
        System.out.println("subtract");
        Polynomial<Double, Double, Double> instance = this._instance;

        double[] values;

        values = new double[4];
        for (int i = 0; i < values.length; i++)
            values[i] = i + 1.0;
        Polynomial<Double, Double, Double> value = new PolynomialReal(values);
        values = new double[4];
        for (int i = 0; i < values.length; i++)
            values[i] = -(i + 1.0);
        for (int i = 0; i < Math.min(values.length, instance.getDegree() + 1); i++)
            values[i] += instance.getCoefficient(i);
        Polynomial<Double, Double, Double> expResult = new PolynomialReal(values);

        this._tester.testSubtract(instance, value, expResult);

        values = new double[5];
        for (int i = 0; i < values.length; i++)
            values[i] = i + 1.0;
        value = new PolynomialReal(values);
        values = new double[5];
        for (int i = 0; i < values.length; i++)
            values[i] = -(i + 1.0);
        for (int i = 0; i < Math.min(values.length, instance.getDegree() + 1); i++)
            values[i] += instance.getCoefficient(i);
        expResult = new PolynomialReal(values);

        this._tester.testSubtract(instance, value, expResult);

        values = new double[3];
        for (int i = 0; i < values.length; i++)
            values[i] = i + 1.0;
        value = new PolynomialReal(values);
        values = new double[Math.max(values.length, instance.getDegree() + 1)];
        for (int i = 0; i < 3; i++)
            values[i] = -(i + 1.0);
        for (int i = 0; i < Math.min(values.length, instance.getDegree() + 1); i++)
            values[i] += instance.getCoefficient(i);
        expResult = new PolynomialReal(values);

        this._tester.testSubtract(instance, value, expResult);
    }