void spBPQueueDestroy(SPBPQueue source){ if(source != NULL){ spListDestroy(source->list); free(source); } return; }
static bool testListInsertAfterCurrent() { ASSERT_TRUE(SP_LIST_NULL_ARGUMENT == spListInsertAfterCurrent(NULL, NULL)); SPListElement e1 = spListElementCreate(1, 1.0); SPListElement e2 = spListElementCreate(2, 2.0); SPListElement e3 = spListElementCreate(3, 3.0); SPListElement e4 = spListElementCreate(4, 4.0); SPList list2 = quickList(3, e2, e3, e4); ASSERT_TRUE(SP_LIST_NULL_ARGUMENT == spListInsertAfterCurrent(list2,NULL)); ASSERT_TRUE(SP_LIST_INVALID_CURRENT == spListInsertAfterCurrent(list2, e1)); spListGetFirst(list2); spListGetNext(list2); ASSERT_TRUE(SP_LIST_SUCCESS == spListInsertAfterCurrent(list2, e1)); ASSERT_TRUE(4 == spListGetSize(list2)); ASSERT_TRUE(spListElementCompare(e2, spListGetFirst(list2))==0); ASSERT_TRUE(spListElementCompare(e3, spListGetNext(list2))==0); ASSERT_TRUE(spListElementCompare(e1, spListGetNext(list2))==0); ASSERT_TRUE(spListElementCompare(e4, spListGetNext(list2))==0); ASSERT_TRUE(spListGetNext(list2) == NULL); ASSERT_TRUE(spListGetNext(list2) == NULL); spListDestroy(list2); spListElementDestroy(e1); spListElementDestroy(e2); spListElementDestroy(e3); spListElementDestroy(e4); return true; }
static bool testListClear() { SPListElement e1 = spListElementCreate(1, 1.0); SPListElement e2 = spListElementCreate(2, 2.0); SPListElement e3 = spListElementCreate(3, 3.0); SPListElement e4 = spListElementCreate(4, 4.0); SPList list2 = quickList(4, e1, e2, e3, e4); ASSERT_TRUE(spListClear(list2) == SP_LIST_SUCCESS); ASSERT_TRUE(0 == spListGetSize(list2)); SPList list = spListCreate(); spListClear(list); ASSERT_TRUE(0 == spListGetSize(list)); spListDestroy(list); spListDestroy(list2); spListElementDestroy(e1); spListElementDestroy(e2); spListElementDestroy(e3); spListElementDestroy(e4); return true; }
void spBPQueueDestroy(SPBPQueue source) { if (source != NULL) { if (source->queue != NULL) spListDestroy(source->queue); spListElementDestroy(source->maxElement); source->maxElement = NULL; free(source); source = NULL; } }
SPBPQueue spBPQueueCopy(SPBPQueue source){ assert(source); SPBPQueue copy = spBPQueueCreate(source->bound); if (copy == NULL){ return NULL; } spListDestroy(copy->list); copy->list = spListCopy(source->list); return copy; }
static bool testListGetLast() { SPList list = spListCreate(); ASSERT_TRUE(spListGetLast(list) == NULL); SPListElement e1 = spListElementCreate(1, 1.0); SPListElement e2 = spListElementCreate(2, 2.0); SPListElement e3 = spListElementCreate(3, 3.0); SPListElement e4 = spListElementCreate(4, 4.0); SPList list2 = quickList(4, e1, e2, e3, e4); SPListElement last = spListGetLast(list2); ASSERT_TRUE(spListElementCompare(e4, last) == 0); ASSERT_TRUE( spListElementCompare(last, spListGetLast(list2)) == 0 && spListGetLast(list2) == last); spListDestroy(list); spListDestroy(list2); spListElementDestroy(e1); spListElementDestroy(e2); spListElementDestroy(e3); spListElementDestroy(e4); return true; }
static bool testListGetPrevious() { ASSERT_TRUE(spListGetNext(NULL) == NULL); SPListElement e1 = spListElementCreate(1, 1.0); SPListElement e2 = spListElementCreate(2, 2.0); SPListElement e3 = spListElementCreate(3, 3.0); SPListElement e4 = spListElementCreate(4, 4.0); SPList list2 = quickList(4, e1, e2, e3, e4); ASSERT_TRUE(spListGetPrevious(list2) == NULL); spListDestroy(list2); spListElementDestroy(e1); spListElementDestroy(e2); spListElementDestroy(e3); spListElementDestroy(e4); return true; }
SPBPQueue spBPQueueCreate(int maxSize) { if (maxSize <= 0) { return NULL; } SPList newList = spListCreate(); if (newList == NULL) { return NULL; } SPBPQueue createdQueue = spBPQueueInnerCreate(newList, maxSize); if (createdQueue == NULL) { spListDestroy(newList); return NULL; } return createdQueue; }
static bool testListGetSize() { SPList list = quickList(0); ASSERT_TRUE(0 == spListGetSize(list)); SPListElement e1 = spListElementCreate(1, 1.0); spListInsertFirst(list, e1); ASSERT_TRUE(1 == spListGetSize(list)); spListElementSetIndex(e1, 2); spListElementSetValue(e1, 2.0); spListInsertFirst(list, e1); ASSERT_TRUE(2 == spListGetSize(list)); spListGetFirst(list); spListRemoveCurrent(list); ASSERT_TRUE(1 == spListGetSize(list)); spListDestroy(list); spListElementDestroy(e1); return true; }
SPList spListCopy(SPList list) { if (list == NULL) { return NULL; } SPList copyList = spListCreate(); if (copyList == NULL) { return NULL; } SPListElement currentElement = spListGetFirst(list); while (currentElement) { if (spListInsertLast(copyList, currentElement) != SP_LIST_SUCCESS) { spListDestroy(copyList); list->current = NULL; return NULL; } currentElement = spListGetNext(list); } list->current = NULL; copyList->current = NULL; return copyList; }
static bool testListDestroy() { spListDestroy(NULL); return true; }
static bool testListCreate() { SPList list = spListCreate(); ASSERT_TRUE(list != NULL); spListDestroy(list); return true; }