summary refs log tree commit diff stats
path: root/tests/misc/tpos.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2014-04-09 22:56:18 +0200
committerAndreas Rumpf <rumpf_a@web.de>2014-04-09 22:56:18 +0200
commita690e7b26772a9bb8367acb451a6250449e666ab (patch)
tree9aca0024db9c75970c4dfac10c55f1961c21ca25 /tests/misc/tpos.nim
parentd0f013477b16520eefff69b861d2f26744463880 (diff)
parenta157985e01cbf80383d5e50836072d70678c9de3 (diff)
downloadNim-a690e7b26772a9bb8367acb451a6250449e666ab.tar.gz
Merge pull request #1075 from flaviut/inlinedocs
Add some documentations and code examples in system
Diffstat (limited to 'tests/misc/tpos.nim')
-rw-r--r--tests/misc/tpos.nim35
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

+
+