Skip to content

Latest commit

 

History

54 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ТЗ2 Андрей Дьяков ББИ235

Java CI

Описание проекта

Данная программа считвает из непустого файла 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() тест для разных размеров входных данных с произвольными значениями.

График зависимости времени выполенения функций getSum() и getMult() от количества чисел

Снимок экрана 2024-05-26 в 21 50 53

На графике показано время выполнения операций сложения и умножения в зависимости от количества чисел в файле. Из графика видно, что время выполнения операций растет нелинейно с увеличением количества чисел. Это связано с тем, что каждая операция выполняется за время O(n), где n - количество чисел в файле. Более сложные операции, такие как умножение, требуют больше времени по сравнению с более простыми операциями, такими как сложение, особенно при больших объемах данных.

CI/CD

Проект настроен для автоматической сборки и тестирования с использованием GitHub Actions. В верхней части файла README.md прикреплен бейдж, который отображает текущий статус прохождения тестов.

Запуск тестов

  • Автоматический запуск тестов: При каждом коммите тесты запускаются автоматически с помощью GitHub Actions, что проверяет корректность работы программы.
  • Ручной запуск тестов: Вы можете запустить тесты вручную через GitHub Actions, используя опцию "Re-run jobs".
  • Чтобы выполнить тесты:
mvn test

Telegram

Система тестирования привязана к Telegram-боту @TechTask2_bot, который посылает уведомления о статусе прохождении тестов. В случае если все тесты пройдены успешно, бот присылает сообщение "Все ок", если нет - "Тесты провалены:".

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages