diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2015-02-09 13:51:51 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2015-02-09 13:51:51 -0800 |
commit | e8365dedf7a42382b337d644e35cb405183ed2b2 (patch) | |
tree | 5ce53cad390a6328c527eb6fa5d39dcf4b601f2b /test/junit | |
parent | 9d09247f13b8a77c1b3a2bb5d44510b7cec38dce (diff) | |
parent | d1d3225e28ed1847470d976ffeefbce40e90d9ac (diff) | |
download | scala-e8365dedf7a42382b337d644e35cb405183ed2b2.tar.gz scala-e8365dedf7a42382b337d644e35cb405183ed2b2.tar.bz2 scala-e8365dedf7a42382b337d644e35cb405183ed2b2.zip |
Merge pull request #4209 from kanielc/SI-8988
SI-8988 Escaping character in StringLike.split(c) is slow
Diffstat (limited to 'test/junit')
-rw-r--r-- | test/junit/scala/collection/immutable/StringLikeTest.scala | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/junit/scala/collection/immutable/StringLikeTest.scala b/test/junit/scala/collection/immutable/StringLikeTest.scala new file mode 100644 index 0000000000..3722bdfe4d --- /dev/null +++ b/test/junit/scala/collection/immutable/StringLikeTest.scala @@ -0,0 +1,37 @@ +package scala.collection.immutable + +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 + +import scala.tools.testing.AssertUtil +import scala.util.Random + +/* Test for SI-8988 */ +@RunWith(classOf[JUnit4]) +class StringLikeTest { + @Test + def testStringSplitWithChar: Unit = { + val chars = (0 to 255).map(_.toChar) + def randString = Random.nextString(30) + + for (c <- chars) { + val s = randString + val jString = new java.lang.String(s) + + // make sure we can match a literal character done by Java's split + val jSplit = jString.split("\\Q" + c.toString + "\\E") + val sSplit = s.split(c) + AssertUtil.assertSameElements(jSplit, sSplit, s"Not same result as Java split for char $c in string $s") + } + } + + @Test + def testSplitEdgeCases: Unit = { + AssertUtil.assertSameElements("abcd".split('d'), Array("abc")) // not Array("abc", "") + AssertUtil.assertSameElements("abccc".split('c'), Array("ab")) // not Array("ab", "", "", "") + AssertUtil.assertSameElements("xxx".split('x'), Array[String]()) // not Array("", "", "", "") + AssertUtil.assertSameElements("".split('x'), Array("")) // not Array() + AssertUtil.assertSameElements("--ch--omp--".split("-"), Array("", "", "ch", "", "omp")) // All the cases! + } +} |