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); }
void serverDel(Server *server) { if (server->handlers) listDel(server->handlers); free(server); #ifdef _WIN32 WSACleanup(); #endif }
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); }