string_test.v
							parent
							
								
									cf6aa16ee4
								
							
						
					
					
						commit
						6b941e5e70
					
				|  | @ -0,0 +1,246 @@ | |||
| fn test_add() { | ||||
| 	mut a := 'a' | ||||
| 	a += 'b' | ||||
| 	assert a.eq('ab') | ||||
| 	a = 'a' | ||||
| 	for i := 1; i < 1000; i++ { | ||||
| 		a += 'b' | ||||
| 	} | ||||
| 	assert a.len == 1000 | ||||
| 	assert a.ends_with('bbbbb') | ||||
| 	a += '123' | ||||
| 	assert a.ends_with('3') | ||||
| } | ||||
| 
 | ||||
| fn test_ends_with() { | ||||
| 	a := 'browser.v' | ||||
| 	assert a.ends_with('.v') | ||||
| } | ||||
| 
 | ||||
| fn test_between() { | ||||
| 	 s := 'hello [man] how you doing' | ||||
| 	assert s.find_between('[', ']') == 'man' | ||||
| } | ||||
| 
 | ||||
| fn test_compare() { | ||||
| 	a := 'Music' | ||||
| 	b := 'src' | ||||
| 	assert b.ge(a) | ||||
| } | ||||
| 
 | ||||
| fn test_sort() { | ||||
| 	mut vals := [ | ||||
| 	'src', 'Music', 'go' | ||||
| 	] | ||||
| 	len := vals.len | ||||
| 	vals.sort() | ||||
| 	assert len == vals.len | ||||
| 	assert vals[0] == 'Music' | ||||
| 	assert vals[1] == 'go' | ||||
| 	assert vals[2] == 'src' | ||||
| } | ||||
| 
 | ||||
| fn test_split() { | ||||
| 	mut s := 'volt/twitch.v:34' | ||||
| 	mut vals := s.split(':') | ||||
| 	assert vals.len == 2 | ||||
| 	assert vals[0]== 'volt/twitch.v' | ||||
| 	assert vals[1]== '34' | ||||
| 	// /////////
 | ||||
| 	s = '2018-01-01z13:01:02' | ||||
| 	vals = s.split('z') | ||||
| 	assert vals.len == 2 | ||||
| 	assert vals[0]=='2018-01-01' | ||||
| 	assert vals[1]== '13:01:02' | ||||
| 	// /////////////
 | ||||
| 	s = '4627a862c3dec29fb3182a06b8965e0025759e18___1530207969___blue' | ||||
| 	vals = s.split('___') | ||||
| 	assert vals.len == 3 | ||||
| 	assert vals[0]== '4627a862c3dec29fb3182a06b8965e0025759e18' | ||||
| 	assert vals[1]=='1530207969' | ||||
| 	assert vals[2]== 'blue' | ||||
| } | ||||
| 
 | ||||
| fn test_trim_space() { | ||||
| 	a := ' a ' | ||||
| 	assert a.trim_space() == 'a' | ||||
| 	code := ' | ||||
| 
 | ||||
| fn main() { | ||||
|         println(2) | ||||
| } | ||||
| 
 | ||||
| ' | ||||
| 	code_clean := 'fn main() { | ||||
|         println(2) | ||||
| }' | ||||
| 	assert code.trim_space() == code_clean | ||||
| } | ||||
| 
 | ||||
| fn test_join() { | ||||
| 	mut strings := [ 'a', 'b', 'c' ] | ||||
| 	mut s := strings.join(' ') | ||||
| 	assert s == 'a b c' | ||||
| 	strings = ['one | ||||
| two ', | ||||
| 	'three!  | ||||
| four!'] | ||||
| 	s = strings.join(' ') | ||||
| 	assert s.contains('one') && s.contains('two ') && s.contains('four') | ||||
| } | ||||
| 
 | ||||
| fn test_clone() { | ||||
| 	mut a := 'a' | ||||
| 	a += 'a' | ||||
| 	a += 'a' | ||||
| 	mut b := a | ||||
| 	mut c := a.clone() | ||||
| 	assert c == a | ||||
| 	assert c == 'aaa' | ||||
| 	assert b == 'aaa' | ||||
| } | ||||
| 
 | ||||
| fn test_replace() { | ||||
| 	a := 'hello man!' | ||||
| 	mut b := a.replace('man', 'world') | ||||
| 	assert b.eq('hello world!') | ||||
| 	b = b.replace('!', '') | ||||
| 	assert b.eq('hello world') | ||||
| 	b = b.replace('h', 'H') | ||||
| 	assert b.eq('Hello world') | ||||
| 	b = b.replace('kek', 'lul') | ||||
| 	assert b.eq('Hello world') | ||||
| 	s := 'hey man how are you' | ||||
| 	assert s.replace('man ', '') == 'hey how are you' | ||||
| 	lol := 'lol lol lol' | ||||
| 	assert lol.replace('lol', 'kek') == 'kek kek kek' | ||||
| 	b = 'oneBtwoBBthree' | ||||
| 	assert b.replace('B', '') == 'onetwothree' | ||||
| 	b = '**char' | ||||
| 	assert b.replace('*char', 'byteptr') == '*byteptr' | ||||
| } | ||||
| 
 | ||||
| fn test_itoa() { | ||||
| 	num := 777 | ||||
| 	assert num.str() == '777' | ||||
| 	big := 7779998 | ||||
| 	assert big.str() == '7779998' | ||||
| 	a := 3 | ||||
| 	assert a.str() == '3' | ||||
| 	b := 5555 | ||||
| 	assert b.str() == '5555' | ||||
| 	zero := 0 | ||||
| 	assert zero.str() == '0' | ||||
| 	neg := -7 | ||||
| 	assert neg.str() == '-7' | ||||
| } | ||||
| 
 | ||||
| fn test_reassign() { | ||||
| 	a := 'hi' | ||||
| 	mut b := a | ||||
| 	b += '!' | ||||
| 	assert a == 'hi' | ||||
| 	assert b == 'hi!' | ||||
| } | ||||
| 
 | ||||
| fn test_runes() { | ||||
| 	s := 'привет' | ||||
| 	assert s.len == 12 | ||||
| 	s2 := 'privet' | ||||
| 	assert s2.len == 6 | ||||
| 	u := s.ustring() | ||||
| 	assert u.len == 6 | ||||
| 	assert s2.substr(1, 4).len == 3 | ||||
| 	assert s2.substr(1, 4) == 'riv' | ||||
| 	assert u.substr(1, 4).len == 6 | ||||
| 	assert u.substr(1, 4) == 'рив' | ||||
| 	assert s2.substr(1, 2) == 'r' | ||||
| 	assert u.substr(1, 2) == 'р' | ||||
| 	assert s2.ustring().at(1) == 'r' | ||||
| 	assert u.at(1) == 'р' | ||||
| 	// ///////
 | ||||
| 	first := u.at(0) | ||||
| 	last := u.at(u.len - 1) | ||||
| 	assert first.len == 2 | ||||
| 	assert last.len == 2 | ||||
| } | ||||
| 
 | ||||
| fn test_lower() { | ||||
| 	mut s := 'A' | ||||
| 	assert s.to_lower() == 'a' | ||||
| 	assert s.to_lower().len == 1 | ||||
| 	s = 'HELLO' | ||||
| 	assert s.to_lower() == 'hello' | ||||
| 	assert s.to_lower().len == 5 | ||||
| 	s = 'Aloha' | ||||
| 	assert s.to_lower() == 'aloha' | ||||
| 	s = 'Have A nice Day!' | ||||
| 	assert s.to_lower() == 'have a nice day!' | ||||
| 	s = 'hi' | ||||
| 	assert s.to_lower() == 'hi' | ||||
| } | ||||
| 
 | ||||
| fn test_left_right() { | ||||
| 	s := 'ALOHA' | ||||
| 	assert s.left(3) == 'ALO' | ||||
| 	assert s.right(3) == 'HA' | ||||
| 	u := s.ustring() | ||||
| 	assert u.left(3) == 'ALO' | ||||
| 	assert u.right(3) == 'HA' | ||||
| } | ||||
| 
 | ||||
| fn test_contains() { | ||||
| 	s := 'view.v' | ||||
| 	assert s.contains('vi') | ||||
| 	assert !s.contains('random') | ||||
| } | ||||
| 
 | ||||
| fn test_arr_contains() { | ||||
| 	a := ['a', 'b', 'c'] | ||||
| 	assert a.contains('b') | ||||
| 	ints := [1, 2, 3] | ||||
| 	assert ints.contains(2) | ||||
| } | ||||
| 
 | ||||
| fn test_to_num() { | ||||
| 	s := '7' | ||||
| 	assert s.to_i() == 7 | ||||
| 	f := '71.5 hasdf' | ||||
| 	assert f.to_float() == 71.5 | ||||
| 	b := 1.52345 | ||||
| 	mut a := '${b:.03f}' | ||||
| 	assert a == '1.523' | ||||
| 	num := 7 | ||||
| 	a = '${num:03d}' | ||||
| 	vals := ['9'] | ||||
| 	assert vals[0].to_i() == 9 | ||||
| } | ||||
| 
 | ||||
| fn test_hash() { | ||||
| 	s := '10000' | ||||
| 	assert s.hash() == 46730161 | ||||
| 	s2 := '24640' | ||||
| 	assert s2.hash() == 47778736 | ||||
| 	s3 := 'Content-Type' | ||||
| 	assert s3.hash() == 949037134 | ||||
| 	s4 := 'bad_key' | ||||
| 	assert s4.hash() == -346636507 | ||||
| 	s5 := '24640' | ||||
| 	// From a map collision test
 | ||||
| 	assert s5.hash() % ((1 << 20) -1) == s.hash() % ((1 << 20) -1) | ||||
| 	assert s5.hash() % ((1 << 20) -1) == 592861 | ||||
| } | ||||
| 
 | ||||
| fn test_trim_left() { | ||||
| 	mut s := 'module main' | ||||
| 	assert s.trim_left(' ') == 'module main' | ||||
| 	s = ' module main' | ||||
| 	assert s.trim_left(' ') == 'module main' | ||||
| } | ||||
| 
 | ||||
| fn test_all_after() { | ||||
| 	s := 'fn hello' | ||||
| 	q := s.all_after('fn ') | ||||
| 	assert q == 'hello' | ||||
| } | ||||
| 
 | ||||
		Loading…
	
		Reference in New Issue