@@ -9,6 +9,80 @@ public void Test1()
9
9
Assert . True ( SimdUnicode . Ascii . IsAscii ( "absads12323123232131231232132132132312321321312321" ) ) ;
10
10
Assert . False ( SimdUnicode . Ascii . IsAscii ( "absaé12323123232131231232132132132312321321312321" ) ) ;
11
11
Assert . True ( SimdUnicode . Ascii . SIMDIsAscii ( "absads12323123232131231232132132132312321321312321" ) ) ;
12
+ Assert . True ( SimdUnicode . Ascii . SIMDIsAscii ( "12345678" ) ) ;
13
+ Assert . True ( SimdUnicode . Ascii . SIMDIsAscii ( "123456789" ) ) ;
14
+ Assert . True ( SimdUnicode . Ascii . SIMDIsAscii ( "1234567890123456" ) ) ;
12
15
Assert . False ( SimdUnicode . Ascii . SIMDIsAscii ( "absaé12323123232131231232132132132312321321312321" ) ) ;
16
+ Assert . False ( SimdUnicode . Ascii . SIMDIsAscii ( "absa12323123232131231232132132132312321321312321é" ) ) ;
17
+ }
18
+
19
+ [ Fact ]
20
+ public void HardCodedSequencesTest ( )
21
+ {
22
+ string [ ] goodsequences = {
23
+ "a" ,
24
+ "abcde12345" ,
25
+ "\x71 " ,
26
+ "\x75 \x4c " ,
27
+ "\x7f \x4c \x23 \x3c \x3a \x6f \x5d \x44 \x13 \x70 "
28
+ } ;
29
+
30
+ string [ ] badsequences = {
31
+ "\xc3 \x28 " ,
32
+ "\xa0 \xa1 " ,
33
+ "\xe2 \x28 \xa1 " ,
34
+ "\xe2 \x82 \x28 " ,
35
+ "\xf0 \x28 \x8c \xbc " ,
36
+ "\xf0 \x90 \x28 \xbc " ,
37
+ "\xf0 \x28 \x8c \x28 " ,
38
+ "\xc0 \x9f " ,
39
+ "\xf5 \xff \xff \xff " ,
40
+ "\xed \xa0 \x81 " ,
41
+ "\xf8 \x90 \x80 \x80 \x80 " ,
42
+ "123456789012345\xed " ,
43
+ "123456789012345\xf1 " ,
44
+ "123456789012345\xc2 " ,
45
+ "\xC2 \x7F " ,
46
+ "\xce " ,
47
+ "\xce \xba \xe1 " ,
48
+ "\xce \xba \xe1 \xbd " ,
49
+ "\xce \xba \xe1 \xbd \xb9 \xcf " ,
50
+ "\xce \xba \xe1 \xbd \xb9 \xcf \x83 \xce " ,
51
+ "\xce \xba \xe1 \xbd \xb9 \xcf \x83 \xce \xbc \xce " ,
52
+ "\xdf " ,
53
+ "\xef \xbf " ,
54
+ "\x80 " ,
55
+ "\x91 \x85 \x95 \x9e " ,
56
+ "\x6c \x02 \x8e \x18 " ,
57
+ "\x25 \x5b \x6e \x2c \x32 \x2c \x5b \x5b \x33 \x2c \x34 \x2c \x05 \x29 \x2c \x33 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5d \x2c \x35 \x2e \x33 \x2c \x39 \x2e \x33 \x2c \x37 \x2e \x33 \x2c \x39 \x2e \x34 \x2c \x37 \x2e \x33 \x2c \x39 \x2e \x33 \x2c \x37 \x2e \x33 \x2c \x39 \x2e \x34 \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x20 \x01 \x01 \x01 \x01 \x01 \x02 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x23 \x0a \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x7e \x7e \x0a \x0a \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5d \x2c \x37 \x2e \x33 \x2c \x39 \x2e \x33 \x2c \x37 \x2e \x33 \x2c \x39 \x2e \x34 \x2c \x37 \x2e \x33 \x2c \x39 \x2e \x33 \x2c \x37 \x2e \x33 \x2c \x39 \x2e \x34 \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x5d \x01 \x01 \x80 \x01 \x01 \x01 \x79 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 " ,
58
+ "[[[[[[[[[[[[[[[\x80 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x010 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 " ,
59
+ "\x20 \x0b \x01 \x01 \x01 \x64 \x3a \x64 \x3a \x64 \x3a \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x5b \x30 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x80 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 \x01 " ,
60
+ "\x80 " ,
61
+ "\x90 " ,
62
+ "\xa1 " ,
63
+ "\xb2 " ,
64
+ "\xc3 " ,
65
+ "\xd4 " ,
66
+ "\xe5 " ,
67
+ "\xf6 " ,
68
+ "\xc3 \xb1 " ,
69
+ "\xe2 \x82 \xa1 " ,
70
+ "\xf0 \x90 \x8c \xbc " ,
71
+ "\xc2 \x80 " ,
72
+ "\xf0 \x90 \x80 \x80 " ,
73
+ "\xee \x80 \x80 " ,
74
+ "\xef \xbb \xbf " } ;
75
+
76
+ foreach ( var sequence in goodsequences )
77
+ {
78
+ Assert . True ( SimdUnicode . Ascii . IsAscii ( sequence ) , "Expected valid ASCII sequence" ) ;
79
+ Assert . True ( SimdUnicode . Ascii . SIMDIsAscii ( sequence ) , "Expected SIMDIsAscii to validate ASCII sequence" ) ;
80
+ }
81
+
82
+ foreach ( var sequence in badsequences )
83
+ {
84
+ Assert . False ( SimdUnicode . Ascii . IsAscii ( sequence ) , "Expected non-valid ASCII sequence" ) ;
85
+ Assert . False ( SimdUnicode . Ascii . SIMDIsAscii ( sequence ) , "Expected SIMDIsAscii to invalidate non-ASCII sequence" ) ;
86
+ }
13
87
}
14
88
}
0 commit comments