Home | History | Annotate | Download | only in doxygen
      1 #include "rxcpp/rx.hpp"
      2 
      3 #include "rxcpp/rx-test.hpp"
      4 #include "catch.hpp"
      5 
      6 SCENARIO("blocking first sample"){
      7     printf("//! [blocking first sample]\n");
      8     auto values = rxcpp::observable<>::range(1, 3).as_blocking();
      9     auto first = values.first();
     10     printf("first = %d\n", first);
     11     printf("//! [blocking first sample]\n");
     12 }
     13 
     14 SCENARIO("blocking first empty sample"){
     15     printf("//! [blocking first empty sample]\n");
     16     auto values = rxcpp::observable<>::empty<int>().as_blocking();
     17     try {
     18         auto first = values.first();
     19         printf("first = %d\n", first);
     20     } catch (const rxcpp::empty_error& ex) {
     21         printf("Exception: %s\n", ex.what());
     22     }
     23     printf("//! [blocking first empty sample]\n");
     24 }
     25 
     26 SCENARIO("blocking first error sample"){
     27     printf("//! [blocking first error sample]\n");
     28     auto values = rxcpp::observable<>::error<int>(std::runtime_error("Error from source")).
     29         as_blocking();
     30     try {
     31         auto first = values.first();
     32         printf("first = %d\n", first);
     33     } catch (const std::exception& ex) {
     34         printf("Exception: %s\n", ex.what());
     35     }
     36     printf("//! [blocking first error sample]\n");
     37 }
     38 
     39 SCENARIO("blocking last sample"){
     40     printf("//! [blocking last sample]\n");
     41     auto values = rxcpp::observable<>::range(1, 3).as_blocking();
     42     auto last = values.last();
     43     printf("last = %d\n", last);
     44     printf("//! [blocking last sample]\n");
     45 }
     46 
     47 SCENARIO("blocking last empty sample"){
     48     printf("//! [blocking last empty sample]\n");
     49     auto values = rxcpp::observable<>::empty<int>().as_blocking();
     50     try {
     51         auto last = values.last();
     52         printf("last = %d\n", last);
     53     } catch (const rxcpp::empty_error& ex) {
     54         printf("Exception: %s\n", ex.what());
     55     }
     56     printf("//! [blocking last empty sample]\n");
     57 }
     58 
     59 SCENARIO("blocking last error sample"){
     60     printf("//! [blocking last error sample]\n");
     61     auto values = rxcpp::observable<>::range(1, 3).
     62         concat(rxcpp::observable<>::error<int>(std::runtime_error("Error from source"))).
     63         as_blocking();
     64     try {
     65         auto last = values.last();
     66         printf("last = %d\n", last);
     67     } catch (const std::exception& ex) {
     68         printf("Exception: %s\n", ex.what());
     69     }
     70     printf("//! [blocking last error sample]\n");
     71 }
     72 
     73 SCENARIO("blocking count sample"){
     74     printf("//! [blocking count sample]\n");
     75     auto values = rxcpp::observable<>::range(1, 3).as_blocking();
     76     auto count = values.count();
     77     printf("count = %d\n", count);
     78     printf("//! [blocking count sample]\n");
     79 }
     80 
     81 SCENARIO("blocking count error sample"){
     82     printf("//! [blocking count error sample]\n");
     83     auto values = rxcpp::observable<>::range(1, 3).
     84         concat(rxcpp::observable<>::error<int>(std::runtime_error("Error from source"))).
     85         as_blocking();
     86     try {
     87         auto count = values.count();
     88         printf("count = %d\n", count);
     89     } catch (const std::exception& ex) {
     90         printf("Exception: %s\n", ex.what());
     91     }
     92     printf("//! [blocking count error sample]\n");
     93 }
     94 
     95 SCENARIO("blocking sum sample"){
     96     printf("//! [blocking sum sample]\n");
     97     auto values = rxcpp::observable<>::range(1, 3).as_blocking();
     98     auto sum = values.sum();
     99     printf("sum = %d\n", sum);
    100     printf("//! [blocking sum sample]\n");
    101 }
    102 
    103 SCENARIO("blocking sum empty sample"){
    104     printf("//! [blocking sum empty sample]\n");
    105     auto values = rxcpp::observable<>::empty<int>().as_blocking();
    106     try {
    107         auto sum = values.sum();
    108         printf("sum = %d\n", sum);
    109     } catch (const rxcpp::empty_error& ex) {
    110         printf("Exception: %s\n", ex.what());
    111     }
    112     printf("//! [blocking sum empty sample]\n");
    113 }
    114 
    115 SCENARIO("blocking sum error sample"){
    116     printf("//! [blocking sum error sample]\n");
    117     auto values = rxcpp::observable<>::range(1, 3).
    118         concat(rxcpp::observable<>::error<int>(std::runtime_error("Error from source"))).
    119         as_blocking();
    120     try {
    121         auto sum = values.sum();
    122         printf("sum = %d\n", sum);
    123     } catch (const std::exception& ex) {
    124         printf("Exception: %s\n", ex.what());
    125     }
    126     printf("//! [blocking sum error sample]\n");
    127 }
    128 
    129 SCENARIO("blocking average sample"){
    130     printf("//! [blocking average sample]\n");
    131     auto values = rxcpp::observable<>::range(1, 4).as_blocking();
    132     auto average = values.average();
    133     printf("average = %lf\n", average);
    134     printf("//! [blocking average sample]\n");
    135 }
    136 
    137 SCENARIO("blocking average empty sample"){
    138     printf("//! [blocking average empty sample]\n");
    139     auto values = rxcpp::observable<>::empty<int>().as_blocking();
    140     try {
    141         auto average = values.average();
    142         printf("average = %lf\n", average);
    143     } catch (const rxcpp::empty_error& ex) {
    144         printf("Exception: %s\n", ex.what());
    145     }
    146     printf("//! [blocking average empty sample]\n");
    147 }
    148 
    149 SCENARIO("blocking average error sample"){
    150     printf("//! [blocking average error sample]\n");
    151     auto values = rxcpp::observable<>::range(1, 4).
    152         concat(rxcpp::observable<>::error<int>(std::runtime_error("Error from source"))).
    153         as_blocking();
    154     try {
    155         auto average = values.average();
    156         printf("average = %lf\n", average);
    157     } catch (const std::exception& ex) {
    158         printf("Exception: %s\n", ex.what());
    159     }
    160     printf("//! [blocking average error sample]\n");
    161 }
    162 
    163 SCENARIO("blocking max sample"){
    164     printf("//! [blocking max sample]\n");
    165     auto values = rxcpp::observable<>::range(1, 4).as_blocking();
    166     auto max = values.max();
    167     printf("max = %d\n", max);
    168     printf("//! [blocking max sample]\n");
    169 }
    170 
    171 SCENARIO("blocking max empty sample"){
    172     printf("//! [blocking max empty sample]\n");
    173     auto values = rxcpp::observable<>::empty<int>().as_blocking();
    174     try {
    175         auto max = values.max();
    176         printf("max = %d\n", max);
    177     } catch (const rxcpp::empty_error& ex) {
    178         printf("Exception: %s\n", ex.what());
    179     }
    180     printf("//! [blocking max empty sample]\n");
    181 }
    182 
    183 SCENARIO("blocking max error sample"){
    184     printf("//! [blocking max error sample]\n");
    185     auto values = rxcpp::observable<>::range(1, 4).
    186         concat(rxcpp::observable<>::error<int>(std::runtime_error("Error from source"))).
    187         as_blocking();
    188     try {
    189         auto max = values.max();
    190         printf("max = %d\n", max);
    191     } catch (const std::exception& ex) {
    192         printf("Exception: %s\n", ex.what());
    193     }
    194     printf("//! [blocking max error sample]\n");
    195 }
    196 
    197 SCENARIO("blocking min sample"){
    198     printf("//! [blocking min sample]\n");
    199     auto values = rxcpp::observable<>::range(1, 4).as_blocking();
    200     auto min = values.min();
    201     printf("min = %d\n", min);
    202     printf("//! [blocking min sample]\n");
    203 }
    204 
    205 SCENARIO("blocking min empty sample"){
    206     printf("//! [blocking min empty sample]\n");
    207     auto values = rxcpp::observable<>::empty<int>().as_blocking();
    208     try {
    209         auto min = values.min();
    210         printf("min = %d\n", min);
    211     } catch (const rxcpp::empty_error& ex) {
    212         printf("Exception: %s\n", ex.what());
    213     }
    214     printf("//! [blocking min empty sample]\n");
    215 }
    216 
    217 SCENARIO("blocking min error sample"){
    218     printf("//! [blocking min error sample]\n");
    219     auto values = rxcpp::observable<>::range(1, 4).
    220         concat(rxcpp::observable<>::error<int>(std::runtime_error("Error from source"))).
    221         as_blocking();
    222     try {
    223         auto min = values.min();
    224         printf("min = %d\n", min);
    225     } catch (const std::exception& ex) {
    226         printf("Exception: %s\n", ex.what());
    227     }
    228     printf("//! [blocking min error sample]\n");
    229 }
    230