diff options
author | Grigoriy Chudnov <g.chudnov@gmail.com> | 2015-12-16 15:14:54 +0300 |
---|---|---|
committer | Kirk Shoop <kirk.shoop@microsoft.com> | 2015-12-17 01:28:34 -0800 |
commit | 412b64138e7e62bfe50ed807a0835ed5dd32de98 (patch) | |
tree | f1c2fc8fb5fa87a49d4c5e18ed052e4eb7a484b5 /Rx/v2/examples | |
parent | bd39892795a4b2d5f02373afd650394dd3280094 (diff) | |
download | RxCpp-412b64138e7e62bfe50ed807a0835ed5dd32de98.tar.gz |
add min and max operators
Diffstat (limited to 'Rx/v2/examples')
-rw-r--r-- | Rx/v2/examples/doxygen/blocking_observable.cpp | 68 | ||||
-rw-r--r-- | Rx/v2/examples/doxygen/math.cpp | 88 |
2 files changed, 156 insertions, 0 deletions
diff --git a/Rx/v2/examples/doxygen/blocking_observable.cpp b/Rx/v2/examples/doxygen/blocking_observable.cpp index 1e7dd56..eb9633f 100644 --- a/Rx/v2/examples/doxygen/blocking_observable.cpp +++ b/Rx/v2/examples/doxygen/blocking_observable.cpp @@ -159,3 +159,71 @@ SCENARIO("blocking average error sample"){ } printf("//! [blocking average error sample]\n"); } + +SCENARIO("blocking max sample"){ + printf("//! [blocking max sample]\n"); + auto values = rxcpp::observable<>::range(1, 4).as_blocking(); + auto max = values.max(); + printf("max = %d\n", max); + printf("//! [blocking max sample]\n"); +} + +SCENARIO("blocking max empty sample"){ + printf("//! [blocking max empty sample]\n"); + auto values = rxcpp::observable<>::empty<int>().as_blocking(); + try { + auto max = values.max(); + printf("max = %d\n", max); + } catch (const rxcpp::empty_error& ex) { + printf("Exception: %s\n", ex.what()); + } + printf("//! [blocking max empty sample]\n"); +} + +SCENARIO("blocking max error sample"){ + printf("//! [blocking max error sample]\n"); + auto values = rxcpp::observable<>::range(1, 4). + concat(rxcpp::observable<>::error<int>(std::runtime_error("Error from source"))). + as_blocking(); + try { + auto max = values.max(); + printf("max = %d\n", max); + } catch (const std::exception& ex) { + printf("Exception: %s\n", ex.what()); + } + printf("//! [blocking max error sample]\n"); +} + +SCENARIO("blocking min sample"){ + printf("//! [blocking min sample]\n"); + auto values = rxcpp::observable<>::range(1, 4).as_blocking(); + auto min = values.min(); + printf("min = %d\n", min); + printf("//! [blocking min sample]\n"); +} + +SCENARIO("blocking min empty sample"){ + printf("//! [blocking min empty sample]\n"); + auto values = rxcpp::observable<>::empty<int>().as_blocking(); + try { + auto min = values.min(); + printf("min = %d\n", min); + } catch (const rxcpp::empty_error& ex) { + printf("Exception: %s\n", ex.what()); + } + printf("//! [blocking min empty sample]\n"); +} + +SCENARIO("blocking min error sample"){ + printf("//! [blocking min error sample]\n"); + auto values = rxcpp::observable<>::range(1, 4). + concat(rxcpp::observable<>::error<int>(std::runtime_error("Error from source"))). + as_blocking(); + try { + auto min = values.min(); + printf("min = %d\n", min); + } catch (const std::exception& ex) { + printf("Exception: %s\n", ex.what()); + } + printf("//! [blocking min error sample]\n"); +} diff --git a/Rx/v2/examples/doxygen/math.cpp b/Rx/v2/examples/doxygen/math.cpp index 2338bfa..376cf97 100644 --- a/Rx/v2/examples/doxygen/math.cpp +++ b/Rx/v2/examples/doxygen/math.cpp @@ -170,3 +170,91 @@ SCENARIO("average error sample"){ [](){printf("OnCompleted\n");}); printf("//! [average error sample]\n"); } + +SCENARIO("max sample"){ + printf("//! [max sample]\n"); + auto values = rxcpp::observable<>::range(1, 4).max(); + values. + subscribe( + [](double v){printf("OnNext: %lf\n", v);}, + [](){printf("OnCompleted\n");}); + printf("//! [max sample]\n"); +} + +SCENARIO("max empty sample"){ + printf("//! [max empty sample]\n"); + auto values = rxcpp::observable<>::empty<int>().max(); + values. + subscribe( + [](double v){printf("OnNext: %lf\n", v);}, + [](std::exception_ptr ep){ + try {std::rethrow_exception(ep);} + catch (const rxcpp::empty_error& ex) { + printf("OnError: %s\n", ex.what()); + } + }, + [](){printf("OnCompleted\n");}); + printf("//! [max empty sample]\n"); +} + +SCENARIO("max error sample"){ + printf("//! [max error sample]\n"); + auto values = rxcpp::observable<>::range(1, 4). + concat(rxcpp::observable<>::error<int>(std::runtime_error("Error from source"))). + max(); + values. + subscribe( + [](double v){printf("OnNext: %lf\n", v);}, + [](std::exception_ptr ep){ + try {std::rethrow_exception(ep);} + catch (const std::runtime_error& ex) { + printf("OnError: %s\n", ex.what()); + } + }, + [](){printf("OnCompleted\n");}); + printf("//! [max error sample]\n"); +} + +SCENARIO("min sample"){ + printf("//! [min sample]\n"); + auto values = rxcpp::observable<>::range(1, 4).min(); + values. + subscribe( + [](double v){printf("OnNext: %lf\n", v);}, + [](){printf("OnCompleted\n");}); + printf("//! [min sample]\n"); +} + +SCENARIO("min empty sample"){ + printf("//! [min empty sample]\n"); + auto values = rxcpp::observable<>::empty<int>().min(); + values. + subscribe( + [](double v){printf("OnNext: %lf\n", v);}, + [](std::exception_ptr ep){ + try {std::rethrow_exception(ep);} + catch (const rxcpp::empty_error& ex) { + printf("OnError: %s\n", ex.what()); + } + }, + [](){printf("OnCompleted\n");}); + printf("//! [min empty sample]\n"); +} + +SCENARIO("min error sample"){ + printf("//! [min error sample]\n"); + auto values = rxcpp::observable<>::range(1, 4). + concat(rxcpp::observable<>::error<int>(std::runtime_error("Error from source"))). + min(); + values. + subscribe( + [](double v){printf("OnNext: %lf\n", v);}, + [](std::exception_ptr ep){ + try {std::rethrow_exception(ep);} + catch (const std::runtime_error& ex) { + printf("OnError: %s\n", ex.what()); + } + }, + [](){printf("OnCompleted\n");}); + printf("//! [min error sample]\n"); +} |