1
1
mirror of https://github.com/theoludwig/libcproject.git synced 2024-09-17 04:45:54 +02:00
libcproject/test/stack_test.c
2023-01-05 19:28:05 +01:00

45 lines
1.2 KiB
C

#include "stack_test.h"
#include <assert.h>
#include <stdint.h>
#include <stdlib.h>
#include "libcproject.h"
void stack_test() {
stack_initialization_test();
stack_push_test();
stack_pop_test();
}
void stack_initialization_test() {
struct stack *stack = stack_initialization();
assert(stack->length == 0);
assert(stack->first == NULL);
}
void stack_push_test() {
struct stack *stack = stack_initialization();
stack_push(stack, (void *)4);
stack_push(stack, (void *)8);
stack_push(stack, (void *)15);
assert(stack->length == 3);
assert(((uintptr_t)stack->first->data) == 15);
assert(((uintptr_t)stack->first->next->data) == 8);
assert(((uintptr_t)stack->first->next->next->data) == 4);
assert(stack->first->next->next->next == NULL);
}
void stack_pop_test() {
struct stack *stack = stack_initialization();
stack_push(stack, (void *)4);
stack_push(stack, (void *)8);
stack_push(stack, (void *)15);
void *node = stack_pop(stack);
assert(stack->length == 2);
assert(((uintptr_t)node) == 15);
assert(((uintptr_t)stack->first->data) == 8);
assert(((uintptr_t)stack->first->next->data) == 4);
assert(stack->first->next->next == NULL);
}