diff options
author | flywind <43030857+xflywind@users.noreply.github.com> | 2020-11-23 18:27:09 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-23 10:27:09 +0000 |
commit | ab2c082cb3e9e411571fa0936776762bc0c8fd94 (patch) | |
tree | 93b0d9279491a0bcef241108f31e70a587e17f2e /tests/stdlib | |
parent | 6a37c0682ad30701aeef22e146d5cd5bff33b830 (diff) | |
download | Nim-ab2c082cb3e9e411571fa0936776762bc0c8fd94.tar.gz |
fix rope index (#16100)
* fix rope index * add testcase
Diffstat (limited to 'tests/stdlib')
-rw-r--r-- | tests/stdlib/tropes.nim | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/stdlib/tropes.nim b/tests/stdlib/tropes.nim new file mode 100644 index 000000000..9678e26c3 --- /dev/null +++ b/tests/stdlib/tropes.nim @@ -0,0 +1,66 @@ +import ropes + + +block: + let r: Rope = nil + doAssert r[0] == '\0' + +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] + + doAssert r[66] == '\0' + +block: + let r = rope("Hello, Nim-Lang") + + let s = $r + 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 + 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 + 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") + + var i: int + for item in r: + doAssert r[i] == item + inc i + + doAssert r[66] == '\0' |