+       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);