diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-12-15 16:16:19 +0100 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-12-15 16:16:19 +0100 |
commit | 7ba38a07916426314cc3bff6999f3992757e0b26 (patch) | |
tree | 64786d4272ec26e7da6bc5e62c3fdfec334c318f /test/junit | |
parent | 371a28ba0a604a45360e3de17bd186a245fb5a60 (diff) | |
parent | 6e8c60eabbbf0f21ef8e0b87267952bec2f85159 (diff) | |
download | scala-7ba38a07916426314cc3bff6999f3992757e0b26.tar.gz scala-7ba38a07916426314cc3bff6999f3992757e0b26.tar.bz2 scala-7ba38a07916426314cc3bff6999f3992757e0b26.zip |
Merge pull request #4202 from kanielc/SI-9043
SI-9043 ArrayBuffer.insert and insertAll are very slow
Diffstat (limited to 'test/junit')
-rw-r--r-- | test/junit/scala/collection/mutable/ArrayBufferTest.scala | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/junit/scala/collection/mutable/ArrayBufferTest.scala b/test/junit/scala/collection/mutable/ArrayBufferTest.scala new file mode 100644 index 0000000000..8c83164027 --- /dev/null +++ b/test/junit/scala/collection/mutable/ArrayBufferTest.scala @@ -0,0 +1,36 @@ +package scala.collection.mutable + +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 +import org.junit.{Assert, Test} + +import scala.tools.testing.AssertUtil + +/* Test for SI-9043 */ +@RunWith(classOf[JUnit4]) +class ArrayBufferTest { + @Test + def testInsertAll: Unit = { + val traver = ArrayBuffer(2, 4, 5, 7) + val testSeq = List(1, 3, 6, 9) + + def insertAt(x: Int) = { + val clone = traver.clone() + clone.insertAll(x, testSeq) + clone + } + + // Just insert some at position 0 + Assert.assertEquals(ArrayBuffer(1, 3, 6, 9, 2, 4, 5, 7), insertAt(0)) + + // Insert in the middle + Assert.assertEquals(ArrayBuffer(2, 4, 1, 3, 6, 9, 5, 7), insertAt(2)) + + // No strange last position weirdness + Assert.assertEquals(ArrayBuffer(2, 4, 5, 7, 1, 3, 6, 9), insertAt(traver.size)) + + // Overflow is caught + AssertUtil.assertThrows[IndexOutOfBoundsException] { insertAt(-1) } + AssertUtil.assertThrows[IndexOutOfBoundsException] { insertAt(traver.size + 10) } + } +} |