20 #include "absl/types/variant.h"
21 #include "gtest/gtest.h"
30 auto initial = [] {
return 3; };
31 auto then = [](
int i) {
return [
i]() {
return i + 4; }; };
35 TEST(SeqTest, TwoTypedThens) {
39 auto initial = [] {
return A{}; };
40 auto next1 = [](
A) {
return []() {
return B{}; }; };
41 auto next2 = [](B) {
return []() {
return C{}; }; };
42 EXPECT_FALSE(absl::holds_alternative<Pending>(
Seq(initial, next1, next2)()));
57 auto next1 = [](
std::string i) {
return [
i]() {
return i +
"b"; }; };
58 auto next2 = [](
std::string i) {
return [
i]() {
return i +
"c"; }; };
62 TEST(SeqTest, ThreeThens) {
93 TEST(SeqIterTest, Accumulate) {
94 std::vector<int>
v{1, 2, 3, 4, 5};
97 return [cur, next]() { return cur + next; };
104 int main(
int argc,
char** argv) {