summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRory Graves <rory.graves@fieldmark.co.uk>2017-01-28 21:50:50 +0000
committerAdriaan Moors <adriaan@lightbend.com>2017-01-28 14:05:49 -0800
commit7e89663931075e8652f3008881ec55d5803557cc (patch)
tree42f9c3fee36890e6bb1ec828856ba7dd40cff47e
parenteb5c51383a63c5c3420e53ef021607ff5fd20296 (diff)
downloadscala-7e89663931075e8652f3008881ec55d5803557cc.tar.gz
scala-7e89663931075e8652f3008881ec55d5803557cc.tar.bz2
scala-7e89663931075e8652f3008881ec55d5803557cc.zip
Add benchmark for List.mapConserve
-rw-r--r--test/benchmarks/src/main/scala/scala/collection/immutable/ListBenchmark.scala15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/benchmarks/src/main/scala/scala/collection/immutable/ListBenchmark.scala b/test/benchmarks/src/main/scala/scala/collection/immutable/ListBenchmark.scala
index 5ed30de7f6..94844dcae2 100644
--- a/test/benchmarks/src/main/scala/scala/collection/immutable/ListBenchmark.scala
+++ b/test/benchmarks/src/main/scala/scala/collection/immutable/ListBenchmark.scala
@@ -54,4 +54,19 @@ class ListBenchmark {
@Benchmark def filter_only_last: Any = {
values.filter(v => v.value == last.value)
}
+
+ @Setup(Level.Trial) def initKeys(): Unit = {
+ values = List.tabulate(size)(n => if (n == size / 2) "mid" else "")
+ }
+
+ @Benchmark def mapConserve_identity: Any = {
+ values.mapConserve(x => x)
+ }
+
+ @Benchmark def mapConserve_modifyAll: Any = {
+ values.mapConserve(x => "replace")
+ }
+ @Benchmark def mapConserve_modifyMid: Any = {
+ values.mapConserve(x => if (x == "mid") "replace" else x)
+ }
}