Skip to content

Commit

Permalink
Unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
vigusmao committed Apr 7, 2021
1 parent ebe802f commit b83cc0d
Show file tree
Hide file tree
Showing 4 changed files with 144 additions and 14 deletions.
27 changes: 27 additions & 0 deletions Siguinha/src/Aluno.java
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ public float getCra() {
return cra;
}

public int getCreditosAcumulados() {
return creditosAcumulados;
}


// ATENÇÃO: NÃO QUEREMOS UM SETTER PÚBLICO PARA O CRA!!!!!!
//
Expand All @@ -88,6 +92,10 @@ public void inserirItemHistorico(
// verifica se já existe no histórico essa disciplina nesse período
for (ItemHistorico itemHistorico : this.historico) {

if (itemHistorico == null) {
break;
}

if (itemHistorico.disciplinaCursada == disciplina &&
itemHistorico.periodo == periodo) {

Expand Down Expand Up @@ -137,6 +145,25 @@ public void inserirItemHistorico(
this.cra = this.numeradorCra / this.denominadorCra;
}

public String getHistoricoParaImpressao() {
String resultado = "Aluno(a): " + this.nome +
" (DRE: " + this.dre + ")\n";
for (int i = 0; i < this.contItensHistorico; i++) {
ItemHistorico itemHistorico = this.historico[i];
resultado += itemHistorico.periodo.getAno();
resultado += ".";
resultado += itemHistorico.periodo.getSemestre();
resultado += " - ";
resultado += itemHistorico.disciplinaCursada.getNome();
resultado += " - ";
resultado += String.format("%.1f", itemHistorico.mediaFinal);
if (i != this.contItensHistorico - 1) { // se não é o último item...
resultado += "\n";
}
}
return resultado;
}

// inner class (classe auxiliar, visível apenas de dentro da classe Aluno)
private class ItemHistorico {

Expand Down
109 changes: 109 additions & 0 deletions Siguinha/src/AlunoTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
import org.junit.Before;
import org.junit.Test;

import static org.junit.Assert.*;

public class AlunoTest {

private static final float MAX_FLOAT_DIFF = 0.000001f;

private Aluno fulana;
private Disciplina algGraf;
private Disciplina calculo1;
private Periodo periodo20201;
private Periodo periodo20202;

@Before
public void setUp() {
fulana = new Aluno(1234, "Fulana de Tal");
algGraf = new Disciplina("Algoritmos e Grafos", 4, "MAB704");
calculo1 = new Disciplina("Calculo 1", 4, "MAB704");
periodo20201 = new Periodo(2020, 1);
periodo20202 = new Periodo(2020, 2);
}

@Test
public void testarAtualizacaoCraComAprovacoes() {
fulana.inserirItemHistorico(algGraf, 10, periodo20201);
assertEquals("O CRA deve refletir a média ponderada das notas finais já obtidas",
10, fulana.getCra(), MAX_FLOAT_DIFF);
}

@Test
public void testarAtualizacaoCreditosAcumuladosComAprovacoes() {
fulana.inserirItemHistorico(algGraf, 10, periodo20201);
assertEquals("A quantidade de créditos acumulados deve refletir o somátorio " +
"dos créditos das disciplinas em que houve aprovação",
4, fulana.getCreditosAcumulados());
}

@Test
public void testarAtualizacaoHistoricoComAprovacoes() {
fulana.inserirItemHistorico(algGraf, 10, periodo20201);
String historicoDesejado = "Aluno(a): Fulana de Tal (DRE: 1234)\n" +
"2020.1 - Algoritmos e Grafos - 10,0";

assertEquals("O histórico deve conter todas as disciplinas cursadas",
historicoDesejado, fulana.getHistoricoParaImpressao());
}

@Test
public void testarAtualizacaoCraComReprovacoes() {
fulana.inserirItemHistorico(calculo1, 3, periodo20201);
assertEquals("O CRA deve refletir a média ponderada das notas finais já obtidas",
3, fulana.getCra(), MAX_FLOAT_DIFF);
}

@Test
public void testarAtualizacaoCreditosAcumuladosComReprovacoes() {
fulana.inserirItemHistorico(calculo1, 3, periodo20201);
assertEquals("A quantidade de créditos acumulados deve refletir o somátorio " +
"dos créditos APENAS das disciplinas em que houve aprovação",
0, fulana.getCreditosAcumulados());
}

@Test
public void testarAtualizacaoHistoricoComReprovacoes() {
fulana.inserirItemHistorico(calculo1, 3, periodo20201);
String historicoDesejado = "Aluno(a): Fulana de Tal (DRE: 1234)\n" +
"2020.1 - Calculo 1 - 3,0";

assertEquals("O histórico deve conter todas as disciplinas cursadas",
historicoDesejado, fulana.getHistoricoParaImpressao());
}

@Test
public void testarDisciplinasRepetidasNoMesmoPeriodo() {
fulana.inserirItemHistorico(calculo1, 3, periodo20201);
fulana.inserirItemHistorico(calculo1, 4, periodo20201);
fulana.inserirItemHistorico(calculo1, 8.5f, periodo20201);

String historicoDesejado = "Aluno(a): Fulana de Tal (DRE: 1234)\n" +
"2020.1 - Calculo 1 - 8,5";

assertEquals("O histórico deve conter todas as disciplinas cursadas",
historicoDesejado, fulana.getHistoricoParaImpressao());
}

@Test
public void testarDisciplinasRepetidasEmPeriodosDistintos() {
fulana.inserirItemHistorico(calculo1, 3, periodo20201);
fulana.inserirItemHistorico(calculo1, 8.5f, periodo20202);

String historicoDesejado = "Aluno(a): Fulana de Tal (DRE: 1234)\n" +
"2020.1 - Calculo 1 - 3,0\n" +
"2020.2 - Calculo 1 - 8,5";

assertEquals("O histórico deve conter todas as disciplinas cursadas",
historicoDesejado, fulana.getHistoricoParaImpressao());

}

@Test
public void testarInsersacoDeUmNumeroMuitoGrandeDeDisciplinas() {
for (int i = 0; i < 10_000; i++) {
Disciplina disciplina = new Disciplina("blah" + i, 4, "MAB" + i);
fulana.inserirItemHistorico(disciplina, 6, periodo20201);
}
}
}
8 changes: 8 additions & 0 deletions Siguinha/src/Periodo.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,12 @@ public Periodo(int ano, int semestre) {
this.ano = ano;
this.semestre = semestre;
}

public int getAno() {
return ano;
}

public int getSemestre() {
return semestre;
}
}
14 changes: 0 additions & 14 deletions Siguinha/src/Siguinha.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,7 @@ public class Siguinha {
// apenas para escrever testes rápidos, por ora
public static void main(String[] args) {

Aluno fulana = new Aluno(1234, "Fulana de Tal");


Disciplina algGraf = new Disciplina("Algoritmos e Grafos", 4, "MAB704");
Disciplina calculo1 = new Disciplina("Calculo 1", 5, "BLAH");
Periodo periodo20201 = new Periodo(2020, 1);

fulana.inserirItemHistorico(algGraf, 6f, periodo20201);
System.out.printf("%.1f\n", fulana.getCra());

fulana.inserirItemHistorico(calculo1, 4f, periodo20201);
System.out.printf("%.1f\n", fulana.getCra());

fulana.inserirItemHistorico(calculo1, 8f, periodo20201);
System.out.printf("%.1f\n", fulana.getCra());

}
}

0 comments on commit b83cc0d

Please sign in to comment.