Создание алгоритма scaleFitnessTest, который проверяет пригодность значения двоичного кода и использует веса (простые числа) и перемещает их между левой и правой сторонами шкалы
логика c фактического соответствия масштаба работает, но при тестировании нулевых параметров я получаю исключение нулевого указателя
требования, которые я пытаюсь выполнить, таковы:
Метод должен возвращать -100 при следующем условия:
1) Если 'rep' или 'weights' имеет нулевой размер или если либо равно null.
2) Если размер 'rep' больше, чем число веса.
мой код следующий
public static double ScalesFitness(ArrayList<Boolean> rep, ArrayList<Double> weights) {
if( (rep.size() == 0 || weights.size() == 0) || (rep == null || weights == null) ) {
return (-100);
}
if (rep.size() > weights.size()) {
return(-100);
}
double lhs = 0.0,rhs = 0.0;
int n = rep.size();
for(int i=0;i<n;i++){
if (rep.get(i) == true) {
lhs = lhs + weights.get(i);
}else {
rhs = rhs + weights.get(i);
}
}
return(Math.abs(lhs-rhs));
}