@@ -265,3 +265,133 @@ TEST(StringFunctionsTest, CompareCaseInsensitive)
265265 ASSERT_EQ (string_compare_case_insensitive (&str1, &str2), 0 );
266266 ASSERT_EQ (string_compare_raw_case_insensitive (str1.data , str1.size , str2.data , str2.size ), 0 );
267267}
268+
269+ TEST (StringFunctionsTest, ContainsCaseSensitive)
270+ {
271+ StringPtr str, substr;
272+
273+ string_assign_cstring (&str, " abc" );
274+ string_assign_cstring (&substr, " a" );
275+ ASSERT_TRUE (string_contains_case_sensitive (&str, &substr));
276+ ASSERT_TRUE (string_contains_raw_case_sensitive (str.data , substr.data ));
277+
278+ string_assign_cstring (&str, " abc" );
279+ string_assign_cstring (&substr, " e" );
280+ ASSERT_FALSE (string_contains_case_sensitive (&str, &substr));
281+ ASSERT_FALSE (string_contains_raw_case_sensitive (str.data , substr.data ));
282+
283+ string_assign_cstring (&str, " Hello world" );
284+ string_assign_cstring (&substr, " ello" );
285+ ASSERT_TRUE (string_contains_case_sensitive (&str, &substr));
286+ ASSERT_TRUE (string_contains_raw_case_sensitive (str.data , substr.data ));
287+
288+ string_assign_cstring (&str, " Hello world" );
289+ string_assign_cstring (&substr, " eLlo" );
290+ ASSERT_FALSE (string_contains_case_sensitive (&str, &substr));
291+ ASSERT_FALSE (string_contains_raw_case_sensitive (str.data , substr.data ));
292+
293+ string_assign_cstring (&str, " test ste" );
294+ string_assign_cstring (&substr, " ste" );
295+ ASSERT_TRUE (string_contains_case_sensitive (&str, &substr));
296+ ASSERT_TRUE (string_contains_raw_case_sensitive (str.data , substr.data ));
297+
298+ string_assign_cstring (&str, " Hello world" );
299+ string_assign_cstring (&substr, " olld" );
300+ ASSERT_FALSE (string_contains_case_sensitive (&str, &substr));
301+ ASSERT_FALSE (string_contains_raw_case_sensitive (str.data , substr.data ));
302+
303+ string_assign_cstring (&str, " ábČ" );
304+ string_assign_cstring (&substr, " á" );
305+ ASSERT_TRUE (string_contains_case_sensitive (&str, &substr));
306+ ASSERT_TRUE (string_contains_raw_case_sensitive (str.data , substr.data ));
307+
308+ string_assign_cstring (&str, " ábČ" );
309+ string_assign_cstring (&substr, " bČ" );
310+ ASSERT_TRUE (string_contains_case_sensitive (&str, &substr));
311+ ASSERT_TRUE (string_contains_raw_case_sensitive (str.data , substr.data ));
312+
313+ string_assign_cstring (&str, " ábČ" );
314+ string_assign_cstring (&substr, " bč" );
315+ ASSERT_FALSE (string_contains_case_sensitive (&str, &substr));
316+ ASSERT_FALSE (string_contains_raw_case_sensitive (str.data , substr.data ));
317+
318+ string_assign_cstring (&str, " ábČ" );
319+ string_assign_cstring (&substr, " ďá" );
320+ ASSERT_FALSE (string_contains_case_sensitive (&str, &substr));
321+ ASSERT_FALSE (string_contains_raw_case_sensitive (str.data , substr.data ));
322+
323+ string_assign_cstring (&str, " Lorem💀ipsum" );
324+ string_assign_cstring (&substr, " m💀" );
325+ ASSERT_TRUE (string_contains_case_sensitive (&str, &substr));
326+ ASSERT_TRUE (string_contains_raw_case_sensitive (str.data , substr.data ));
327+
328+ string_assign_cstring (&str, " Lorem ipsum" );
329+ string_assign_cstring (&substr, " 💀" );
330+ ASSERT_FALSE (string_contains_case_sensitive (&str, &substr));
331+ ASSERT_FALSE (string_contains_raw_case_sensitive (str.data , substr.data ));
332+ }
333+
334+ TEST (StringFunctionsTest, ContainsCaseInsensitive)
335+ {
336+ StringPtr str, substr;
337+
338+ string_assign_cstring (&str, " abc" );
339+ string_assign_cstring (&substr, " a" );
340+ ASSERT_TRUE (string_contains_case_insensitive (&str, &substr));
341+ ASSERT_TRUE (string_contains_raw_case_insensitive (str.data , substr.data ));
342+
343+ string_assign_cstring (&str, " abc" );
344+ string_assign_cstring (&substr, " e" );
345+ ASSERT_FALSE (string_contains_case_insensitive (&str, &substr));
346+ ASSERT_FALSE (string_contains_raw_case_insensitive (str.data , substr.data ));
347+
348+ string_assign_cstring (&str, " Hello world" );
349+ string_assign_cstring (&substr, " ello" );
350+ ASSERT_TRUE (string_contains_case_insensitive (&str, &substr));
351+ ASSERT_TRUE (string_contains_raw_case_insensitive (str.data , substr.data ));
352+
353+ string_assign_cstring (&str, " Hello world" );
354+ string_assign_cstring (&substr, " eLlo" );
355+ ASSERT_TRUE (string_contains_case_insensitive (&str, &substr));
356+ ASSERT_TRUE (string_contains_raw_case_insensitive (str.data , substr.data ));
357+
358+ string_assign_cstring (&str, " test ste" );
359+ string_assign_cstring (&substr, " ste" );
360+ ASSERT_TRUE (string_contains_case_insensitive (&str, &substr));
361+ ASSERT_TRUE (string_contains_raw_case_insensitive (str.data , substr.data ));
362+
363+ string_assign_cstring (&str, " Hello world" );
364+ string_assign_cstring (&substr, " olld" );
365+ ASSERT_FALSE (string_contains_case_insensitive (&str, &substr));
366+ ASSERT_FALSE (string_contains_raw_case_insensitive (str.data , substr.data ));
367+
368+ string_assign_cstring (&str, " ábČ" );
369+ string_assign_cstring (&substr, " á" );
370+ ASSERT_TRUE (string_contains_case_insensitive (&str, &substr));
371+ ASSERT_TRUE (string_contains_raw_case_insensitive (str.data , substr.data ));
372+
373+ string_assign_cstring (&str, " ábČ" );
374+ string_assign_cstring (&substr, " bČ" );
375+ ASSERT_TRUE (string_contains_case_insensitive (&str, &substr));
376+ ASSERT_TRUE (string_contains_raw_case_insensitive (str.data , substr.data ));
377+
378+ string_assign_cstring (&str, " ábČ" );
379+ string_assign_cstring (&substr, " bč" );
380+ ASSERT_TRUE (string_contains_case_insensitive (&str, &substr));
381+ ASSERT_TRUE (string_contains_raw_case_insensitive (str.data , substr.data ));
382+
383+ string_assign_cstring (&str, " ábČ" );
384+ string_assign_cstring (&substr, " ďá" );
385+ ASSERT_FALSE (string_contains_case_insensitive (&str, &substr));
386+ ASSERT_FALSE (string_contains_raw_case_insensitive (str.data , substr.data ));
387+
388+ string_assign_cstring (&str, " Lorem💀ipsum" );
389+ string_assign_cstring (&substr, " m💀" );
390+ ASSERT_TRUE (string_contains_case_insensitive (&str, &substr));
391+ ASSERT_TRUE (string_contains_raw_case_insensitive (str.data , substr.data ));
392+
393+ string_assign_cstring (&str, " Lorem ipsum" );
394+ string_assign_cstring (&substr, " 💀" );
395+ ASSERT_FALSE (string_contains_case_insensitive (&str, &substr));
396+ ASSERT_FALSE (string_contains_raw_case_insensitive (str.data , substr.data ));
397+ }
0 commit comments