forked from 131/lab3_test
64 lines
1.9 KiB
C
64 lines
1.9 KiB
C
#include <stdio.h>
|
||
#include "munit.h"
|
||
#include "bit_lib.h" // Подключаем наш новый модуль
|
||
|
||
/* --- Тест для bit_count --- */
|
||
static MunitResult
|
||
test_bit_count(const MunitParameter params[], void* fixture)
|
||
{
|
||
// 1. Тест на ноль
|
||
// 0 в двоичной ...0000
|
||
munit_assert_int(bit_count(0), ==, 0);
|
||
|
||
// 2. Тест на 1
|
||
// 1 в двоичной ...0001
|
||
munit_assert_int(bit_count(1), ==, 1);
|
||
|
||
// 3. Тест на степень двойки
|
||
// 8 в двоичной ...1000
|
||
munit_assert_int(bit_count(8), ==, 1);
|
||
|
||
// 1024 в двоичной ...10000000000
|
||
munit_assert_int(bit_count(1024), ==, 1);
|
||
|
||
// 4. Тест на число с несколькими битами
|
||
// 7 в двоичной ...0111
|
||
munit_assert_int(bit_count(7), ==, 3);
|
||
|
||
// 13 в двоичной ...1101
|
||
munit_assert_int(bit_count(13), ==, 3);
|
||
|
||
// 254 в двоичной ...11111110
|
||
munit_assert_int(bit_count(254), ==, 7);
|
||
|
||
// 5. Тест на 'все единицы' (для unsigned int, 32 бита)
|
||
// 0xFFFFFFFF (или 4294967295)
|
||
munit_assert_int(bit_count(0xFFFFFFFF), ==, 32);
|
||
|
||
return MUNIT_OK;
|
||
}
|
||
|
||
|
||
/* Массив тестов */
|
||
static MunitTest tests[] = {
|
||
{ "/test_bit_count", test_bit_count, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL },
|
||
/* Обязательный NULL-терминатор в конце массива */
|
||
{ NULL, NULL, NULL, NULL, MUNIT_TEST_OPTION_NONE, NULL }
|
||
};
|
||
|
||
|
||
static const MunitSuite test_suite = {
|
||
"/bit_tests", /* Имя сюиты */
|
||
tests, /* Массив тестов */
|
||
NULL, /* Вложенные сюиты */
|
||
1, /* 1 итерация */
|
||
MUNIT_SUITE_OPTION_NONE /* Опции */
|
||
};
|
||
|
||
int
|
||
main(int argc, const char *argv[])
|
||
{
|
||
munit_suite_main(&test_suite, (void *) "bit library test", argc, (char * const*) argv);
|
||
return 0;
|
||
}
|