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)
}
}
|