@@ -51,6 +51,29 @@ BOOST_AUTO_TEST_CASE(derivedRateInt)
5151 }
5252}
5353
54+ BOOST_AUTO_TEST_CASE (derivedRateInt_newRun)
55+ {
56+ struct RateResults {
57+ int value;
58+ int rate;
59+ };
60+ std::vector<RateResults> results = {{10 , 0 }, {20 , 100 }, {30 , 100 }, {50 , 200 }, {0 , 0 }, {10 , 100 }, {20 , 100 }, {30 , 100 }, {50 , 200 }};
61+ o2::monitoring::DerivedMetrics derivedHandler;
62+ std::string name (" metricInt" );
63+
64+ for (auto const result : results) {
65+ try {
66+ std::this_thread::sleep_for (std::chrono::milliseconds (100 ));
67+ o2::monitoring::Metric metric (result.value , name);
68+ o2::monitoring::Metric derived = derivedHandler.process (metric, DerivedMetricMode::RATE);
69+ BOOST_CHECK_EQUAL (derived.getName (), " metricIntRate" );
70+ BOOST_WARN_CLOSE (std::get<double >(derived.getValue ()), result.rate , 1.0 );
71+ } catch (MonitoringException& e) {
72+ BOOST_CHECK_EQUAL (e.what (), std::string (" Not enough values" ));
73+ }
74+ }
75+ }
76+
5477BOOST_AUTO_TEST_CASE (derivedRateDouble)
5578{
5679 struct RateResults {
@@ -70,7 +93,7 @@ BOOST_AUTO_TEST_CASE(derivedRateDouble)
7093 o2::monitoring::Metric derivedTagged = derivedHandler.process (metricTagged, DerivedMetricMode::RATE);
7194 BOOST_CHECK_EQUAL (derived.getName (), " metricDoubleRate" );
7295 BOOST_WARN_CLOSE (std::get<double >(derived.getValue ()), results[i].rate , 1.0 );
73- BOOST_WARN_CLOSE (std::get<double >(derivedTagged.getValue ()), resultsTagged[i].rate , 5 .0 );
96+ BOOST_WARN_CLOSE (std::get<double >(derivedTagged.getValue ()), resultsTagged[i].rate , 1 .0 );
7497 } catch (MonitoringException& e) {
7598 BOOST_CHECK_EQUAL (e.what (), std::string (" Not enough values" ));
7699 }
0 commit comments