libcdsb/tests/src/string/main.c

78 lines
1.6 KiB
C
Raw Normal View History

2022-06-02 22:23:01 +03:00
/* This software is licensed by the MIT License, see LICENSE file */
/* Copyright © 2022 Gregory Lirent */
#include "plug.h"
2022-06-03 19:29:46 +03:00
2022-06-02 22:23:01 +03:00
int main(int argc, char** argv) {
test_init(argc, argv);
2022-06-10 21:42:24 +03:00
str_t x, y;
int c = random_unicode_symbol();
2022-06-03 19:29:46 +03:00
2022-06-10 21:42:24 +03:00
fputs("\e[s", stdout);
2022-06-04 00:30:23 +03:00
x = string_random(30);
2022-06-03 19:29:46 +03:00
string_print(&x, "(part 1)");
string_concat(&x, '\n');
2022-06-04 00:30:23 +03:00
string_concat_random(&x, 30);
2022-06-03 19:29:46 +03:00
{
2022-06-04 00:30:23 +03:00
char* repl = random_utf8_cstring(30);
2022-08-22 12:13:20 +03:00
void* hack = at_string(&x, 31);
2022-06-03 19:29:46 +03:00
string_print((void*)&hack, "(part 2)");
2022-06-04 00:30:23 +03:00
string_print((void*)&repl, "(part 2 replaced)");
2022-08-22 12:13:20 +03:00
string_replace(&x, hack, repl);
2022-06-04 00:30:23 +03:00
free(repl);
2022-06-03 19:29:46 +03:00
}
string_info(&x);
string_print(&x, "concatenated");
2022-06-04 00:30:23 +03:00
do {
string_replace_random(&x, 12);
} while (string_size(&x) == string_nmemb(&x));
y = string_copy(&x);
string_to_lower(&x);
string_to_upper(&y);
2022-06-10 21:42:24 +03:00
visual_compare(&x, &y);
visual_case_compare(&x, &y);
2022-06-04 00:30:23 +03:00
string_reverse(&y);
string_capitalize(&y);
2022-06-03 19:29:46 +03:00
2022-06-04 00:30:23 +03:00
string_print(&y, "reversed & capitalized");
2022-06-03 19:29:46 +03:00
string_free(&x);
2022-06-04 00:30:23 +03:00
string_free(&y);
2022-06-10 21:42:24 +03:00
psleep(900000);
fputs("\e[u\e[J", stdout);
x = string_random(12);
2022-08-22 12:13:20 +03:00
string_align(&x, 30, 0);
2022-06-10 21:42:24 +03:00
string_info(&x);
string_print(&x, 0);
2022-08-22 12:13:20 +03:00
string_trim(&x, 0);
2022-06-10 21:42:24 +03:00
string_info(&x);
string_print(&x, "trimmed");
put_separator(0);
2022-08-22 12:13:20 +03:00
string_align(&x, 30, c);
2022-06-10 21:42:24 +03:00
string_info(&x);
string_print(&x, 0);
string_trim(&x, c);
string_info(&x);
string_print(&x, "trimmed");
psleep(900000);
string_free(&x);
2022-06-02 22:23:01 +03:00
}