В этом репозитории находится мой пример решения тестового задания по JavaScript для 14-й Школы разработки интерфейсов (осень 2018, Москва, Санкт-Петербург, Симферополь).
Примеры входных и выходных данных из задания:
В моем решении входные данные остались без изменений, а формат выходных данных незначительно изменился
- входные данные решения Объект testData1
- выходные данные решения
Разработка велась с использованием Node.JS v9.11.2.
npm i
npm run test
Основная функция называется Calculate
и находится в файле index.js
.
Функция работает по следующему "алгоритму":
- Создаем объект расписания с массивом объектов-дней, каждый из которых содержит поля: свободная мощность, стоимость 1 Ватта, массив устройств
- получаем список круглосуточных устройств
- вписываем их в расписание, уменьшая свободную мощность каждого часа
- получаем список некруглосуточных устройств, отсортированный в порядке возрастания энергии
- определяем достаточный период времени для каждого устройства
- выбираем период с минимальной суммарной стоимостью энергии
- вписываем каждое устройство в подходящий период времени( начиная с самого энергозатратного)
Для тестирования и сравнения результатов функции с эталонными значениями применяется модуль assert
, который встроен в Node.js
.
Для описания тестов применяется фреймворк Mocha.js
.