diff options
author | Rex Kerr <ichoran@gmail.com> | 2015-03-30 23:34:02 -0700 |
---|---|---|
committer | Rex Kerr <ichoran@gmail.com> | 2015-03-31 13:32:16 -0700 |
commit | 302562f86e418630b476852b9ba235e85f98bacb (patch) | |
tree | 9134c04ea603f72623dbe29f3e63b505e25935d0 /test | |
parent | 955eb2170e1291500813e6bec76a9f0e1e3bad50 (diff) | |
download | scala-302562f86e418630b476852b9ba235e85f98bacb.tar.gz scala-302562f86e418630b476852b9ba235e85f98bacb.tar.bz2 scala-302562f86e418630b476852b9ba235e85f98bacb.zip |
SI-9254 UnrolledBuffer appends in wrong position
Fixed two bugs in insertion (insertAll of Unrolled):
1. Incorrect recursion leading to an inability to insert past the first chunk
2. Incorect repositioning of `lastptr` leading to strange `append` behavior after early insertion
Added tests checking that both of these things now work.
Also added a comment that "waterlineDelim" is misnamed. But we can't fix it now--it's part of the public API. (Shouldn't be, but it is.)
Diffstat (limited to 'test')
-rw-r--r-- | test/junit/scala/collection/mutable/UnrolledBufferTest.scala | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/junit/scala/collection/mutable/UnrolledBufferTest.scala b/test/junit/scala/collection/mutable/UnrolledBufferTest.scala new file mode 100644 index 0000000000..8660b6cbc1 --- /dev/null +++ b/test/junit/scala/collection/mutable/UnrolledBufferTest.scala @@ -0,0 +1,25 @@ +package scala.collection.mutable + +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 +import org.junit.Test + +@RunWith(classOf[JUnit4]) +class UnrolledBufferTestTest { + @Test + def test_SI9254_original() { + val b = new UnrolledBuffer[Int]() + (1 to 16).foreach(i => b append i) + b.insert(0,-1) + b append 17 + assert(b sameElements (Seq(-1) ++ (1 to 16) ++ Seq(17))) + } + + @Test + def test_SI9254_additional() { + val b = new UnrolledBuffer[Int]() + (1 to 100).foreach(i => b append i) + b.insert(40, -1) + assert(b sameElements((1 to 40) ++ Seq(-1) ++ (41 to 100))) + } +} |