blob: 76570dfe4a8375e16ff6451937d4eff5e615a0c8 [file] [log] [blame]
George Liuce8d1d02025-08-25 08:58:25 +08001#include "utils.hpp"
2
3#include <gtest/gtest.h>
4
5TEST(IfindFirstTest, BasicMatch)
6{
7 auto [firstIndex, lastIndex] = iFindFirst("Hello World", "World");
8 EXPECT_EQ(firstIndex, 6);
9 EXPECT_EQ(lastIndex, 11);
10}
11
12TEST(IfindFirstTest, CaseInsensitiveMatch)
13{
14 auto [firstIndex, lastIndex] = iFindFirst("Hello World", "world");
15 EXPECT_EQ(firstIndex, 6);
16 EXPECT_EQ(lastIndex, 11);
17}
18
19TEST(IfindFirstTest, NoMatch)
20{
21 auto [firstIndex, lastIndex] = iFindFirst("Hello World", "Planet");
22 EXPECT_EQ(firstIndex, std::string_view::npos);
23 EXPECT_EQ(lastIndex, std::string_view::npos);
24}
25
26TEST(IfindFirstTest, MatchAtStart)
27{
28 auto [firstIndex, lastIndex] = iFindFirst("Hello World", "HeLLo");
29 EXPECT_EQ(firstIndex, 0);
30 EXPECT_EQ(lastIndex, 5);
31}
32
33TEST(IfindFirstTest, MatchAtEnd)
34{
35 auto [firstIndex, lastIndex] = iFindFirst("Hello World", "LD");
36 EXPECT_EQ(firstIndex, 9);
37 EXPECT_EQ(lastIndex, 11);
38}
39
40TEST(IfindFirstTest, EmptySubstring)
41{
42 auto [firstIndex, lastIndex] = iFindFirst("Hello", "");
43 EXPECT_EQ(firstIndex, std::string_view::npos);
44 EXPECT_EQ(lastIndex, std::string_view::npos);
45}
46
47TEST(IfindFirstTest, EmptyString)
48{
49 auto [firstIndex, lastIndex] = iFindFirst("", "Hello");
50 EXPECT_EQ(firstIndex, std::string_view::npos);
51 EXPECT_EQ(lastIndex, std::string_view::npos);
52}