Skip to content

Instantly share code, notes, and snippets.

@guiathayde
Created September 2, 2025 14:14
Show Gist options
  • Select an option

  • Save guiathayde/4f63f4fad16427202fd85fe7729cd48e to your computer and use it in GitHub Desktop.

Select an option

Save guiathayde/4f63f4fad16427202fd85fe7729cd48e to your computer and use it in GitHub Desktop.
AnalisadorTest.java
package org.example.s01.ex5;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import static org.junit.jupiter.api.Assertions.*;
public class AnalisadorTest {
@Test
public void testAnalisarComListaNulaOuVazia() {
Analisador analisador = new Analisador();
// Testa lista nula
Exception exceptionListaNula = assertThrows(Exception.class, () -> {
analisador.analisar(null);
});
assertEquals("lista nula ou vazia", exceptionListaNula.getMessage());
// Testa lista vazia
Exception exceptionListaVazia = assertThrows(Exception.class, () -> {
analisador.analisar(new ArrayList<>());
});
assertEquals("lista nula ou vazia", exceptionListaVazia.getMessage());
}
@Test
public void testAnalisarContextoSemConcorrencia() throws Exception {
Analisador analisador = new Analisador();
ArrayList<Candidato> candidatos = new ArrayList<>();
// Adiciona um único candidato
Candidato candidato = new Candidato('M', 35);
candidatos.add(candidato);
Estatisticas estatisticas = analisador.analisar(candidatos);
// Verifica os valores calculados
assertEquals(0, estatisticas.getMulheres());
assertEquals(1, estatisticas.getHomens());
assertEquals(35.0f, estatisticas.getIdadeMedia(), 0.001);
assertEquals("sem concorrência", estatisticas.getContexto());
}
@Test
public void testAnalisarContextoPolarizada() throws Exception {
Analisador analisador = new Analisador();
ArrayList<Candidato> candidatos = new ArrayList<>();
// Adiciona dois candidatos
candidatos.add(new Candidato('F', 30));
candidatos.add(new Candidato('M', 40));
Estatisticas estatisticas = analisador.analisar(candidatos);
// Verifica os valores calculados
assertEquals(1, estatisticas.getMulheres());
assertEquals(1, estatisticas.getHomens());
assertEquals(35.0f, estatisticas.getIdadeMedia(), 0.001);
assertEquals("polarizada", estatisticas.getContexto());
}
@Test
public void testAnalisarContextoNormal() throws Exception {
Analisador analisador = new Analisador();
ArrayList<Candidato> candidatos = new ArrayList<>();
// Adiciona três candidatos
candidatos.add(new Candidato('F', 25));
candidatos.add(new Candidato('M', 35));
candidatos.add(new Candidato('F', 40));
Estatisticas estatisticas = analisador.analisar(candidatos);
// Verifica os valores calculados
assertEquals(2, estatisticas.getMulheres());
assertEquals(1, estatisticas.getHomens());
assertEquals((25 + 35 + 40) / 3.0f, estatisticas.getIdadeMedia(), 0.001);
assertEquals("normal", estatisticas.getContexto());
}
@Test
public void testAnalisarMaisMulheresQueHomens() throws Exception {
Analisador analisador = new Analisador();
ArrayList<Candidato> candidatos = new ArrayList<>();
// Adiciona cinco candidatos, sendo 3 mulheres e 2 homens
candidatos.add(new Candidato('F', 30));
candidatos.add(new Candidato('F', 35));
candidatos.add(new Candidato('F', 40));
candidatos.add(new Candidato('M', 45));
candidatos.add(new Candidato('M', 50));
Estatisticas estatisticas = analisador.analisar(candidatos);
// Verifica os valores calculados
assertEquals(3, estatisticas.getMulheres());
assertEquals(2, estatisticas.getHomens());
// Calcula a idade média manualmente para comparação
float idadeMediaEsperada = (30 + 35 + 40 + 45 + 50) / 5.0f;
assertEquals(idadeMediaEsperada, estatisticas.getIdadeMedia(), 0.001);
// Verifica o contexto
assertEquals("normal", estatisticas.getContexto());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment