| George Liu | ce8d1d0 | 2025-08-25 08:58:25 +0800 | [diff] [blame^] | 1 | #include "utils.hpp" | 
|  | 2 |  | 
|  | 3 | #include <gtest/gtest.h> | 
|  | 4 |  | 
|  | 5 | TEST(IfindFirstTest, BasicMatch) | 
|  | 6 | { | 
|  | 7 | auto [firstIndex, lastIndex] = iFindFirst("Hello World", "World"); | 
|  | 8 | EXPECT_EQ(firstIndex, 6); | 
|  | 9 | EXPECT_EQ(lastIndex, 11); | 
|  | 10 | } | 
|  | 11 |  | 
|  | 12 | TEST(IfindFirstTest, CaseInsensitiveMatch) | 
|  | 13 | { | 
|  | 14 | auto [firstIndex, lastIndex] = iFindFirst("Hello World", "world"); | 
|  | 15 | EXPECT_EQ(firstIndex, 6); | 
|  | 16 | EXPECT_EQ(lastIndex, 11); | 
|  | 17 | } | 
|  | 18 |  | 
|  | 19 | TEST(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 |  | 
|  | 26 | TEST(IfindFirstTest, MatchAtStart) | 
|  | 27 | { | 
|  | 28 | auto [firstIndex, lastIndex] = iFindFirst("Hello World", "HeLLo"); | 
|  | 29 | EXPECT_EQ(firstIndex, 0); | 
|  | 30 | EXPECT_EQ(lastIndex, 5); | 
|  | 31 | } | 
|  | 32 |  | 
|  | 33 | TEST(IfindFirstTest, MatchAtEnd) | 
|  | 34 | { | 
|  | 35 | auto [firstIndex, lastIndex] = iFindFirst("Hello World", "LD"); | 
|  | 36 | EXPECT_EQ(firstIndex, 9); | 
|  | 37 | EXPECT_EQ(lastIndex, 11); | 
|  | 38 | } | 
|  | 39 |  | 
|  | 40 | TEST(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 |  | 
|  | 47 | TEST(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 | } |