Документация библиотеки находится во вложенной папке.
Спроектировать и реализовать класс для парсинга аргументов командной строки.
В качестве требований Вам дается файл с тестами. Исходя из тестов, Вы должны понять, какой публичный интерфейс предоставляет парсер. Ваша задача добиться, чтобы все тесты "проходили".
Изначально парсер умеет обрабатывать только строки, целочисленные и булевые аргументы. Вам не запрещается добавить произвольные типы и расширить функционал.
Как и в предыдущих лабораторный работах, в качестве тестового фреймворка используется GoogleTest. Каждый тест представляет из себя функцию, в рамках которой проверяются некоторые условия за счет assert'ов. Предложенные Вам тесты используют только два различных assert'a:
- ASSERT_TRUE - проверяет, что выражение является истинным (в противном случае тест неуспешен)
- ASSERT_EQ - проверяет, что аргументы эквивалентны
Например, тест
TEST(ArgParserTestSuite, StringTest) {
ArgParser parser("My Parser");
parser.AddStringArgument("param1");
ASSERT_TRUE(parser.Parse(SplitString("app --param1=value1")));
ASSERT_EQ(parser.GetStringValue("param1"), "value1");
}
Проверяет, что
- Вызов
parser.Parse(SplitString("app --param1=value1"))
вернетtrue
- Вызов
parser.GetStringValue("param1")
вернет"value1"
Реализация должна находится в библиотеке argparser. Изначально в библиотеке есть один класс, при необходимости добавляйте новые файлы, классы, функции и т.д. в библиотеку.
Пример программы с использованием парсера находится в bin. Программа умеет складывать или умножать переданные ей аргументы.
labwork4 --sum 1 2 3 4 5
labwork4 --mult 1 2 3 4 5
-
Выполнение работы подразумевает только базовые знания о классах. Не запрещается использовать шаблоны, виртуальные функции и т.д. Однако для этого надо хорошо понимать как они работают и быть готовыми к вопросам.
-
Данная лабораторная работа может быть переиспользована в следующих, в качестве библиотеки для работы с аргументами командной строки.
- 21.11.23 24:00 - 0.8
- 28.11.23 24:00 - 0.65
- 05.12.23 24:00 - 0.5