summary refs log tree commit diff stats
path: root/tests/stdlib
diff options
context:
space:
mode:
authorflywind <xzsflywind@gmail.com>2021-04-07 20:17:48 +0800
committerGitHub <noreply@github.com>2021-04-07 14:17:48 +0200
commit834d5641e88b144c1cf94fa13f567b0a2acda977 (patch)
tree66acec11a5b1cb4af7a3ad6bc6df68d9581a7e4a /tests/stdlib
parent939df8cbdaf8b65966c60b4e368ba317cf4d194f (diff)
downloadNim-834d5641e88b144c1cf94fa13f567b0a2acda977.tar.gz
use sink and lent in deques (#17661)
* use sink and lent in deques

* Update lib/pure/collections/deques.nim

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>

Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
Diffstat (limited to 'tests/stdlib')
-rw-r--r--tests/stdlib/tdeques.nim53
1 files changed, 51 insertions, 2 deletions
diff --git a/tests/stdlib/tdeques.nim b/tests/stdlib/tdeques.nim
index 99208d4cf..03e951fce 100644
--- a/tests/stdlib/tdeques.nim
+++ b/tests/stdlib/tdeques.nim
@@ -1,8 +1,11 @@
 discard """
-  targets: "c js"
+  matrix: "--gc:refc; --gc:orc"
+  targets: "c cpp js"
 """
 
 import std/deques
+from std/sequtils import toSeq
+
 
 block:
   proc index(self: Deque[int], idx: Natural): int =
@@ -125,7 +128,7 @@ block:
   foo(1, 5)
   foo(3, 2)
 
-import sets
+import std/sets
 
 block t13310:
   proc main() =
@@ -137,3 +140,49 @@ block t13310:
 
   static:
     main()
+
+
+proc main() =
+  block:
+    let a = [10, 20, 30].toDeque
+    doAssert toSeq(a.pairs) == @[(0, 10), (1, 20), (2, 30)]
+
+  block:
+    let q = [7, 9].toDeque
+    doAssert 7 in q
+    doAssert q.contains(7)
+    doAssert 8 notin q
+
+  block:
+    let a = [10, 20, 30, 40, 50].toDeque
+    doAssert $a == "[10, 20, 30, 40, 50]"
+    doAssert a.peekFirst == 10
+    doAssert len(a) == 5
+
+  block:
+    let a = [10, 20, 30, 40, 50].toDeque
+    doAssert $a == "[10, 20, 30, 40, 50]"
+    doAssert a.peekLast == 50
+    doAssert len(a) == 5
+
+  block:
+    var a = [10, 20, 30, 40, 50].toDeque
+    doAssert $a == "[10, 20, 30, 40, 50]"
+    doAssert a.popFirst == 10
+    doAssert $a == "[20, 30, 40, 50]"
+
+  block:
+    var a = [10, 20, 30, 40, 50].toDeque
+    doAssert $a == "[10, 20, 30, 40, 50]"
+    doAssert a.popLast == 50
+    doAssert $a == "[10, 20, 30, 40]"
+
+  block:
+    var a = [10, 20, 30, 40, 50].toDeque
+    doAssert $a == "[10, 20, 30, 40, 50]"
+    clear(a)
+    doAssert len(a) == 0
+
+
+static: main()
+main()