diff options
Diffstat (limited to 'tests/collections')
-rw-r--r-- | tests/collections/tapply.nim | 7 | ||||
-rw-r--r-- | tests/collections/tmapit.nim | 28 |
2 files changed, 35 insertions, 0 deletions
diff --git a/tests/collections/tapply.nim b/tests/collections/tapply.nim new file mode 100644 index 000000000..403321ce1 --- /dev/null +++ b/tests/collections/tapply.nim @@ -0,0 +1,7 @@ +import sequtils + +var x = @[1, 2, 3] +x.apply(proc(x: var int) = x = x+10) +x.apply(proc(x: int): int = x+100) +x.applyIt(it+5000) +doAssert x == @[5111, 5112, 5113] diff --git a/tests/collections/tmapit.nim b/tests/collections/tmapit.nim new file mode 100644 index 000000000..067561882 --- /dev/null +++ b/tests/collections/tmapit.nim @@ -0,0 +1,28 @@ +import sequtils + +var x = @[1, 2, 3] +# This mapIt call will run with preallocation because ``len`` is available. +var y = x.mapIt($(it+10)) +doAssert y == @["11", "12", "13"] + +type structureWithoutLen = object + a: array[5, int] + +iterator items(s: structureWithoutLen): int {.inline.} = + yield s.a[0] + yield s.a[1] + yield s.a[2] + yield s.a[3] + yield s.a[4] + +var st: structureWithoutLen +st.a[0] = 0 +st.a[1] = 1 +st.a[2] = 2 +st.a[3] = 3 +st.a[4] = 4 + +# this will run without preallocating the result +# since ``len`` is not available +var r = st.mapIt($(it+10)) +doAssert r == @["10", "11", "12", "13", "14"] |