summary refs log tree commit diff stats
path: root/tests/stdlib/tropes.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/stdlib/tropes.nim')
-rw-r--r--tests/stdlib/tropes.nim66
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'