29 lines
		
	
	
		
			529 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			529 B
		
	
	
	
		
			V
		
	
	
fn test_utf8_char_len() {
 | 
						|
	assert utf8_char_len(`a`) == 1
 | 
						|
	println(utf8_char_len(`a`))
 | 
						|
	s := 'п'
 | 
						|
	assert utf8_char_len(s[0]) == 2
 | 
						|
}
 | 
						|
 | 
						|
fn test_utf8_wide_char() {
 | 
						|
	$if msvc {
 | 
						|
		// TODO: make this test pass msvc too
 | 
						|
		return
 | 
						|
	}
 | 
						|
	r := `✔`
 | 
						|
	s := '✔'
 | 
						|
	println('r: $r')
 | 
						|
	println('s: $s')
 | 
						|
	rstr := r.str()
 | 
						|
	println('rstr: $rstr')
 | 
						|
	assert utf8_char_len(r) == 1
 | 
						|
	assert utf8_char_len(s[0]) == 3
 | 
						|
	assert s == rstr
 | 
						|
	val := rstr.str
 | 
						|
	unsafe {
 | 
						|
		assert val[0].hex() == 'e2'
 | 
						|
		assert val[1].hex() == '9c'
 | 
						|
		assert val[2].hex() == '94'
 | 
						|
	}
 | 
						|
}
 |