add strbasics.strip (#16280)
This commit is contained in:
parent
46bd222c89
commit
3f38f8fbb7
4 changed files with 226 additions and 0 deletions
126
tests/stdlib/tstrbasics.nim
Normal file
126
tests/stdlib/tstrbasics.nim
Normal file
|
|
@ -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()
|
||||
Loading…
Add table
Add a link
Reference in a new issue