Загрузка данных


#include "s21_string.h"

void s21_strlen_test(void) {
    const char *tests[] = {"Hello", "", "School 21"};
    const size_t expected[] = {5, 0, 9};
    const size_t count = sizeof(tests) / sizeof(tests[0]);

    for (size_t i = 0; i < count; i++) {
        size_t result = s21_strlen(tests[i]);

        printf("Input: \"%s\", Output: %zu, Expected: %zu — %s\n", tests[i], result, expected[i],
               result == expected[i] ? "SUCCESS" : "FAIL");
    }
}

void s21_strcmp_test(void) {
    const char *str1[] = {"abc", "abc", "abc", "", "a"};
    const char *str2[] = {"abc", "abd", "abb", "", ""};
    const int expected[] = {0, -1, 1, 0, 97};
    const size_t count = sizeof(str1) / sizeof(str1[0]);

    for (size_t i = 0; i < count; i++) {
        int result = s21_strcmp(str1[i], str2[i]);
        int success = (result == 0 && expected[i] == 0) || (result < 0 && expected[i] < 0) ||
                      (result > 0 && expected[i] > 0);

        printf("Input: \"%s\", \"%s\", Output: %d, Expected sign: %d — %s\n", str1[i], str2[i], result,
               expected[i], success ? "SUCCESS" : "FAIL");
    }
}

void s21_strcat_test(void) {
    char dest1[50] = "Hello, ";
    char dest2[50] = "";
    char dest3[50] = "School";
    const char *src1 = "world!";
    const char *src2 = "abc";
    const char *src3 = "";

    s21_strcat(dest1, src1);
    s21_strcat(dest2, src2);
    s21_strcat(dest3, src3);

    printf("Test 1: %s — %s\n", dest1,
           s21_strcmp(dest1, "Hello, world!") == 0 ? "SUCCESS" : "FAIL");
    printf("Test 2: %s — %s\n", dest2,
           s21_strcmp(dest2, "abc") == 0 ? "SUCCESS" : "FAIL");
    printf("Test 3: %s — %s\n", dest3,
           s21_strcmp(dest3, "School") == 0 ? "SUCCESS" : "FAIL");
}

int main(void) {
#ifdef TEST_STRLEN_ONLY
    s21_strlen_test();
#elif defined(TEST_STRCMP_ONLY)
    s21_strcmp_test();
#elif defined(TEST_STRCAT_ONLY)
    s21_strcat_test();
#else
    s21_strlen_test();
    s21_strcmp_test();
#endif
    return 0;
}