609 lines
14 KiB
C
609 lines
14 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* test_printf_bonus.c :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: lalgarra <lalgarra@student.42madrid.com> +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2025/10/15 18:54:32 by lalgarra #+# #+# */
|
|
/* Updated: 2025/10/24 21:20:29 by lalgarra ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include "ft_printf.h"
|
|
#include <stdarg.h>
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
#include <limits.h>
|
|
|
|
static char *get_begin(void)
|
|
{
|
|
return "%s printf() output: [BEGIN]";
|
|
}
|
|
|
|
static char *get_ftbegin(void)
|
|
{
|
|
return "%s ft_printf() output: [BEGIN]";
|
|
}
|
|
|
|
static char *get_end(void)
|
|
{
|
|
return "[END]; returns: %i\n";
|
|
}
|
|
|
|
static void call_printf(const char *prefix, const char *sfmt, ...)
|
|
{
|
|
int ret;
|
|
va_list args;
|
|
|
|
printf(get_begin(), prefix);
|
|
printf("format string: \"%s\"\n", sfmt);
|
|
printf(get_begin(), prefix);
|
|
va_start(args, sfmt);
|
|
ret = vprintf(sfmt, args);
|
|
va_end(args);
|
|
printf(get_end(), ret);
|
|
fflush(stdout);
|
|
}
|
|
|
|
static void test01()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
char arg1[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test01: ");
|
|
strcpy(sfmt, "Hola %s Mundo");
|
|
strcpy(arg1, "Es%sto es una \xfa prueba");
|
|
call_printf(prefix, sfmt, arg1);
|
|
printf(get_ftbegin(), prefix);
|
|
fflush(stdout);
|
|
ret = ft_printf(sfmt, arg1);
|
|
printf(get_end(), ret);
|
|
fflush(stdout);
|
|
}
|
|
|
|
static void test_int(char *prefix, char *sfmt, int val)
|
|
{
|
|
int ret;
|
|
|
|
call_printf(prefix, sfmt, val);
|
|
printf(get_ftbegin(), prefix);
|
|
fflush(stdout);
|
|
ret = ft_printf(sfmt, val);
|
|
printf(get_end(), ret);
|
|
fflush(stdout);
|
|
}
|
|
|
|
static void test02()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
|
|
strcpy(prefix, "test02: ");
|
|
strcpy(sfmt, "Entero con %%d: %d");
|
|
test_int(prefix, sfmt, -325);
|
|
}
|
|
|
|
static void test03()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
|
|
strcpy(prefix, "test03: ");
|
|
strcpy(sfmt, "Entero con %%i: %i");
|
|
test_int(prefix, sfmt, 9123325);
|
|
}
|
|
|
|
static void test04()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test04: ");
|
|
strcpy(sfmt, "%%s: NULL %s NULL; %%p: %p %p --eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, NULL, 0, 0);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, NULL, 0, 0);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test05()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test05: ");
|
|
strcpy(sfmt, "%%5x: %5x; %%-5X: %-5X; %%#-5x: %#-5x; %%#5X: %#5X--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 0xfafe, 0xab, 0xfafe, 0xab);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 0xfafe, 0xab, 0xfafe, 0xab);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test06()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test06: ");
|
|
strcpy(sfmt, "%%-1c, %%-2c, %%-3c: %-1c, %-2c, %-3c --eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, '0', 0, '1');
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, '0', 0, '1');
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test07()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test07: ");
|
|
strcpy(sfmt, "%%-1c, %%-2c, %%-3c: %-1c, %-2c, %-3c --eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, '2', '1', 0);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, '2', '1', 0);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test08()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test08: ");
|
|
strcpy(sfmt, "%%-1c, %%-2c, %%-3c: %-1c, %-2c, %-3c --eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 0, '1', '2');
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 0, '1', '2');
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test09()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test09: ");
|
|
strcpy(sfmt, "%%1s, %%-1s, %%-2s %1s, %-1s, %-2s --eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, "", "", "");
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, "", "", "");
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test10()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test10: ");
|
|
strcpy(sfmt, "%%.2sx%%.3sx%%.4sx%%.5sx%%.1s:x%.2sx%.3sx%.4sx%.5sx%.1s--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, " - ", "", "4", "", "2 ");
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, " - ", "", "4", "", "2 ");
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test11()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test11: ");
|
|
strcpy(sfmt, "%%-11p, %%-12p:%-11p,%-12p--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, INT_MIN, INT_MAX);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, INT_MIN, INT_MAX);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test12()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test12: ");
|
|
strcpy(sfmt, "%%-13p, %%-14p:%-13p,%-14p--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, ULONG_MAX, -ULONG_MAX);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, ULONG_MAX, -ULONG_MAX);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test13()
|
|
{
|
|
char prefix[138];
|
|
char sfmt[138];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test13: ");
|
|
strcpy(sfmt, "%%-9d,%%-10d,%%-11d,%%-12d,%%-13d,%%-14d,%%-15d:%-9d,%-10d,%-11d,%-12d,%-13d,%-14d,%-15d --eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, INT_MAX, INT_MIN, LONG_MAX, LONG_MIN, ULONG_MAX, 0, -42);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, INT_MAX, INT_MIN, LONG_MAX, LONG_MIN, ULONG_MAX, 0, -42);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test14()
|
|
{
|
|
char prefix[148];
|
|
char sfmt[148];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test14: ");
|
|
strcpy(sfmt, "%%09d,%%010d,%%011d,%%012d,%%013d,%%014d,%%015d:%09d,%010d,%011d,%012d,%013d,%014d,%015d--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, INT_MAX, INT_MIN, LONG_MAX, LONG_MIN, ULONG_MAX, 0, -42);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, INT_MAX, INT_MIN, LONG_MAX, LONG_MIN, ULONG_MAX, 0, -42);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test15()
|
|
{
|
|
char prefix[158];
|
|
char sfmt[158];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test15: ");
|
|
strcpy(sfmt, "%%04d:%04d--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 9);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 9);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test16()
|
|
{
|
|
char prefix[168];
|
|
char sfmt[168];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test16: ");
|
|
strcpy(sfmt, "%%.5d:%.5d,%.5d--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 17, 99);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 17, 99);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test17()
|
|
{
|
|
char prefix[178];
|
|
char sfmt[178];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test17: ");
|
|
strcpy(sfmt, "%%.5d:%.5d,%.5d--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, -17, -99);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, -17, -99);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test18()
|
|
{
|
|
char prefix[188];
|
|
char sfmt[188];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test18: ");
|
|
strcpy(sfmt, "%%.10d,%%.12d,%%.13d,%%14d:%.10d,%.12d,%.13d,%14d--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, LONG_MAX, UINT_MAX, ULONG_MAX, 9223372036854775807LL);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, LONG_MAX, UINT_MAX, ULONG_MAX, 9223372036854775807LL);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test19()
|
|
{
|
|
char prefix[198];
|
|
char sfmt[198];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test19: ");
|
|
strcpy(sfmt, "%%.2d,%%.3d,%%.3d,%%.4d:%.2d,%.3d,%.3d,%.4d--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, -1, -11, -99, -101);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, -1, -11, -99, -101);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test20()
|
|
{
|
|
char prefix[208];
|
|
char sfmt[208];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test20: ");
|
|
strcpy(sfmt, "%% d,%% d,%%+d,%%+d:% d,% d,%+d,%+d--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 0, INT_MAX, 99, LONG_MIN);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 0, INT_MAX, 99, LONG_MIN);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test21()
|
|
{
|
|
char prefix[218];
|
|
char sfmt[218];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test21: ");
|
|
strcpy(sfmt, "%%.s:%.s--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, "-");
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, "-");
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test22()
|
|
{
|
|
char prefix[228];
|
|
char sfmt[228];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test22: ");
|
|
strcpy(sfmt, "%%01x,%%04x,%%010x:%01x,%04x,%010x--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 0, 9, INT_MIN);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 0, 9, INT_MIN);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test23()
|
|
{
|
|
char prefix[238];
|
|
char sfmt[238];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test23: ");
|
|
strcpy(sfmt, "%%.2x,%%.10x:%.2x,%.10x--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 1, LONG_MAX);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 1, LONG_MAX);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test24()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test24: ");
|
|
strcpy(sfmt, "%%23s,%%-16s,%%.3s,%%.0s:%23s,%-16s,%.3s,%.0s--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, NULL, "nark nark", "hello", "bye");
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, NULL, "nark nark", "hello", "bye");
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test25()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test25: ");
|
|
strcpy(sfmt, "%%7.5s,%%7.5s,%%-7.5s,%%-7.5s:%7.5s,%7.5s,%-7.5s,%-7.5s--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, "yolo", "bombastic", "yolo", "tubular");
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, "yolo", "bombastic", "yolo", "tubular");
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test26()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test26: ");
|
|
strcpy(sfmt, "%%8.5i,%%10.5i,%%-8.5i,%%-10.5i:%8.5i,%10.5i,%-8.5i,%-10.5i--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 34, -216, 34, -216);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 34, -216, 34, -216);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test27()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test27: ");
|
|
strcpy(sfmt, "%%.03s,%%3.1s:%.03s,%3.1s--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, NULL, NULL);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, NULL, NULL);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test28()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test28: ");
|
|
strcpy(sfmt, "%%08.5i,%%010.5i,%%.i:%08.5i,%010.5i,%.i--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 34, -216, 0);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 34, -216, 0);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test50()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test50: ");
|
|
strcpy(sfmt, "%%#c: %#c; %%#s: %#s; %%#p: %#p; %%#d: %#d; %%#i: %#i; %%#u: %#u; %%#x: %#x; %%#X: %#X --eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 'a', "Lorem ipsum", (void *)prefix, 125, -128, 325u, 0xfa, 0xfb);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 'a', "Lorem ipsum", (void *)prefix, 125, -128, 325u, 0xfa, 0xfb);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test99()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test99: ");
|
|
strcpy(sfmt, "%%c: %c; %%s: %s; %%p: %p; %%d: %d; %%i: %i; %%u: %u; %%x: %x; %%X: %X --eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 'a', "Lorem ipsum", (void *)prefix, 125, -128, 325u, 0xfa, 0xfb);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 'a', "Lorem ipsum", (void *)prefix, 125, -128, 325u, 0xfa, 0xfb);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
static void test29()
|
|
{
|
|
char prefix[128];
|
|
char sfmt[128];
|
|
int ret;
|
|
|
|
strcpy(prefix, "test29: ");
|
|
strcpy(sfmt, "%%8.5u,%%-8.5u,%%.u,%%08.5u:%8.5u,%-8.5u,%.u,%08.5u--eof; ");
|
|
printf("%s printf(): ", prefix);
|
|
ret = printf(sfmt, 34, 8, 0, 34);
|
|
printf("ret=%i\n", ret);
|
|
fflush(stdout);
|
|
ft_printf("%sft_printf(): ", prefix);
|
|
ret = ft_printf(sfmt, 34, 8, 0, 34);
|
|
ft_printf("ret=%i\n", ret);
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
test01();
|
|
test02();
|
|
test03();
|
|
test04();
|
|
test05();
|
|
test06();
|
|
test07();
|
|
test08();
|
|
test09();
|
|
test10();
|
|
test11();
|
|
test12();
|
|
test13();
|
|
test14();
|
|
test15();
|
|
test16();
|
|
test17();
|
|
test18();
|
|
test19();
|
|
test20();
|
|
test21();
|
|
test22();
|
|
test23();
|
|
test24();
|
|
test25();
|
|
test26();
|
|
test27();
|
|
test28();
|
|
test29();
|
|
test50();
|
|
test99();
|
|
return (0);
|
|
}
|