@Test
public void countRealRoots() {
Polynomial poly = Polynomial.wrap(-1,0,3,1);
assertEquals(1, countRealRoots(poly, -3, -2));
assertEquals(0, countRealRoots(poly, 2, 3));
assertEquals(3, countRealRoots(poly, -3, 3));
assertEquals(3, countRealRoots(poly, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY));
assertEquals(0, countRealRoots(Polynomial.wrap(2), Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY));
assertEquals(1, countRealRoots(Polynomial.wrap(2, 3), Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY));
assertEquals(0, countRealRoots(Polynomial.wrap(2, 3), 0, Double.POSITIVE_INFINITY));
assertEquals(0, countRealRoots(Polynomial.wrap(2, 3), Double.NEGATIVE_INFINITY, -10));
assertEquals(1, countRealRoots(Polynomial.wrap(2, 3), -2, -0.5));
assertEquals(0, countRealRoots(Polynomial.wrap(2, 3, 4), Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY));
assertEquals(2, countRealRoots(Polynomial.wrap(2, -1, -4), Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY));
poly = Polynomial.wrap(-1.322309e+02 , 3.713984e+02 , -5.007874e+02 , 3.744386e+02 ,-1.714667e+02 ,
4.865014e+01 ,-1.059870e+01 , 1.642273e+00 ,-2.304341e-01,2.112391e-03,-2.273737e-13);
assertEquals(2, countRealRoots(poly, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY));
}