20 void ApplicativeTest::testBoostOptionalPure ()
22 const auto& pure = Pure<std::optional> (2);
23 QCOMPARE (pure, std::optional<int> { 2 });
26 void ApplicativeTest::testBoostOptionalGSL ()
28 const auto& pure = Pure<std::optional> ([] (
int a) {
return ++a; });
29 const auto& app =
GSL (pure, Pure<std::optional> (2));
30 QCOMPARE (app, std::optional<int> { 3 });
33 void ApplicativeTest::testBoostOptionalGSLCurry ()
35 const auto& summer = Pure<std::optional> (
Curry ([] (
int a,
int b) {
return a + b; }));
36 const auto& s1 = Pure<std::optional> (1);
37 const auto& s2 = Pure<std::optional> (2);
38 const auto& app =
GSL (
GSL (summer, s1), s2);
39 QCOMPARE (app, std::optional<int> { 3 });
42 void ApplicativeTest::testBoostOptionalGSLOperatorCurry ()
44 const auto& summer = Pure<std::optional> (
Curry ([] (
int a,
int b) {
return a + b; }));
45 const auto& app = summer * Pure<std::optional> (1) * Pure<std::optional> (2);
46 QCOMPARE (app, std::optional<int> { 3 });