@@ -395,3 +395,93 @@ TEST(StringFunctionsTest, ContainsCaseInsensitive)
395395 ASSERT_FALSE (string_contains_case_insensitive (&str, &substr));
396396 ASSERT_FALSE (string_contains_raw_case_insensitive (str.data , substr.data ));
397397}
398+
399+ TEST (StringFunctionsTest, EqualCaseSensitive)
400+ {
401+ StringPtr str1, str2;
402+
403+ string_assign_cstring (&str1, " abcd" );
404+ string_assign_cstring (&str2, " abcd" );
405+ ASSERT_TRUE (strings_equal_case_sensitive (&str1, &str2));
406+ ASSERT_TRUE (raw_strings_equal_case_sensitive (str1.data , str1.size , str2.data , str2.size ));
407+
408+ string_assign_cstring (&str1, " 5.25" );
409+ string_assign_cstring (&str2, " 5.26" );
410+ ASSERT_FALSE (strings_equal_case_sensitive (&str1, &str2));
411+ ASSERT_FALSE (raw_strings_equal_case_sensitive (str1.data , str1.size , str2.data , str2.size ));
412+
413+ string_assign_cstring (&str1, " aBcd" );
414+ string_assign_cstring (&str2, " abCd" );
415+ ASSERT_FALSE (strings_equal_case_sensitive (&str1, &str2));
416+ ASSERT_FALSE (raw_strings_equal_case_sensitive (str1.data , str1.size , str2.data , str2.size ));
417+
418+ string_assign_cstring (&str1, " Hello" );
419+ string_assign_cstring (&str2, " olleH" );
420+ ASSERT_FALSE (strings_equal_case_sensitive (&str1, &str2));
421+ ASSERT_FALSE (raw_strings_equal_case_sensitive (str1.data , str1.size , str2.data , str2.size ));
422+
423+ string_assign_cstring (&str1, " Lorem ipsum" );
424+ string_assign_cstring (&str2, " dolor sit amet" );
425+ ASSERT_FALSE (strings_equal_case_sensitive (&str1, &str2));
426+ ASSERT_FALSE (raw_strings_equal_case_sensitive (str1.data , str1.size , str2.data , str2.size ));
427+
428+ string_assign_cstring (&str1, " ábčď" );
429+ string_assign_cstring (&str2, " ábČď" );
430+ ASSERT_FALSE (strings_equal_case_sensitive (&str1, &str2));
431+ ASSERT_FALSE (raw_strings_equal_case_sensitive (str1.data , str1.size , str2.data , str2.size ));
432+
433+ string_assign_cstring (&str1, " test đ" );
434+ string_assign_cstring (&str2, " test Đ" );
435+ ASSERT_FALSE (strings_equal_case_sensitive (&str1, &str2));
436+ ASSERT_FALSE (raw_strings_equal_case_sensitive (str1.data , str1.size , str2.data , str2.size ));
437+
438+ string_assign_cstring (&str1, " 💀" );
439+ string_assign_cstring (&str2, " 💀" );
440+ ASSERT_TRUE (strings_equal_case_sensitive (&str1, &str2));
441+ ASSERT_TRUE (raw_strings_equal_case_sensitive (str1.data , str1.size , str2.data , str2.size ));
442+ }
443+
444+ TEST (StringFunctionsTest, EqualCaseInsensitive)
445+ {
446+ StringPtr str1, str2;
447+
448+ string_assign_cstring (&str1, " abcd" );
449+ string_assign_cstring (&str2, " abcd" );
450+ ASSERT_TRUE (strings_equal_case_insensitive (&str1, &str2));
451+ ASSERT_TRUE (raw_strings_equal_case_insensitive (str1.data , str1.size , str2.data , str2.size ));
452+
453+ string_assign_cstring (&str1, " 5.25" );
454+ string_assign_cstring (&str2, " 5.26" );
455+ ASSERT_FALSE (strings_equal_case_insensitive (&str1, &str2));
456+ ASSERT_FALSE (raw_strings_equal_case_insensitive (str1.data , str1.size , str2.data , str2.size ));
457+
458+ string_assign_cstring (&str1, " aBcd" );
459+ string_assign_cstring (&str2, " abCd" );
460+ ASSERT_TRUE (strings_equal_case_insensitive (&str1, &str2));
461+ ASSERT_TRUE (raw_strings_equal_case_insensitive (str1.data , str1.size , str2.data , str2.size ));
462+
463+ string_assign_cstring (&str1, " Hello" );
464+ string_assign_cstring (&str2, " olleH" );
465+ ASSERT_FALSE (strings_equal_case_insensitive (&str1, &str2));
466+ ASSERT_FALSE (raw_strings_equal_case_insensitive (str1.data , str1.size , str2.data , str2.size ));
467+
468+ string_assign_cstring (&str1, " Lorem ipsum" );
469+ string_assign_cstring (&str2, " dolor sit amet" );
470+ ASSERT_FALSE (strings_equal_case_insensitive (&str1, &str2));
471+ ASSERT_FALSE (raw_strings_equal_case_insensitive (str1.data , str1.size , str2.data , str2.size ));
472+
473+ string_assign_cstring (&str1, " ábčď" );
474+ string_assign_cstring (&str2, " ábČď" );
475+ ASSERT_TRUE (strings_equal_case_insensitive (&str1, &str2));
476+ ASSERT_TRUE (raw_strings_equal_case_insensitive (str1.data , str1.size , str2.data , str2.size ));
477+
478+ string_assign_cstring (&str1, " test đ" );
479+ string_assign_cstring (&str2, " test Đ" );
480+ ASSERT_TRUE (strings_equal_case_insensitive (&str1, &str2));
481+ ASSERT_TRUE (raw_strings_equal_case_insensitive (str1.data , str1.size , str2.data , str2.size ));
482+
483+ string_assign_cstring (&str1, " 💀" );
484+ string_assign_cstring (&str2, " 💀" );
485+ ASSERT_TRUE (strings_equal_case_insensitive (&str1, &str2));
486+ ASSERT_TRUE (raw_strings_equal_case_insensitive (str1.data , str1.size , str2.data , str2.size ));
487+ }
0 commit comments