aboutsummaryrefslogtreecommitdiff
path: root/tests/pending/run/stringbuilder.scala
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-05-12 18:30:53 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-05-12 18:30:53 +0200
commit89bacb9c25a58454ff1878e67f7ea07ffc8c269f (patch)
tree51f1ff6c66aebe1b6109b1cffcc2bb8e4cf760a3 /tests/pending/run/stringbuilder.scala
parenta0fa33deafbea1bf53edc068c5ed9db5592822f9 (diff)
downloaddotty-89bacb9c25a58454ff1878e67f7ea07ffc8c269f.tar.gz
dotty-89bacb9c25a58454ff1878e67f7ea07ffc8c269f.tar.bz2
dotty-89bacb9c25a58454ff1878e67f7ea07ffc8c269f.zip
Run tests as they were in scala.
Diffstat (limited to 'tests/pending/run/stringbuilder.scala')
-rw-r--r--tests/pending/run/stringbuilder.scala43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/pending/run/stringbuilder.scala b/tests/pending/run/stringbuilder.scala
new file mode 100644
index 000000000..a98f9cf37
--- /dev/null
+++ b/tests/pending/run/stringbuilder.scala
@@ -0,0 +1,43 @@
+
+import scala.language.reflectiveCalls
+
+object Test extends App {
+ val str = "ABCDEFGHIJKLMABCDEFGHIJKLM"
+ val surrogateStr = "an old Turkic letter: \uD803\uDC22"
+
+ type SB = {
+ def indexOf(str: String): Int
+ def indexOf(str: String, fromIndex: Int): Int
+ def lastIndexOf(str: String): Int
+ def lastIndexOf(str: String, fromIndex: Int): Int
+ }
+
+ import scala.collection.mutable.{ StringBuilder => ScalaStringBuilder }
+ import java.lang.{ StringBuilder => JavaStringBuilder }
+
+ val sbScala = new ScalaStringBuilder() append str
+ val sbJava = new JavaStringBuilder() append str
+ val sbs: List[SB] = List[SB](sbScala, sbJava)
+
+ def sameAnswers(f: (SB) => Int) = assert(f(sbScala) == f(sbJava))
+
+ sameAnswers(_.indexOf(""))
+ sameAnswers(_.indexOf("G"))
+ sameAnswers(_.indexOf("ABC"))
+ sameAnswers(_.indexOf("KLM"))
+ sameAnswers(_.indexOf("QZV"))
+ sameAnswers(_.indexOf("LMABC"))
+ sameAnswers(_.lastIndexOf(""))
+ sameAnswers(_.lastIndexOf("M"))
+ sameAnswers(_.lastIndexOf("ABCDEFG"))
+ sameAnswers(_.lastIndexOf("KLM"))
+ sameAnswers(_.lastIndexOf("QZV"))
+ sameAnswers(_.lastIndexOf("GHI", 22))
+ sameAnswers(_.lastIndexOf("KLM", 22))
+
+ // testing that the "reverse" implementation avoids reversing surrogate pairs
+ val jsb = new JavaStringBuilder(surrogateStr).reverse
+ val ssb = new ScalaStringBuilder(surrogateStr).reverseContents
+
+ assert(jsb.toString == ssb.toString)
+}