mirror of
				https://github.com/theoludwig/libcproject.git
				synced 2025-05-21 23:21:15 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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);
 | |
| }
 |