vec/tests/06_vec_realloc.c

59 lines
1.2 KiB
C
Raw Permalink Normal View History

2025-07-19 18:53:45 +00:00
#define DEBUG
#include "../include/except.h"
#include "../include/vec.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void){
Vec *v = NULL;
v = vec_init(SOFTFAIL);
ASSERTED(v->items != NULL);
ASSERTED(v->cap == VEC_INIT_SZ);
ASSERTED(v->len == 0);
char *str = "Hello";
char *str2 = "World";
char *str3 = "Goodbye";
int p1 = vec_push(v, (void *)str);
ASSERTED(p1 == 1);
ASSERTED(v->len == 1);
int p2 = vec_push(v, (void *)str2);
ASSERTED(p2 == 2);
ASSERTED(v->len == 2);
ASSERTED(v->cap == 2);
int p3 = vec_push(v,str3);
ASSERTED(p3 == 3);
ASSERTED(v->len == 3);
ASSERTED(v->cap == 4);
char *str4 = (char *)vec_pop(v);
ASSERTED(strcmp(str4,str3) == 0);
ASSERTED(v->len == 2);
ASSERTED(v->cap == 4);
char *ptr = (char *)vec_read(v,1);
ASSERTED(strcmp(str2,ptr) == 0);
ASSERTED(v->len == 2);
ASSERTED(v->cap == 4);
vec_set(v,1,(void *)ptr);
ASSERTED(strcmp( (char *)v->items[1],(char *)ptr ) == 0);
ASSERTED(v->len == 2);
ASSERTED(v->cap == 4);
vec_realloc(v,100);
ASSERTED(v->cap == 100);
vec_free(v);
return EXIT_SUCCESS;
}