v

Зеркало из https://github.com/vlang/v
Форк
0
/
hex_test.v 
54 строки · 1.7 Кб
1
module hex
2

3
fn test_decode() {
4
	assert decode('')! == []
5
	assert decode('0')! == [u8(0x0)]
6
	assert decode('f')! == [u8(0xf)]
7
	assert decode('0f')! == [u8(0x0f)]
8
	assert decode('ff')! == [u8(0xff)]
9
	assert decode('123')! == [u8(0x1), 0x23]
10
	assert decode('1234')! == [u8(0x12), 0x34]
11
	assert decode('12345')! == [u8(0x1), 0x23, 0x45]
12
	assert decode('0123456789abcdef')! == [u8(0x01), 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef]
13
	assert decode('123456789ABCDEF')! == [u8(0x01), 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef]
14
}
15

16
fn test_decode_fails() ! {
17
	if x := decode('foo') {
18
		return error('expected decode to fail, got ${x}')
19
	}
20
	if x := decode('g') {
21
		return error('expected decode to fail, got ${x}')
22
	}
23
	if x := decode('000000000g') {
24
		return error('expected decode to fail, got ${x}')
25
	}
26
	if x := decode('_') {
27
		return error('expected decode to fail, got ${x}')
28
	}
29
	if x := decode('!') {
30
		return error('expected decode to fail, got ${x}')
31
	}
32
}
33

34
fn test_encode() {
35
	assert encode(decode('')!) == ''
36
	assert encode(decode('0')!) == '00'
37
	assert encode(decode('f')!) == '0f'
38
	assert encode(decode('0f')!) == '0f'
39
	assert encode(decode('ff')!) == 'ff'
40
	assert encode(decode('123')!) == '0123'
41
	assert encode(decode('1234')!) == '1234'
42
	assert encode(decode('12345')!) == '012345'
43
	assert encode(decode('abcdef')!) == 'abcdef'
44
	assert encode(decode('ABCDEF')!) == 'abcdef'
45
}
46

47
fn test_decode_0x() {
48
	assert decode('0x')! == []
49
	assert decode('0x0')! == [u8(0x0)]
50
	assert decode('0X1234')! == [u8(0x12), 0x34]
51
	assert decode('0x12345')! == [u8(0x1), 0x23, 0x45]
52
	assert decode('0x0123456789abcdef')! == [u8(0x01), 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef]
53
	assert decode('0X123456789ABCDEF')! == [u8(0x01), 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef]
54
}
55

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.