Как ты мне дорог․ Ошибка в тестах к задаче

По условию задачи:
“Напиши функцию calculateExpenses, которая вычисляет ежемесячные затраты компании на сотрудника из «чистой» зарплаты работника.
Функция должна принимать параметр netSalary – это «чистая» зарплата после вычета налогов.”

в функцию calculateExpenses передаётся аргумент “Чистая заплата”.

В тестировании: "Первый тест. «Грязная» зарплата: 70000, ".

Передаётся “грязная” заплата, что не соответствует условию задачи, и соответственно тестировщиком ожидается алгоритм расчёта согласно “грязной” зарплаты.

Исправьте, пожалуйста, тестирование. Или дайте координаты человека, с кем можно поговорить на эту тему.

1 лайк

все работает, вы вообще о чем ?

var incomeTax = 13;
var contributions = 30;
var calculateExpenses = function(netSalary) {
  return Math.round((netSalary / (100 - incomeTax) * 100) + (netSalary / (100 - incomeTax) * 100) * contributions / 100);
}

Screenshot_1

Это ответ Кексика на Ваш код.

Очевидная ошибка - это не соответствие названия функции в задании (calculateExpenses) и названия, которую использует Кексик (calculateExpenсes).

Если функцию назвать не как в ТЗ, а как просит Кексик “Переменная calculateExpences не определена”, то тогда Кексик принимает работу на все 100%.

Ждём исправления…

3 лайка

В задании “Как ты мне дорог” в тесте Кексика предлагаю изменить название функции

с calculateExpenсes
на calculateExpenses

как в задании.

1 лайк

@GreenLera, ошибка в тесте. :point_up:

2 лайка

У меня при исправлении выдает такую же ошибку

там в теории надо изменить на calculateExpenсes и в комментарии ТЗ, в тестах правильное написание с английского.

Спасибо, в ближайшее время поправлю

1 лайк

Для тех, у кого как и у меня проблемы с математикой и формулами:

var incomeTax = 13;
var contributions = 30;

var calculateExpences = function (netSalary) {
  var dirtySalary = netSalary / (100 - incomeTax) * 100; // Считаем грязную ЗП.
  var contributionsPaid = dirtySalary / 100 * 30; // считаем общий размер взносов 
  return Math.round(contributionsPaid + dirtySalary); // выводим значение затрат
}
1 лайк

let incomeTax = 13;
let contributions = 30;
let calculateExpenses = function(netSalary) {
let Expenses =Math.round(netSalary/0.87 * 1.3);
/* тоже самое: netSalary/(100 - incomeTax)*(100 + contributions) */
return Expenses;
}

let incomeTax = 13;
let contributions = 30;
let total = 0;
let dirtySalary = 0;
let calculateExpenses = function (netSalary) {
dirtySalary = netSalary * 100 / (100 - incomeTax)
total = Math.round(dirtySalary + (dirtySalary / 100 * contributions));
return total;
}

let calculateExpenses = netSalary => Math.round(netSalary / (100 - incomeTax) * (100 + contributions))

1 лайк

Мое решение данной задачи.

let incomeTax = 13;
let contributions = 30;

let calculateExpenses = function(netSalary){
  let summa;
  
  incomeTax = (netSalary / (100 - incomeTax)) * 13;
  
  contributions = (netSalary + incomeTax) / 100 * contributions;
  
  summa = netSalary + incomeTax + contributions;
  
  return Math.round(summa);
}
let incomeTax = 13;
let contributions = 30;

let calculateExpenses = function(netSalary) {
  let dirtyMoney = (netSalary * 100) / (100 - incomeTax);
  let nalogContributions = (dirtyMoney / 100 * contributions);
  let expenses = Math.round(dirtyMoney + nalogContributions);

return expenses;
};
let incomeTax = 13;
let contributions = 30;

function calculateExpenses(netSalary) {
  let grossSalary = netSalary / (1 - incomeTax/100);
  let contributionsExpenses = grossSalary * contributions / 100;
  let totalExpenses = Math.round(grossSalary + contributionsExpenses);

  return totalExpenses;
}