summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/aggregator
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2019-04-04 09:45:18 +0000
committerHenning Baldersheim <balder@oath.com>2019-04-04 09:46:19 +0000
commitf16846437325a6f5b9cd350d3a87ebad2c7c7703 (patch)
tree6b0479a9377bf8df1fd666f321c0e0ad805f5009 /searchlib/src/tests/aggregator
parenta6582e6b4e73528a4248f99e494a54b093ab503f (diff)
Add conformance testing for 'sum' aggregator too.
Diffstat (limited to 'searchlib/src/tests/aggregator')
-rw-r--r--searchlib/src/tests/aggregator/perdocexpr.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/searchlib/src/tests/aggregator/perdocexpr.cpp b/searchlib/src/tests/aggregator/perdocexpr.cpp
index c3667c36f8e..1b85fb8f427 100644
--- a/searchlib/src/tests/aggregator/perdocexpr.cpp
+++ b/searchlib/src/tests/aggregator/perdocexpr.cpp
@@ -1357,6 +1357,43 @@ TEST("test Average over non-numeric string") {
EXPECT_EQUAL(0, avg.getAverage().getInteger());
}
+TEST("test Sum over integer") {
+ AggregationResult::Configure conf;
+ SumAggregationResult sum;
+ sum.setExpression(createScalarInt(I4)).select(conf, conf);
+ sum.aggregate(0, 0);
+ sum.aggregate(0, 0);
+ EXPECT_EQUAL(I4*2, sum.getSum().getInteger());
+}
+
+TEST("test Sum over float") {
+ AggregationResult::Configure conf;
+ SumAggregationResult sum;
+ sum.setExpression(createScalarFloat(I4)).select(conf, conf);
+ sum.aggregate(0, 0);
+ sum.aggregate(0, 0);
+ EXPECT_EQUAL(I4*2, sum.getSum().getInteger());
+}
+
+TEST("test Sum over numeric string") {
+ AggregationResult::Configure conf;
+ SumAggregationResult sum;
+ sum.setExpression(createScalarString("7.8")).select(conf, conf);
+ sum.aggregate(0, 0);
+ sum.aggregate(0, 0);
+ EXPECT_EQUAL(7.8*2, sum.getSum().getFloat());
+}
+
+TEST("test Sum over non-numeric string") {
+ AggregationResult::Configure conf;
+ SumAggregationResult sum;
+ sum.setExpression(createScalarString("ABC")).select(conf, conf);
+ sum.aggregate(0, 0);
+ sum.aggregate(0, 0);
+ EXPECT_EQUAL(0, sum.getSum().getInteger());
+}
+
+
TEST("testGrouping") {
AttributeGuard attr1 = createInt64Attribute();
ExpressionNode::UP result1(new CountAggregationResult());