57 lines
		
	
	
		
			975 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			975 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'
 | 
						||
	}
 | 
						||
}
 | 
						||
 | 
						||
fn test_to_wide_latin() {
 | 
						||
	s := 'abc 123'
 | 
						||
	w := s.to_wide()
 | 
						||
	unsafe {
 | 
						||
		assert w[0] == 97
 | 
						||
		assert w[1] == 98
 | 
						||
		assert w[2] == 99
 | 
						||
		assert w[3] == 32
 | 
						||
		assert w[4] == 49
 | 
						||
		assert w[5] == 50
 | 
						||
		assert w[6] == 51
 | 
						||
		assert w[7] == 0
 | 
						||
	}
 | 
						||
}
 | 
						||
 | 
						||
fn test_to_wide_cyrillic() {
 | 
						||
	s := 'Проба'
 | 
						||
	w := s.to_wide()
 | 
						||
	unsafe {
 | 
						||
		assert w[0] == 1055
 | 
						||
		assert w[1] == 1088
 | 
						||
		assert w[2] == 1086
 | 
						||
		assert w[3] == 1073
 | 
						||
		assert w[4] == 1072
 | 
						||
		assert w[5] == 0
 | 
						||
	}
 | 
						||
}
 |