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
 | ||
| 	}
 | ||
| }
 |