test_deque.c

来自「提供了rbtree ttree avltree list hashtable等常」· C语言 代码 · 共 171 行

C
171
字号
#include <assert.h>#ifdef __cplusplusextern "C"{#endif#include "mydeque.h"#ifdef __cplusplus}#endifvoid test_deque1(const int LOOP, const size_t buffer_size, const size_t map_size){//#define LOOP 100	int i = 0;	HMYDEQUE hdq = MyDequeConstruct(NULL, NULL, buffer_size, map_size);	for(i = 0; i < LOOP; i ++)	{		MyDequeAddHead(hdq, (void *)i, 0);	}	//MyDequePrint(hdq);	assert(MyDequeGetCount(hdq) == LOOP);	{		void * data = 0;		MyDequeGetHead(hdq, &data, NULL);		assert(data == (void *)(LOOP - 1));		MyDequeGetTail(hdq, &data, NULL);		assert(data == 0);	}	for(i = 0; i < LOOP; i ++)	{		MyDequeAddTail(hdq, (void *)(i + LOOP), 0);	}	assert(MyDequeGetCount(hdq) == 2 * LOOP);	//MyDequePrint(hdq);	{		void * data = 0;		MyDequeGetHead(hdq, &data, NULL);		assert(data == (void *)(LOOP - 1));		MyDequeGetTail(hdq, &data, NULL);		assert(data == (void *)(2 * LOOP - 1));	}	for(i = 0; i < LOOP; i ++)	{		MyDequeDelHead(hdq);	}	assert(MyDequeGetCount(hdq) == LOOP);	//MyDequePrint(hdq);	assert(MyDequeGetCount(hdq) == LOOP);	{		void * data = 0;		MyDequeGetHead(hdq, &data, NULL);		assert(data == (void *)LOOP);		MyDequeGetTail(hdq, &data, NULL);		assert(data == (void *)(2 * LOOP - 1));	}	for(i = 0; i < LOOP; i ++)	{		MyDequeDelTail(hdq);	}	assert(MyDequeGetCount(hdq) == 0);	//MyDequePrint(hdq);	//MyMemPoolMemReport(0);	{		assert(MyDequeGetHead(hdq, NULL, NULL) == -1);		assert(MyDequeGetTail(hdq, NULL, NULL) == -1);	}	//==================================================================//	for(i = 0; i < LOOP; i ++)	{		MyDequeAddHead(hdq, (void *)i, 0);	}	assert(MyDequeGetCount(hdq) == LOOP);	//MyDequePrint(hdq);	{		void * data = 0;		MyDequeGetHead(hdq, &data, NULL);		assert(data == (void *)(LOOP - 1));		MyDequeGetTail(hdq, &data, NULL);		assert(data == 0);	}	for(i = 0; i < LOOP; i ++)	{		MyDequeAddTail(hdq, (void *)(i + LOOP), 0);	}	assert(MyDequeGetCount(hdq) == LOOP * 2);	//MyDequePrint(hdq);	{		void * data = 0;		MyDequeGetHead(hdq, &data, NULL);		assert(data == (void *)(LOOP - 1));		MyDequeGetTail(hdq, &data, NULL);		assert(data == (void *)(2 * LOOP - 1));	}	for(i = 0; i < LOOP; i ++)	{		MyDequeDelHead(hdq);	}	assert(MyDequeGetCount(hdq) == LOOP);	//MyDequePrint(hdq);	assert(MyDequeGetCount(hdq) == LOOP);	{		void * data = 0;		MyDequeGetHead(hdq, &data, NULL);		assert(data == (void *)LOOP);		MyDequeGetTail(hdq, &data, NULL);		assert(data == (void *)(2 * LOOP - 1));	}	for(i = 0; i < LOOP; i ++)	{		MyDequeDelTail(hdq);	}	assert(MyDequeGetCount(hdq) == 0);	//MyDequePrint(hdq);	{		assert(MyDequeGetHead(hdq, NULL, NULL) == -1);		assert(MyDequeGetTail(hdq, NULL, NULL) == -1);	}	//MyMemPoolMemReport(0);	for(i = 0; i < LOOP; i ++)	{		MyDequeAddTail(hdq, (void *)(i + LOOP), 0);	}	assert(MyDequeGetCount(hdq) == LOOP);	{		void * data = 0;		MyDequeGetHead(hdq, &data, NULL);		assert(data == (void *)LOOP);		MyDequeGetTail(hdq, &data, NULL);		assert(data == (void *)(2 * LOOP - 1));	}	MyDequeDestruct(hdq);	MyMemPoolMemReport(1);}void test_deque(){	int i = 1;	for(i = 1; i <= 1000; i += 50)	{		test_deque1(i, 4, 8);	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?