Проверить массив при помощи библиотеки assert

346
28 марта 2017, 13:54

Использую библиотеку assert для тестов функций.
Есть функция, которая удаляет повторяющиеся подряд элементы.
Т.е. делает из массива {4, 4, 3, 4} массив {4, 3, 4}.
Необходимо использовать assert, чтобы проверить некоторый массив на совпадение с ожидаемым результатом:

double *d = new double[Len] {4, 4, 3, 4}; // Результат {4, 3, 4}
CheckAndDel(d, Len); // Удаляет повторяющиеся элементы
FixSize(Len, d); // Делает массив длинной 3
assert( d = { 4, 3, 4 } ); // Нерабочая строка

Как реализовать проверку в 4 строке?

Answer 1

Что-то типа

int * d = new int[4] { 4, 4, 3, 4 };
auto check_array = [](int*d,initializer_list<int>x){ for(auto i: x) if (*d != i) return false; return true; };
assert(check_array(d,{4,4,3}));
assert(check_array(d,{4,3,4}));

:)

Да, еще - как понимать вашу проверку - как то, что первые три элемента вот такие (как сделано у меня)? потому что длина массива d вообще-то неизвестна...

READ ALSO
Наименьшее количество чисел в ряду

Наименьшее количество чисел в ряду

Дан ряд чисел(числа принимают значения от 1 до 9) ,нужно вывести какая цифра встречает реже всего в этом ряду,если таких цифр несколько вывести...

268
c++: как открыть файл из директории share/app_name?

c++: как открыть файл из директории share/app_name?

Предположим есть программа, которой для работы нужен файл, расположенный в паке share/app_nameЕсли у нас INSTALL_PREFIX=/usr, то файл соответственно будет...

263
Вставка массива с заданной позиции: [требует правки]

Вставка массива с заданной позиции: [требует правки]

Вставить массив в другой массив, начиная с заданного индекса

365
enum или boolean члены класса что лучше?

enum или boolean члены класса что лучше?

Продолжаю штудировать самоучитель Шилтда и обратил внимание что в одном из своих примеров он объевляет enum список для членов класса, которые...

266