docs: private void evaluateConstraints(DoubleSolution solution)  {
      double[] constraint = new double[this.getNumberOfConstraints()];
      double x1,x2,x3,x4,x5,x6,x7;
  
      x1 = solution.getVariableValue(0);
      x2 = solution.getVariableValue(1);
      x3 = solution.getVariableValue(2);
      x4 = solution.getVariableValue(3);
      x5 = solution.getVariableValue(4);
      x6 = solution.getVariableValue(5);
      x7 = solution.getVariableValue(6);
  
      constraint[0] = -((1.0/(x1*x2*x2*x3)) -(1.0/27.0));
      constraint[1] = -((1.0/(x1*x2*x2*x3*x3))-(1.0/397.5));
      constraint[2] = -((x4*x4*x4)/(x2*x3*x3*x6*x6*x6*x6)-(1.0/1.93));
      constraint[3] = -((x5*x5*x5)/(x2*x3*x7*x7*x7*x7)- (1.0/1.93));
      constraint[4] = -(x2*x3 - 40.0);
      constraint[5] = -((x1/x2) - 12.0);
      constraint[6] = -(5.0 - (x1/x2));
      constraint[7] = -(1.9 - x4 + 1.5*x6);
      constraint[8] = -(1.9 - x5 + 1.1*x7);
  
      double aux = 745.0 * x4 / (x2 * x3);
      double f2 = java.lang.Math.sqrt((aux*aux)+1.69e7) / (0.1*x6*x6*x6);
      constraint[9] = -(f2 - 1300);
      double a = 745.0*x5/(x2*x3);
      double b = 1.575e8;
      constraint[10] = -(java.lang.Math.sqrt(a*a+b)/(0.1*x7*x7*x7)-1100.0);
  
      double overallConstraintViolation = 0.0;
      int violatedConstraints = 0;
      for (int i = 0; i < getNumberOfConstraints(); i++) {
        if (constraint[i]<0.0){
          overallConstraintViolation+=constraint[i];
          violatedConstraints++;
        }
      }
  
      overallConstraintViolationDegree.setAttribute(solution, overallConstraintViolation);
      numberOfViolatedConstraints.setAttribute(solution, violatedConstraints);
    }