From ab2c082cb3e9e411571fa0936776762bc0c8fd94 Mon Sep 17 00:00:00 2001 From: flywind <43030857+xflywind@users.noreply.github.com> Date: Mon, 23 Nov 2020 18:27:09 +0800 Subject: fix rope index (#16100) * fix rope index * add testcase --- tests/stdlib/tropes.nim | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 tests/stdlib/tropes.nim (limited to 'tests/stdlib') 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' -- cgit 1.4.1-2-gfad0