v2 / vlib / builtin / string_iterator_test.v
32 lines · 29 sloc · 699 bytes · 194db24829869ce040d149955725bee7097c8b13
Raw
1fn check(s string) {
2 srunes := s.runes()
3 println('')
4 println('> s: ${s}')
5 println('> s.len: ${s.len:-4}')
6 println('> srunes.len: ${srunes.len:-4}')
7 mut itera_ := []rune{}
8 for r in s.runes_iterator() {
9 itera_ << r
10 }
11 println('> srunes: ${srunes}')
12 println('> iterated: ${itera_}')
13 assert srunes == itera_
14}
15
16fn test_ascii() {
17 check('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789')
18}
19
20fn test_mixed() {
21 check('abc,あいうえお,привет,❄☕❀💰')
22}
23
24fn test_emoji_and_for_i_r_in_iterator() {
25 s := '❄☕❀💰'
26 check(s)
27 srunes := s.runes()
28 for i, r in s.runes_iterator() {
29 eprintln('> i: ${i} | r: ${r}')
30 assert srunes[i] == r
31 }
32}
33