diff options
Diffstat (limited to 'tests/misc/tpos.nim')
-rw-r--r-- | tests/misc/tpos.nim | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/misc/tpos.nim b/tests/misc/tpos.nim new file mode 100644 index 000000000..3d72536dd --- /dev/null +++ b/tests/misc/tpos.nim @@ -0,0 +1,35 @@ +discard """ + file: "tpos.nim" + output: "6" +""" +# test this particular function + +proc mypos(sub, s: string, start: int = 0): int = + var + i, j, M, N: int + M = sub.len + N = s.len + i = start + j = 0 + if i >= N: + result = -1 + else: + while True: + if s[i] == sub[j]: + Inc(i) + Inc(j) + else: + i = i - j + 1 + j = 0 + if (j >= M) or (i >= N): break + if j >= M: + result = i - M + else: + result = -1 + +var sub = "hello" +var s = "world hello" +write(stdout, mypos(sub, s)) +#OUT 6 + + |