File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 77}
88
99pub fn (s string) runes () []rune {
10- mut runes := []rune {}
11- for i := 0 ; i < s.len; i++ {
12- mut r := rune (`0` )
13- #r = new rune(s.str[i.val].charCodeAt())
14- runes << r
15- }
16- return runes
10+ ret := JS.makeEmptyArray ()
11+ #for (r of s.str) array_push(ret,new rune(r),false);
12+
13+ return ret
1714}
1815
1916pub fn (s string) slice (a int , b int ) string {
Original file line number Diff line number Diff line change 1+ fn test_runes () {
2+ // Test basic ASCII + emoji
3+ r1 := 'hello🎅' .runes ()
4+ assert r1 .len == 6
5+ assert r1 [0 ] == `h`
6+ assert r1 [1 ] == `e`
7+ assert r1 [2 ] == `l`
8+ assert r1 [3 ] == `l`
9+ assert r1 [4 ] == `o`
10+ assert r1 [5 ] == `🎅`
11+
12+ // Test empty string
13+ r2 := '' .runes ()
14+ assert r2 .len == 0
15+
16+ // Test single character
17+ r3 := 'A' .runes ()
18+ assert r3 .len == 1
19+ assert r3 [0 ] == `A`
20+
21+ // Test Unicode characters
22+ r4 := 'café' .runes ()
23+ assert r4 .len == 4
24+ assert r4 [0 ] == `c`
25+ assert r4 [1 ] == `a`
26+ assert r4 [2 ] == `f`
27+ assert r4 [3 ] == `é`
28+
29+ // Test multiple emojis
30+ r5 := '🎅🎄🎁' .runes ()
31+ assert r5 .len == 3
32+ assert r5 [0 ] == `🎅`
33+ assert r5 [1 ] == `🎄`
34+ assert r5 [2 ] == `🎁`
35+
36+ // Test mixed ASCII, Unicode and emojis
37+ r6 := 'hello世界🌍' .runes ()
38+ assert r6 .len == 8
39+ assert r6 [0 ] == `h`
40+ assert r6 [1 ] == `e`
41+ assert r6 [2 ] == `l`
42+ assert r6 [3 ] == `l`
43+ assert r6 [4 ] == `o`
44+ assert r6 [5 ] == `世`
45+ assert r6 [6 ] == `界`
46+ assert r6 [7 ] == `🌍`
47+
48+ // Test special characters
49+ r7 := '\n\t ' .runes ()
50+ assert r7 .len == 2
51+ assert r7 [0 ] == `\n `
52+ assert r7 [1 ] == `\t `
53+
54+ // Test mathematical symbols
55+ r8 := 'α+β=γ' .runes ()
56+ assert r8 .len == 5
57+ assert r8 [0 ] == `α`
58+ assert r8 [1 ] == `+`
59+ assert r8 [2 ] == `β`
60+ assert r8 [3 ] == `=`
61+ assert r8 [4 ] == `γ`
62+ }
63+
64+ fn main () {
65+ test_runes ()
66+ }
You can’t perform that action at this time.
0 commit comments