summary refs log tree commit diff stats
path: root/tests/collections
diff options
context:
space:
mode:
authorRuslan Mustakov <endragor@users.noreply.github.com>2017-03-02 21:31:30 +0700
committerAndreas Rumpf <rumpf_a@web.de>2017-03-02 15:31:30 +0100
commita81247dcbe95eaac8338e478d8837cbcf57a0f3e (patch)
treecf7d86e6e19cf16e9149885a2ac81c4f2f09a2e7 /tests/collections
parente2567e2e03c72929cbdfbf59933b4f35868b9626 (diff)
downloadNim-a81247dcbe95eaac8338e478d8837cbcf57a0f3e.tar.gz
Add compute proc for SharedTable (#5385)
Diffstat (limited to 'tests/collections')
-rw-r--r--tests/collections/ttables.nim26
1 files changed, 25 insertions, 1 deletions
diff --git a/tests/collections/ttables.nim b/tests/collections/ttables.nim
index 0e06bc26f..a2988e841 100644
--- a/tests/collections/ttables.nim
+++ b/tests/collections/ttables.nim
@@ -1,8 +1,9 @@
 discard """
+  cmd: "nim c --threads:on $file"
   output: '''true'''
 """
 
-import hashes, tables
+import hashes, tables, sharedtables
 
 const
   data = {
@@ -211,6 +212,29 @@ block clearCountTableTest:
   t.clear()
   assert t.len() == 0
 
+block withKeyTest:
+  var t = initSharedTable[int, int]()
+  t.withKey(1) do (k: int, v: var int, pairExists: var bool):
+    assert(v == 0)
+    pairExists = true
+    v = 42
+  assert(t.mget(1) == 42)
+  t.withKey(1) do (k: int, v: var int, pairExists: var bool):
+    assert(v == 42)
+    pairExists = false
+  try:
+    discard t.mget(1)
+    assert(false, "KeyError expected")
+  except KeyError:
+    discard
+  t.withKey(2) do (k: int, v: var int, pairExists: var bool):
+    pairExists = false
+  try:
+    discard t.mget(2)
+    assert(false, "KeyError expected")
+  except KeyError:
+    discard
+
 proc orderedTableSortTest() =
   var t = initOrderedTable[string, int](2)
   for key, val in items(data): t[key] = val