Conversation
There was a problem hiding this comment.
Если я правильно понимаю, все домашки, начиная с этой, должны использовать CMake.
There was a problem hiding this comment.
Нужно использовать сортированный список из домашки про него, а не писать заново.
| if (checkList(list, expected, count)) { | ||
| printf("Результат: пройден!\n"); | ||
| } else { | ||
| printf("Результат: НЕ пройден\n"); | ||
| } |
There was a problem hiding this comment.
Вам не надоело каждый раз писать этот if? Лучше каждый тест сделать отдельной функцией, а в runTests оставить только их запуск и вывод результата.
Если знаете, что такое указатель на функцию, то вообще можно сделать очень красиво.
| // Вставка в лист и изменение expected, в конце - сортировка массива | ||
| void insertElem(struct List* list, int value, int expected[], int* count) | ||
| { | ||
| insertElement(list, findPosition(list, value), value); | ||
| expected[*count] = value; | ||
| (*count)++; | ||
| bubbleSort(expected, *count); | ||
| } | ||
|
|
||
| // Удаление элемента из списка и из expected | ||
| void deleteElem(struct List* list, int value, int expected[], int* count) | ||
| { | ||
| int pos = checkElement(list, value); | ||
| if (pos != -1) { | ||
| deleteElement(list, pos); | ||
| } | ||
| int found = -1; | ||
| for (int i = 0; i < *count; i++) { | ||
| if (expected[i] == value) { | ||
| found = i; | ||
| break; | ||
| } | ||
| } | ||
| if (found != -1) { | ||
| for (int i = found; i < *count - 1; i++) { | ||
| expected[i] = expected[i + 1]; | ||
| } | ||
| (*count)--; | ||
| } | ||
| } |
There was a problem hiding this comment.
Мне кажется, проще было бы реализовать создание списка из массива и дальше делать тесты такого формата:
int testInsert() {
int initial[] = {1, 3, 4, 7};
List* lst = createListFromArr(initial, 4);
insertElem(lst, 5);
int expected[] = {1, 3, 4, 5, 7};
return checkList(lst, exepected, 5);
}По крайней мере, в таком случае не нужно вручную проделывать всю цепочку вставок и удалений, чтобы понять, что происходит в последнем тесте.
| list = NULL; | ||
| count = 0; | ||
| if (list == NULL && count == 0) { |
There was a problem hiding this comment.
В каком случае этот тест может не пройти?
Файлы: основной sortListForTests.c и заголовочный sortListForTests.h с функционалом сортированного списка и 2 файла для тестов tests.c и заголовочный tests.h
Также есть интсрукция README.md с тем, как запускать тесты
Выполнено: Долженко Александра
(Дата и время: 19.11.2025 23:45)