#include <stddef.h>
#include <stdarg.h>
#include <setjmp.h>
#include <google/cmockery.h>
#include "cstl/cstl_def.h"
#include "cstl/citerator.h"
#include "cstl/clist.h"
#include "cstl/cvector.h"
#include "cstl/cstl_basic_string_iterator.h"
#include "cstl/cstl_basic_string_private.h"
#include "cstl/cstl_basic_string.h"
#include "cstl_basic_string_aux.h"
#include "ut_def.h"
#include "ut_cstl_basic_string.h"
UT_SUIT_DEFINATION(cstl_basic_string, basic_string_init)
/*
* test basic_string_init
*/
UT_CASE_DEFINATION(basic_string_init)
void test_basic_string_init__null_basic_string_container(void** state)
{
expect_assert_failure(basic_string_init(NULL));
}
void test_basic_string_init__non_created(void** state)
{
basic_string_t bstr;
bstr._pby_string = NULL;
expect_assert_failure(basic_string_init(&bstr));
}
void test_basic_string_init__successfully_c_builtin(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(int);
basic_string_init(pt_basic_string);
assert_true(basic_string_size(pt_basic_string) == 0);
assert_true(basic_string_capacity(pt_basic_string) == 0);
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init__successfully_cstl_builtin(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(list_t<int>);
basic_string_init(pt_basic_string);
assert_true(basic_string_size(pt_basic_string) == 0);
assert_true(basic_string_capacity(pt_basic_string) == 0);
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init__successfully_cstr(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(char*);
basic_string_init(pt_basic_string);
assert_true(basic_string_size(pt_basic_string) == 0);
assert_true(basic_string_capacity(pt_basic_string) == 0);
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init__successfully_user_defined(void** state)
{
typedef struct _tagtest_basic_string_init__successfully_user_defined
{
int n_elem;
}_test_basic_string_init__successfully_user_defined_t;
basic_string_t* pt_basic_string = NULL;
type_register(_test_basic_string_init__successfully_user_defined_t, NULL, NULL, NULL, NULL);
pt_basic_string = create_basic_string(_test_basic_string_init__successfully_user_defined_t);
basic_string_init(pt_basic_string);
assert_true(basic_string_size(pt_basic_string) == 0);
assert_true(basic_string_capacity(pt_basic_string) == 0);
basic_string_destroy(pt_basic_string);
}
/*
* test basic_string_init_cstr
*/
UT_CASE_DEFINATION(basic_string_init_cstr)
void test_basic_string_init_cstr__null_container(void** state)
{
expect_assert_failure(basic_string_init_cstr(NULL, "abcdef"));
}
void test_basic_string_init_cstr__non_created_container(void** state)
{
basic_string_t bstr;
bstr._t_typeinfo._t_style = 24455656;
expect_assert_failure(basic_string_init_cstr(&bstr, "abcdefg"));
}
void test_basic_string_init_cstr__null_valuestring(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(int);
expect_assert_failure(basic_string_init_cstr(pt_basic_string, NULL));
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init_cstr__c_builtin_init_empty(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(int);
int elem = 0;
basic_string_init_cstr(pt_basic_string, &elem);
assert_true(basic_string_size(pt_basic_string) == 0);
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init_cstr__c_builtin_init_non_empty(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(int);
int elems[] = {9, 5, 2, 0, 13, 5455};
basic_string_init_cstr(pt_basic_string, elems);
assert_true(basic_string_size(pt_basic_string) == 3);
assert_true(*(int*)basic_string_at(pt_basic_string, 0) == 9);
assert_true(*(int*)basic_string_at(pt_basic_string, 1) == 5);
assert_true(*(int*)basic_string_at(pt_basic_string, 2) == 2);
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init_cstr__char_init_empty(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(char);
basic_string_init_cstr(pt_basic_string, "");
assert_true(basic_string_size(pt_basic_string) == 0);
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init_cstr__char_init_non_empty(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(char);
basic_string_init_cstr(pt_basic_string, "abc");
assert_true(basic_string_size(pt_basic_string) == 3);
assert_true(*(char*)basic_string_at(pt_basic_string, 0) == 'a');
assert_true(*(char*)basic_string_at(pt_basic_string, 1) == 'b');
assert_true(*(char*)basic_string_at(pt_basic_string, 2) == 'c');
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init_cstr__cstr_init_empty(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(char*);
const char* elems[] = {NULL};
basic_string_init_cstr(pt_basic_string, elems);
assert_true(basic_string_size(pt_basic_string) == 0);
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init_cstr__cstr_init_non_empty(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(char*);
const char* elems[] = {"abc", "def", "hij", NULL};
basic_string_init_cstr(pt_basic_string, elems);
assert_true(basic_string_size(pt_basic_string) == 3);
assert_true(strcmp((char*)basic_string_at(pt_basic_string, 0), "abc") == 0);
assert_true(strcmp((char*)basic_string_at(pt_basic_string, 1), "def") == 0);
assert_true(strcmp((char*)basic_string_at(pt_basic_string, 2), "hij") == 0);
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init_cstr__libcstl_builtin_empty(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(list_t<int>);
list_t* elems[] = {NULL};
basic_string_init_cstr(pt_basic_string, elems);
assert_true(basic_string_size(pt_basic_string) == 0);
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init_cstr__libcstl_builtin_non_empty(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(list_t<int>);
list_t* plist = create_list(int);
list_t* elems[5];
list_init(plist);
elems[0] = plist;
elems[1] = plist;
elems[2] = plist;
elems[3] = NULL;
elems[4] = plist;
basic_string_init_cstr(pt_basic_string, elems);
assert_true(basic_string_size(pt_basic_string) == 3);
basic_string_destroy(pt_basic_string);
list_destroy(plist);
}
typedef struct _tag_test_basic_string_init_cstr__user_define
{
int n_elem;
double d_elem;
}_test_basic_string_init_cstr__user_define_t;
void test_basic_string_init_cstr__user_define_empty(void** state)
{
basic_string_t* pt_basic_string = NULL;
_test_basic_string_init_cstr__user_define_t* elems[] = {NULL};
type_register(_test_basic_string_init_cstr__user_define_t, NULL, NULL, NULL, NULL);
pt_basic_string = create_basic_string(_test_basic_string_init_cstr__user_define_t);
basic_string_init_cstr(pt_basic_string, elems);
assert_true(basic_string_size(pt_basic_string) == 0);
basic_string_destroy(pt_basic_string);
}
void test_basic_string_init_cstr__user_define_non_empty(void** state)
{
basic_string_t* pt_basic_string = create_basic_string(_test_basic_string_init_cstr__user_define_t);
_test_basic_string_init_cstr__user_define_t t_user1;
_test_basic_string_init_cstr__user_define_t t_user2;
_test_basic_string_init_cstr__user_define_t* elems[5] = {&t_user1, &t_user2, &t_user2, NULL, &t_user1};
t_user1.n_elem = 4;
t_user1.d_elem = 9.4;
t_user2.n_elem = 0;
t_user2.d_elem = 0.0;
basic_string_init_cstr(pt_basic_string, elems);
assert_true(basic_string_size(pt_basic_string) == 3);
assert_true(((_test_basic_string_init_cstr__user_define_t*)basic_string_at(pt_basic_string, 0))->n_elem ==
没有合适的资源?快使用搜索试试~ 我知道了~
C语言版STL
共475个文件
h:215个
c:196个
makefile:9个
需积分: 50 21 下载量 34 浏览量
2018-12-27
14:55:16
上传
评论
收藏 2MB ZIP 举报
温馨提示
C语言版本的STL(libcstl)源代码,支持跨平台的编译和使用。
资源推荐
资源详情
资源评论
收起资源包目录
C语言版STL (475个子文件)
configure.ac 4KB
Makefile.am 10KB
Makefile.am 3KB
Makefile.am 3KB
Makefile.am 107B
Makefile.am 101B
Makefile.am 95B
Makefile.am 95B
Makefile.am 56B
AUTHORS 175B
libcstl.bnf 21KB
ut_cstl_basic_string.c 1.43MB
ut_cstl_string.c 412KB
ut_cstl_slist.c 310KB
ut_cstl_list.c 240KB
ut_cstl_algo_sorting.c 234KB
ut_cstl_types_builtin.c 218KB
ut_cstl_hash_multimap.c 183KB
ut_cstl_rb_tree.c 179KB
ut_cstl_avl_tree.c 176KB
ut_cstl_rb_tree_aux.c 172KB
ut_cstl_hashtable.c 169KB
ut_cstl_iterator.c 169KB
ut_cstl_algo_mutating.c 168KB
ut_cstl_multimap.c 167KB
ut_cstl_hash_map.c 166KB
ut_cstl_basic_string_private.c 159KB
ut_cstl_algo_nonmutating.c 152KB
ut_cstl_map.c 151KB
ut_cstl_vector.c 142KB
ut_cstl_hash_multiset.c 129KB
ut_cstl_function_private.c 127KB
ut_cstl_deque.c 120KB
ut_cstl_hash_set.c 115KB
ut_cstl_multiset.c 104KB
ut_cstl_list_aux.c 102KB
ut_cstl_set.c 91KB
ut_cstl_deque_aux.c 88KB
ut_cstl_types_parse.c 81KB
ut_cstl_deque_iterator.c 77KB
cstl_function.c 73KB
ut_cstl_multimap_private.c 73KB
ut_cstl_map_private.c 71KB
ut_cstl_slist_aux.c 70KB
ut_cstl_iterator_private.c 68KB
ut_cstl_basic_string_aux.c 67KB
ut_cstl_algo_sorting_private.c 65KB
ut_cstl_types.c 65KB
ut_cstl_multiset_private.c 64KB
ut_cstl_basic_string_iterator.c 62KB
ut_cstl_hash_map_private.c 61KB
ut_cstl_hash_multimap_private.c 59KB
ut_cstl_avl_tree_aux.c 58KB
cstl_basic_string.c 58KB
ut_cstl_set_private.c 55KB
cstl_slist.c 53KB
ut_cstl_slist_private.c 49KB
ut_cstl_hash_multiset_private.c 49KB
ut_cstl_queue.c 45KB
cstl_rb_tree_aux.c 44KB
cstl_types_parse.c 44KB
ut_cstl_stack.c 43KB
ut_cstl_hash_set_private.c 42KB
cstl_rb_tree.c 42KB
cstl_avl_tree.c 41KB
ut_cstl_hash_multimap_iterator.c 41KB
ut_cstl_vector_iterator.c 40KB
cstl_algo_sorting.c 40KB
cstl_list.c 39KB
cstl_function_private.c 39KB
ut_cstl_algo_mutating_private.c 38KB
ut_cstl_hashtable_aux.c 37KB
cstl_types_builtin.c 37KB
ut_cstl_hash_map_iterator.c 36KB
cstl_hashtable.c 36KB
cstl_deque_aux.c 36KB
ut_cstl_hash_multiset_iterator.c 35KB
ut_cstl_multimap_iterator.c 35KB
cstl_vector.c 34KB
ut_cstl_vector_private.c 34KB
ut_cstl_deque_private.c 34KB
cstl_basic_string_aux.c 33KB
cstl_deque.c 33KB
ut_cstl_heap.c 33KB
ut_cstl_list_private.c 32KB
ut_cstl_map_iterator.c 30KB
ut_cstl_hash_set_iterator.c 30KB
ut_cstl_pair.c 30KB
cstl_basic_string_private.c 29KB
ut_cstl_multiset_iterator.c 28KB
ut_cstl_list_iterator.c 28KB
cstl_string.c 28KB
ut_cstl_algo_nonmutating_private.c 28KB
cstl_types.c 28KB
ut_cstl_hashtable_iterator.c 28KB
ut_cstl_slist_iterator.c 27KB
ut_cstl_vector_aux.c 26KB
cstl_algo_mutating.c 26KB
ut_cstl_algo_sorting_aux.c 26KB
ut_cstl_avl_tree_iterator.c 25KB
共 475 条
- 1
- 2
- 3
- 4
- 5
资源评论
KevinZhu
- 粉丝: 2
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功