@@ -21,7 +21,7 @@ BOOST_AUTO_TEST_CASE(derivedAverage)
2121 std::vector<AverageResults> results = {{10 , 10 }, {20 , 15 }, {30 , 20 }, {40 , 25 }, {50 , 30 }, {60 , 35 }, {70 , 40 }, {80 , 45 }, {90 , 50 }, {100 , 55 }};
2222 std::string name (" metricName" );
2323
24- AliceO2::Monitoring::DerivedMetrics derivedHandler (1000 );
24+ AliceO2::Monitoring::DerivedMetrics derivedHandler (100 );
2525 derivedHandler.registerMetric (name, AliceO2::Monitoring::DerivedMetricMode::AVERAGE);
2626
2727 for (auto const result : results) {
@@ -32,30 +32,78 @@ BOOST_AUTO_TEST_CASE(derivedAverage)
3232 }
3333}
3434
35- BOOST_AUTO_TEST_CASE (derivedRate )
35+ BOOST_AUTO_TEST_CASE (derivedRateInt )
3636{
3737 struct RateResults {
3838 int value;
39- int average ;
39+ int rate ;
4040 };
4141 std::vector<RateResults> results = {{10 , 0 }, {20 , 100 }, {30 , 100 }, {50 , 200 }, {60 , 100 }, {65 , 50 }, {70 , 50 }, {80 , 100 }, {90 , 100 }, {100 , 100 }};
42- AliceO2::Monitoring::DerivedMetrics derivedHandler (1000 );
43- std::string name (" metricName " );
42+ AliceO2::Monitoring::DerivedMetrics derivedHandler (100 );
43+ std::string name (" metricInt " );
4444 derivedHandler.registerMetric (name, AliceO2::Monitoring::DerivedMetricMode::RATE);
4545
4646 for (auto const result : results) {
4747 try {
4848 std::this_thread::sleep_for (std::chrono::milliseconds (100 ));
4949 AliceO2::Monitoring::Metric metric (result.value , name);
5050 AliceO2::Monitoring::Metric derived = derivedHandler.processMetric (metric);
51- BOOST_CHECK_EQUAL (derived.getName (), " metricNameRate " );
52- BOOST_CHECK_CLOSE (boost::get<double >(derived.getValue ()), result.average , 1 );
51+ BOOST_CHECK_EQUAL (derived.getName (), " metricIntRate " );
52+ BOOST_CHECK_EQUAL (boost::get<int >(derived.getValue ()), result.rate );
5353 } catch (MonitoringInternalException &e) {
5454 BOOST_TEST (e.what () == std::string (" Not enough values" ));
5555 }
5656 }
5757}
5858
59+ BOOST_AUTO_TEST_CASE (derivedRateDouble) {
60+ struct RateResults {
61+ double value;
62+ double rate;
63+ };
64+ std::vector<RateResults> results = {{1.2 , 0 }, {11.2 , 100 }, {21.2 , 100 }, {41.2 , 200 }, {51.2 , 100 }, {61 , 98 }};
65+ AliceO2::Monitoring::DerivedMetrics derivedHandler (100 );
66+ std::string name (" metricDouble" );
67+ derivedHandler.registerMetric (name, AliceO2::Monitoring::DerivedMetricMode::RATE);
68+
69+ for (auto const result : results) {
70+ try {
71+ std::this_thread::sleep_for (std::chrono::milliseconds (100 ));
72+ AliceO2::Monitoring::Metric metric (result.value , name);
73+ AliceO2::Monitoring::Metric derived = derivedHandler.processMetric (metric);
74+ BOOST_CHECK_EQUAL (derived.getName (), " metricDoubleRate" );
75+ BOOST_CHECK_CLOSE (boost::get<double >(derived.getValue ()), result.rate , 0.1 );
76+ } catch (MonitoringInternalException &e) {
77+ BOOST_TEST (e.what () == std::string (" Not enough values" ));
78+ }
79+ }
80+ }
81+
82+ BOOST_AUTO_TEST_CASE (derivedRateInt64_t) {
83+ struct RateResults {
84+ int64_t value;
85+ int64_t rate;
86+ };
87+ std::vector<RateResults> results = {{165535 , 0 }, {165545 , 100 }, {165555 , 100 }, {165575 , 200 }, {165585 , 100 }, {165590 , 50 }};
88+ AliceO2::Monitoring::DerivedMetrics derivedHandler (100 );
89+ std::string name (" metricInt64_t" );
90+ derivedHandler.registerMetric (name, AliceO2::Monitoring::DerivedMetricMode::RATE);
91+
92+ for (auto const result : results) {
93+ try {
94+ std::this_thread::sleep_for (std::chrono::milliseconds (100 ));
95+ AliceO2::Monitoring::Metric metric (result.value , name);
96+ AliceO2::Monitoring::Metric derived = derivedHandler.processMetric (metric);
97+ BOOST_CHECK_EQUAL (derived.getName (), " metricInt64_tRate" );
98+ BOOST_CHECK_EQUAL (boost::get<int64_t >(derived.getValue ()), result.rate );
99+ } catch (MonitoringInternalException &e) {
100+ BOOST_TEST (e.what () == std::string (" Not enough values" ));
101+ }
102+ }
103+
104+
105+ }
106+
59107bool exceptionCheck (const MonitoringInternalException &e)
60108{
61109 if (e.what () == std::string (" Not enough values" )) return true ;
@@ -76,11 +124,6 @@ BOOST_AUTO_TEST_CASE(divisionByZero)
76124
77125}
78126
79- BOOST_AUTO_TEST_CASE (stringValue)
80- {
81-
82- }
83-
84127} // namespace Test
85128} // namespace Monitoring
86129} // namespace AliceO2
0 commit comments