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
|
function GenericPartCreator(type) {
return str => ({ type, value: str });
}
const DateTimeFormatParts = {
Weekday: GenericPartCreator("weekday"),
Era: GenericPartCreator("era"),
Year: GenericPartCreator("year"),
YearName: GenericPartCreator("yearName"),
RelatedYear: GenericPartCreator("relatedYear"),
Month: GenericPartCreator("month"),
Day: GenericPartCreator("day"),
DayPeriod: GenericPartCreator("dayPeriod"),
Hour: GenericPartCreator("hour"),
Minute: GenericPartCreator("minute"),
Second: GenericPartCreator("second"),
FractionalSecond: GenericPartCreator("fractionalSecond"),
TimeZoneName: GenericPartCreator("timeZoneName"),
Unknown: GenericPartCreator("unknown"),
Literal: GenericPartCreator("literal"),
};
function assertParts(df, x, expected) {
var parts = df.formatToParts(x);
assertEq(parts.map(part => part.value).join(""), df.format(x),
"formatToParts and format must agree");
var len = parts.length;
assertEq(len, expected.length, "parts count mismatch");
for (var i = 0; i < len; i++) {
assertEq(parts[i].type, expected[i].type, "type mismatch at " + i);
assertEq(parts[i].value, expected[i].value, "value mismatch at " + i);
}
}
|