@Override
  public void progressChanged(ExperimentProgress algorithmExperiment) {

    String executionTask = algorithmExperiment.getExecutionProgressTask();
    int executionPercent = algorithmExperiment.getExecutionProgressPercent();

    boolean begin = executionPercent == 0;
    boolean finish = executionPercent == 100;
    boolean repeated =
        executionPercent == executionLastPercent && executionTask.equals(executionLastTask);
    boolean timeTrigger = chronometer.getTotalElapsed() >= verbosePeriod;
    if (((begin || finish) && !repeated) || timeTrigger) {
      printProgress(algorithmExperiment);

      executionLastPercent = executionPercent;
      executionLastTask = executionTask;
      chronometer.reset();
    }
  }