// // to_container_test.cxx // stream-test // // Created by Sam Jaffe on 4/5/23. // #include "stream/to_container.h" #include "stream_helpers.h" #include "stream_matchers.h" using testing::ElementsAre; using testing::Pair; using testing::StaticAssertTypeEq; TEST(ToContainer, ConvertsToSet) { std::vector const input{0, 1, 2, 1, 2}; auto output = input | ranges::to_set(); StaticAssertTypeEq>(); EXPECT_THAT(output, ElementsAre(0, 1, 2)); } TEST(ToContainer, ConvertsToVector) { std::set const input{0, 1, 2}; auto output = input | ranges::to_vector(); StaticAssertTypeEq>(); EXPECT_THAT(output, ElementsAre(0, 1, 2)); } TEST(ToContainer, CanConvertPairContainerToAssoc) { std::vector> const input{{0, "hello"}, {1, "goodbye"}}; auto output = input | ranges::to_map(); StaticAssertTypeEq>(); EXPECT_THAT(output, ElementsAre(Pair(0, "hello"), Pair(1, "goodbye"))); } TEST(ToContainer, CanConvertAssocToPairContainer) { std::map const input{{0, "hello"}, {1, "goodbye"}}; auto output = input | ranges::to_vector(); StaticAssertTypeEq>>(); EXPECT_THAT(output, ElementsAre(Pair(0, "hello"), Pair(1, "goodbye"))); }