// Range v3 library // // Copyright Eric Niebler 2014-present // // Use, modification and distribution is subject to the // Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #include #include #include #include #include #include #include #include #include #include #include #include #include #include "../simple_test.hpp" #include "../test_utils.hpp" int main() { using namespace ranges; std::mt19937 gen; // [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,...] auto v = views::for_each(views::ints(1,100), [](int i){ return yield_from(views::repeat_n(i,i)); }) | to(); check_equal(views::take(v, 15), {1,2,2,3,3,3,4,4,4,4,5,5,5,5,5}); v |= actions::shuffle(gen); CHECK(!is_sorted(v)); v |= actions::sort | actions::unique; CHECK(equal(v, views::ints(1,100))); return ::test_result(); }