mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
string: add more test cases
This commit is contained in:
parent
7705281459
commit
e4de1e1e89
@ -543,7 +543,7 @@ pub fn (s string) substr(start, end int) string {
|
||||
}
|
||||
|
||||
pub fn (s string) index_old(p string) int {
|
||||
if p.len > s.len {
|
||||
if p.len > s.len || p.len == 0 {
|
||||
return -1
|
||||
}
|
||||
mut i := 0
|
||||
@ -561,7 +561,7 @@ pub fn (s string) index_old(p string) int {
|
||||
}
|
||||
|
||||
pub fn (s string) index(p string) ?int {
|
||||
if p.len > s.len {
|
||||
if p.len > s.len || p.len == 0 {
|
||||
return none
|
||||
}
|
||||
mut i := 0
|
||||
@ -620,7 +620,7 @@ pub fn (s string) index_any(chars string) int {
|
||||
}
|
||||
|
||||
pub fn (s string) last_index(p string) ?int {
|
||||
if p.len > s.len {
|
||||
if p.len > s.len || p.len == 0 {
|
||||
return none
|
||||
}
|
||||
mut i := s.len - p.len
|
||||
@ -1199,8 +1199,8 @@ pub fn (s []string) join_lines() string {
|
||||
|
||||
// reverse will return a new reversed string.
|
||||
pub fn (s string) reverse() string {
|
||||
if s.len == 0 {
|
||||
return ''
|
||||
if s.len == 0 || s.len == 1 {
|
||||
return s
|
||||
}
|
||||
mut res := string{
|
||||
len: s.len
|
||||
|
@ -355,16 +355,22 @@ fn test_upper() {
|
||||
assert s.to_upper() == 'HAVE A NICE DAY!'
|
||||
s = 'hi'
|
||||
assert s.to_upper() == 'HI'
|
||||
|
||||
}
|
||||
|
||||
fn test_left_right() {
|
||||
s := 'ALOHA'
|
||||
assert s.left(3) == 'ALO'
|
||||
assert s.left(0) == ''
|
||||
assert s.left(8) == s
|
||||
assert s.right(3) == 'HA'
|
||||
assert s.right(6) == ''
|
||||
assert s[3..] == 'HA'
|
||||
u := s.ustring()
|
||||
assert u.left(3) == 'ALO'
|
||||
assert u.left(0) == ''
|
||||
assert s.left(8) == s
|
||||
assert u.right(3) == 'HA'
|
||||
assert u.right(6) == ''
|
||||
}
|
||||
|
||||
fn test_contains() {
|
||||
@ -439,20 +445,33 @@ fn test_trim_right() {
|
||||
assert s.trim_right('na') == 'b'
|
||||
}
|
||||
|
||||
fn test_all_before() {
|
||||
s := 'fn hello fn'
|
||||
assert s.all_before(' ') == 'fn'
|
||||
assert s.all_before('2') == s
|
||||
assert s.all_before('') == s
|
||||
}
|
||||
|
||||
fn test_all_before_last() {
|
||||
s := 'fn hello fn'
|
||||
assert s.all_before_last(' ') == 'fn hello'
|
||||
assert s.all_before_last('2') == s
|
||||
assert s.all_before_last('') == s
|
||||
}
|
||||
|
||||
fn test_all_after() {
|
||||
s := 'fn hello'
|
||||
q := s.all_after('fn ')
|
||||
assert q == 'hello'
|
||||
assert s.all_after('fn ') == 'hello'
|
||||
assert s.all_after('test') == s
|
||||
assert s.all_after('') == s
|
||||
}
|
||||
|
||||
fn test_reverse() {
|
||||
s := 'hello'
|
||||
assert s.reverse() == 'olleh'
|
||||
t := ''
|
||||
assert t.reverse() == t
|
||||
assert 'hello'.reverse() == 'olleh'
|
||||
assert ''.reverse() == ''
|
||||
assert 'a'.reverse() == 'a'
|
||||
}
|
||||
|
||||
|
||||
struct Foo {
|
||||
bar int
|
||||
mut:
|
||||
@ -575,9 +594,20 @@ fn test_ustring_count() {
|
||||
assert (a.count('a'.ustring())) == 0
|
||||
}
|
||||
|
||||
fn test_limit() {
|
||||
s := 'hello'
|
||||
assert s.limit(2) == 'he'
|
||||
assert s.limit(9) == s
|
||||
assert s.limit(0) == ''
|
||||
// assert s.limit(-1) == ''
|
||||
}
|
||||
|
||||
fn test_repeat() {
|
||||
s := 'V! '
|
||||
assert s.repeat(5) == 'V! V! V! V! V! '
|
||||
assert s.repeat(1) == s
|
||||
assert s.repeat(0) == s
|
||||
assert s.repeat(-1) == s
|
||||
}
|
||||
|
||||
fn test_raw() {
|
||||
|
Loading…
Reference in New Issue
Block a user