@Test
 public void deveRetornarResultadoFinalOrdernadoPorProcessoId() {
   final int TOTAL = 10;
   EscalonadorProcesso fcfs = new FCFS(gerarArrayListDefault(TOTAL), 0, 0);
   List<ProcessoVO> resultado = fcfs.resultadoFinal();
   int id = 1;
   for (ProcessoVO processo : resultado) {
     Assert.assertTrue(id++ == processo.getId());
   }
 }
  @Test
  public void deveRetornarResultadoOrdenadoSimples() {
    final Integer[] BURSTS_SIMPLES = {30, 10, 20, 50, 90};
    final Integer[] ID_SIMPLES = {1, 2, 3, 4, 5};
    final Integer[] TEMPO_ESPERA_PREVISTA_POR_BURST_SIMPLES = {0, 30, 40, 60, 110};
    final Integer[] TEMPO_RESPOSTA_PREVISTA_POR_BURST_SIMPLES = {30, 40, 60, 110, 200};
    final Integer[] TURN_AROUND_PREVISTA_POR_BURST_SIMPLES = {30, 40, 60, 110, 200};

    EscalonadorProcesso fcfs =
        new FCFS(
            gerarArrayListDeProcessos(BURSTS_SIMPLES.length, BURSTS_SIMPLES, null, null), 0, 0);
    List<ProcessoVO> resultado = fcfs.resultadoFinal();

    Assert.assertThat(resultado, Matchers.notNullValue());
    Assert.assertThat(resultado.size(), Matchers.is(BURSTS_SIMPLES.length));

    Iterator<ProcessoVO> resultArrayList = resultado.iterator();
    while (resultArrayList.hasNext()) {
      ProcessoVO proc = resultArrayList.next();
      Assert.assertThat(
          TEMPO_ESPERA_PREVISTA_POR_BURST_SIMPLES, Matchers.hasItemInArray(proc.getEspera()));
      Assert.assertThat(
          TEMPO_RESPOSTA_PREVISTA_POR_BURST_SIMPLES, Matchers.hasItemInArray(proc.getResposta()));
      Assert.assertThat(
          TURN_AROUND_PREVISTA_POR_BURST_SIMPLES, Matchers.hasItemInArray(proc.getTurnAround()));
    }

    List<ProcessoDTO> resultadoGrafico = fcfs.resultadoGraficoFinal();
    Assert.assertThat(resultadoGrafico, Matchers.notNullValue());
    Assert.assertThat(resultadoGrafico.size(), Matchers.is(BURSTS_SIMPLES.length));

    Iterator<ProcessoDTO> resultArrayListGraphic = resultadoGrafico.iterator();
    while (resultArrayListGraphic.hasNext()) {
      ProcessoDTO proc = resultArrayListGraphic.next();
      Assert.assertThat(ID_SIMPLES, Matchers.hasItemInArray(proc.getId()));
    }

    double esperaMedia = fcfs.tempoEsperaMedia();
    double respostaMedia = fcfs.tempoRespostaMedia();
    double turnAroundMedio = fcfs.tempoTurnAroundMedio();
    Assert.assertTrue(turnAroundMedio > 0.0);
    Assert.assertTrue(respostaMedia > 0.0);
    Assert.assertTrue(esperaMedia > 0.0);
    Assert.assertTrue(fcfs.totalProcessos() == BURSTS_SIMPLES.length);
  }