Вечный вопрос. Ошибка в задании или у меня?

Помогите разобраться в вызове “Вечный вопрос”. Функция расчета взята из другого задания, она проверена и не исправлялась. Новая функция в задании в ручном тестировании тоже выдает верный ответ. Но при проверке выдает ошибку. Были загружены параметры этой проверки в ручную для вывода в консоль результатов. И как видно в скриншоте - моя функция считает верно. Я пересчитывал и калькулятором и Excel, тоже верно. Склоняюсь к мнению, что ошибка в проверке. Буду ждать ответ.

Не проходит тест с капитализацией. В тесте ошибки нет. Расчёт суммы с капитализацией в коде неверен.

Значит недостаточная проверка функции в предыдущем задании. Очень странно.

Обратите внимание, что в предыдущем задании входные параметры идут в другом порядке. Возможно, в этом проблема.

вопрос в округлении. округление в моем коде - на каждой итерации. А правильнее - округлять возвращаемое функцией значение.

Вот такое решение получилось, кстати код с предыдущего задания не совсем мой, выдалась минутка на работе решил сделать задание, а код с предыдущего задания дома, этот нарыл на форуме, хоть он был верный и проходил проверку, к этому заданию не подошел, одну проверку не проходил, пришлось менять, часть написал своего и всё получилось, ну не факт что хорошо но задачу решает:

let calculateDeposit = function (start, percent, months, isCapitalized) { 
  let sum = 0;
  if (!isCapitalized) {
    sum = start + (start * (((percent/100) / 12) * months));
  } else {
    sum = start + (percent/100 / 12) * start;
    for (let i = 1; i < months; i++) {
      sum += (percent / 100 / 12) * sum;
    }
  }
  return Math.floor(sum);
};

let getProfitableDeposit = function (originalDeposit, depositPeriod, simplePercent, capitalizedPercent) {
  let simpleContribution = calculateDeposit(originalDeposit, simplePercent, depositPeriod, false);
  let capitalizedContribution = calculateDeposit(originalDeposit, capitalizedPercent, depositPeriod, true);
  let message = '';
  if (simpleContribution > capitalizedContribution) {
    message = 'Выбирай обычный вклад. Получишь ' + simpleContribution;
  } else {
    message = 'Выбирай капитализацию. Получишь ' + capitalizedContribution;
  }
  return message;
};
let getProfitableDeposit = function (deposit, term, perGeneral, perCapital) {
  
  let profGeneral = deposit + Math.floor(deposit * ((perGeneral / 100) / 12) * term);
    
  let getCapital = function () {
      
    for (i = 1; i <= term; i ++) {
    let income = deposit * ((perCapital / 100) / 12);
    deposit += income;
    
  }
  
  return Math.floor(deposit);

 } 
 
 let profCapital = getCapital();
  
  if(profGeneral > profCapital) {
    return 'Выбирай обычный вклад. Получишь ' + profGeneral;
  }else {
    return 'Выбирай капитализацию. Получишь ' + profCapital;
  }

}

Попытался коротенько:

Код
let calculateDeposit = (sum, percent, term, cptlz) => ~~(!cptlz ? sum*(1+percent*term/1200) : sum*(1+percent*1/1200)**term);

let getProfitableDeposit = (sum, term, flatPercent, cptlPercent) => {
  let flatIncome = calculateDeposit(sum,flatPercent,term,0);
  let cptlIncome = calculateDeposit(sum, cptlPercent,term,1);
  return flatIncome>cptlIncome ? 'Выбирай обычный вклад. Получишь ' + flatIncome : 'Выбирай капитализацию. Получишь ' + cptlIncome;
}