summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorDaniil Yarancev <21169548+Yardanico@users.noreply.github.com>2017-09-16 23:54:32 +0300
committerAndreas Rumpf <rumpf_a@web.de>2017-09-16 22:54:32 +0200
commitae7fe5087f3e4f6ddc572254ae3ddcc8324099f1 (patch)
treeb88ec2af2620a8e2a3325dc7c64657b6594edb13 /tests
parent5b8f33a9058b78e2e714ce341107ac52d98dcc5f (diff)
downloadNim-ae7fe5087f3e4f6ddc572254ae3ddcc8324099f1.tar.gz
Closes #6083, closes #6086, closes #6379 (#6392)
Diffstat (limited to 'tests')
-rw-r--r--tests/vm/tvmmisc.nim66
1 files changed, 58 insertions, 8 deletions
diff --git a/tests/vm/tvmmisc.nim b/tests/vm/tvmmisc.nim
index b7112b099..42a58fa8f 100644
--- a/tests/vm/tvmmisc.nim
+++ b/tests/vm/tvmmisc.nim
@@ -1,16 +1,66 @@
-
-
 # bug #4462
 import macros
 
-proc foo(t: typedesc) {.compileTime.} =
-  echo getType(t).treeRepr
+block:
+  proc foo(t: typedesc) {.compileTime.} =
+    assert sameType(getType(t), getType(int))
 
-static:
-  foo(int)
+  static:
+    foo(int)
 
 # #4412
-proc default[T](t: typedesc[T]): T {.inline.} = discard
+block:
+  proc default[T](t: typedesc[T]): T {.inline.} = discard
+
+  static:
+    var x = default(type(0))
 
+# #6379
 static:
-  var x = default(type(0))
+  import algorithm
+  
+  var numArray = [1, 2, 3, 4, -1]
+  numArray.sort(cmp)
+  assert numArray == [-1, 1, 2, 3, 4]
+
+  var str = "cba"
+  str.sort(cmp)
+  assert str == "abc"
+
+# #6086
+import math, sequtils, future
+
+block:
+  proc f: int =
+    toSeq(10..<10_000).filter(
+      a => a == ($a).map(
+        d => (d.ord-'0'.ord).int^4
+      ).sum
+    ).sum
+
+  var a = f()
+  const b = f()
+
+  assert a == b
+
+block:
+  proc f(): seq[char] =
+    result = "hello".map(proc(x: char): char = x)
+
+  var runTime = f()
+  const compTime = f()
+  assert runTime == compTime
+
+# #6083
+block:
+  proc abc(): seq[int] =
+    result = @[0]
+    result.setLen(2)
+    var tmp: int
+      
+    for i in 0 .. <2:
+      inc tmp
+      result[i] = tmp
+
+  const fact1000 = abc()
+  assert fact1000 == @[1, 2]