1d2238194SKrzysztof Grobelny #include "helpers.hpp" 2e2362796SWludzik, Jozef #include "utils/transform.hpp" 3e2362796SWludzik, Jozef 4e2362796SWludzik, Jozef #include <set> 5e2362796SWludzik, Jozef #include <vector> 6e2362796SWludzik, Jozef 7e2362796SWludzik, Jozef #include <gmock/gmock.h> 8e2362796SWludzik, Jozef 9e2362796SWludzik, Jozef using namespace testing; 10e2362796SWludzik, Jozef 11e2362796SWludzik, Jozef TEST(TestTransform, transformsVector) 12e2362796SWludzik, Jozef { 13e2362796SWludzik, Jozef std::vector<int> input = {1, 2, 3}; 14e2362796SWludzik, Jozef std::vector<std::string> output = 15e2362796SWludzik, Jozef utils::transform(input, [](int v) { return std::to_string(v); }); 16*60fee077SKrzysztof Grobelny EXPECT_TRUE(utils::detail::has_member_reserve<decltype(input)>); 17*60fee077SKrzysztof Grobelny EXPECT_TRUE(utils::detail::has_member_reserve<decltype(output)>); 18e2362796SWludzik, Jozef ASSERT_THAT(output, ElementsAre("1", "2", "3")); 19e2362796SWludzik, Jozef } 20e2362796SWludzik, Jozef 21e2362796SWludzik, Jozef TEST(TestTransform, transformsSet) 22e2362796SWludzik, Jozef { 23e2362796SWludzik, Jozef std::set<int> input = {1, 2, 3}; 24e2362796SWludzik, Jozef std::set<std::string> output = 25e2362796SWludzik, Jozef utils::transform(input, [](int v) { return std::to_string(v); }); 26*60fee077SKrzysztof Grobelny EXPECT_FALSE(utils::detail::has_member_reserve<decltype(input)>); 27*60fee077SKrzysztof Grobelny EXPECT_FALSE(utils::detail::has_member_reserve<decltype(output)>); 28*60fee077SKrzysztof Grobelny ASSERT_THAT(output, ElementsAre("1", "2", "3")); 29*60fee077SKrzysztof Grobelny } 30*60fee077SKrzysztof Grobelny 31*60fee077SKrzysztof Grobelny TEST(TestTransform, transformsArrayToVector) 32*60fee077SKrzysztof Grobelny { 33*60fee077SKrzysztof Grobelny std::array<int, 3> input = {1, 2, 3}; 34*60fee077SKrzysztof Grobelny std::vector<std::string> output = 35*60fee077SKrzysztof Grobelny utils::transform<std::vector<std::string>>( 36*60fee077SKrzysztof Grobelny input, [](int v) { return std::to_string(v); }); 37*60fee077SKrzysztof Grobelny EXPECT_FALSE(utils::detail::has_member_reserve<decltype(input)>); 38*60fee077SKrzysztof Grobelny EXPECT_TRUE(utils::detail::has_member_reserve<decltype(output)>); 39e2362796SWludzik, Jozef ASSERT_THAT(output, ElementsAre("1", "2", "3")); 40e2362796SWludzik, Jozef } 41