diff options
author | Lukas Rytz <lukas.rytz@typesafe.com> | 2016-02-03 11:36:50 +0100 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@typesafe.com> | 2016-02-03 11:36:50 +0100 |
commit | aa84aaa924cfba614a9803298a3e431d21417ad2 (patch) | |
tree | 8041a7315624c4e60770a567158de960b13cac5b /test/junit | |
parent | 6ecb997fa8eb305bf547ec8a6106ba2fd777a594 (diff) | |
parent | 6eaae1b969b68ed3dc65a40613a8168b09246256 (diff) | |
download | scala-aa84aaa924cfba614a9803298a3e431d21417ad2.tar.gz scala-aa84aaa924cfba614a9803298a3e431d21417ad2.tar.bz2 scala-aa84aaa924cfba614a9803298a3e431d21417ad2.zip |
Merge pull request #4904 from Ichoran/reusable-builders
Clarified and expanded which Builders were reusable
Diffstat (limited to 'test/junit')
-rw-r--r-- | test/junit/scala/collection/ReusableBuildersTest.scala | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/junit/scala/collection/ReusableBuildersTest.scala b/test/junit/scala/collection/ReusableBuildersTest.scala new file mode 100644 index 0000000000..8dd1a37adf --- /dev/null +++ b/test/junit/scala/collection/ReusableBuildersTest.scala @@ -0,0 +1,48 @@ +package scala.collection + +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 +import org.junit.Test + +/* Tests various maps by making sure they all agree on the same answers. */ +@RunWith(classOf[JUnit4]) +class ReusableBuildersTest { + // GrowingBuilders are NOT reusable but can clear themselves + @Test + def test_SI8648() { + val b = collection.mutable.HashSet.newBuilder[Int] + b += 3 + b.clear + assert(!b.isInstanceOf[collection.mutable.ReusableBuilder[_,_]]) + assert(b.isInstanceOf[collection.mutable.GrowingBuilder[_,_]]) + assert(b.result == Set[Int]()) + } + + // ArrayBuilders ARE reusable, regardless of whether they returned their internal array or not + @Test + def test_SI9564() { + val b = Array.newBuilder[Float] + b += 3f + val three = b.result + b.clear + b ++= (1 to 16).map(_.toFloat) + val sixteen = b.result + b.clear + b += 0f + val zero = b.result + assert(b.isInstanceOf[collection.mutable.ReusableBuilder[_,_]]) + assert(three.toList == 3 :: Nil) + assert(sixteen.toList == (1 to 16)) + assert(zero.toList == 0 :: Nil) + } + + @Test + def test_reusability() { + val bl = List.newBuilder[String] + val bv = Vector.newBuilder[String] + val ba = collection.mutable.ArrayBuffer.newBuilder[String] + assert(bl.isInstanceOf[collection.mutable.ReusableBuilder[_, _]]) + assert(bv.isInstanceOf[collection.mutable.ReusableBuilder[_, _]]) + assert(!ba.isInstanceOf[collection.mutable.ReusableBuilder[_, _]]) + } +} |