Текущая версия программы: 0.9.1
Наверное, каждому знакома ситуация, когда стартуешь проект s21_decimal, читаешь задание, смотришь лекции на ютубе, пир-ту-пиришься с командой, и вот, обязанности, объем работ распределен между участниками, осталось только "Вошли и вышли, приключение на 20 минут". И, почти сразу, сталкиваешься с проблемой - под рукой нет значений-заготовок для написания первых частей функций. Онлайн конвертеры помогают лишь частино, да еще и отнимают много времени...
Данный стартер предназначен для того, чтобы облегчить тяжелый вход в нелегкий проект s21_decimal. Пользуйтесь!
PS. Но помните, пользуясь данным стартером, вы прославляете:
- Версия Программы
- Предисловие
- Список возможностей (меню)
- Пример работы
- Как запустить
- Пояснения к генератору тестов
- Рекомендации по использованию тестов в проекте
- В планах
- Список зависимостей (технологий и библиотек)
- Лицензия
1. Сложение - сложение двух десятичных чисел
2. Вычитание - вычитание двух десятичных чисел
3. Умножение - умножение двух десятичных чисел
4. Деление - деление двух десятичных чисел
5. Из десятичного в s21_decimal - перевод из десятичного вида в s21_decimal тип
6. Из s21_decimal в десятичное число - перевод из строкового s21_decimal в десятичное число
7. Генератор случайных s21_decimal - генерация выбранного количества s21_decimal значений
8. Генератор unit-тестов - генерация выбранного количества unit-тестов для выбранной функции
1. s21_add
2. s21_sub
3. s21_mul
4. s21_div
5. Все функции сразу в один файл
9. Удаление папки и файлов с unit-тестами" - удаление сгенерированных файлов и папки, в которой они находились
0. Выход - заверщение работы программы.
Вы можете скачать собранный бинарный
файл здесь.
Для запуска необходима Java не ниже 11 версии и команда java -jar s21_decimal_starter*.jar
в
папке с файлом. В наличии небольшая пасхалка, активируется ключом -hb (полная
команда java -jar s21_decimal_starter*.jar -hb
)
Так же, вы можете собрать бинарный файл самостоятельно. На linux вам понадобится Java не ниже 11 версии и вот эти команды:
git clone https://github.com/ath31st/s21_decimal_starter
cd s21_decimal_starter
mvn clean package
cp target/*-jar-with-dependencies.jar s21_decimal_starter-$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec).jar
java -jar s21_decimal_starter*.jar
Важное уточнение - данный генератор рассчитан на работу только с библиотекой check.h. Генерировать тесты можно по каждой функции отдельно, так и по всем сразу, в единый файл. Генерация тестов работает по следующему принципу - первые 16 тестов направлены на проверку корректности входных значений, подаваемых в аргументы основных функций. Затем идут тесты (указанного количества), которые должны успешно проходить. После них, в объеме 33% от указанного количества, создаются тесты, результаты которых превышают допустимые значения s21_decimal (как очень большие, так и очень малые величины). Сгенерированные тесты выводятся в консоль (за исключением общей генерации) и сохраняются в файлы с расширением .c (для вашего удобства). Адрес сохранения файлов указывается в консоли, после завершения генерации. Данные файлы вы можете переносить в собственные проекты, но не забудьте добавить в них #include с вашим заголовочным файлом, а так же, прописать функцию с возвращаемым типом данных Suite в исполняемый файл, который будет запускать тесты (там где у вас функция main).
Во время использования данного стартера в первую очередь опирайтесь на здравый смысл и собственнные ощущения. Этот стартер был протестирован на нескольких, успешно сданных, проектах и нигде тесты не прошли на 100% (результаты были около 90%). Если у вас что-то не проходит, то посмотрите внимательно на значения используемые в тесте, возможно, там получается что-то сложное, где надо сначала поднимать степень одного из значений, а потом еще и снижать степень второго, чтобы уровнять их и при этом не выйти за пределы s21_decimal. Такой тест вы можете проигнорировать и удалить его, нет смысла тратить десятки часов на идеальный результат. Тем более, у вертера нет таких сложных кейсов. Общие рекомендации такие - первые 16 тестов (проверка корректности используемых входных значений) должны проходить 100%, в остальном ориентируйтесь на 80%+.
Глобальный рефакторинг(выполнено 09.05.2024)Улучшение читаемости консольного интерфейсаГенерация фейл-тестов (слишком большой/слишком малый результат)(добавлено в 0.8.11 31.01.2024)Вывод сгенерированных тестов в файл(добавлено в 0.8.0 27.01.2024)Покрытие проекта тестами (81%)(добавлено в 0.9.1 25.04.2024)Покрытие проекта JavaDocs(добавлено в 0.8.15 15.02.2024)Оптимизация генерации тестовых кейсов(добавлено в 0.8.13 04.02.2024)Обратная конверсия из s21_decimal в десятичное число(добавлено в 0.9.0 25.02.2024)
- Java: 11
- Maven: 3.6.0
- Apache Commons Lang 3: 3.14.0
- Junit: 5.10.2
- Mockito: 5.11.0
- Log4j2: 2.23.1
- Jacoco: 0.8.11
Проект лицензирован по Apache 2.0 - см. LICENSE