Exemple #1
0
void listDel(pList list, int uid)
{
    pList deleted = 0;
    pList last = 0;
    if(list->level!=0)
    {
        last = list;
        if(uid < list->uid)
            listDel(list->left, uid);
        else
        {
            deleted = list;
            listDel(list->right, uid);
        }
    }
    if(list == last && deleted != 0 && uid == deleted->uid)
    {
        deleted->uid = list->uid;
        deleted = 0;
        list = list->right;
        free(last);
    }
    else if (list->left->level < list->level-1 || list->right->level < list->level-1)
    {
        list->level -= 1;
        if(list->right->level > list->level)
            list->right->level = list->level;
        listSkew(list);
        listSkew(list->right);
        listSkew(list->right->right);
        listSplit(list);
        listSplit(list->right);
    }
}
 void test_retrieve_given_21_22_23_should_return_21_22_23()
{
	CEXCEPTION_T err;
	
	List *list = listNew(6);
	
	int storedIntegerSize;
	int *storedIntegers;
	int i ;
	int integers[] = {21,22,23,24,25,26};

	Try
	{
		store(list,integers,6);

		storedIntegers = retrieve(list,&storedIntegerSize);
	
		for ( i = 0 ; i < storedIntegerSize ; i ++ )
			printf("Stored Integer %d : %d\n",(i+1),storedIntegers[i]);
	}
	Catch(err)
	{
		TEST_FAIL_MESSAGE("Do not expect exception to be generated.");
	}
	
	listDel(list);
} 
void test_store_given_15_16_17_18_19_20_21_should_return_15_16_17_18_19_20_and_error(void)
{
	CEXCEPTION_T err;
	
	List *list = listNew(6);
	
	int integers[] = {15,16,17,18,19,20,21};

	Try
	{
		store(list,integers,7);
		TEST_FAIL_MESSAGE("Error should generate exception due to full list.");
	}
	Catch(err)
	{
		TEST_ASSERT_EQUAL(err,ERR_LIST_FULL);
		printf("Error [%d] : List is full",err);
	}
	
	TEST_ASSERT_EQUAL(15,*(list->buffer));
	TEST_ASSERT_EQUAL(16,*(list->buffer)+1);
	TEST_ASSERT_EQUAL(17,*(list->buffer)+2);
	TEST_ASSERT_EQUAL(18,*(list->buffer)+3);
	TEST_ASSERT_EQUAL(19,*(list->buffer)+4);
	TEST_ASSERT_EQUAL(20,*(list->buffer)+5);

	listDel(list);
}
Exemple #4
0
void serverDel(Server *server)
{
    if (server->handlers) listDel(server->handlers);
    free(server);

#ifdef _WIN32
    WSACleanup();
#endif
}
Exemple #5
0
int OzUIDestroyWidget(struct OzUIWidget *widget)
{
    listDel(&widget->link);
    if (widget->ops && widget->ops->onDestroy)
        widget->ops->onDestroy(widget);
    if (widget->window->miceWidget == widget)
        widget->window->miceWidget = 0;
    if (widget->window->focusWidget == widget)
        widget->window->focusWidget = 0;
    free(widget);
    return 0;
}
void test_store_given_5_6_7_8_9_10_should_return_5_6_7_8_9_10(void)
{
	CEXCEPTION_T err;
	
	List *list = listNew(6);
	
	int integers[] = {5,6,7,8,9,10};

	Try
	{
		store(list,integers,6);
		
	}
	Catch(err)
	{
		TEST_FAIL_MESSAGE("Do not expect exception to be generated.");
	}
	
	TEST_ASSERT_EQUAL(5,*(list->buffer));
	TEST_ASSERT_EQUAL(6,*(list->buffer)+1);
	TEST_ASSERT_EQUAL(7,*(list->buffer)+2);

	listDel(list);
}