docs: @Override
    public void evaluate(DoubleSolution solution)  {
      double[] f = new double[solution.getNumberOfVariables()];
  
      double x1 = solution.getVariableValue(0);
      double x2 = solution.getVariableValue(1);
      f[0] = 2.0 + (x1 - 2.0) * (x1 - 2.0) + (x2 - 1.0) * (x2 - 1.0);
      f[1] = 9.0 * x1 - (x2 - 1.0) * (x2 - 1.0);
  
      solution.setObjective(0, f[0]);
      solution.setObjective(1, f[1]);
  
      this.evaluateConstraints(solution);
    }