Olá instrutores, tudo certo?
Ainda sobre o algoritmo do palíndromo, o algoritmo está como apresentado no exercício. Gostaria de apresentar minha classe de testes, pois gostaria de receber auxílio em relação aos casos de testes da classe do palíndromo.
Gostaria de saber, o que pode ser melhorado no teste, pois ainda não consegui encontrar o bug.
Segue a classe palíndromo e a classe de testes abaixo.
Desde já, agradeço.
Abs,
package br.com.caelum.leilao.exercicios;
public class Palindromo {
public boolean ehPalindromo(String frase) {
String fraseFiltrada = frase.toUpperCase().replace(" ", "").replace("-", "");
for (int i = 0; i < fraseFiltrada.length(); i++) {
if (fraseFiltrada.charAt(i) != fraseFiltrada.charAt(fraseFiltrada.length() - (i + 1))) {
return false;
}
}
return true;
}
}
package br.com.caelum.leilao.exercicios;
import org.junit.Assert;
import org.junit.Test;
public class PalindromoTest {
@Test
public void testaSeEhPalindromoEValidaCaracteresInvalidos() {
Palindromo verificador = new Palindromo();
String frase = "Socorram-me subi no onibus em Marrocos";
boolean resposta = verificador.ehPalindromo(frase);
Assert.assertTrue("erro no algoritmo", resposta);
}
@Test
public void testaSeEhPalindromo() {
Palindromo verificador = new Palindromo();
String frase = "Anotaram a data da maratona";
boolean resposta = verificador.ehPalindromo(frase);
Assert.assertTrue("erro no algoritmo", resposta);
}
@Test
public void testaSeNaoEhPalindromo() {
Palindromo verificador = new Palindromo();
String frase = "É preciso amar as pessoas como se não houvesse o amanhã";
boolean resposta = verificador.ehPalindromo(frase);
Assert.assertFalse("Erro no algoritmo", resposta);
}
}