Files
Nim/tests/stdlib/tropes.nim
ringabout 3d2f0e2c7c make more standard libraries work with nimPreviewSlimSystem (#20343)
* make more standard libraries work with `nimPreviewSlimSystem`

* typo

* part two

* Delete specutils.nim

* fixes more tests

* more fixes

* fixes tests

* fixes three more tests

* add formatfloat import

* fix

* last
2022-09-27 20:06:23 +02:00

104 lines
1.9 KiB
Nim

discard """
targets: "c js"
"""
import std/ropes
import std/assertions
template main() =
block:
let r: Rope = nil
doAssert r[0] == '\0'
doAssert $r == ""
block:
var
r1 = rope("Hello, ")
r2 = rope("Nim-Lang")
let r = r1 & r2
let s = $r
doAssert s == "Hello, Nim-Lang"
for i in 0 ..< r.len:
doAssert r[i] == s[i]
doAssert r[66] == '\0'
block:
let r = rope("Hello, Nim-Lang")
let s = $r
doAssert s == "Hello, Nim-Lang"
for i in 0 ..< r.len:
doAssert r[i] == s[i]
doAssert r[66] == '\0'
block:
var r: Rope
r.add rope("Nim ")
r.add rope("is ")
r.add rope("a ")
r.add rope("great ")
r.add rope("language")
let s = $r
doAssert s == "Nim is a great language"
for i in 0 ..< r.len:
doAssert r[i] == s[i]
doAssert r[66] == '\0'
block:
var r: Rope
r.add rope("My Conquest")
r.add rope(" is ")
r.add rope("the Sea of Stars")
let s = $r
doAssert s == "My Conquest is the Sea of Stars"
for i in 0 ..< r.len:
doAssert r[i] == s[i]
doAssert r[66] == '\0'
block:
var r: Rope
r.add rope("My Conquest")
r.add rope(" is ")
r.add rope("the Sea of Stars")
doAssert $r == "My Conquest is the Sea of Stars"
var i: int
for item in r:
doAssert r[i] == item
inc i
doAssert r[66] == '\0'
block:
let r1 = "$1 $2 $3" % [rope("Nim"), rope("is"), rope("a great language")]
doAssert $r1 == "Nim is a great language"
let r2 = "$# $# $#" % [rope("Nim"), rope("is"), rope("a great language")]
doAssert $r2 == "Nim is a great language"
block: # `[]`
let r1 = rope("Hello, Nim!")
doAssert r1[-2] == '\0'
doAssert r1[0] == 'H'
doAssert r1[7] == 'N'
doAssert r1[22] == '\0'
let r2 = rope("Hello") & rope(", Nim!")
doAssert r2[-2] == '\0'
doAssert r2[0] == 'H'
doAssert r2[7] == 'N'
doAssert r2[22] == '\0'
static: main()
main()