42_minishell/libtf/dev/list.c
2024-04-23 14:55:47 +02:00

55 lines
1.4 KiB
C

#include "libtf.h"
#include <stdio.h>
void err(t_const_string msg)
{
printf("error: %s\n", msg);
}
int main()
{
t_memclass mc = mem_newclass(&err);
int tab[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
t_list list = list_createempty(mc);
for (int i = 0; i < 5; i++)
list_add(&err, &list, &tab[i]);
for (int i = 5; i < 10; i++)
list_revadd(&err, &list, &tab[i]);
printf("9 8 7 6 5 0 1 2 3 4 = ");
for (int i = 0; i < 10; i++)
printf("%i ", *(int *)list_get(&err, &list, i));
printf("\n10 = %i\n", list_getsize(&list));
list_rotate(&list);
printf("8 7 6 5 0 1 2 3 4 9 = ");
for (int i = 0; i < 10; i++)
printf("%i ", *(int *)list_get(&err, &list, i));
list_revrotate(&list);
printf("\n9 8 7 6 5 0 1 2 3 4 = ");
for (int i = 0; i < 10; i++)
printf("%i ", *(int *)list_get(&err, &list, i));
printf("\n\n2 index errors:\n");
list_get(&err, &list, -1);
list_get(&err, &list, 10);
printf("10 = %i\n", list_getsize(&list));
printf("\n");
for (int i = 9; i > 4; i--)
{
int value = *(int *)list_pop(&err, &list);
printf("%i = %i\n", i, value);
}
printf("5 = %i\n", list_getsize(&list));
for (int i = 4; i >= 0; i--)
{
int value = *(int *)list_revpop(&err, &list);
printf("%i = %i\n", i, value);
}
printf("0 = %i\n", list_getsize(&list));
printf("\n2 empty list errors:\n");
list_pop(&err, &list);
list_revpop(&err, &list);
mem_freeall(mc);
printf("\nMust have no leaks\n");
}