v / vlib / encoding / utf8 / validate / encoding_utf8_test.v
88 lines · 78 sloc · 3.65 KB · bc333ab16016e72ee835d92e0e4d9b8c67693d98
Raw
1import encoding.utf8.validate
2
3fn test_validate_str() {
4 assert validate.utf8_string('añçá') == true
5 assert validate.utf8_string('\x61\xC3\xB1\xC3\xA7\xC3\xA1') == true
6
7 assert validate.utf8_string('\x01') == true
8 assert validate.utf8_string('\x7e') == true
9 assert validate.utf8_string('\x7f') == true
10 assert validate.utf8_string('\xc2\x80') == true
11 assert validate.utf8_string('\xc2\x81') == true
12 assert validate.utf8_string('\xc2\xbf') == true
13 assert validate.utf8_string('\xc3\x80') == true
14 assert validate.utf8_string('\xc3\x81') == true
15 assert validate.utf8_string('\xc3\x88') == true
16 assert validate.utf8_string('\xc3\x90') == true
17 assert validate.utf8_string('\xc3\xa0') == true
18 assert validate.utf8_string('\xc3\xb0') == true
19 assert validate.utf8_string('\xc3\xb8') == true
20 assert validate.utf8_string('\xc3\xbf') == true
21 assert validate.utf8_string('\xc4\x80') == true
22 assert validate.utf8_string('\xdf\xbf') == true
23 assert validate.utf8_string('\xd0\x80') == true
24 assert validate.utf8_string('\xe0\xa0\x80') == true
25 assert validate.utf8_string('\xe0\xa0\x81') == true
26 assert validate.utf8_string('\xe1\x80\x80') == true
27 assert validate.utf8_string('\xed\x80\x80') == true
28 assert validate.utf8_string('\xed\x9f\xbf') == true
29 assert validate.utf8_string('\xee\x80\x80') == true
30 assert validate.utf8_string('\xef\xbf\xbe') == true
31 assert validate.utf8_string('\xef\xbf\xbf') == true
32 assert validate.utf8_string('\xf0\x90\x80\x80') == true
33 assert validate.utf8_string('\xf0\x90\x80\x81') == true
34 assert validate.utf8_string('\xf1\x80\x80\x80') == true
35 assert validate.utf8_string('\xf4\x8f\xbf\xbe') == true
36 assert validate.utf8_string('\xf4\x8f\xbf\xbf') == true
37 assert validate.utf8_string('\xef\xbf\xbd') == true
38}
39
40fn test_validate_invalid_str() {
41 assert validate.utf8_string('\xC0\xC1') == false
42 assert validate.utf8_string('\xF5\xFF') == false
43 assert validate.utf8_string('\xE0\xEF') == false
44
45 // xx
46 assert validate.utf8_string('\x91\x80\x80\x80') == false
47
48 // s1
49 assert validate.utf8_string('\xC2\x7F\x80\x80') == false
50 assert validate.utf8_string('\xC2\xC0\x80\x80') == false
51 assert validate.utf8_string('\xDF\x7F\x80\x80') == false
52 assert validate.utf8_string('\xDF\xC0\x80\x80') == false
53
54 // s2
55 assert validate.utf8_string('\xE0\x9F\xBF\x80') == false
56 assert validate.utf8_string('\xE0\xA0\x7F\x80') == false
57 assert validate.utf8_string('\xE0\xBF\xC0\x80') == false
58 assert validate.utf8_string('\xE0\xC0\x80\x80') == false
59
60 // s3
61 assert validate.utf8_string('\xE1\x7F\xBF\x80') == false
62 assert validate.utf8_string('\xE1\x80\x7F\x80') == false
63 assert validate.utf8_string('\xE1\xBF\xC0\x80') == false
64 assert validate.utf8_string('\xE1\xC0\x80\x80') == false
65
66 // s4
67 assert validate.utf8_string('\xED\x7F\xBF\x80') == false
68 assert validate.utf8_string('\xED\x80\x7F\x80') == false
69 assert validate.utf8_string('\xED\x9F\xC0\x80') == false
70 assert validate.utf8_string('\xED\xA0\x80\x80') == false
71
72 // s5
73 assert validate.utf8_string('\xF0\x8F\xBF\xBF') == false
74 assert validate.utf8_string('\xF0\x90\x7F\xBF') == false
75 assert validate.utf8_string('\xF0\x90\x80\x7F') == false
76 assert validate.utf8_string('\xF0\xBF\xBF\xC0') == false
77 assert validate.utf8_string('\xF0\xBF\xC0\x80') == false
78 assert validate.utf8_string('\xF0\xC0\x80\x80') == false
79
80 // s6
81 assert validate.utf8_string('\xF1\x7F\xBF\xBF') == false
82 assert validate.utf8_string('\xF1\x80\x7F\xBF') == false
83 assert validate.utf8_string('\xF1\x80\x80\x7F') == false
84 assert validate.utf8_string('\xF1\xBF\xBF\xC0') == false
85 assert validate.utf8_string('\xF1\xBF\xC0\x80') == false
86 assert validate.utf8_string('\xF1\xC0\x80\x80') == false
87 assert validate.utf8_string('\xED\xEF\xBF\x89') == false
88}
89