/** * @param x número de elmentos inteiros; * @param g inidce do vetor; * @param a vetor que armazena os x números; * @return p valor do polinomio; * @throws IllegalArgumentException caso não atenda as condicoes: tamanho do vetor >= indice do * vetor + 1; todos elementos do vetor devem ser diferente de 0; o indice do vetor(g) deve ser * igual ou maior que 1; varíavel de controle do loop: i; Uso da class potência para obter a * potencia entre x ,g e x,i; */ public static int polSimples(int x, int g, int[] a) { if (a.length < g + 1) { throw new IllegalArgumentException("tamanho do vetor inválido"); } if (a[g] == 0) { throw new IllegalArgumentException("vetor inválido"); } if (g < 1) { throw new IllegalArgumentException("g inválido"); } int t = Potencia.potencia(x, g); int p = a[0]; int i = 1; while (i <= g) { t = Potencia.potencia(x, i); p = p + (a[i] * t); i = i + 1; } return p; }
@Test public void testCasosTriviais() throws Exception { assertEquals(1, Potencia.potencia(1, 2), 0.0); assertEquals(1, Potencia.potencia(2, 0), 0.0); assertEquals(2, Potencia.potencia(2, 1), 0.0); assertEquals(4, Potencia.potencia(2, 2), 0.0); }
@Test(expected = IllegalArgumentException.class) public void testBaseInvalida() { Potencia.potencia(-1, 2); }
@Test public void testCasosNaoTriviais() throws Exception { assertEquals(25, Potencia.potencia(5, 2), 0.0); assertEquals(2187, Potencia.potencia(3, 7), 0.0); }
@Test(expected = IllegalArgumentException.class) public void testCasoDeFronteira() { Potencia.potencia(0, 1); Potencia.potencia(1, -1); }
@Test(expected = IllegalArgumentException.class) public void testExpoenteInvalido() { Potencia.potencia(2, -2); }