summary refs log tree commit diff stats
path: root/tests/iter/titer10.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2016-01-05 15:39:49 +0100
committerAndreas Rumpf <rumpf_a@web.de>2016-01-05 15:39:49 +0100
commit4d10937a30798fe41def9bf5c462d2675c872947 (patch)
tree57d316f7a176b285c1831d0f3e975d50329a8759 /tests/iter/titer10.nim
parentbb8b1c3b57ff56ee2c90d366bf453c066541bc11 (diff)
downloadNim-4d10937a30798fe41def9bf5c462d2675c872947.tar.gz
fixes regressions
Diffstat (limited to 'tests/iter/titer10.nim')
-rw-r--r--tests/iter/titer10.nim51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/iter/titer10.nim b/tests/iter/titer10.nim
new file mode 100644
index 000000000..6a6afc780
--- /dev/null
+++ b/tests/iter/titer10.nim
@@ -0,0 +1,51 @@
+discard """
+  output: '''3
+2
+5
+1
+@[@[0, 0], @[0, 1]]
+@[@[0, 0], @[0, 1]]
+@[@[2, 2], @[2, 3]]
+@[@[2, 2], @[2, 3]]'''
+"""
+
+when true:
+  # bug #2604
+
+  import algorithm
+
+  iterator byDistance*[int]( ints: openArray[int], base: int ): int =
+      var sortable = @ints
+
+      sortable.sort do (a, b: int) -> int:
+          result = cmp( abs(base - a), abs(base - b) )
+
+      for val in sortable:
+          yield val
+
+  when isMainModule:
+    proc main =
+      for val in byDistance([2, 3, 5, 1], 3):
+          echo val
+    main()
+
+when true:
+  # bug #1527
+
+  import sequtils
+
+  let thread = @[@[0, 0],
+                 @[0, 1],
+                 @[2, 2],
+                 @[2, 3]]
+
+  iterator threadUniqs(seq1: seq[seq[int]]): seq[seq[int]] =
+    for i in 0 .. <seq1.len:
+      block:
+        let i = i
+        yield seq1.filter do (x: seq[int]) -> bool: x[0] == seq1[i][0]
+  proc main2 =
+    for uniqs in thread.threadUniqs:
+      echo uniqs
+
+  main2()