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);
}
// Formatted parts must be consistent with the resolved options. var resolvedOptions = df.resolvedOptions();
assertEq("dateStyle" in resolvedOptions, false, "dateStyle isn't yet supported here");
assertEq("timeStyle" in resolvedOptions, false, "timeStyle isn't yet supported here");
// Every formatted part must be in the resolved options. for (var {type} of expected) { switch (type) { case"weekday": case"era": case"month": case"day": case"hour": case"minute": case"second": case"timeZoneName":
assertEq(type in resolvedOptions, true, JSON.stringify(resolvedOptions)); break;
case"year": case"yearName": case"relatedYear":
assertEq("year" in resolvedOptions, true); break;
case"dayPeriod":
assertEq("dayPeriod" in resolvedOptions || resolvedOptions.hour12 === true, true); break;
case"fractionalSecond":
assertEq("fractionalSecondDigits" in resolvedOptions, true); break;
function includesType(...types) { return parts.some(({type}) => types.includes(type));
}
// Every resolved option must be in the formatted parts. for (var key of Object.keys(resolvedOptions)) { switch (key) { case"locale": case"calendar": case"numberingSystem": case"timeZone": case"hourCycle": // Skip over non-pattern keys. break;
case"hour12": if (resolvedOptions.hour12) {
assertEq(includesType("dayPeriod"), true);
} break;
function assertRangeParts(df, start, end, expected) { var parts = df.formatRangeToParts(start, end);
assertEq(parts.map(part => part.value).join(""), df.formatRange(start, end), "formatRangeToParts and formatRange 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);
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.