Данная программа считвает из непустого файла test.txt целые числа и находит их минимум, максимум, сумму, произведение. Кроме того, на GitHub Actions развернута тестирующая система, которая автоматически запускает тесты после каждого push или pull_request и отправляет сообщение о статусе прохождения тестов в Telegram.
Программа позволяет с помощью статичных методов класса NumberOperation, принимающих на вход массив ArrayList, заполненный числами в формате long:
- getMin() - найти минимум и вернуть результат в формате
long - getMax() - найти максимум и вернуть результат в формате
long - getSum() - найти сумму и вернуть результат в формате
String - getMult() - найти произведение и вернуть результат в формате
StringА также считывать данные из файла с помощью статичных методов классаNumberOperation, принимающего на вход относительный или абсолютный путь к текстовому файлу, и преобразовывать их в массивArrayList, заполненный числами в форматеlong.
Тесты включают в себя проверку корректной работы функций и произоводительности, а также тест timeout test, цель которого перегрузить программу. Кроме того, присутсвует тест вычисляющий и выводящий время работы функций getSum() и getMult() тест для разных размеров входных данных с произвольными значениями.
На графике показано время выполнения операций сложения и умножения в зависимости от количества чисел в файле. Из графика видно, что время выполнения операций растет нелинейно с увеличением количества чисел. Это связано с тем, что каждая операция выполняется за время O(n), где n - количество чисел в файле. Более сложные операции, такие как умножение, требуют больше времени по сравнению с более простыми операциями, такими как сложение, особенно при больших объемах данных.
Проект настроен для автоматической сборки и тестирования с использованием GitHub Actions. В верхней части файла README.md прикреплен бейдж, который отображает текущий статус прохождения тестов.
- Автоматический запуск тестов: При каждом коммите тесты запускаются автоматически с помощью GitHub Actions, что проверяет корректность работы программы.
- Ручной запуск тестов: Вы можете запустить тесты вручную через GitHub Actions, используя опцию "Re-run jobs".
- Чтобы выполнить тесты:
mvn testСистема тестирования привязана к Telegram-боту @TechTask2_bot, который посылает уведомления о статусе прохождении тестов. В случае если все тесты пройдены успешно, бот присылает сообщение "Все ок", если нет - "Тесты провалены:".