From: Matthew Owens <matthew@owens.tech>
Date: Sun, 26 Dec 2021 17:10:50 +0000 (+0000)
Subject: updated test
X-Git-Url: https://git.owens.tech/dummy.html/dummy.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);
 }