diff options
Diffstat (limited to 'tests/stdlib/tropes.nim')
-rw-r--r-- | tests/stdlib/tropes.nim | 137 |
1 files changed, 83 insertions, 54 deletions
diff --git a/tests/stdlib/tropes.nim b/tests/stdlib/tropes.nim index 0c95d5c5f..5a9150a33 100644 --- a/tests/stdlib/tropes.nim +++ b/tests/stdlib/tropes.nim @@ -1,73 +1,102 @@ -import ropes +discard """ + targets: "c js" +""" +import std/ropes -block: - let r: Rope = nil - doAssert r[0] == '\0' +template main() = + block: + let r: Rope = nil + doAssert r[0] == '\0' + doAssert $r == "" -block: - var - r1 = rope("Hello") - r2 = rope("Nim-Lang") + block: + var + r1 = rope("Hello, ") + r2 = rope("Nim-Lang") - let r = r1 & r2 - let s = $r - for i in 0 ..< r.len: - doAssert r[i] == s[i] + 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' + doAssert r[66] == '\0' -block: - let r = rope("Hello, Nim-Lang") + block: + let r = rope("Hello, Nim-Lang") - let s = $r - for i in 0 ..< r.len: - doAssert r[i] == s[i] + let s = $r + doAssert s == "Hello, Nim-Lang" + for i in 0 ..< r.len: + doAssert r[i] == s[i] - doAssert r[66] == '\0' + 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") + 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 - for i in 0 ..< r.len: - doAssert r[i] == s[i] + 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' + doAssert r[66] == '\0' -block: - var r: Rope - r.add rope("My Conquest") - r.add rope(" is ") - r.add rope("the Sea of Stars") + block: + var r: Rope + r.add rope("My Conquest") + r.add rope(" is ") + r.add rope("the Sea of Stars") - let s = $r - for i in 0 ..< r.len: - doAssert r[i] == s[i] + 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' + doAssert r[66] == '\0' -block: - var r: Rope - r.add rope("My Conquest") - r.add rope(" is ") - r.add rope("the Sea of Stars") + block: + var r: Rope + r.add rope("My Conquest") + r.add rope(" is ") + r.add rope("the Sea of Stars") - var i: int - for item in r: - doAssert r[i] == item - inc i + doAssert $r == "My Conquest is the Sea of Stars" - doAssert r[66] == '\0' + var i: int + for item in r: + doAssert r[i] == item + inc i -block: - let r1 = "$1 $2 $3" % [rope("Nim"), rope("is"), rope("a great language")] - doAssert $r1 == "Nim is a great language" + doAssert r[66] == '\0' - let r2 = "$# $# $#" % [rope("Nim"), rope("is"), rope("a great language")] - doAssert $r2 == "Nim is a great language" + 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() |