improve examples

This commit is contained in:
2025-08-05 00:10:53 +02:00
parent 2376e5d0a0
commit 306e7d8496
3 changed files with 107 additions and 28 deletions

View File

@@ -1,53 +1,50 @@
#include <assert.h>
#include <stdio.h>
#include "../../queue/myqueue.h"
int main(void) {
/* Allocate a new queue */
/* Always remember to check return values */
mcl_queue *queue = mcl_queue_init(3, sizeof(int));
assert(queue != NULL);
int val, out;
/* Push value to the ring buffer */
val = 1;
assert(mcl_queue_push(queue, &val) == 0);
mcl_queue_push(queue, &val);
val = 2;
assert(mcl_queue_push(queue, &val) == 0);
mcl_queue_push(queue, &val);
/* Retrieve values */
int front = *((int *)mcl_queue_get_front(queue));
int rear = *((int *)mcl_queue_get_rear(queue));
printf("Front: %d, Rear: %d\n", front, rear);
assert(front == 1);
assert(rear == 2);
assert(mcl_queue_pop(queue, &out) == 0);
/* Remove an element from the buffer */
mcl_queue_pop(queue, &out);
printf("Pop: %d\n", out);
assert(out == 1);
front = *((int *)mcl_queue_get_front(queue));
printf("Front after pop: %d\n", front);
assert(front == 2);
val = 3;
assert(mcl_queue_push(queue, &val) == 0);
mcl_queue_push(queue, &val);
rear = *((int *)mcl_queue_get_rear(queue));
printf("Rear after push 3: %d\n", rear);
assert(rear == 3);
val = 4;
int res = mcl_queue_push(queue, &val);
assert(res == 0);
/* Clear queue */
while (mcl_queue_pop(queue, &out) == 0) {
printf("Pop: %d\n", out);
}
printf("Queue is now empty\n");
assert(mcl_queue_pop(queue, &out) == -1);
puts("Queue is now empty");
/* Deallocate memory */
mcl_queue_free(queue);
printf("All tests passed successfully.\n");
return 0;
}