1 #include "utils/stl_utils.hpp" 2 3 #include <string> 4 5 #include <gmock/gmock.h> // IWYU pragma: keep 6 #include <gtest/gtest.h> // IWYU pragma: keep 7 8 // IWYU pragma: no_include <gtest/gtest-message.h> 9 // IWYU pragma: no_include <gtest/gtest-test-part.h> 10 // IWYU pragma: no_include "gtest/gtest_pred_impl.h" 11 12 namespace redfish::stl_utils 13 { 14 namespace 15 { 16 using ::testing::ElementsAre; 17 18 TEST(FirstDuplicate, ReturnsIteratorToFirstDuplicate) 19 { 20 std::vector<std::string> strVec = {"s1", "s4", "s1", "s2", "", "s3", "s3"}; 21 auto iter = firstDuplicate(strVec.begin(), strVec.end()); 22 ASSERT_NE(iter, strVec.end()); 23 EXPECT_EQ(*iter, "s3"); 24 } 25 26 TEST(RemoveDuplicates, AllDuplicatesAreRempvedInplace) 27 { 28 std::vector<std::string> strVec = {"s1", "s4", "s1", "s2", "", "s3", "s3"}; 29 removeDuplicate(strVec); 30 31 EXPECT_THAT(strVec, ElementsAre("s1", "s4", "s2", "", "s3")); 32 } 33 } // namespace 34 } // namespace redfish::stl_utils 35