aboutsummaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorSandeep Singh <sandeep@techaddict.me>2016-05-03 11:45:51 -0700
committerReynold Xin <rxin@databricks.com>2016-05-03 11:45:51 -0700
commit84b3a4a873de8444eda1bd162ed52f79941ec864 (patch)
tree06e47f33626d333f2cbc50e0c3d4413366a340cd /core/src
parent439e361010e51d2213c92ccabed5093be92a72ee (diff)
downloadspark-84b3a4a873de8444eda1bd162ed52f79941ec864.tar.gz
spark-84b3a4a873de8444eda1bd162ed52f79941ec864.tar.bz2
spark-84b3a4a873de8444eda1bd162ed52f79941ec864.zip
[SPARK-15082][CORE] Improve unit test coverage for AccumulatorV2
## What changes were proposed in this pull request? Added tests for ListAccumulator and LegacyAccumulatorWrapper, test for ListAccumulator is one similar to old Collection Accumulators ## How was this patch tested? Ran tests locally. cc rxin Author: Sandeep Singh <sandeep@techaddict.me> Closes #12862 from techaddict/SPARK-15082.
Diffstat (limited to 'core/src')
-rw-r--r--core/src/test/scala/org/apache/spark/util/AccumulatorV2Suite.scala61
1 files changed, 60 insertions, 1 deletions
diff --git a/core/src/test/scala/org/apache/spark/util/AccumulatorV2Suite.scala b/core/src/test/scala/org/apache/spark/util/AccumulatorV2Suite.scala
index 815b134884..ecaf4f0c64 100644
--- a/core/src/test/scala/org/apache/spark/util/AccumulatorV2Suite.scala
+++ b/core/src/test/scala/org/apache/spark/util/AccumulatorV2Suite.scala
@@ -17,7 +17,7 @@
package org.apache.spark.util
-import org.apache.spark.SparkFunSuite
+import org.apache.spark._
class AccumulatorV2Suite extends SparkFunSuite {
@@ -86,4 +86,63 @@ class AccumulatorV2Suite extends SparkFunSuite {
assert(acc.sum == 5.0)
assert(acc.avg == 1.25)
}
+
+ test("ListAccumulator") {
+ val acc = new ListAccumulator[Double]
+ assert(acc.value.isEmpty)
+ assert(acc.isZero)
+
+ acc.add(0.0)
+ assert(acc.value.contains(0.0))
+ assert(!acc.isZero)
+
+ acc.add(new java.lang.Double(1.0))
+
+ val acc2 = acc.copyAndReset()
+ assert(acc2.value.isEmpty)
+ assert(acc2.isZero)
+
+ assert(acc.value.contains(1.0))
+ assert(!acc.isZero)
+ assert(acc.value.size() === 2)
+
+ acc2.add(2.0)
+ assert(acc2.value.contains(2.0))
+ assert(!acc2.isZero)
+ assert(acc2.value.size() === 1)
+
+ // Test merging
+ acc.merge(acc2)
+ assert(acc.value.contains(2.0))
+ assert(!acc.isZero)
+ assert(acc.value.size() === 3)
+ }
+
+ test("LegacyAccumulatorWrapper") {
+ val acc = new LegacyAccumulatorWrapper("default", AccumulatorParam.StringAccumulatorParam)
+ assert(acc.value === "default")
+ assert(!acc.isZero)
+
+ acc.add("foo")
+ assert(acc.value === "foo")
+ assert(!acc.isZero)
+
+ acc.add(new java.lang.String("bar"))
+
+ val acc2 = acc.copyAndReset()
+ assert(acc2.value === "")
+ assert(acc2.isZero)
+
+ assert(acc.value === "bar")
+ assert(!acc.isZero)
+
+ acc2.add("baz")
+ assert(acc2.value === "baz")
+ assert(!acc2.isZero)
+
+ // Test merging
+ acc.merge(acc2)
+ assert(acc.value === "baz")
+ assert(!acc.isZero)
+ }
}