Skip to content

Commit bfd439c

Browse files
author
bors-servo
authored
Auto merge of #44 - behnam:dev, r=mbrubeck
Upgrade to Unicode 10.0.0 and improve packaging * Upgrade to Unicode 10.0.0 is straightforward. One of the unit tests (for code points falling back to default value in Unicode 9.0.0) needed update, so I also updated the structure of the unit test. * To address <#43>, I have excluded all non-`src` directories, as they all depend on the text files in the `data` dir, which we don't want to include. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/unicode-bidi/44) <!-- Reviewable:end -->
2 parents a2d4795 + 3585972 commit bfd439c

File tree

4 files changed

+422
-382
lines changed

4 files changed

+422
-382
lines changed

Cargo.toml

+8-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,14 @@ repository = "https://github.com/servo/unicode-bidi"
88
documentation = "http://doc.servo.org/unicode_bidi/"
99
keywords = ["rtl", "unicode", "text", "layout", "bidi"]
1010

11-
exclude = ["*.txt"]
11+
# No data is shipped; benches, examples and tests also depend on data.
12+
exclude = [
13+
"benches/",
14+
"data/",
15+
"examples/",
16+
"tests/",
17+
"tools/",
18+
]
1219

1320
[lib]
1421
name = "unicode_bidi"

src/char_data/mod.rs

+78-57
Original file line numberDiff line numberDiff line change
@@ -54,62 +54,83 @@ mod tests {
5454
use super::*;
5555

5656
#[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);
114135
}
115136
}

0 commit comments

Comments
 (0)