{"id":20136924,"url":"https://github.com/ath31st/s21_decimal_starter","last_synced_at":"2025-09-01T16:40:49.638Z","repository":{"id":218836835,"uuid":"747277506","full_name":"ath31st/s21_decimal_starter","owner":"ath31st","description":"This starter includes basic arithmetic functions, test generator and s21_decimal values generator for a smooth start of a learning project.","archived":false,"fork":false,"pushed_at":"2024-05-09T12:34:08.000Z","size":16588,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-23T19:45:19.118Z","etag":null,"topics":["java","maven","s21-decimal"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ath31st.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-23T16:08:24.000Z","updated_at":"2025-01-19T15:04:10.000Z","dependencies_parsed_at":"2024-05-09T14:15:23.365Z","dependency_job_id":null,"html_url":"https://github.com/ath31st/s21_decimal_starter","commit_stats":null,"previous_names":["ath31st/s21_decimal_starter"],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ath31st%2Fs21_decimal_starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ath31st%2Fs21_decimal_starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ath31st%2Fs21_decimal_starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ath31st%2Fs21_decimal_starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ath31st","download_url":"https://codeload.github.com/ath31st/s21_decimal_starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248080335,"owners_count":21044485,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","maven","s21-decimal"],"created_at":"2024-11-13T21:23:44.598Z","updated_at":"2025-04-09T17:44:13.319Z","avatar_url":"https://github.com/ath31st.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# s21_decimal starter\n\n![Java](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge\u0026logo=openjdk\u0026logoColor=white)\n![SonarLint](https://img.shields.io/badge/SonarLint-CB2029?style=for-the-badge\u0026logo=sonarlint\u0026logoColor=white)\n![Apache Maven](https://img.shields.io/badge/Apache%20Maven-C71A36?style=for-the-badge\u0026logo=Apache%20Maven\u0026logoColor=white)\n\n## Версия Программы\n\nТекущая версия программы: 0.9.1\n\n## Предисловие\n\nНаверное, каждому знакома ситуация, когда стартуешь проект s21_decimal, читаешь задание, смотришь\nлекции на ютубе, пир-ту-пиришься с командой, и вот, обязанности, объем работ распределен между\nучастниками, осталось только \"Вошли и вышли, приключение на 20 минут\". И, почти сразу, сталкиваешься\nс проблемой - под рукой нет значений-заготовок для написания первых частей функций. Онлайн\nконвертеры помогают лишь частино, да еще и отнимают много времени...\n\nДанный стартер предназначен для того, чтобы облегчить тяжелый вход в нелегкий проект s21_decimal.\nПользуйтесь!\n\nPS. Но помните, пользуясь данным стартером, вы прославляете:\n\u003cdetails\u003e\n  \u003csummary\u003eНажмите, чтобы открыть спойлер\u003c/summary\u003e\n\n![image info](images/hb.png)\n\u003c/details\u003e\n\n## Оглавление\n\n1. [Версия Программы](#версия-программы)\n2. [Предисловие](#предисловие)\n3. [Список возможностей (меню)](#список-возможностей-меню)\n4. [Пример работы](#пример-работы)\n5. [Как запустить](#как-запустить)\n6. [Пояснения к генератору тестов](#пояснения-к-генератору-тестов)\n7. [Рекомендации по использованию тестов в проекте](#рекомендации-по-использованию-тестов-в-проекте)\n8. [В планах](#в-планах)\n9. [Список зависимостей (технологий и библиотек)](#список-зависимостей-технологий-и-библиотек)\n10. [Лицензия](#лицензия)\n\n## Список возможностей (меню)\n\n    1. Сложение  - сложение двух десятичных чисел\n    2. Вычитание - вычитание двух десятичных чисел\n    3. Умножение - умножение двух десятичных чисел\n    4. Деление - деление двух десятичных чисел\n    5. Из десятичного в s21_decimal - перевод из десятичного вида в s21_decimal тип\n    6. Из s21_decimal в десятичное число - перевод из строкового s21_decimal в десятичное число\n    7. Генератор случайных s21_decimal - генерация выбранного количества s21_decimal значений\n    8. Генератор unit-тестов - генерация выбранного количества unit-тестов для выбранной функции\n        1. s21_add\n        2. s21_sub\n        3. s21_mul\n        4. s21_div\n        5. Все функции сразу в один файл\n    9. Удаление папки и файлов с unit-тестами\" - удаление сгенерированных файлов и папки, в которой они находились\n    0. Выход - заверщение работы программы.\n\n## Пример работы\n\n\u003cdetails\u003e\n  \u003csummary\u003eНажмите, чтобы открыть спойлер\u003c/summary\u003e\n\n![image info](images/example.gif)\n\u003c/details\u003e\n\n## Как запустить\n\nВы можете скачать собранный бинарный\nфайл [здесь](https://github.com/ath31st/s21_decimal_starter/releases).\u003c/br\u003e\nДля запуска необходима Java не ниже 11 версии и команда ```java -jar s21_decimal_starter*.jar``` в\nпапке с файлом. В наличии небольшая пасхалка, активируется ключом -hb (полная\nкоманда ```java -jar s21_decimal_starter*.jar -hb```)\n\nТак же, вы можете собрать бинарный файл самостоятельно.\nНа linux вам понадобится Java не ниже 11 версии и вот эти команды:\n\n```bash\ngit clone https://github.com/ath31st/s21_decimal_starter\ncd s21_decimal_starter\nmvn clean package\ncp target/*-jar-with-dependencies.jar s21_decimal_starter-$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec).jar\njava -jar s21_decimal_starter*.jar\n```\n\n## Пояснения к генератору тестов\n\nВажное уточнение - данный генератор рассчитан на работу только с\nбиблиотекой [check.h](https://github.com/libcheck/check).\nГенерировать тесты можно по каждой функции отдельно, так и по всем сразу, в единый файл. Генерация\nтестов работает по следующему принципу - первые 16 тестов направлены на проверку\nкорректности входных значений, подаваемых в аргументы основных функций. Затем идут тесты (указанного\nколичества), которые должны успешно проходить. После них, в объеме 33% от указанного количества,\nсоздаются тесты, результаты которых превышают допустимые значения s21_decimal (как очень большие,\nтак и очень малые величины). Сгенерированные тесты выводятся в консоль (за исключением общей\nгенерации) и сохраняются в файлы с расширением .c (для вашего удобства). Адрес сохранения файлов\nуказывается в консоли, после завершения генерации. Данные файлы вы можете переносить в собственные\nпроекты, но не забудьте добавить в них #include с вашим заголовочным файлом, а так же, прописать\nфункцию с возвращаемым типом данных Suite в исполняемый файл, который будет запускать тесты (там где\nу вас функция main).\n\n#### Рекомендации по использованию тестов в проекте\n\nВо время использования данного стартера в первую очередь опирайтесь на здравый смысл и собственнные\nощущения. Этот стартер был протестирован на нескольких, успешно сданных, проектах и нигде тесты не\nпрошли на 100% (результаты были около 90%). Если у вас что-то не проходит, то посмотрите внимательно\nна значения используемые в тесте, возможно, там получается что-то сложное, где надо сначала\nподнимать степень одного из значений, а потом еще и снижать степень второго, чтобы уровнять их и при\nэтом не выйти за пределы s21_decimal. Такой тест вы можете проигнорировать и удалить его, нет смысла\nтратить десятки часов на идеальный результат. Тем более, у вертера нет таких сложных кейсов.\nОбщие рекомендации такие - первые 16 тестов (проверка корректности используемых входных значений)\nдолжны проходить 100%, в остальном ориентируйтесь на 80%+.\n\n## В планах\n\n- ~~Глобальный рефакторинг~~ (выполнено 09.05.2024)\n- ~~Улучшение читаемости консольного интерфейса~~\n- ~~Генерация фейл-тестов (слишком большой/слишком малый результат)~~ (добавлено в 0.8.11\n  31.01.2024)\n- ~~Вывод сгенерированных тестов в файл~~ (добавлено в 0.8.0 27.01.2024)\n- ~~Покрытие проекта тестами (81%)~~ (добавлено в 0.9.1 25.04.2024)\n- ~~Покрытие проекта JavaDocs~~ (добавлено в 0.8.15 15.02.2024)\n- ~~Оптимизация генерации тестовых кейсов~~ (добавлено в 0.8.13 04.02.2024)\n- ~~Обратная конверсия из s21_decimal в десятичное число~~ (добавлено в 0.9.0 25.02.2024)\n\n## Список зависимостей (технологий и библиотек)\n\n1. Java: 11\n2. Maven: 3.6.0\n3. Apache Commons Lang 3: 3.14.0\n4. Junit: 5.10.2\n5. Mockito: 5.11.0\n6. Log4j2: 2.23.1\n7. Jacoco: 0.8.11\n\n## Лицензия\n\nПроект лицензирован по Apache 2.0 - см. [LICENSE](https://www.apache.org/licenses/LICENSE-2.0)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fath31st%2Fs21_decimal_starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fath31st%2Fs21_decimal_starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fath31st%2Fs21_decimal_starter/lists"}