]>
Commit | Line | Data |
---|---|---|
c25aa7cd | 1 | #include "clar_libgit2.h" |
e579e0f7 | 2 | #include "utf8.h" |
c25aa7cd | 3 | |
ad5611d8 | 4 | void test_utf8__char_length(void) |
c25aa7cd PP |
5 | { |
6 | cl_assert_equal_i(0, git_utf8_char_length("", 0)); | |
7 | cl_assert_equal_i(1, git_utf8_char_length("$", 1)); | |
8 | cl_assert_equal_i(5, git_utf8_char_length("abcde", 5)); | |
9 | cl_assert_equal_i(1, git_utf8_char_length("\xc2\xa2", 2)); | |
10 | cl_assert_equal_i(2, git_utf8_char_length("\x24\xc2\xa2", 3)); | |
11 | cl_assert_equal_i(1, git_utf8_char_length("\xf0\x90\x8d\x88", 4)); | |
12 | ||
13 | /* uncontinued character counted as single characters */ | |
14 | cl_assert_equal_i(2, git_utf8_char_length("\x24\xc2", 2)); | |
15 | cl_assert_equal_i(3, git_utf8_char_length("\x24\xc2\xc2\xa2", 4)); | |
16 | ||
17 | /* invalid characters are counted as single characters */ | |
18 | cl_assert_equal_i(4, git_utf8_char_length("\x24\xc0\xc0\x34", 4)); | |
19 | cl_assert_equal_i(4, git_utf8_char_length("\x24\xf5\xfd\xc2", 4)); | |
20 | } |