forked from 131/lab5_ivec
добавил тесты, обновил ридмиху
This commit is contained in:
@@ -6,25 +6,62 @@
|
||||
#include "munit/munit.h"
|
||||
|
||||
static MunitResult
|
||||
test_vector_getters(const MunitParameter params[], void * data)
|
||||
test_vector_len(const MunitParameter params[], void * data)
|
||||
{
|
||||
// (Really stupid) tests for vector_len and vector_data
|
||||
ivector v;
|
||||
vector_init(&v);
|
||||
|
||||
munit_assert_size(vector_len(&v), ==, 0);
|
||||
munit_assert_not_null(vector_data(&v));
|
||||
|
||||
// Lame method, that checks vector_len getter
|
||||
v.n = 1337;
|
||||
munit_assert_size(vector_len(&v), ==, 1337);
|
||||
|
||||
vector_free(&v);
|
||||
munit_assert_size(vector_len(&v), ==, 0);
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
static MunitResult
|
||||
test_vector_data(const MunitParameter params[], void * data)
|
||||
{
|
||||
// (Really stupid) test for vector_data
|
||||
ivector v;
|
||||
vector_init(&v);
|
||||
|
||||
munit_assert_not_null(vector_data(&v));
|
||||
vector_free(&v);
|
||||
munit_assert_null(vector_data(&v));
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
static MunitResult
|
||||
test_vector_initdata(const MunitParameter params[], void * data)
|
||||
{
|
||||
int *p;
|
||||
int i;
|
||||
ivector v;
|
||||
int arr[] = {
|
||||
1, 2, 3, 4, 5
|
||||
};
|
||||
|
||||
vector_initdata(&v, arr, ARRSZ(arr));
|
||||
p = vector_data(&v);
|
||||
munit_assert_not_null(p);
|
||||
munit_assert_size(vector_len(&v), ==, ARRSZ(arr));
|
||||
|
||||
for (i = 0; i < ARRSZ(arr); i++) {
|
||||
munit_assert_int(arr[i], ==, p[i]);
|
||||
}
|
||||
vector_free(&v);
|
||||
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
static MunitResult
|
||||
test_vector_init_reserve(const MunitParameter params[], void * data)
|
||||
test_vector_resize(const MunitParameter params[], void * data)
|
||||
{
|
||||
int i;
|
||||
int arr[] = {
|
||||
@@ -35,14 +72,6 @@ test_vector_init_reserve(const MunitParameter params[], void * data)
|
||||
ivector v;
|
||||
|
||||
vector_initdata(&v, arr, ARRSZ(arr));
|
||||
p = vector_data(&v);
|
||||
munit_assert_not_null(p);
|
||||
munit_assert_size(vector_len(&v), ==, ARRSZ(arr));
|
||||
|
||||
for (i = 0; i < ARRSZ(arr); i++) {
|
||||
munit_assert_int(arr[i], ==, p[i]);
|
||||
}
|
||||
|
||||
vector_resize(&v, 16);
|
||||
munit_assert_size(vector_len(&v), ==, 16);
|
||||
|
||||
@@ -56,7 +85,33 @@ test_vector_init_reserve(const MunitParameter params[], void * data)
|
||||
}
|
||||
|
||||
vector_free(&v);
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
static MunitResult
|
||||
test_vector_set_get(const MunitParameter params[], void * data)
|
||||
{
|
||||
int arr[] = {
|
||||
1, 2, 3, 4, 5
|
||||
};
|
||||
ivector v;
|
||||
int *p;
|
||||
int i;
|
||||
|
||||
vector_initdata(&v, arr, ARRSZ(arr));
|
||||
for (i = 0; i < vector_len(&v); i++) {
|
||||
vector_set(&v, i, i);
|
||||
}
|
||||
|
||||
p = vector_data(&v);
|
||||
for (i = 0; i < vector_len(&v); i++) {
|
||||
int item = vector_get(&v, i);
|
||||
munit_assert_int(item, ==, i);
|
||||
//double check with raw pointer
|
||||
munit_assert_int(p[i], ==, i);
|
||||
}
|
||||
|
||||
vector_free(&v);
|
||||
return MUNIT_OK;
|
||||
}
|
||||
|
||||
@@ -110,9 +165,12 @@ test_vector_push_pop(const MunitParameter params[], void * data)
|
||||
#define TEST_ITEM(func) {#func, func, NULL, NULL, MUNIT_TEST_OPTION_NONE }
|
||||
|
||||
static MunitTest test_suite_tests[] = {
|
||||
TEST_ITEM(test_vector_getters),
|
||||
TEST_ITEM(test_vector_len),
|
||||
TEST_ITEM(test_vector_data),
|
||||
TEST_ITEM(test_vector_initdata),
|
||||
|
||||
TEST_ITEM(test_vector_init_reserve),
|
||||
TEST_ITEM(test_vector_resize),
|
||||
TEST_ITEM(test_vector_set_get),
|
||||
TEST_ITEM(test_vector_push_pop),
|
||||
//TEST_ITEM(test_pvector_init),
|
||||
|
||||
@@ -134,4 +192,3 @@ main(int argc, const char *argv[])
|
||||
munit_suite_main(&test_suite, (void *) "vector_test", argc, (char * const*) argv);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user