Мне нужна помощь и руководство по дизайну моего кода.Я хочу запускать тесты с несколькими переменными, установленными на несколько значений, без создания безумных количеств вложенных циклов.Я получил структуру, которая содержит различные переменные, подобные этой (например, только три целых числа, но реальная сделка будет содержать гораздо больше, включая логические, двойные и т. Д.):
struct VarHolder
{
int a;
int b;
int c;
// etc..
// etc..
};
Структура передается втестовая функция.
bool TestFunction(const VarHolder& _varholder)
{
// ...
}
Я хочу запустить тест для всех переменных в диапазоне их заданного диапазона, всех комбинаций переменных.Одним из способов является создание цикла для каждой переменной:
for (int a = 0; a < 100; a++)
{
for (int b = 10; b < 90; b++)
{
for (int c = 5; c < 65; c++)
{
//...
//...
//set variables
VarHolder my_varholder(a, b, c /*, ...*/);
TestFunction(my_varholder);
}
}
}
Но это кажется неэффективным и становится нечитаемым быстро, так как количество переменных увеличивается.Какой элегантный способ добиться этого?Суть в том, что переменные будут меняться в будущем, удаляя некоторые, добавляя новые и т. Д., Поэтому предпочтительнее какое-то решение без переписывания циклов для каждой переменной по мере их изменения.