summary refs log tree commit diff stats
path: root/tests/collections/tindexby.nim
blob: 88c0b263e984e4f4fa173c2f311226fcada06ec0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import tables

doAssert indexBy(newSeq[int](), proc(x: int):int = x) == initTable[int, int](), "empty int table"

var tbl1 = initTable[int, int]()
tbl1.add(1,1)
tbl1.add(2,2)
doAssert indexBy(@[1,2], proc(x: int):int = x) == tbl1, "int table"

type
  TElem = object
    foo: int
    bar: string

let
  elem1 = TElem(foo: 1, bar: "bar")
  elem2 = TElem(foo: 2, bar: "baz")

var tbl2 = initTable[string, TElem]()
tbl2.add("bar", elem1)
tbl2.add("baz", elem2)
doAssert indexBy(@[elem1,elem2], proc(x: TElem): string = x.bar) == tbl2, "element table"