Files
42_INT_01_libft/testing/srcs/test_any.c
2021-09-27 16:51:48 +02:00

132 lines
2.0 KiB
C

#include "libftest.h"
char **create_tab(void)
{
char **tab;
tab = (char **)malloc(sizeof(char *) * (6 + 1));
tab[0] = strdup("premiere ligne de test");
tab[1] = strdup("deuxieme ligne de test");
tab[2] = strdup("troisieme ligne pour le fun");
tab[3] = strdup("quatrieme linge avec une erreur");
tab[4] = strdup("cinquieme peche a la ligne");
tab[5] = strdup("sixieme et derniere ligne");
return (tab);
}
void free_tab(char **tab)
{
free(tab[0]);
free(tab[1]);
free(tab[2]);
free(tab[3]);
free(tab[4]);
free(tab[5]);
free(tab);
}
int contain_a(char *s)
{
int i;
i = -1;
while (s[++i])
if (s[i] == 'a')
return (1);
return (0);
}
int contain_y(char *s)
{
int i;
i = -1;
while (s[++i])
if (s[i] == 'y')
return (1);
return (0);
}
int contain_z(char *s)
{
int i;
i = -1;
while (s[++i])
if (s[i] == 'z')
return (1);
return (0);
}
int contain_x(char *s)
{
int i;
i = -1;
while (s[++i])
if (s[i] == 'x')
return (1);
return (0);
}
int contain_u(char *s)
{
int i;
i = -1;
while (s[++i])
if (s[i] == 'u')
return (1);
return (0);
}
int contain_1(char *s)
{
int i;
i = -1;
while (s[++i])
if (s[i] == '1')
return (1);
return (0);
}
void compare_any(char **tab, int (*f)(char *), char *s, int solution)
{
int i;
i = ft_any(tab, f);
if (i != solution)
{
write(1, "\033[91m", 5);
printf("error: ");
write(1, "\033[0m", 4);
printf("ft_any(tab, %s) returned", s);
printf(" %i ", i);
printf("in tab :\n");
printf(" %s:\n", tab[0]);
printf(" %s:\n", tab[1]);
printf(" %s:\n", tab[2]);
printf(" %s:\n", tab[3]);
printf(" %s:\n", tab[4]);
printf(" %s:\n", tab[5]);
}
}
void test_any(void)
{
char **tab;
tab = create_tab();
compare_any(tab, contain_a, "contain_a", 1);
compare_any(tab, contain_y, "contain_y", 0);
compare_any(tab, contain_z, "contain_z", 0);
compare_any(tab, contain_x, "contain_x", 1);
compare_any(tab, contain_u, "contain_u", 1);
compare_any(tab, contain_1, "contain_1", 0);
free_tab(tab);
}