From: Matthew Owens Date: Sun, 26 Dec 2021 17:10:50 +0000 (+0000) Subject: updated test X-Git-Url: https://git.owens.tech/editable-focus.html/editable-focus.html/git?a=commitdiff_plain;ds=sidebyside;p=AbyssalThistle%2Fpriority-queue-test.git updated test --- diff --git a/check_priority_queue.c b/check_priority_queue.c index c10275a..466758c 100644 --- a/check_priority_queue.c +++ b/check_priority_queue.c @@ -15,7 +15,7 @@ static void teardown() PrioQueueClear(&intQ); } -static void push() +static void simple_push() { int val = 1; @@ -41,13 +41,79 @@ static void push() START_TEST(test_priority_queue_push) { - push(); + simple_push(); + PrioQueueClear(&intQ); + + int val = 3; + PrioQueuePush(&intQ, &val, 1); + ck_assert_int_eq(*(int *)intQ.head->data, 3); + ck_assert_int_eq(*(int *)intQ.tail->data, 3); + ck_assert_int_eq(intQ.head->priority, 1); + ck_assert_int_eq(intQ.tail->priority, 1); + + val=4; + PrioQueuePush(&intQ, &val, 5); + ck_assert_int_eq(*(int *)intQ.head->data, 4); + ck_assert_int_eq(*(int *)intQ.tail->data, 3); + ck_assert_int_eq(intQ.head->priority, 5); + ck_assert_int_eq(intQ.tail->priority, 1); + + val = 10; + PrioQueuePush(&intQ, &val, 6); + ck_assert_int_eq(*(int *)intQ.head->data, 10); + ck_assert_int_eq(*(int *)intQ.tail->data, 3); + ck_assert_int_eq(intQ.head->priority, 6); + ck_assert_int_eq(intQ.tail->priority, 1); + + val = 11; + PrioQueuePush(&intQ, &val, 4); + ck_assert_int_eq(*(int *)intQ.head->data, 10); + ck_assert_int_eq(*(int *)intQ.tail->data, 3); + ck_assert_int_eq(intQ.head->priority, 6); + ck_assert_int_eq(intQ.tail->priority, 1); + + val = 21; + PrioQueuePush(&intQ, &val, 0); + ck_assert_int_eq(*(int *)intQ.head->data, 10); + ck_assert_int_eq(*(int *)intQ.tail->data, 21); + ck_assert_int_eq(intQ.head->priority, 6); + ck_assert_int_eq(intQ.tail->priority, 0); + + // verifying the expected order is + // 10, 4, 11, 3, 21 + PrioQueuePrint(&intQ); + + + PrioQueuePeek(&intQ, &val); + ck_assert_int_eq(val, 10); + PrioQueuePop(&intQ, &val); + ck_assert_int_eq(val, 10); + + PrioQueuePeek(&intQ, &val); + ck_assert_int_eq(val, 4); + PrioQueuePop(&intQ, &val); + ck_assert_int_eq(val, 4); + + PrioQueuePeek(&intQ, &val); + ck_assert_int_eq(val, 11); + PrioQueuePop(&intQ, &val); + ck_assert_int_eq(val, 11); + + PrioQueuePeek(&intQ, &val); + ck_assert_int_eq(val, 3); + PrioQueuePop(&intQ, &val); + ck_assert_int_eq(val, 3); + + PrioQueuePeek(&intQ, &val); + ck_assert_int_eq(val, 21); + PrioQueuePop(&intQ, &val); + ck_assert_int_eq(val, 21); } END_TEST START_TEST(test_priority_queue_pop) { - push(); + simple_push(); int data = 0; PrioQueuePop(&intQ, &data); @@ -78,7 +144,7 @@ END_TEST START_TEST(test_priority_queue_clear) { - push(); + simple_push(); PrioQueueClear(&intQ); ck_assert_ptr_null(intQ.head); ck_assert_ptr_null(intQ.tail); @@ -89,7 +155,7 @@ END_TEST START_TEST(test_priority_queue_peek) { int i = 0; - push(); + simple_push(); PrioQueuePeek(&intQ, &i); ck_assert_int_eq(i, 1); }