| 1 | fn 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 | |
| 16 | fn test_ascii() { |
| 17 | check('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789') |
| 18 | } |
| 19 | |
| 20 | fn test_mixed() { |
| 21 | check('abc,あいうえお,привет,❄☕❀💰') |
| 22 | } |
| 23 | |
| 24 | fn 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 | |