test
Tests Basics avec Criterion / test (push) Failing after 5s

This commit is contained in:
2026-04-02 22:11:20 +02:00
parent 4a720a3569
commit 6da27cbf48
@@ -48,12 +48,16 @@ int list_insert(struct list **l, size_t index, int e){
if(!l) return 1; if(!l) return 1;
if (list_count(*l) < index) return 1;
struct list *new_node = malloc(sizeof(struct list)); struct list *new_node = malloc(sizeof(struct list));
if(!new_node) return 1; if(!new_node) return 1;
new_node->data = e; if(index == 0){
new_node->data = e;
new_node->next = *l;
*l = new_node;
return 0;
}
struct list *tmp = *l; struct list *tmp = *l;
size_t ind = 0; size_t ind = 0;
@@ -63,7 +67,10 @@ int list_insert(struct list **l, size_t index, int e){
tmp = tmp->next; tmp = tmp->next;
ind ++; ind ++;
} }
if (!tmp) return 1;
new_node->data = e;
new_node->next = tmp->next; new_node->next = tmp->next;
tmp->next = new_node; tmp->next = new_node;
@@ -73,16 +80,15 @@ int list_insert(struct list **l, size_t index, int e){
struct list *list_get(struct list *l, size_t index){ struct list *list_get(struct list *l, size_t index){
if(!l) return NULL;
//if(list_count(l) < index) return NULL;
struct list *tmp = l; struct list *tmp = l;
size_t ind = 0; size_t ind = 0;
while(tmp->next != NULL && ind != index){
while(tmp != NULL && ind < index){
tmp = tmp->next; tmp = tmp->next;
ind ++; ind ++;
} }
if(ind >= index) return NULL; if(ind >= index) return NULL;
return tmp; return tmp;
} }
@@ -96,11 +102,9 @@ void list_destroy(struct list *l){
struct list *list_find(struct list *l, int e){ struct list *list_find(struct list *l, int e){
if(!l) return NULL;
struct list *tmp = l; struct list *tmp = l;
while (tmp->data != e) tmp = tmp->next; while (tmp != NULL && tmp->data != e) tmp = tmp->next;
return tmp; return tmp;
@@ -108,6 +112,8 @@ struct list *list_find(struct list *l, int e){
struct list *list_delete_at(struct list **l, size_t index){ struct list *list_delete_at(struct list **l, size_t index){
if (!l || !*l) return NULL;
struct list *old = *l; struct list *old = *l;
if ( index == 0){ if ( index == 0){
@@ -118,46 +124,45 @@ struct list *list_delete_at(struct list **l, size_t index){
struct list *tmp = *l; struct list *tmp = *l;
size_t ind = 0; size_t ind = 0;
while(tmp->next != NULL && ind < index - 1){ while(tmp != NULL && ind < index - 1){
tmp = tmp->next; tmp = tmp->next;
ind ++; ind ++;
} }
if (ind < index) { if (ind == index - 1) {
old = tmp->next; old = tmp->next;
tmp->next = old->next; tmp->next = old->next;
return old; return old;
} }
return NULL; return NULL;
} }
int list_remove(struct list **l, int e){ int list_remove(struct list **l, int e){
struct list *old = *l; struct list *old = NULL;
struct list *tmp = *l; struct list *tmp = *l;
while (tmp->next != NULL && tmp->data != e){ while (tmp != NULL && tmp->data != e){
old = tmp;
tmp = tmp->next; tmp = tmp->next;
} }
if(tmp->data == e) { if (!tmp) return NULL;
old = tmp->next; if(!old) *l = tmp->next;
tmp->next = old->next; else old->next = tmp->next;
return 1;
} free(tmp);
return 0;
return 1;
} }
void list_print(struct list *l){ void list_print(struct list *l){
if(!l) {
printf("\n");
return ;
}
struct list *tmp = l; struct list *tmp = l;
while (tmp != NULL){ while (tmp != NULL){
@@ -169,6 +174,7 @@ void list_print(struct list *l){
tmp = tmp->next; tmp = tmp->next;
} }
printf("\n"); printf("\n");
} }
/* /*