Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.04.2023
Сообщений: 5

Юнит тест для функции выделения подматрицы, состоящей из одинаковых элементов

19.05.2023, 14:02. Показов 754. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, возникли некоторые трудности с написанием юнит тестов для данной функции. Помимо этого, я не понимаю, почему возникает ошибка в вызове в данном участке программы: submatrixContent(input_matrix[MAX_SIZE][MAX_SIZE], input_size[i], input_submatrix[i], &input_content[i][MAX_SIZE][MAX_SIZE]); Всем, кто помог, заранее спасибо.
Задание:
Найти содержимое подматриц, которые заполнены одинаковыми значениями и размер которых не менее заданного значения. Разные подматрицы могут быть заполнены разными значениями
param [in] matrix - матрица
param [in] size - размер матрицы [1, MAX_SIZE]
param [in] minSubmatrixSize - минимальный размер подматрицы [1, MAX_SIZE]
param [out] сontent - содержимое подматриц (без повторяющихся значений)
return - сколько вариантов содержимого получено
int submatrixContent(const int matrix[MAX_SIZE][MAX_SIZE], int size, int minSubmatrixSize, int сontent[]);
Код:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
int test_matrixContent(const int test_count, int input_content[4][MAX_SIZE][MAX_SIZE], int expect_submatix[4][MAX_SIZE][MAX_SIZE]);
int submatrixContent(const int matrix[MAX_SIZE][MAX_SIZE], int size, int minSubmatrixSize, int сontent[]);
int test_submatrixContent();
int main()
{
    // Тестирование
    puts("Тестирование функции deleteElement ...");
    if (test_submatrixContent())
    {
        puts("\n----------------------------------------------------------------");
        puts("\nfunction correct");
    }
    else
    {
        puts("\n----------------------------------------------------------------");
        puts("\nfunction incorrect");
    }
 
        return 0;
}
 
int test_submatrixContent()
{
    // Кол-во тестов
    const int test_count = 4;
    // Названия тестов (длиной не более 500 символов)
    char test_name[test_count][500] =
    { "Программа жидобор № 1: Подматрица 2 на 2",
    "Программа жидобор № 2: Подматрица 4 на 4",
    "Программа жидобор № 3: Подматрица 6 на 6",
        "Программа жидобор № 4: Пустое плато"
 
    };
    // Входные данные для тестирования
    int input_size[test_count] = { 4, 4, MAX_SIZE};
    int input_content[test_count][MAX_SIZE][MAX_SIZE];
    int input_matrix[MAX_SIZE][MAX_SIZE] =
    {
        {1, 1, 1, 1, 5, 6, 7, 8, 9, 10},
        {1, 1, 1, 1, 5, 6, 7, 8, 9, 10},
        {1, 1, 1, 1, 5, 6, 7, 8, 9, 10},
        {1, 1, 1, 1, 5, 6, 7, 8, 9, 10},
        {1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
        {10, 9, 8, 7, 6, 5, 4, 3, 2, 1},
        {10, 9, 8, 7, 6, 5, 4, 3, 2, 1},
        {10, 9, 8, 7, 6, 5, 4, 3, 2, 1},
        {10, 9, 8, 7, 6, 5, 4, 3, 2, 1},
        {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}
    };
    int input_submatrix[test_count] = { 2, 4, 6, 0};
    int expect_matrix[test_count][MAX_SIZE][MAX_SIZE] =
    {
        {{1, 1, 1, 1},
         {1, 1, 1, 1},
         {1, 1, 1, 1},
         {1, 1, 1, 1}},
        {{1, 1, 1, 1},
         {1, 1, 1, 1},
         {1, 1, 1, 1},
         {1, 1, 1, 1}},
        {{NULL}
          },
        {{NULL}
        }
    };
 
        // Собственно тестирование
    int is_Ok = 1;
    int diff_index;
    for (int i = 0; i < test_count; i++)
    {
        // ВЫЗЫВАЕМ ТЕСТИРУЕМУЮ ФУНКЦИЮ
        submatrixContent(input_matrix[MAX_SIZE][MAX_SIZE], input_size[i], input_submatrix[i], &input_content[i][MAX_SIZE][MAX_SIZE]);
        // СРАВНИВАЕМ ПОЛУЧЕННЫЙ РЕЗУЛЬТАТ С ЭТАЛОННЫМ НА СОВПАДЕНИЕ
        diff_index = test_matrixContent (i, input_content[MAX_SIZE][MAX_SIZE], expect_matrix[MAX_SIZE][MAX_SIZE]);
        if (diff_index > -1) // тест не пройден
        {
            is_Ok = 0;
            // Печатаем неудачный тест ...
            // ...разделитель
            puts("\n----------------------------------------------------------------");
            // ...номер и название
            printf("%d %s\n", i + 1, test_name[i]);
            // ...суть расхождения
            printf("\nРасхождение в элементе с индексом %d: %2d >> %2d", diff_index, input_content[i][MAX_SIZE][MAX_SIZE],
                expect_matrix[i][MAX_SIZE][MAX_SIZE]);
        }
    }
    return is_Ok;
}
 
int test_matrixContent(int test_count, int input_content[test_count][MAX_SIZE][MAX_SIZE], int expect_submatix[test_count][MAX_SIZE][MAX_SIZE])
{
    for (int i = 0; i < 3; i++)
    {
        if (input_content[i] != expect_submatix[i])
        {
            return i;
        }
    }
    return -1;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.05.2023, 14:02
Ответы с готовыми решениями:

Как сделать юнит тест для функции, которая находит максимальное из 3 чисел?
Подскажите пожалуйста, как сделать простой тест на javascript без библиотек для этой функции, находящей максимальное из трех чисел. ...

Юнит-тест для массива
Здравствуйте. Помогите, пожалуйста, написать unit-тест к вот этому коду. #include &lt;iostream&gt; #include &lt;vector&gt; ...

Юнит-тест для метода
Есть класс но сделать под него юнит тест не выходит если ты добрый человек помоги прошу public class Knopka1 { ...

1
фрилансер
 Аватар для Алексей1153
6466 / 5688 / 1131
Регистрация: 11.10.2019
Сообщений: 15,141
19.05.2023, 14:32
Цитата Сообщение от KURI_KAME Посмотреть сообщение
{{NULL}
},
{{NULL}
лишнее

а тут фактический аргумент не соответствуют формальному
Цитата Сообщение от KURI_KAME Посмотреть сообщение
diff_index = test_matrixContent (i, input_content[MAX_SIZE][MAX_SIZE], expect_matrix[MAX_SIZE][MAX_SIZE]);
нужен не трёхмерный массив, а одномерный массив с тестами
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.05.2023, 14:32
Помогаю со студенческими работами здесь

Юнит тест для готового кода
Здравствуйте. Имеется готовая задача на JS. Помогите, пожалуйста, написать для нее юнит тест function right_three(str) { if...

Юнит тест для сравнения массивов
Здраствуйте, Есть сортировка выбором void selection(int *y,int n) { int o; for (int i = 0; i &lt; n; ++i) { int pos = i; ...

Юнит тест для готового кода
помогите, пожалуйста, написать юнит тест для данной задачи function repeat_string(string, count) { if ((string == null)...

Создать юнит тест для кода
using System.Text; using System; namespace Menu { public class Program { delegate void method(); ...

Юнит тест для готового кода
Здравствуйте. Имеется готовый код, помогите, пожалуйста, написать юнит тест на джава скрипте. function str_con_cat(str1, str2) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru