blob: 06e360f53ca5440bb9f57267009024adf6e020c4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
// This file is part of ICU4X. For terms of use, please see the file
// called LICENSE at the top level of the ICU4X source tree
// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
mod fixtures;
mod helpers;
use icu_locid::Locale;
use icu_locid_transform::{LocaleCanonicalizer, LocaleExpander, TransformResult};
use writeable::assert_writeable_eq;
#[test]
fn test_maximize() {
let lc = LocaleExpander::new_extended();
let path = "./tests/fixtures/maximize.json";
let testcases: Vec<fixtures::CanonicalizationTest> =
helpers::read_fixture(path).expect("Failed to read a fixture");
for case in testcases {
if let Some(true) = case.disabled {
continue;
}
let mut locale: Locale = case.input.parse().unwrap();
let unmodified = locale.clone();
let result = lc.maximize(&mut locale);
assert_writeable_eq!(locale, case.output);
if result == TransformResult::Modified {
assert_ne!(locale, unmodified);
} else {
assert_eq!(locale, unmodified);
}
}
}
#[test]
fn test_minimize() {
let lc = LocaleExpander::new_extended();
let path = "./tests/fixtures/minimize.json";
let testcases: Vec<fixtures::CanonicalizationTest> =
helpers::read_fixture(path).expect("Failed to read a fixture");
for case in testcases {
if let Some(true) = case.disabled {
continue;
}
let mut locale: Locale = case.input.parse().unwrap();
let unmodified = locale.clone();
let result = lc.minimize(&mut locale);
assert_writeable_eq!(locale, case.output);
if result == TransformResult::Modified {
assert_ne!(locale, unmodified);
} else {
assert_eq!(locale, unmodified);
}
}
}
#[test]
fn test_canonicalize() {
let lc = LocaleCanonicalizer::new();
let path = "./tests/fixtures/canonicalize.json";
let testcases: Vec<fixtures::CanonicalizationTest> =
helpers::read_fixture(path).expect("Failed to read a fixture");
for case in testcases {
if let Some(true) = case.disabled {
continue;
}
let mut locale: Locale = case.input.parse().expect("Unable to parse input");
let unmodified = locale.clone();
let result = lc.canonicalize(&mut locale);
assert_writeable_eq!(locale, case.output);
if result == TransformResult::Modified {
assert_ne!(locale, unmodified);
} else {
assert_eq!(locale, unmodified);
}
}
}
|