v2 / vlib / v / gen / js / tests / testdata / string.v
200 lines · 197 sloc · 3.9 KB · 94c321c80d81c6a4d0b2d8cdd75f30b428c44d8a
Raw
1struct Foo {
2 bar int
3mut:
4 str string
5}
6
7fn main() {
8 {
9 // test add
10 mut a := 'a'
11 a += 'b'
12 println(a)
13 a = 'a'
14 for i := 1; i < 1000; i++ {
15 a += 'b'
16 }
17 println(a.len)
18 println(a.ends_with('bbbbb'))
19 a += '123'
20 println(a.ends_with('3'))
21 }
22 {
23 // test ends with
24 a := 'browser.v'
25 println(a.ends_with('.v'))
26
27 s := 'V Programming Language'
28 assert s.ends_with('guage') == true
29 assert s.ends_with('Language') == true
30 assert s.ends_with('Programming Language') == true
31 assert s.ends_with('V') == false
32 }
33 {
34 // test between
35 s := 'hello [man] how you doing'
36 println(s.find_between('[', ']'))
37 }
38 {
39 // test compare
40 a := 'Music'
41 b := 'src'
42 println(b >= a)
43 }
44 {
45 // test lt
46 a := ''
47 b := 'a'
48 c := 'a'
49 d := 'b'
50 e := 'aa'
51 f := 'ab'
52
53 assert a < b
54 assert !(b < c)
55 assert c < d
56 assert !(d < e)
57 assert c < e
58 assert e < f
59 }
60 {
61 // test ge
62 a := 'aa'
63 b := 'aa'
64 c := 'ab'
65 d := 'abc'
66 e := 'aaa'
67 assert b >= a
68 assert c >= b
69 assert d >= c
70 assert !(c >= d)
71 assert e >= a
72 }
73 {
74 // test compare strings
75 a := 'aa'
76 b := 'aa'
77 c := 'ab'
78 d := 'abc'
79 e := 'aaa'
80 assert compare_strings(a, b) == 0
81 assert compare_strings(b, c) == -1
82 assert compare_strings(c, d) == -1
83 assert compare_strings(d, e) == 1
84 assert compare_strings(a, e) == -1
85 assert compare_strings(e, a) == 1
86 }
87 {
88 // test sort
89 mut vals := [
90 'arr',
91 'an',
92 'a',
93 'any',
94 ]
95 len := vals.len
96 vals.sort()
97 assert len == vals.len
98 assert vals[0] == 'a'
99 assert vals[1] == 'an'
100 assert vals[2] == 'any'
101 assert vals[3] == 'arr'
102 }
103 {
104 // todo(playX): sort codegen
105 /*// test sort reverse
106 mut vals := [
107 'arr',
108 'an',
109 'a',
110 'any',
111 ]
112 len := vals.len
113 vals.sort(b > a)
114 assert len == vals.len
115 assert vals[0] == 'a'
116 assert vals[1] == 'an'
117 assert vals[2] == 'any'
118 assert vals[3] == 'arr'*/
119 }
120 {
121 // todo: split nth
122 /*
123 a := '1,2,3'
124 assert a.split(',').len == 3
125 assert a.split_nth(',', -1).len == 3
126 assert a.split_nth(',', 0).len == 3
127 assert a.split_nth(',', 1).len == 1
128 assert a.split_nth(',', 2).len == 2
129 assert a.split_nth(',', 10).len == 3
130 b := '1::2::3'
131 assert b.split('::').len == 3
132 assert b.split_nth('::', -1).len == 3
133 assert b.split_nth('::', 0).len == 3
134 assert b.split_nth('::', 1).len == 1
135 assert b.split_nth('::', 2).len == 2
136 assert b.split_nth('::', 10).len == 3
137 c := 'ABCDEF'
138 println(c.split('').len)
139 assert c.split('').len == 6
140 assert c.split_nth('', 3).len == 3
141 assert c.split_nth('BC', -1).len == 2
142 d := ','
143 assert d.split(',').len == 2
144 assert d.split_nth('', 3).len == 1
145 assert d.split_nth(',', -1).len == 2
146 assert d.split_nth(',', 3).len == 2
147 e := ',,,0,,,,,a,,b,'
148 assert e.split(',,').len == 5
149 assert e.split_nth(',,', 3).len == 3
150 assert e.split_nth(',', -1).len == 12
151 assert e.split_nth(',', 3).len == 3
152 */
153 }
154 {
155 // test split
156 mut s := 'volt/twitch.v:34'
157 mut vals := s.split(':')
158 assert vals.len == 2
159 assert vals[0] == 'volt/twitch.v'
160 assert vals[1] == '34'
161 // /////////
162 s = '2018-01-01z13:01:02'
163 vals = s.split('z')
164 assert vals.len == 2
165 assert vals[0] == '2018-01-01'
166 assert vals[1] == '13:01:02'
167 // //////////
168 s = '4627a862c3dec29fb3182a06b8965e0025759e18___1530207969___blue'
169 vals = s.split('___')
170 assert vals.len == 3
171 assert vals[0] == '4627a862c3dec29fb3182a06b8965e0025759e18'
172 assert vals[1] == '1530207969'
173 assert vals[2] == 'blue'
174 // /////////
175 s = 'lalala'
176 vals = s.split('a')
177 assert vals.len == 4
178 assert vals[0] == 'l'
179 assert vals[1] == 'l'
180 assert vals[2] == 'l'
181 assert vals[3] == ''
182 // /////////
183 s = 'awesome'
184 a := s.split('')
185 assert a.len == 7
186 assert a[0] == 'a'
187 assert a[1] == 'w'
188 assert a[2] == 'e'
189 assert a[3] == 's'
190 assert a[4] == 'o'
191 assert a[5] == 'm'
192 assert a[6] == 'e'
193 // /////////
194 s = 'wavy turquoise bags'
195 vals = s.split(' bags')
196 assert vals.len == 2
197 assert vals[0] == 'wavy turquoise'
198 assert vals[1] == ''
199 }
200}
201