aboutsummaryrefslogtreecommitdiff
path: root/tests/run/array-charSeq.scala
blob: 64055c6406ba3f2dda46ce6ca76892b9a6b9567f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
object Test {
  val arr = Array[Char]('a' to 'i': _*)
  var xs: CharSequence = arr
  val hash = xs.hashCode

  def check(chars: CharSequence): Unit = {
    println("\n[check '" + chars + "'] len = " + chars.length)
    chars match {
      case x: Predef.ArrayCharSequence  => assert(x.__arrayOfChars eq arr, ((x.__arrayOfChars, arr)))
      case x: runtime.ArrayCharSequence => assert(x.xs eq arr, ((x.xs, arr)))
      case x                            => assert(false, x)
    }

    0 until chars.length foreach { i =>
      println("sub(%s, %s) == '%s'".format(i, chars.length, chars.subSequence(i, chars.length)))
      println("sub(%s, %s) == '%s'".format(0, i, chars.subSequence(0, i)))
    }
    if (chars.length >= 2)
      check(chars.subSequence(1, chars.length - 1))
  }

  def main(args: Array[String]): Unit = {
    while (xs.length > 0) {
      check(xs)
      xs = xs.subSequence(0, xs.length - 1)
    }
  }
}