Test task - a console application for parsing json and csv files
Описание задания
Имеется два файла со списком объектов. Один файл в формате json, другой в формате csv. У каждого объекта есть следующие поля:
• “group” – группа объекта (String) (количество групп в файле не более 10)
• “type” – тип объекта (String)
• “number” – номер объекта (long)
• “weight” – вес объекта (long)
Необходимо разработать консольное приложение. Приложение должно обрабатывать файлы двух форматов csv и json. После запуска приложение ожидает ввода пути до файла либо «команды завершения работы» (ввод в консоль последовательности символов «exit»). По «команде завершения работы» приложение завершает свою работу. После ввода пути до файла приложение формирует сводную статистику:
• Дубликаты объектов (объекты с одинаковой группой(“group”) и типом (“type”)) с количеством их повторений.
• Суммарный вес (“weight”) объектов в каждой группе(“group”).
• Максимальный и минимальный веса объектов в файле.
После вывода статистики на экран приложение ожидает ввода пути до файла либо «команды завершения работы».
В процессе работы приложение падать не должно, выход только по команде на завершение работы.
Получение тестовых данных
• Файлы со списком объектов создаются с помощью утилиты test-generator.jar.
• Файлы создаются в кодировке UTF-8.
Команда запуска:
java -jar test-generator.jar -file "out.csv" -format csv -count 10 000 000
• -file – выходной файл
• -format – формат файла (json или csv)
• -count – количество объектов
Условия выполнения
• Использование Java 8
• Система сборки Gradle.
• Необходимо обойтись только средствами, входящими в пакет Java SE.
• Из сторонних библиотек допустимо использование JUnit (для тестов), парсеров json и csv.
• Приложение должно работать с размером кучи не более 512 Мб (параметр VM –Xmx512m) и количеством объектов в файле до 10000000.