v2 / vlib / v / gen / js / tests / string.v
66 lines · 58 sloc · 1.25 KB · 55eccf6abe4c8a70a27c239ebe77bdad797d89c5
Raw
1fn 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
64fn main() {
65 test_runes()
66}
67