v2 / vlib / v / gen / js / sourcemap / vlq / vlq_encode_test.v
35 lines · 30 sloc · 651 bytes · 18e60e77de77785c773cb8908cd99a9514cb9bb8
Raw
1module vlq
2
3struct TestData {
4 expected string
5 data_val i64
6}
7
8struct TestWriter {
9pub mut:
10 bytes []u8
11}
12
13fn test_encode_a() {
14 decode_values := [
15 TestData{'A', 0},
16 TestData{'C', 1},
17 TestData{'D', -1},
18 TestData{'2H', 123},
19 TestData{'qxmvrH', 123456789},
20 TestData{'+/////B', 1073741823}, // 2^30-1
21 // TestData{'hgggggggggggI', 9_223_372_036_854_775_808} // 2^63
22 ]
23 for _, test_data in decode_values {
24 mut output := TestWriter{}
25
26 encode(test_data.data_val, mut &output)!
27 // dump(output.bytes)
28 assert output.bytes == test_data.expected.bytes()
29 }
30}
31
32fn (mut w TestWriter) write(buf []u8) !int {
33 w.bytes << buf
34 return buf.len
35}
36