v
Зеркало из https://github.com/vlang/v
1module binary
2
3// Big Endian Tests
4fn test_big_endian_u16() {
5assert big_endian_u16([u8(0), 1]) == u16(1)
6assert big_endian_u16([u8(5), 4]) == u16(0x0504)
7assert big_endian_u16([u8(0x35), 0x57]) == u16(0x3557)
8assert big_endian_u16([u8(0x35), 0x57]) != u16(0x5735)
9}
10
11fn test_big_endian_u16_at() {
12assert big_endian_u16_at([u8(0), 0, 1, 0], 1) == u16(1)
13assert big_endian_u16_at([u8(0), 5, 4, 0], 1) == u16(0x0504)
14assert big_endian_u16_at([u8(0), 0x35, 0x57, 0], 1) == u16(0x3557)
15assert big_endian_u16_at([u8(0), 0x35, 0x57, 0], 1) != u16(0x5735)
16}
17
18fn test_big_endian_u16_end() {
19assert big_endian_u16_end([u8(0), 0, 0, 1]) == u16(1)
20assert big_endian_u16_end([u8(0), 0, 5, 4]) == u16(0x0504)
21assert big_endian_u16_end([u8(0), 0, 0x35, 0x57]) == u16(0x3557)
22assert big_endian_u16_end([u8(0), 0, 0x35, 0x57]) != u16(0x5735)
23}
24
25fn test_big_endian_put_u16() {
26mut buf := []u8{len: 2}
27big_endian_put_u16(mut buf, 0x8725)
28assert buf == [u8(0x87), 0x25]
29big_endian_put_u16(mut buf, 0)
30assert buf == [u8(0), 0]
31big_endian_put_u16(mut buf, 0xfdff)
32assert buf == [u8(0xfd), 0xff]
33}
34
35fn test_big_endian_put_u16_at() {
36mut buf := []u8{len: 4}
37big_endian_put_u16_at(mut buf, 0x8725, 1)
38assert buf == [u8(0), 0x87, 0x25, 0]
39
40buf = []u8{len: 4}
41big_endian_put_u16_at(mut buf, 1, 1)
42assert buf == [u8(0), 0, 1, 0]
43
44buf = []u8{len: 4}
45big_endian_put_u16_at(mut buf, 0xfdff, 1)
46assert buf == [u8(0), 0xfd, 0xff, 0]
47}
48
49fn test_big_endian_get_u16() {
50assert big_endian_get_u16(u16(1)) == [u8(0), 1]
51assert big_endian_get_u16(u16(0x0504)) == [u8(5), 4]
52assert big_endian_get_u16(u16(0x3557)) == [u8(0x35), 0x57]
53assert big_endian_get_u16(u16(0x5735)) != [u8(0x35), 0x57]
54}
55
56fn test_big_endian_u32() {
57assert big_endian_u32([u8(0), 0, 0, 1]) == u32(1)
58assert big_endian_u32([u8(5), 4, 9, 1]) == u32(0x05040901)
59assert big_endian_u32([u8(0xf8), 0xa2, 0x9e, 0x21]) == u32(0xf8a29e21)
60assert big_endian_u32([u8(0xf8), 0xa2, 0x9e, 0x21]) != u32(0x2192a2f8)
61}
62
63fn test_big_endian_u32_at() {
64assert big_endian_u32_at([u8(0), 0, 0, 0, 1, 0, 0, 0], 1) == u32(1)
65assert big_endian_u32_at([u8(0), 5, 4, 9, 1, 0, 0, 0], 1) == u32(0x05040901)
66assert big_endian_u32_at([u8(0), 0xf8, 0xa2, 0x9e, 0x21, 0, 0, 0], 1) == u32(0xf8a29e21)
67assert big_endian_u32_at([u8(0), 0xf8, 0xa2, 0x9e, 0x21, 0, 0, 0], 1) != u32(0x2192a2f8)
68}
69
70fn test_big_endian_u32_end() {
71assert big_endian_u32_end([u8(0), 0, 0, 0, 0, 0, 1]) == u32(1)
72assert big_endian_u32_end([u8(0), 0, 0, 0, 5, 4, 9, 1]) == u32(0x05040901)
73assert big_endian_u32_end([u8(0), 0, 0, 0, 0xf8, 0xa2, 0x9e, 0x21]) == u32(0xf8a29e21)
74assert big_endian_u32_end([u8(0), 0, 0, 0, 0xf8, 0xa2, 0x9e, 0x21]) != u32(0x2192a2f8)
75}
76
77fn test_big_endian_put_u32() {
78mut buf := []u8{len: 4}
79big_endian_put_u32(mut buf, 0x872fea95)
80assert buf == [u8(0x87), 0x2f, 0xea, 0x95]
81big_endian_put_u32(mut buf, 0)
82assert buf == [u8(0), 0, 0, 0]
83big_endian_put_u32(mut buf, 0xfdf2e68f)
84assert buf == [u8(0xfd), 0xf2, 0xe6, 0x8f]
85}
86
87fn test_big_endian_put_u32_at() {
88mut buf := []u8{len: 8}
89big_endian_put_u32_at(mut buf, 0x872fea95, 1)
90assert buf == [u8(0), 0x87, 0x2f, 0xea, 0x95, 0, 0, 0]
91
92buf = []u8{len: 8}
93big_endian_put_u32_at(mut buf, 1, 1)
94assert buf == [u8(0), 0, 0, 0, 1, 0, 0, 0]
95
96buf = []u8{len: 8}
97big_endian_put_u32_at(mut buf, 0xfdf2e68f, 1)
98assert buf == [u8(0), 0xfd, 0xf2, 0xe6, 0x8f, 0, 0, 0]
99}
100
101fn test_big_endian_put_u32_end() {
102mut buf := []u8{len: 8}
103big_endian_put_u32_end(mut buf, 0x872fea95)
104assert buf == [u8(0), 0, 0, 0, 0x87, 0x2f, 0xea, 0x95]
105
106buf = []u8{len: 8}
107big_endian_put_u32_end(mut buf, 1)
108assert buf == [u8(0), 0, 0, 0, 0, 0, 0, 1]
109
110buf = []u8{len: 8}
111big_endian_put_u32_end(mut buf, 0xfdf2e68f)
112assert buf == [u8(0), 0, 0, 0, 0xfd, 0xf2, 0xe6, 0x8f]
113}
114
115fn test_big_endian_get_u32() {
116assert big_endian_get_u32(u32(1)) == [u8(0), 0, 0, 1]
117assert big_endian_get_u32(u32(0x05040901)) == [u8(5), 4, 9, 1]
118assert big_endian_get_u32(u32(0xf8a29e21)) == [u8(0xf8), 0xa2, 0x9e, 0x21]
119assert big_endian_get_u32(u32(0x2192a2f8)) != [u8(0xf8), 0xa2, 0x9e, 0x21]
120}
121
122fn test_big_endian_u64() {
123assert big_endian_u64([u8(0), 0, 0, 0, 0, 0, 0, 1]) == u64(1)
124assert big_endian_u64([u8(5), 4, 9, 1, 7, 3, 6, 8]) == u64(0x0504090107030608)
125assert big_endian_u64([u8(0xf8), 0xa2, 0x9e, 0x21, 0x7f, 0x9f, 0x8e, 0x8f]) == u64(0xf8a29e217f9f8e8f)
126assert big_endian_u64([u8(0xf8), 0xa2, 0x9e, 0x21, 0x7f, 0x9f, 0x8e, 0x8f]) != u64(0x8f8e9f7f219ea2f8)
127}
128
129fn test_big_endian_u64_at() {
130assert big_endian_u64_at([u8(0), 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], 1) == u64(1)
131assert big_endian_u64_at([u8(0), 5, 4, 9, 1, 7, 3, 6, 8, 0, 0, 0, 0, 0, 0, 0], 1) == u64(0x0504090107030608)
132assert big_endian_u64_at([u8(0), 0xf8, 0xa2, 0x9e, 0x21, 0x7f, 0x9f, 0x8e, 0x8f, 0, 0, 0, 0,
1330, 0, 0], 1) == u64(0xf8a29e217f9f8e8f)
134assert big_endian_u64_at([u8(0), 0xf8, 0xa2, 0x9e, 0x21, 0x7f, 0x9f, 0x8e, 0x8f, 0, 0, 0, 0,
1350, 0, 0], 1) != u64(0x8f8e9f7f219ea2f8)
136}
137
138fn test_big_endian_u64_end() {
139assert big_endian_u64_end([u8(0), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]) == u64(1)
140assert big_endian_u64_end([u8(0), 0, 0, 0, 0, 0, 0, 0, 5, 4, 9, 1, 7, 3, 6, 8]) == u64(0x0504090107030608)
141assert big_endian_u64_end([u8(0), 0, 0, 0, 0, 0, 0, 0, 0xf8, 0xa2, 0x9e, 0x21, 0x7f, 0x9f,
1420x8e, 0x8f]) == u64(0xf8a29e217f9f8e8f)
143assert big_endian_u64_end([u8(0), 0, 0, 0, 0, 0, 0, 0, 0xf8, 0xa2, 0x9e, 0x21, 0x7f, 0x9f,
1440x8e, 0x8f]) != u64(0x8f8e9f7f219ea2f8)
145}
146
147fn test_big_endian_put_u64() {
148mut buf := []u8{len: 8}
149big_endian_put_u64(mut buf, 0x872fea95fdf2e68f)
150assert buf == [u8(0x87), 0x2f, 0xea, 0x95, 0xfd, 0xf2, 0xe6, 0x8f]
151big_endian_put_u64(mut buf, 0)
152assert buf == [u8(0), 0, 0, 0, 0, 0, 0, 0]
153big_endian_put_u64(mut buf, 0xfdf2e68f8e9f7f21)
154assert buf == [u8(0xfd), 0xf2, 0xe6, 0x8f, 0x8e, 0x9f, 0x7f, 0x21]
155}
156
157fn test_big_endian_put_u64_at() {
158mut buf := []u8{len: 16}
159big_endian_put_u64_at(mut buf, 0x872fea95fdf2e68f, 1)
160assert buf == [u8(0), 0x87, 0x2f, 0xea, 0x95, 0xfd, 0xf2, 0xe6, 0x8f, 0, 0, 0, 0, 0, 0, 0]
161
162buf = []u8{len: 16}
163big_endian_put_u64_at(mut buf, 1, 1)
164assert buf == [u8(0), 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
165
166buf = []u8{len: 16}
167big_endian_put_u64_at(mut buf, 0xfdf2e68f8e9f7f21, 1)
168assert buf == [u8(0), 0xfd, 0xf2, 0xe6, 0x8f, 0x8e, 0x9f, 0x7f, 0x21, 0, 0, 0, 0, 0, 0, 0]
169}
170
171fn test_big_endian_put_u64_end() {
172mut buf := []u8{len: 16}
173big_endian_put_u64_end(mut buf, 0x872fea95fdf2e68f)
174assert buf == [u8(0), 0, 0, 0, 0, 0, 0, 0, 0x87, 0x2f, 0xea, 0x95, 0xfd, 0xf2, 0xe6, 0x8f]
175
176buf = []u8{len: 16}
177big_endian_put_u64_end(mut buf, 1)
178assert buf == [u8(0), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
179
180buf = []u8{len: 16}
181big_endian_put_u64_end(mut buf, 0xfdf2e68f8e9f7f21)
182assert buf == [u8(0), 0, 0, 0, 0, 0, 0, 0, 0xfd, 0xf2, 0xe6, 0x8f, 0x8e, 0x9f, 0x7f, 0x21]
183}
184
185fn test_big_endian_get_u64() {
186assert big_endian_get_u64(u64(1)) == [u8(0), 0, 0, 0, 0, 0, 0, 1]
187assert big_endian_get_u64(u64(0x0504090107030608)) == [u8(5), 4, 9, 1, 7, 3, 6, 8]
188assert big_endian_get_u64(u64(0xf8a29e217f9f8e8f)) == [u8(0xf8), 0xa2, 0x9e, 0x21, 0x7f, 0x9f,
1890x8e, 0x8f]
190assert big_endian_get_u64(u64(0x8f8e9f7f219ea2f8)) != [u8(0xf8), 0xa2, 0x9e, 0x21, 0x7f, 0x9f,
1910x8e, 0x8f]
192}
193