@@ -54,62 +54,83 @@ mod tests {
54
54
use super :: * ;
55
55
56
56
#[ test]
57
- fn test_bidi_class ( ) {
58
- for ( input, expected) in
59
- vec ! [
60
- ( 0x0000 , BN ) ,
61
- ( 0x0040 , ON ) ,
62
- ( 0x0041 , L ) ,
63
- ( 0x0062 , L ) ,
64
- ( 0x007F , BN ) ,
65
-
66
- // Hebrew
67
- ( 0x0590 , R ) ,
68
- ( 0x05D0 , R ) ,
69
- ( 0x05D1 , R ) ,
70
- ( 0x05FF , R ) ,
71
-
72
- // Arabic
73
- ( 0x0600 , AN ) ,
74
- ( 0x0627 , AL ) ,
75
- ( 0x07BF , AL ) ,
76
-
77
- // Default R + Arabic Extras
78
- ( 0x07C0 , R ) ,
79
- ( 0x085F , R ) ,
80
- ( 0x0860 , R ) ,
81
- ( 0x089F , R ) ,
82
- ( 0x08A0 , AL ) ,
83
- ( 0x089F , R ) ,
84
- ( 0x08FF , NSM ) ,
85
-
86
- // Default ET
87
- ( 0x20A0 , ET ) ,
88
- ( 0x20CF , ET ) ,
89
-
90
- // Arabic Presentation Forms
91
- ( 0xFB1D , R ) ,
92
- ( 0xFB4F , R ) ,
93
- ( 0xFB50 , AL ) ,
94
- ( 0xFDCF , AL ) ,
95
- ( 0xFDF0 , AL ) ,
96
- ( 0xFDFF , AL ) ,
97
- ( 0xFE70 , AL ) ,
98
- ( 0xFEFE , AL ) ,
99
- ( 0xFEFF , BN ) ,
100
-
101
- // Default AL + R
102
- ( 0x10800 , R ) ,
103
- ( 0x10FFF , R ) ,
104
- ( 0x1E800 , R ) ,
105
- ( 0x1EDFF , R ) ,
106
- ( 0x1EE00 , AL ) ,
107
- ( 0x1EEFF , AL ) ,
108
- ( 0x1EF00 , R ) ,
109
- ( 0x1EFFF , R ) ,
110
- ]
111
- {
112
- assert_eq ! ( bidi_class( char :: from_u32( input) . unwrap( ) ) , expected) ;
113
- }
57
+ fn test_ascii ( ) {
58
+ assert_eq ! ( bidi_class( '\u{0000}' ) , BN ) ;
59
+ assert_eq ! ( bidi_class( '\u{0040}' ) , ON ) ;
60
+ assert_eq ! ( bidi_class( '\u{0041}' ) , L ) ;
61
+ assert_eq ! ( bidi_class( '\u{0062}' ) , L ) ;
62
+ assert_eq ! ( bidi_class( '\u{007F}' ) , BN ) ;
63
+ }
64
+
65
+ #[ test]
66
+ fn test_bmp ( ) {
67
+ // Hebrew
68
+ assert_eq ! ( bidi_class( '\u{0590}' ) , R ) ;
69
+ assert_eq ! ( bidi_class( '\u{05D0}' ) , R ) ;
70
+ assert_eq ! ( bidi_class( '\u{05D1}' ) , R ) ;
71
+ assert_eq ! ( bidi_class( '\u{05FF}' ) , R ) ;
72
+
73
+ // Arabic
74
+ assert_eq ! ( bidi_class( '\u{0600}' ) , AN ) ;
75
+ assert_eq ! ( bidi_class( '\u{0627}' ) , AL ) ;
76
+ assert_eq ! ( bidi_class( '\u{07BF}' ) , AL ) ;
77
+
78
+ // Default R + Arabic Extras
79
+ assert_eq ! ( bidi_class( '\u{07C0}' ) , R ) ;
80
+ assert_eq ! ( bidi_class( '\u{085F}' ) , R ) ;
81
+ assert_eq ! ( bidi_class( '\u{0860}' ) , AL ) ;
82
+ assert_eq ! ( bidi_class( '\u{0870}' ) , R ) ;
83
+ assert_eq ! ( bidi_class( '\u{089F}' ) , R ) ;
84
+ assert_eq ! ( bidi_class( '\u{08A0}' ) , AL ) ;
85
+ assert_eq ! ( bidi_class( '\u{089F}' ) , R ) ;
86
+ assert_eq ! ( bidi_class( '\u{08FF}' ) , NSM ) ;
87
+
88
+ // Default ET
89
+ assert_eq ! ( bidi_class( '\u{20A0}' ) , ET ) ;
90
+ assert_eq ! ( bidi_class( '\u{20CF}' ) , ET ) ;
91
+
92
+ // Arabic Presentation Forms
93
+ assert_eq ! ( bidi_class( '\u{FB1D}' ) , R ) ;
94
+ assert_eq ! ( bidi_class( '\u{FB4F}' ) , R ) ;
95
+ assert_eq ! ( bidi_class( '\u{FB50}' ) , AL ) ;
96
+ assert_eq ! ( bidi_class( '\u{FDCF}' ) , AL ) ;
97
+ assert_eq ! ( bidi_class( '\u{FDF0}' ) , AL ) ;
98
+ assert_eq ! ( bidi_class( '\u{FDFF}' ) , AL ) ;
99
+ assert_eq ! ( bidi_class( '\u{FE70}' ) , AL ) ;
100
+ assert_eq ! ( bidi_class( '\u{FEFE}' ) , AL ) ;
101
+ assert_eq ! ( bidi_class( '\u{FEFF}' ) , BN ) ;
102
+
103
+ // noncharacters
104
+ assert_eq ! ( bidi_class( '\u{FDD0}' ) , L ) ;
105
+ assert_eq ! ( bidi_class( '\u{FDD1}' ) , L ) ;
106
+ assert_eq ! ( bidi_class( '\u{FDEE}' ) , L ) ;
107
+ assert_eq ! ( bidi_class( '\u{FDEF}' ) , L ) ;
108
+ assert_eq ! ( bidi_class( '\u{FFFE}' ) , L ) ;
109
+ assert_eq ! ( bidi_class( '\u{FFFF}' ) , L ) ;
110
+ }
111
+
112
+ #[ test]
113
+ fn test_smp ( ) {
114
+ // Default AL + R
115
+ assert_eq ! ( bidi_class( '\u{10800}' ) , R ) ;
116
+ assert_eq ! ( bidi_class( '\u{10FFF}' ) , R ) ;
117
+ assert_eq ! ( bidi_class( '\u{1E800}' ) , R ) ;
118
+ assert_eq ! ( bidi_class( '\u{1EDFF}' ) , R ) ;
119
+ assert_eq ! ( bidi_class( '\u{1EE00}' ) , AL ) ;
120
+ assert_eq ! ( bidi_class( '\u{1EEFF}' ) , AL ) ;
121
+ assert_eq ! ( bidi_class( '\u{1EF00}' ) , R ) ;
122
+ assert_eq ! ( bidi_class( '\u{1EFFF}' ) , R ) ;
123
+ }
124
+
125
+ #[ test]
126
+ fn test_unassigned_planes ( ) {
127
+ assert_eq ! ( bidi_class( '\u{30000}' ) , L ) ;
128
+ assert_eq ! ( bidi_class( '\u{40000}' ) , L ) ;
129
+ assert_eq ! ( bidi_class( '\u{50000}' ) , L ) ;
130
+ assert_eq ! ( bidi_class( '\u{60000}' ) , L ) ;
131
+ assert_eq ! ( bidi_class( '\u{70000}' ) , L ) ;
132
+ assert_eq ! ( bidi_class( '\u{80000}' ) , L ) ;
133
+ assert_eq ! ( bidi_class( '\u{90000}' ) , L ) ;
134
+ assert_eq ! ( bidi_class( '\u{a0000}' ) , L ) ;
114
135
}
115
136
}
0 commit comments