summaryrefslogtreecommitdiff
path: root/src/libaudcore/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/libaudcore/tests')
-rw-r--r--src/libaudcore/tests/test.cc72
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 ();