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.