| 1234567891011121314151617181920212223242526272829303132333435363738 |
- //
- // filter_test.cxx
- // stream-test
- //
- // Created by Sam Jaffe on 4/5/23.
- //
- #include "stream/view/filter.h"
- #include "stream_helpers.h"
- #include "stream_matchers.h"
- TEST(FilterView, DoesNotPropagatesSize) {
- Range<std::vector<int>, Sentinel, Sized> input{0, 1, 2, 3, 4};
- auto range = input | views::filter([](int) { return true; });
- static_assert(!stream::detail::has_size_v<decltype(range)>);
- }
- TEST(FilterView, DoesNotPropagatesEmpty) {
- Range<std::vector<int>, Sentinel, Sized> input{0, 1, 2, 3, 4};
- auto range = input | views::filter([](int) { return true; });
- static_assert(!stream::detail::has_empty_v<decltype(range)>);
- }
- TEST(FilterView, NoOpFilterReturnOriginal) {
- std::vector<int> const input{1, 2, 3, 4, 5};
- EXPECT_THAT(input | views::filter([](int) { return true; }), RangesEq(input));
- }
- TEST(FilterView, CanFilterOutElements) {
- std::vector<int> const input{1, 2, 3, 4, 5};
- EXPECT_THAT(input | views::filter([](int i) { return i % 2 == 0; }),
- RangesEq(std::vector{2, 4}));
- }
|