Тестирование программы с++

Есть простая программа с++ (пишу в Xcode) и папка с тестами (тест - текстовый файл, пример: данные - "01", ответ - "01.a"). Использовал ifstream для получения данных и ответа из файла, но приходиться постоянно менять 2 цифры в названиях файлов для перехода к следующему тесту. Как сделать быструю проверку?


Ответы (1 шт):

Автор решения: Swift

На самом деле часть с filesystem довольно проста - используем итератор и считаем имена обычных файлов, dirpath тут должен содержать имя существующей папки или итератор возвратит end(),

// наша функция проверки соответствия имени требуемому шаблону
is_proper_filename(const std::string& fn) { 
 //... 
}

namespace fs = std::filesystem;

std::set<std::string> filenames;

Заполнение списка имен используя directory_entry

for(auto & entry: fs::directory_iterator(dirpath))
{
     if(entry.is_regular_file() && is_proper_filename(entry.path())) 
       filenames.insert(entry.path());
}

У нас есть отсортированный список имен, осталось только вызывать рабочую процедуру для каждого.

→ Ссылка