aboutsummaryrefslogtreecommitdiff
path: root/tests/run/seqlike-kmp.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run/seqlike-kmp.scala')
-rw-r--r--tests/run/seqlike-kmp.scala32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/run/seqlike-kmp.scala b/tests/run/seqlike-kmp.scala
new file mode 100644
index 000000000..af39fda9a
--- /dev/null
+++ b/tests/run/seqlike-kmp.scala
@@ -0,0 +1,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)
+ }
+}