- Нельзя менять уже написанный код, тесты и другие файлы добавленные в проект
- Помимо стандартной библиотеки, вы можете использовать все что импортировано. Что не импортировано, то не используется.
- Выполняйте коммиты и пуши как можно чаще. Так вы будете видеть какие из тестов сработают, а какие нет.
- Во время работы не забывайте запускать саму утилиту и npm test
Ваша задача написать консольную утилиту, которая анализирует переданный файл с информацией о погоде и выводит на экран некоторую статистику по данным из файла. Файлы хранятся в директории fixtures в формате CSV. Они используются для тестов и понадобятся вам, для запуска и проверки утилиты в терминале.
Пример запуска утилиты:
bin/weather.js __fixtures__/weather1.csv
Count: 20
Cities: Chicago, Denver, Los Angeles, Miami, Seattle
Humidity: Min: 58, Max: 80
HottestDay: 2023-04-18 Los Angeles
HottestCity: Miami
Вывод содержит фиксированный набор строк (Count, Cities, ...), каждая из которых соответствует какой-то агрегированной информации по данным из файла. Например первая строка содержит количество записей в переданном файле. Значения в этих строках зависят от данных внутри переданного файла. В примере выше число 20, в вашем случае может быть другое, зависит от того, с каким файлом ведется работа.
Каждая строчка в выводе утилиты, представляет из себя небольшое отдельное вычислительное задание. Вам предстоит решать эти задачи по очереди. Ниже список этих заданий:
Выведите количество записей с данными в переданном файле. Учтите, что первая строчка в CVS файле является заголовочной, она не содержит данных и не должна учитываться. Вывод утилиты будет таким:
bin/weather.js __fixtures__/weather1.csv
Count: 20
Выведите список городов, для которых есть информация о погоде в переданном файле. Города в этом списке отсортированы в алфавитном порядке.
bin/weather.js __fixtures__/weather1.csv
Count: 20 # Не забывайте что предыдущее решение остается работать
Cities: Chicago, Denver, Los Angeles, Miami, Seattle
Выведите минимальную и максимальную влажность, которая встречается в данных переданного файла.
bin/weather.js __fixtures__/weather1.csv
Count: 20
Cities: Chicago, Denver, Los Angeles, Miami, Seattle
Humidity: Min: 58, Max: 80
Выведите дату самой жаркой погоды и город, в котором была зафиксирована эта температура
bin/weather.js __fixtures__/weather1.csv
Count: 20
Cities: Chicago, Denver, Los Angeles, Miami, Seattle
Humidity: Min: 58, Max: 80
HottestDay: 2023-04-18 Los Angeles
Выведите самый жаркий город, основываясь на средней температуре в городе за дни указанные в файле. Средняя температура считается относительно значения Max Temperature
.
С технической точки зрения, вам нужно посчитать среднюю температуру по каждому городу за указанную дату. Затем нужно определить в каком городе эта температура выше.
bin/weather.js __fixtures__/weather1.csv
Count: 20
Cities: Chicago, Denver, Los Angeles, Miami, Seattle
Humidity: Min: 58, Max: 80
HottestDay: 2023-04-18 Los Angeles
HottestCity: Miami