diff options
Diffstat (limited to 'src/libaudcore/tests')
-rw-r--r-- | src/libaudcore/tests/test.cc | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/libaudcore/tests/test.cc b/src/libaudcore/tests/test.cc index dac2724..a7a6ba8 100644 --- a/src/libaudcore/tests/test.cc +++ b/src/libaudcore/tests/test.cc @@ -38,9 +38,19 @@ static void test_audio_conversion () {0x800000, 0x800001, 0x800002, -2, -1, 0, 1, 2, 0x7ffffe, 0x7fffff}; float f[10]; + char packed[30]; int32_t out[10]; audio_from_int (in, FMT_S24_NE, f, 10); + + for (int format = FMT_S24_3LE; format <= FMT_U24_3BE; format ++) + { + memset (packed, 0, sizeof packed); + audio_to_int (f, packed, format, 10); + memset (f, 0, sizeof f); + audio_from_int (packed, format, f, 10); + } + audio_to_int (f, out, FMT_S24_NE, 10); assert (f[0] == -1.0f); @@ -50,6 +60,67 @@ static void test_audio_conversion () assert (out[i] == (in[i] & 0xffffff)); } +static void test_case_conversion () +{ + const char in[] = "AÄaäEÊeêIÌiìOÕoõUÚuú"; + const char low_ascii[] = "aÄaäeÊeêiÌiìoÕoõuÚuú"; + const char low_utf8[] = "aäaäeêeêiìiìoõoõuúuú"; + const char hi_ascii[] = "AÄAäEÊEêIÌIìOÕOõUÚUú"; + const char hi_utf8[] = "AÄAÄEÊEÊIÌIÌOÕOÕUÚUÚ"; + + assert (! strcmp (low_ascii, str_tolower (in))); + assert (! strcmp (low_utf8, str_tolower_utf8 (in))); + assert (! strcmp (hi_ascii, str_toupper (in))); + assert (! strcmp (hi_utf8, str_toupper_utf8 (in))); + + assert (! strcmp_safe ("abc", "abc")); + assert (! strcmp_safe ("abc", "abcdef", 3)); + assert (strcmp_safe ("abc", "def") < 0); + assert (strcmp_safe ("def", "abc") > 0); + assert (! strcmp_safe (nullptr, nullptr)); + assert (strcmp_safe (nullptr, "abc") < 0); + assert (strcmp_safe ("abc", nullptr) > 0); + + assert (! strcmp_nocase ("abc", "ABC")); + assert (! strcmp_nocase ("ABC", "abcdef", 3)); + assert (strcmp_nocase ("abc", "DEF") < 0); + assert (strcmp_nocase ("ABC", "def") < 0); + assert (strcmp_nocase ("def", "ABC") > 0); + assert (strcmp_nocase ("DEF", "abc") > 0); + assert (! strcmp_nocase (nullptr, nullptr)); + assert (strcmp_nocase (nullptr, "abc") < 0); + assert (strcmp_nocase ("abc", nullptr) > 0); + + assert (! strcmp_nocase (in, low_ascii)); + assert (strcmp_nocase (in, low_utf8)); + assert (! strcmp_nocase (in, hi_ascii)); + assert (strcmp_nocase (in, hi_utf8)); + + assert (str_has_prefix_nocase (low_ascii, "AÄaä")); + assert (! str_has_prefix_nocase (low_utf8, "AÄaä")); + assert (str_has_prefix_nocase (hi_ascii, "AÄaä")); + assert (! str_has_prefix_nocase (hi_utf8, "AÄaä")); + + assert (str_has_suffix_nocase (low_ascii, "UÚuú")); + assert (! str_has_suffix_nocase (low_utf8, "UÚuú")); + assert (str_has_suffix_nocase (hi_ascii, "UÚuú")); + assert (! str_has_suffix_nocase (hi_utf8, "UÚuú")); + + assert (! str_has_suffix_nocase ("abc", "abcd")); + + assert (! strcmp (strstr_nocase (low_ascii, "OÕoõ"), "oÕoõuÚuú")); + assert (strstr_nocase (low_utf8, "OÕoõ") == nullptr); + assert (! strcmp (strstr_nocase (hi_ascii, "OÕoõ"), "OÕOõUÚUú")); + assert (strstr_nocase (hi_utf8, "OÕoõ") == nullptr); + + assert (! strcmp (strstr_nocase_utf8 (low_ascii, "OÕoõ"), "oÕoõuÚuú")); + assert (! strcmp (strstr_nocase_utf8 (low_utf8, "OÕoõ"), "oõoõuúuú")); + assert (strstr_nocase_utf8 (low_utf8, "OOoo") == nullptr); + assert (! strcmp (strstr_nocase_utf8 (hi_ascii, "OÕoõ"), "OÕOõUÚUú")); + assert (! strcmp (strstr_nocase_utf8 (hi_utf8, "OÕoõ"), "OÕOÕUÚUÚ")); + assert (strstr_nocase_utf8 (hi_utf8, "OOoo") == nullptr); +} + static void test_numeric_conversion () { static const char * in[] = { @@ -386,6 +457,7 @@ static void test_ringbuf () int main () { test_audio_conversion (); + test_case_conversion (); test_numeric_conversion (); test_filename_split (); test_tuple_formats (); |