23 lines
563 B
Nim
23 lines
563 B
Nim
import std/unittest
|
|
import utils/str
|
|
|
|
suite "utils/str":
|
|
test "safeDelete":
|
|
let t = "abc"
|
|
check(t.safeDelete(0..0) == "abc")
|
|
|
|
check(t.safeDelete(0..1) == "c")
|
|
check(t.safeDelete(1..1) == "ac")
|
|
check(t.safeDelete(2..2) == "ab")
|
|
|
|
# Out of bounds slicing
|
|
check(t.safeDelete(0..10) == "")
|
|
check(t.safeDelete(10..1) == t)
|
|
check(t.safeDelete(3..3) == t)
|
|
check(t.safeDelete(3..(-1)) == t)
|
|
|
|
test "findAndDelete":
|
|
let t = "foo\nbar"
|
|
check(t.deleteAfterNewline() == "foo")
|
|
check(t.deleteAfterNewline(start = 4) == t)
|