summaryrefslogtreecommitdiff
path: root/Rx/v2/examples
diff options
context:
space:
mode:
authorGrigoriy Chudnov <g.chudnov@gmail.com>2015-12-16 15:14:54 +0300
committerKirk Shoop <kirk.shoop@microsoft.com>2015-12-17 01:28:34 -0800
commit412b64138e7e62bfe50ed807a0835ed5dd32de98 (patch)
treef1c2fc8fb5fa87a49d4c5e18ed052e4eb7a484b5 /Rx/v2/examples
parentbd39892795a4b2d5f02373afd650394dd3280094 (diff)
downloadRxCpp-412b64138e7e62bfe50ed807a0835ed5dd32de98.tar.gz
add min and max operators
Diffstat (limited to 'Rx/v2/examples')
-rw-r--r--Rx/v2/examples/doxygen/blocking_observable.cpp68
-rw-r--r--Rx/v2/examples/doxygen/math.cpp88
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");
+}