diff options
author | flywind <xzsflywind@gmail.com> | 2021-02-24 03:22:47 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-24 10:22:47 +0100 |
commit | 3f38f8fbb7c0dd3af641961ed98ef0e67ea91f3c (patch) | |
tree | f0ad53e014bcfb3bc321287c341198c9d349c9a5 /tests | |
parent | 46bd222c89c57217d1d4738f84f52de94f092c1d (diff) | |
download | Nim-3f38f8fbb7c0dd3af641961ed98ef0e67ea91f3c.tar.gz |
add strbasics.strip (#16280)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/stdlib/tstrbasics.nim | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/tests/stdlib/tstrbasics.nim b/tests/stdlib/tstrbasics.nim new file mode 100644 index 000000000..4dd232351 --- /dev/null +++ b/tests/stdlib/tstrbasics.nim @@ -0,0 +1,126 @@ +discard """ + targets: "c cpp js" +""" + +import std/[strbasics, sugar] + + +proc teststrip() = + var a = " vhellov " + strip(a) + doAssert a == "vhellov" + + a = " vhellov " + a.strip(leading = false) + doAssert a == " vhellov" + + a = " vhellov " + a.strip(trailing = false) + doAssert a == "vhellov " + + a.strip() + a.strip(chars = {'v'}) + doAssert a == "hello" + + a = " vhellov " + a.strip() + a.strip(leading = false, chars = {'v'}) + doAssert a == "vhello" + + var c = "blaXbla" + c.strip(chars = {'b', 'a'}) + doAssert c == "laXbl" + c = "blaXbla" + c.strip(chars = {'b', 'a', 'l'}) + doAssert c == "X" + + block: + var a = "xxxxxx" + a.strip(chars={'x'}) + doAssert a.len == 0 + + block: + var a = "x" + a.strip(chars={'x'}) + doAssert a.len == 0 + + block: + var a = "x" + a.strip(chars={'1'}) + doAssert a.len == 1 + + block: + var a = "" + a.strip(chars={'x'}) + doAssert a.len == 0 + + block: + var a = "xxx xxx" + a.strip(chars={'x'}) + doAssert a == " " + + block: + var a = "xxx wind" + a.strip(chars={'x'}) + doAssert a == " wind" + + block: + var a = "xxx iii" + a.strip(chars={'i'}) + doAssert a == "xxx " + + block: + var a = "xxx iii" + doAssert a.dup(strip(chars = {'i'})) == "xxx " + doAssert a.dup(strip(chars = {' '})) == "xxx iii" + doAssert a.dup(strip(chars = {'x'})) == " iii" + doAssert a.dup(strip(chars = {'x', ' '})) == "iii" + doAssert a.dup(strip(chars = {'x', 'i'})) == " " + doAssert a.dup(strip(chars = {'x', 'i', ' '})).len == 0 + + block: + var a = "x i" + doAssert a.dup(strip(chars = {'i'})) == "x " + doAssert a.dup(strip(chars = {' '})) == "x i" + doAssert a.dup(strip(chars = {'x'})) == " i" + doAssert a.dup(strip(chars = {'x', ' '})) == "i" + doAssert a.dup(strip(chars = {'x', 'i'})) == " " + doAssert a.dup(strip(chars = {'x', 'i', ' '})).len == 0 + + block: + var a = "" + doAssert a.dup(strip(chars = {'i'})).len == 0 + doAssert a.dup(strip(chars = {' '})).len == 0 + doAssert a.dup(strip(chars = {'x'})).len == 0 + doAssert a.dup(strip(chars = {'x', ' '})).len == 0 + doAssert a.dup(strip(chars = {'x', 'i'})).len == 0 + doAssert a.dup(strip(chars = {'x', 'i', ' '})).len == 0 + + block: + var a = " " + doAssert a.dup(strip(chars = {'i'})) == " " + doAssert a.dup(strip(chars = {' '})).len == 0 + doAssert a.dup(strip(chars = {'x'})) == " " + doAssert a.dup(strip(chars = {'x', ' '})).len == 0 + doAssert a.dup(strip(chars = {'x', 'i'})) == " " + doAssert a.dup(strip(chars = {'x', 'i', ' '})).len == 0 + + + block: + var a = "Hello, Nim!" + doassert a.dup(setSlice(7 .. 9)) == "Nim" + doAssert a.dup(setSlice(0 .. 0)) == "H" + doAssert a.dup(setSlice(0 .. 1)) == "He" + doAssert a.dup(setSlice(0 .. 10)) == a + doAssert a.dup(setSlice(1 .. 0)).len == 0 + doAssert a.dup(setSlice(20 .. -1)).len == 0 + + + doAssertRaises(AssertionDefect): + discard a.dup(setSlice(-1 .. 1)) + + doAssertRaises(AssertionDefect): + discard a.dup(setSlice(1 .. 11)) + +static: teststrip() +teststrip() |