v

Зеркало из https://github.com/vlang/v
Форк
0
/x
/
strict_test.v 
48 строк · 869.0 Байт
1
import x.json2.strict
2

3
struct StructType[T] {
4
mut:
5
	val T
6
}
7

8
struct StructTypeAndOptionType[T] {
9
mut:
10
	val        T
11
	option_val ?T
12
}
13

14
fn test_get_keys_from_json() {
15
	json_data := r'
16
	    {
17
	        "val": 0,
18
	        "val1": {"val": 63}
19
	    }
20
	'
21

22
	key_structs := strict.get_keys_from_json(strict.tokenize(json_data))
23

24
	assert key_structs == [
25
		strict.KeyStruct{
26
			key:        'val'
27
			value_type: .literal
28
			token_pos:  1
29
		},
30
		strict.KeyStruct{
31
			key:        'val1'
32
			value_type: .map
33
			token_pos:  5
34
		},
35
	]
36
}
37

38
fn test_strict_check() {
39
	assert strict.strict_check[StructTypeAndOptionType[string]]('{"val": "","val": ""}') == strict.StructCheckResult{
40
		duplicates:  ['val']
41
		superfluous: []
42
	}
43

44
	assert strict.strict_check[StructTypeAndOptionType[string]]('{"val": "","val2": ""}') == strict.StructCheckResult{
45
		duplicates:  []
46
		superfluous: ['val2']
47
	}
48
}
49

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

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

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

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