import std/unittest import utils/str suite "utils/str": test "safeDelete": let t = "abc" check(t.safeDelete(0..0) == "bc") 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)