summaryrefslogtreecommitdiff
path: root/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search
diff options
context:
space:
mode:
authorMartijn van Groningen <martijn.v.groningen@gmail.com>2017-05-09 15:04:28 +0200
committerMartijn van Groningen <martijn.v.groningen@gmail.com>2017-05-10 11:06:18 +0200
commit51c74ce5476ed4d8b0f2ed3469fee955ff1e5fd1 (patch)
tree002eeca1732646f83045580dba0449e31ad78e9a /modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search
parentb24326271e6778d5d595005e7e1e4258e7e7ee24 (diff)
Added unit tests for InternalMatrixStats.
Also moved InternalAggregationTestCase to test-framework module in order to make use of it from other modules than core. Relates to #22278
Diffstat (limited to 'modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search')
-rw-r--r--modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/InternalMatrixStats.java19
-rw-r--r--modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsResults.java15
-rw-r--r--modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/RunningStats.java25
3 files changed, 56 insertions, 3 deletions
diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/InternalMatrixStats.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/InternalMatrixStats.java
index 0914ea2910..5b7d2cf288 100644
--- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/InternalMatrixStats.java
+++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/InternalMatrixStats.java
@@ -28,6 +28,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import static java.util.Collections.emptyMap;
@@ -41,7 +42,7 @@ public class InternalMatrixStats extends InternalAggregation implements MatrixSt
private final MatrixStatsResults results;
/** per shard ctor */
- protected InternalMatrixStats(String name, long count, RunningStats multiFieldStatsResults, MatrixStatsResults results,
+ InternalMatrixStats(String name, long count, RunningStats multiFieldStatsResults, MatrixStatsResults results,
List<PipelineAggregator> pipelineAggregators, Map<String, Object> metaData) {
super(name, pipelineAggregators, metaData);
assert count >= 0;
@@ -138,6 +139,10 @@ public class InternalMatrixStats extends InternalAggregation implements MatrixSt
return results.getCorrelation(fieldX, fieldY);
}
+ MatrixStatsResults getResults() {
+ return results;
+ }
+
static class Fields {
public static final String FIELDS = "fields";
public static final String NAME = "name";
@@ -238,4 +243,16 @@ public class InternalMatrixStats extends InternalAggregation implements MatrixSt
return new InternalMatrixStats(name, results.getDocCount(), runningStats, results, pipelineAggregators(), getMetaData());
}
+
+ @Override
+ protected int doHashCode() {
+ return Objects.hash(stats, results);
+ }
+
+ @Override
+ protected boolean doEquals(Object obj) {
+ InternalMatrixStats other = (InternalMatrixStats) obj;
+ return Objects.equals(this.stats, other.stats) &&
+ Objects.equals(this.results, other.results);
+ }
}
diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsResults.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsResults.java
index f82c6df73b..4da8b7ca61 100644
--- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsResults.java
+++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsResults.java
@@ -27,6 +27,7 @@ import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import java.util.Objects;
/**
* Descriptive stats gathered per shard. Coordinating node computes final pearson product coefficient
@@ -228,4 +229,18 @@ class MatrixStatsResults implements Writeable {
correlation.put(rowName, corRow);
}
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ MatrixStatsResults that = (MatrixStatsResults) o;
+ return Objects.equals(results, that.results) &&
+ Objects.equals(correlation, that.correlation);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(results, correlation);
+ }
}
diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/RunningStats.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/RunningStats.java
index 81d0d0a494..1be3279e8e 100644
--- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/RunningStats.java
+++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/RunningStats.java
@@ -28,6 +28,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
+import java.util.Objects;
/**
* Descriptive stats gathered per shard. Coordinating node computes final correlation and covariance stats
@@ -53,11 +54,11 @@ public class RunningStats implements Writeable, Cloneable {
/** covariance values */
protected HashMap<String, HashMap<String, Double>> covariances;
- public RunningStats() {
+ RunningStats() {
init();
}
- public RunningStats(final String[] fieldNames, final double[] fieldVals) {
+ RunningStats(final String[] fieldNames, final double[] fieldVals) {
if (fieldVals != null && fieldVals.length > 0) {
init();
this.add(fieldNames, fieldVals);
@@ -309,4 +310,24 @@ public class RunningStats implements Writeable, Cloneable {
throw new ElasticsearchException("Error trying to create a copy of RunningStats");
}
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ RunningStats that = (RunningStats) o;
+ return docCount == that.docCount &&
+ Objects.equals(fieldSum, that.fieldSum) &&
+ Objects.equals(counts, that.counts) &&
+ Objects.equals(means, that.means) &&
+ Objects.equals(variances, that.variances) &&
+ Objects.equals(skewness, that.skewness) &&
+ Objects.equals(kurtosis, that.kurtosis) &&
+ Objects.equals(covariances, that.covariances);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(docCount, fieldSum, counts, means, variances, skewness, kurtosis, covariances);
+ }
}