You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2014/04/24 03:10:39 UTC
git commit: Fixed a CHECK failure in Statistics.
Repository: mesos
Updated Branches:
refs/heads/master d4b5a35fa -> 99a0aba4d
Fixed a CHECK failure in Statistics.
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/99a0aba4
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/99a0aba4
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/99a0aba4
Branch: refs/heads/master
Commit: 99a0aba4de0c548c75c695fef6eb4a5864efecae
Parents: d4b5a35
Author: Benjamin Mahler <bm...@twitter.com>
Authored: Wed Apr 23 18:10:33 2014 -0700
Committer: Benjamin Mahler <bm...@twitter.com>
Committed: Wed Apr 23 18:10:37 2014 -0700
----------------------------------------------------------------------
3rdparty/libprocess/include/process/statistics.hpp | 6 ++++--
3rdparty/libprocess/src/tests/statistics_tests.cpp | 10 ++++++++++
2 files changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/99a0aba4/3rdparty/libprocess/include/process/statistics.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/statistics.hpp b/3rdparty/libprocess/include/process/statistics.hpp
index d88d0c6..0823748 100644
--- a/3rdparty/libprocess/include/process/statistics.hpp
+++ b/3rdparty/libprocess/include/process/statistics.hpp
@@ -25,7 +25,8 @@ struct Statistics
{
std::vector<typename TimeSeries<T>::Value> values_ = timeseries.get();
- if (values_.empty()) {
+ // We need at least 2 values to compute aggregates.
+ if (values_.size() < 2) {
return None();
}
@@ -66,10 +67,11 @@ struct Statistics
private:
// Returns the requested percentile from the sorted values.
+ // Note that we need at least two values to compute percentiles!
// TODO(dhamon): Use a 'Percentage' abstraction.
static T percentile(const std::vector<T>& values, double percentile)
{
- CHECK(!values.empty());
+ CHECK_GE(values.size(), 2);
if (percentile <= 0.0) {
return values.front();
http://git-wip-us.apache.org/repos/asf/mesos/blob/99a0aba4/3rdparty/libprocess/src/tests/statistics_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/statistics_tests.cpp b/3rdparty/libprocess/src/tests/statistics_tests.cpp
index 84cfb52..9e761f4 100644
--- a/3rdparty/libprocess/src/tests/statistics_tests.cpp
+++ b/3rdparty/libprocess/src/tests/statistics_tests.cpp
@@ -17,6 +17,16 @@ TEST(Statistics, empty)
}
+TEST(Statistics, single)
+{
+ TimeSeries<double> timeseries;
+
+ timeseries.set(0);
+
+ EXPECT_NONE(Statistics<double>::from(timeseries));
+}
+
+
TEST(Statistics, statistics)
{
// Create a distribution of 10 values from -5 to 4.