aboutsummaryrefslogtreecommitdiff
path: root/tests/run/seqlike-kmp.scala
blob: af39fda9af80164e797660f32d72737cdee878ae (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
29
30
31
32
object Test {
  val source = 0 to 99
  val idxes = (-1 to 2) ++ (97 to 100)
  def str(xs: Seq[Int]) = xs.mkString("(", ", ", ")")

  def f(tgt: Seq[Int]) = {
    println("indexOfSlice")
    // the first index `>= from` such that...
    for (x <- idxes) {
      val res = source.indexOfSlice(tgt, x)
      println("  %s with idx >= %d = %d".format(str(tgt), x, res))
    }
    // the last index `<= end` such that...
    println("lastIndexOfSlice")
    for (x <- idxes) {
      val res = source.lastIndexOfSlice(tgt, x)
      println("  %s with idx <= %d = %d".format(str(tgt), x, res))
    }
  }

  def g(idx: Int, len: Int) = {
    f(source.slice(idx, idx + len))
  }

  def main(args: Array[String]): Unit = {
    g(97, 1)
    g(97, 2)
    g(97, 3)
    g(98, 2)
    g(99, 1)
  }
}