#include "List.h" #include #include int main(int argc, char * argv[]) { printf("Test New, InsertEnd, ToString, Free\n"); List * l = ListNew(); ListInsertEnd(l, 1); ListInsertEnd(l, 2); ListInsertEnd(l, 3); char * s = ListToString(l); assert(strcmp(s," 1 2 3")==0); free(s); ListDestroy(l); printf("Test InsertStart\n"); l = ListNew(); ListInsertStart(l, 3); ListInsertStart(l, 2); ListInsertStart(l, 1); s = ListToString(l); assert(strcmp(s," 1 2 3")==0); free(s); ListDestroy(l); printf("Test RemoveStart\n"); l = ListNew(); ListInsertStart(l, 3); ListInsertStart(l, 2); ListInsertStart(l, 1); ListRemoveStart(l); s = ListToString(l); assert(strcmp(s," 2 3")==0); free(s); ListRemoveStart(l); s = ListToString(l); assert(strcmp(s," 3")==0); free(s); ListRemoveStart(l); s = ListToString(l); assert(strcmp(s,"")==0); free(s); ListDestroy(l); printf("Test RemoveEnd with InsertStart\n"); l = ListNew(); ListInsertStart(l, 3); ListInsertStart(l, 2); ListInsertStart(l, 1); ListRemoveEnd(l); s = ListToString(l); assert(strcmp(s," 1 2")==0); free(s); ListRemoveEnd(l); s = ListToString(l); assert(strcmp(s," 1")==0); free(s); ListRemoveEnd(l); s = ListToString(l); assert(strcmp(s,"")==0); free(s); ListDestroy(l); printf("Test RemoveEnd with InsertEnd\n"); l = ListNew(); ListInsertEnd(l, 1); ListInsertEnd(l, 2); ListInsertEnd(l, 3); ListRemoveEnd(l); s = ListToString(l); assert(strcmp(s," 1 2")==0); free(s); ListRemoveEnd(l); s = ListToString(l); assert(strcmp(s," 1")==0); free(s); ListRemoveEnd(l); s = ListToString(l); assert(strcmp(s,"")==0); free(s); ListDestroy(l); printf("Test Reverse\n"); l = ListNew(); ListInsertEnd(l, 1); ListInsertEnd(l, 2); ListInsertEnd(l, 3); ListReverse(l); s = ListToString(l); assert(strcmp(s," 3 2 1")==0); free(s); ListDestroy(l); printf("All tests passed!\n\n"); return 0; }