You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by ce...@apache.org on 2017/09/13 23:54:32 UTC
metron git commit: METRON-1179: Make STATS_ADD to take a list closes
apache/incubator-metron#750
Repository: metron
Updated Branches:
refs/heads/master 6017c5974 -> 2c56a13e5
METRON-1179: Make STATS_ADD to take a list closes apache/incubator-metron#750
Project: http://git-wip-us.apache.org/repos/asf/metron/repo
Commit: http://git-wip-us.apache.org/repos/asf/metron/commit/2c56a13e
Tree: http://git-wip-us.apache.org/repos/asf/metron/tree/2c56a13e
Diff: http://git-wip-us.apache.org/repos/asf/metron/diff/2c56a13e
Branch: refs/heads/master
Commit: 2c56a13e53065954a853cc33a19b569b686cb70d
Parents: 6017c59
Author: cstella <ce...@gmail.com>
Authored: Wed Sep 13 16:53:54 2017 -0700
Committer: cstella <ce...@gmail.com>
Committed: Wed Sep 13 16:53:54 2017 -0700
----------------------------------------------------------------------
metron-analytics/metron-statistics/README.md | 2 +-
.../statistics/StellarStatisticsFunctions.java | 19 +++++++++++++---
.../StellarStatisticsFunctionsTest.java | 24 ++++++++++++++++++++
3 files changed, 41 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/metron/blob/2c56a13e/metron-analytics/metron-statistics/README.md
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-statistics/README.md b/metron-analytics/metron-statistics/README.md
index f822845..982132a 100644
--- a/metron-analytics/metron-statistics/README.md
+++ b/metron-analytics/metron-statistics/README.md
@@ -60,7 +60,7 @@ functions can be used from everywhere where Stellar is used.
* Description: Adds one or more input values to those that are used to calculate the summary statistics.
* Input:
* stats - The Stellar statistics object. If null, then a new one is initialized.
- * value+ - One or more numbers to add
+ * value+ - One or more items to add. Each item may be a number or a list of numbers. If an item is a list, each number in the list will be added.
* Returns: A Stellar statistics object
#### `STATS_BIN`
http://git-wip-us.apache.org/repos/asf/metron/blob/2c56a13e/metron-analytics/metron-statistics/src/main/java/org/apache/metron/statistics/StellarStatisticsFunctions.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-statistics/src/main/java/org/apache/metron/statistics/StellarStatisticsFunctions.java b/metron-analytics/metron-statistics/src/main/java/org/apache/metron/statistics/StellarStatisticsFunctions.java
index d02734e..a6cf605 100644
--- a/metron-analytics/metron-statistics/src/main/java/org/apache/metron/statistics/StellarStatisticsFunctions.java
+++ b/metron-analytics/metron-statistics/src/main/java/org/apache/metron/statistics/StellarStatisticsFunctions.java
@@ -125,7 +125,7 @@ public class StellarStatisticsFunctions {
, description = "Adds one or more input values to those that are used to calculate the summary statistics."
, params = {
"stats - The Stellar statistics object. If null, then a new one is initialized."
- , "value+ - One or more numbers to add"
+ , "value+ - One or more items to add. Each item may be a number or a list of numbers. If an item is a list, each number in the list will be added."
}
, returns = "A Stellar statistics object"
)
@@ -141,8 +141,21 @@ public class StellarStatisticsFunctions {
// add each of the numeric values
for(int i=1; i<args.size(); i++) {
- double value = convert(args.get(i), Double.class);
- stats.addValue(value);
+ Object n = args.get(i);
+ if( n != null) {
+ if(n instanceof Iterable) {
+ for(Object num : (Iterable<Object>)n) {
+ if(num != null) {
+ Double value = convert(num, Double.class);
+ stats.addValue(value);
+ }
+ }
+ }
+ else {
+ Double value = convert(args.get(i), Double.class);
+ stats.addValue(value);
+ }
+ }
}
return stats;
http://git-wip-us.apache.org/repos/asf/metron/blob/2c56a13e/metron-analytics/metron-statistics/src/test/java/org/apache/metron/statistics/StellarStatisticsFunctionsTest.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-statistics/src/test/java/org/apache/metron/statistics/StellarStatisticsFunctionsTest.java b/metron-analytics/metron-statistics/src/test/java/org/apache/metron/statistics/StellarStatisticsFunctionsTest.java
index 42b57bd..a026bf2 100644
--- a/metron-analytics/metron-statistics/src/test/java/org/apache/metron/statistics/StellarStatisticsFunctionsTest.java
+++ b/metron-analytics/metron-statistics/src/test/java/org/apache/metron/statistics/StellarStatisticsFunctionsTest.java
@@ -224,6 +224,18 @@ public class StellarStatisticsFunctionsTest {
}
@Test
+ public void testAddAllManyIntegers() throws Exception {
+ statsInit(windowSize);
+ Object result = run("STATS_COUNT(stats)", variables);
+ double countAtStart = (double) result;
+
+ run("STATS_ADD(stats, [10, 20, 30, 40, 50])", variables);
+
+ Object actual = run("STATS_COUNT(stats)", variables);
+ assertEquals(countAtStart + 5.0, (double) actual, 0.1);
+ }
+
+ @Test
public void testAddManyIntegers() throws Exception {
statsInit(windowSize);
Object result = run("STATS_COUNT(stats)", variables);
@@ -236,6 +248,18 @@ public class StellarStatisticsFunctionsTest {
}
@Test
+ public void testAllManyFloat() throws Exception {
+ statsInit(windowSize);
+ Object result = run("STATS_COUNT(stats)", variables);
+ double countAtStart = (double) result;
+
+ run("STATS_ADD(stats, [10.0, 20.0, 30.0, 40.0, 50.0, null])", variables);
+
+ Object actual = run("STATS_COUNT(stats)", variables);
+ assertEquals(countAtStart + 5.0, (double) actual, 0.1);
+ }
+
+ @Test
public void testAddManyFloats() throws Exception {
statsInit(windowSize);
Object result = run("STATS_COUNT(stats)", variables);