Test all combinations in temporal-plaindatetime-formatting-datetime-style

This commit is contained in:
André Bargull 2025-05-22 11:59:01 +02:00 committed by Ms2ger
parent 96695862e2
commit 3316c0aaf6

View File

@ -8,202 +8,169 @@ locale: [en-US]
features: [Temporal]
---*/
const dateFormatterShort = new Intl.DateTimeFormat("en-US", { dateStyle: "short", timeZone: "Pacific/Apia" });
const dateFormatterMedium = new Intl.DateTimeFormat("en-US", { dateStyle: "medium", timeZone: "Pacific/Apia" });
const dateFormatterLong = new Intl.DateTimeFormat("en-US", { dateStyle: "long", timeZone: "Pacific/Apia" });
const dateFormatterFull = new Intl.DateTimeFormat("en-US", { dateStyle: "full", timeZone: "Pacific/Apia" });
const timeFormatterShort = new Intl.DateTimeFormat("en-US", { timeStyle: "short", timeZone: "Pacific/Apia" });
const timeFormatterMedium = new Intl.DateTimeFormat("en-US", { timeStyle: "medium", timeZone: "Pacific/Apia" });
const timeFormatterLong = new Intl.DateTimeFormat("en-US", { timeStyle: "long", timeZone: "Pacific/Apia" });
const timeFormatterFull = new Intl.DateTimeFormat("en-US", { timeStyle: "full", timeZone: "Pacific/Apia" });
const dateTimeFormatterShort = new Intl.DateTimeFormat("en-US", { dateStyle: "short", timeStyle: "short", timeZone: "Pacific/Apia" });
const dateTimeFormatterMedium = new Intl.DateTimeFormat("en-US", { dateStyle: "medium", timeStyle: "medium", timeZone: "Pacific/Apia" });
const dateTimeFormatterLong = new Intl.DateTimeFormat("en-US", { dateStyle: "long", timeStyle: "long", timeZone: "Pacific/Apia" });
const dateTimeFormatterFull = new Intl.DateTimeFormat("en-US", { dateStyle: "full", timeStyle: "full", timeZone: "Pacific/Apia" });
const dateTimeFormatterShortLong = new Intl.DateTimeFormat("en-US", { dateStyle: "short", timeStyle: "long", timeZone: "Pacific/Apia" });
const dateTimeFormatterShortMedium = new Intl.DateTimeFormat("en-US", { dateStyle: "short", timeStyle: "medium", timeZone: "Pacific/Apia" });
const dateTimeFormatterShortFull = new Intl.DateTimeFormat("en-US", { dateStyle: "short", timeStyle: "full", timeZone: "Pacific/Apia" });
const dateTimeFormatterMediumLong = new Intl.DateTimeFormat("en-US", { dateStyle: "medium", timeStyle: "long", timeZone: "Pacific/Apia" });
const dateTimeFormatterMediumShort = new Intl.DateTimeFormat("en-US", { dateStyle: "medium", timeStyle: "short", timeZone: "Pacific/Apia" });
const dateTimeFormatterMediumFull = new Intl.DateTimeFormat("en-US", { dateStyle: "medium", timeStyle: "full", timeZone: "Pacific/Apia" });
const dateTimeFormatterLongMedium = new Intl.DateTimeFormat("en-US", { dateStyle: "long", timeStyle: "medium", timeZone: "Pacific/Apia" });
const dateTimeFormatterLongShort = new Intl.DateTimeFormat("en-US", { dateStyle: "long", timeStyle: "short", timeZone: "Pacific/Apia" });
const dateTimeFormatterLongFull = new Intl.DateTimeFormat("en-US", { dateStyle: "long", timeStyle: "full", timeZone: "Pacific/Apia" });
const dateTimeFormatterFullMedium = new Intl.DateTimeFormat("en-US", { dateStyle: "full", timeStyle: "medium", timeZone: "Pacific/Apia" });
const dateTimeFormatterFullShort = new Intl.DateTimeFormat("en-US", { dateStyle: "full", timeStyle: "short", timeZone: "Pacific/Apia" });
const dateTimeFormatterFullLong = new Intl.DateTimeFormat("en-US", { dateStyle: "full", timeStyle: "long", timeZone: "Pacific/Apia" });
const locale = "en-US";
const timeZone = "Pacific/Apia";
const dateStyles = [
"full", "long", "medium", "short",
];
const timeStyles = [
"full", "long", "medium", "short",
];
// Use a PlainDateTime with unique values in each field, so as to make it easier
// to test which values appear in the formatted output
const datetime = new Temporal.PlainDateTime(2222, 3, 4, 5, 6, 7, 888, 999, 111);
var datetimeResult = dateFormatterShort.format(datetime);
// assert.sameValue(datetimeResult, "3/4/22", "plain datetime, dateStyle=short");
assert.sameValue(datetimeResult.search("888"), -1, "plain datetime, dateStyle=short");
const expectedDate = {
// "Monday, March 4, 2222"
full: {
year: ["2222", true],
month: ["3", false],
day: ["4", true],
},
datetimeResult = dateFormatterMedium.format(datetime);
// assert.sameValue(datetimeResult, "Mar 4, 2222", "plain datetime, dateStyle=medium");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle=medium: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle=medium: day should appear");
assert.sameValue(datetimeResult.search("999"), -1, "plain datetime, dateStyle=medium: microseconds should not appear");
// "March 4, 2222"
long: {
year: ["2222", true],
month: ["3", false],
day: ["4", true],
},
datetimeResult = dateFormatterLong.format(datetime);
// assert.sameValue(datetimeResult, "March 4, 2222", "plain datetime, dateStyle=long");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle=long: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle=long: day should appear");
assert.sameValue(datetimeResult.search("999"), -1, "plain datetime, dateStyle=long: nanoseconds should not appear");
// "Mar 4, 2222"
medium: {
year: ["2222", true],
month: ["3", false],
day: ["4", true],
},
datetimeResult = dateFormatterFull.format(datetime);
// assert.sameValue(datetimeResult, "Monday, March 4, 2222", "plain datetime, dateStyle=full");
assert.notSameValue(datetimeResult.search("Monday"), -1, "plain datetime, dateStyle=full: day of week should appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle=full: day should appear");
assert.sameValue(datetimeResult.search("888"), -1, "plain datetime, dateStyle=long: milliseconds should not appear");
// "3/4/22"
short: {
year: ["22", true],
month: ["3", true],
day: ["4", true],
},
};
datetimeResult = timeFormatterShort.format(datetime);
// assert.sameValue(datetimeResult, "5:06 AM", "plain datetime, timeStyle=short");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, timeStyle=short: month should not appear");
assert.sameValue(datetimeResult.search("4"), -1, "plain datetime, timeStyle=short: day should not appear");
assert.notSameValue(datetimeResult.search("5"), -1, "plain datetime, timeStyle=short: hour should appear");
const expectedTime = {
// "5:06:07 AM"
full: {
hour: true,
minute: true,
second: true,
millisecond: false,
microsecond: false,
nanosecond: false,
},
datetimeResult = timeFormatterMedium.format(datetime);
// assert.sameValue(datetimeResult, "5:06:07 AM", "plain datetime, timeStyle=medium");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, timeStyle=medium: month should not appear");
assert.sameValue(datetimeResult.search("4"), -1, "plain datetime, timeStyle=medium: day should not appear");
assert.notSameValue(datetimeResult.search("7"), -1, "plain datetime, timeStyle=medium: seconds should appear");
// "5:06:07 AM"
long: {
hour: true,
minute: true,
second: true,
millisecond: false,
microsecond: false,
nanosecond: false,
},
datetimeResult = timeFormatterLong.format(datetime);
// assert.sameValue(datetimeResult, "5:06:07 AM", "plain datetime, timeStyle=long");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, timeStyle=long: month should not appear");
assert.sameValue(datetimeResult.search("4"), -1, "plain datetime, timeStyle=long: day should not appear");
assert.notSameValue(datetimeResult.search("6"), -1, "plain datetime, timeStyle=long: minutes should appear");
// "5:06:07 AM"
medium: {
hour: true,
minute: true,
second: true,
millisecond: false,
microsecond: false,
nanosecond: false,
},
datetimeResult = timeFormatterFull.format(datetime);
// assert.sameValue(datetimeResult, "5:06:07 AM", "plain datetime, timeStyle=full");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, timeStyle=full: month should not appear");
assert.sameValue(datetimeResult.search("4"), -1, "plain datetime, timeStyle=full: day should not appear");
assert.notSameValue(datetimeResult.search("7"), -1, "plain datetime, timeStyle=full: seconds should appear");
// "5:06 AM"
short: {
hour: true,
minute: true,
second: false,
millisecond: false,
microsecond: false,
nanosecond: false,
},
};
datetimeResult = dateTimeFormatterShort.format(datetime);
// assert.sameValue(datetimeResult, "3/4/22, 5:06 AM", "plain datetime, dateStyle = timeStyle = short");
assert.notSameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = timeStyle = short: numeric month should appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = timeStyle = short: day should appear");
assert.notSameValue(datetimeResult.search("6"), -1, "plain datetime, dateStyle = timeStyle = short: minutes should appear");
assert.sameValue(datetimeResult.search("7"), -1, "plain datetime, dateStyle = timeStyle = short: seconds should not appear");
function ensureDateField(result, field, dateStyle) {
let [searchValue, present] = expectedDate[dateStyle][field];
let verb = present ? "should" : "should not";
datetimeResult = dateTimeFormatterLong.format(datetime);
// assert.sameValue(datetimeResult, "Mar 4, 2222, 5:06:07 AM", "plain datetime, dateStyle = timeStyle = medium");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = timeStyle = medium: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = timeStyle = medium: day should appear");
assert.notSameValue(datetimeResult.search("6"), -1, "plain datetime, dateStyle = timeStyle = medium: minutes should appear");
assert.notSameValue(datetimeResult.search("7"), -1, "plain datetime, dateStyle = timeStyle = medium: seconds should appear");
assert.sameValue(
result.includes(searchValue),
present,
`dateStyle=${dateStyle}: ${field} ${verb} appear`
);
}
datetimeResult = dateTimeFormatterLong.format(datetime);
// assert.sameValue(datetimeResult, "March 4, 2222 at 5:06:07 AM", "plain datetime, dateStyle = timeStyle = long");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = timeStyle = long: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = timeStyle = long: day should appear");
assert.notSameValue(datetimeResult.search("6"), -1, "plain datetime, dateStyle = timeStyle = long: minutes should appear");
assert.notSameValue(datetimeResult.search("7"), -1, "plain datetime, dateStyle = timeStyle = long: seconds should appear");
function ensureTimeField(result, field, value, timeStyle) {
let present = expectedTime[timeStyle][field];
let verb = present ? "should" : "should not";
datetimeResult = dateTimeFormatterFull.format(datetime);
// assert.sameValue(datetimeResult, "Monday, March 4, 2222 at 5:06:07 AM", "plain datetime, dateStyle = timeStyle = full");
assert.notSameValue(datetimeResult.search("Monday"), -1, "plain datetime, dateStyle = timeStyle = full: day of week should appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = timeStyle = full: day should appear");
assert.sameValue(datetimeResult.search("888"), -1, "plain datetime, dateStyle = timeStyle = full: milliseconds should not appear");
assert.sameValue(
result.includes(value),
present,
`timeStyle=${timeStyle}: ${field} ${verb} appear`
);
}
datetimeResult = dateTimeFormatterShortLong.format(datetime);
// assert.sameValue(datetimeResult, "3/4/22, 5:06:07 AM", "plain datetime, dateStyle = short, timeStyle = long");
assert.sameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = short, timeStyle = long: 4-digit year should not appear");
assert.notSameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = short, timeStyle = long: numeric month should appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = short, timeStyle = long: day should appear");
assert.sameValue(datetimeResult.search("888"), -1, "plain datetime, dateStyle = short, timeStyle = long: milliseconds should not appear");
for (let dateStyle of dateStyles) {
let dtf = new Intl.DateTimeFormat(locale, {dateStyle, timeZone});
let result = dtf.format(datetime);
ensureDateField(result, "year", dateStyle);
ensureDateField(result, "month", dateStyle);
ensureDateField(result, "day", dateStyle);
datetimeResult = dateTimeFormatterShortMedium.format(datetime);
// assert.sameValue(datetimeResult, "3/4/22, 5:06:07 AM", "plain datetime, dateStyle = short, timeStyle = medium");
assert.sameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = short, timeStyle = medium: 4-digit year should not appear");
assert.notSameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = short, timeStyle = medium: numeric month should appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = short, timeStyle = medium: day should appear");
assert.sameValue(datetimeResult.search("111"), -1, "plain datetime, dateStyle = short, timeStyle = medium: nanoseconds should not appear");
if (dateStyle === "full") {
assert.sameValue(result.includes("Monday"), true, `dateStyle=${dateStyle}: day of week should appear`);
}
datetimeResult = dateTimeFormatterShortFull.format(datetime);
// assert.sameValue(datetimeResult, "3/4/22, 5:06:07 AM", "plain datetime, dateStyle = short, timeStyle = full");
assert.sameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = short, timeStyle = full: 4-digit year should not appear");
assert.notSameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = short, timeStyle = full: numeric month should appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = short, timeStyle = full: day should appear");
assert.sameValue(datetimeResult.search("999"), -1, "plain datetime, dateStyle = short, timeStyle = full: microseconds should not appear");
assert.sameValue(result.includes("5"), false, `dateStyle=${dateStyle}: hour should not appear`);
assert.sameValue(result.includes("6"), false, `dateStyle=${dateStyle}: minute should not appear`);
assert.sameValue(result.includes("7"), false, `dateStyle=${dateStyle}: second should not appear`);
assert.sameValue(result.includes("888"), false, `dateStyle=${dateStyle}: millisecond should not appear`);
assert.sameValue(result.includes("999"), false, `dateStyle=${dateStyle}: microsecond should not appear`);
assert.sameValue(result.includes("111"), false, `dateStyle=${dateStyle}: nanosecond should not appear`);
}
datetimeResult = dateTimeFormatterMediumLong.format(datetime);
// assert.sameValue(datetimeResult, "Mar 4, 2222, 5:06:07 AM", "plain datetime, dateStyle = medium, timeStyle = long");
assert.notSameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = medium, timeStyle = long: 4-digit year should appear");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = medium, timeStyle = long: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = medium, timeStyle = long: day should appear");
assert.sameValue(datetimeResult.search("888"), -1, "plain datetime, dateStyle = medium, timeStyle = long: milliseconds should not appear");
for (let timeStyle of timeStyles) {
let dtf = new Intl.DateTimeFormat(locale, {timeStyle, timeZone});
let result = dtf.format(datetime);
datetimeResult = dateTimeFormatterMediumShort.format(datetime);
// assert.sameValue(datetimeResult, "Mar 4, 2222, 5:06 AM", "plain datetime, dateStyle = medium, timeStyle = short");
assert.notSameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = medium, timeStyle = short: 4-digit year should appear");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = medium, timeStyle = short: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = medium, timeStyle = short: day should appear");
assert.notSameValue(datetimeResult.search("5"), -1, "plain datetime, dateStyle = medium, timeStyle = short: hour should appear");
assert.sameValue(datetimeResult.search("888"), -1, "plain datetime, dateStyle = medium, timeStyle = short: milliseconds should not appear");
assert.sameValue(result.includes("2"), false, `timeStyle=${timeStyle}: year should not appear`);
assert.sameValue(result.includes("3"), false, `timeStyle=${timeStyle}: month should not appear`);
assert.sameValue(result.includes("4"), false, `timeStyle=${timeStyle}: day should not appear`);
datetimeResult = dateTimeFormatterMediumFull.format(datetime);
// assert.sameValue(datetimeResult, "Mar 4, 2222, 5:06:07 AM", "plain datetime, dateStyle = medium, timeStyle = full");
assert.notSameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = medium, timeStyle = full: 4-digit year should appear");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = medium, timeStyle = full: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = medium, timeStyle = full: day should appear");
assert.notSameValue(datetimeResult.search("7"), -1, "plain datetime, dateStyle = medium, timeStyle = full: seconds should appear");
assert.sameValue(datetimeResult.search("888"), -1, "plain datetime, dateStyle = medium, timeStyle = full: milliseconds should not appear");
ensureTimeField(result, "hour", "5", timeStyle);
ensureTimeField(result, "minute", "6", timeStyle);
ensureTimeField(result, "second", "7", timeStyle);
ensureTimeField(result, "millisecond", "888", timeStyle);
ensureTimeField(result, "microsecond", "999", timeStyle);
ensureTimeField(result, "nanosecond", "111", timeStyle);
}
datetimeResult = dateTimeFormatterLongMedium.format(datetime);
// assert.sameValue(datetimeResult, "March 4, 2222 at 5:06:07 AM", "plain datetime, dateStyle = long, timeStyle = medium");
assert.notSameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = long, timeStyle = medium: 4-digit year should appear");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = long, timeStyle = medium: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = long, timeStyle = medium: day should appear");
assert.notSameValue(datetimeResult.search("7"), -1, "plain datetime, dateStyle = long, timeStyle = medium: seconds should appear");
assert.sameValue(datetimeResult.search("888"), -1, "plain datetime, dateStyle = long, timeStyle = medium: milliseconds should not appear");
for (let dateStyle of dateStyles) {
for (let timeStyle of timeStyles) {
let dtf = new Intl.DateTimeFormat(locale, {dateStyle, timeStyle, timeZone});
let result = dtf.format(datetime);
datetimeResult = dateTimeFormatterLongShort.format(datetime);
// assert.sameValue(datetimeResult, "March 4, 2222 at 5:06 AM", "plain datetime, dateStyle = long, timeStyle = short");
assert.notSameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = long, timeStyle = short: 4-digit year should appear");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = long, timeStyle = short: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = long, timeStyle = short: day should appear");
assert.notSameValue(datetimeResult.search("6"), -1, "plain datetime, dateStyle = long, timeStyle = short: minutes should appear");
assert.sameValue(datetimeResult.search("7"), -1, "plain datetime, dateStyle = long, timeStyle = short: seconds should not appear");
ensureDateField(result, "year", dateStyle);
ensureDateField(result, "month", dateStyle);
ensureDateField(result, "day", dateStyle);
datetimeResult = dateTimeFormatterLongFull.format(datetime);
// assert.sameValue(datetimeResult, "March 4, 2222 at 5:06:07 AM", "plain datetime, dateStyle = long, timeStyle = full");
assert.notSameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = long, timeStyle = full: 4-digit year should appear");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = long, timeStyle = full: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = long, timeStyle = full: day should appear");
assert.notSameValue(datetimeResult.search("7"), -1, "plain datetime, dateStyle = long, timeStyle = full: seconds should appear");
assert.sameValue(datetimeResult.search("888"), -1, "plain datetime, dateStyle = long, timeStyle = full: milliseconds should not appear");
if (dateStyle === "full") {
assert.sameValue(result.includes("Monday"), true, `dateStyle=${dateStyle}: day of week should appear`);
}
datetimeResult = dateTimeFormatterFullMedium.format(datetime);
// assert.sameValue(datetimeResult, "Monday, March 4, 2222 at 5:06:07 AM", "plain datetime, dateStyle = full, timeStyle = medium");
assert.notSameValue(datetimeResult.search("Monday"), -1, "plain datetime, dateStyle = full, timeStyle = medium: day of week should appear");
assert.notSameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = full, timeStyle = medium: 4-digit year should appear");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = full, timeStyle = medium: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = full, timeStyle = medium: day should appear");
assert.notSameValue(datetimeResult.search("7"), -1, "plain datetime, dateStyle = full, timeStyle = medium: seconds should appear");
assert.sameValue(datetimeResult.search("999"), -1, "plain datetime, dateStyle = full, timeStyle = medium: microseconds should not appear");
datetimeResult = dateTimeFormatterFullShort.format(datetime);
// assert.sameValue(datetimeResult, "Monday, March 4, 2222 at 5:06 AM", "plain datetime, dateStyle = full, timeStyle = short");
assert.notSameValue(datetimeResult.search("Monday"), -1, "plain datetime, dateStyle = full, timeStyle = short: day of week should appear");
assert.notSameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = full, timeStyle = short: 4-digit year should appear");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = full, timeStyle = short: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = full, timeStyle = short: day should appear");
assert.notSameValue(datetimeResult.search("6"), -1, "plain datetime, dateStyle = full, timeStyle = short: minutes should appear");
assert.sameValue(datetimeResult.search("7"), -1, "plain datetime, dateStyle = full, timeStyle = short: seconds should not appear");
datetimeResult = dateTimeFormatterFullLong.format(datetime);
// assert.sameValue(datetimeResult, "Monday, March 4, 2222 at 5:06:07 AM", "plain datetime, dateStyle = full, timeStyle = long");
assert.notSameValue(datetimeResult.search("Monday"), -1, "plain datetime, dateStyle = full, timeStyle = long: day of week should appear");
assert.notSameValue(datetimeResult.search("2222"), -1, "plain datetime, dateStyle = full, timeStyle = long: 4-digit year should appear");
assert.sameValue(datetimeResult.search("3"), -1, "plain datetime, dateStyle = full, timeStyle = long: numeric month should not appear");
assert.notSameValue(datetimeResult.search("4"), -1, "plain datetime, dateStyle = full, timeStyle = long: day should appear");
assert.notSameValue(datetimeResult.search("6"), -1, "plain datetime, dateStyle = full, timeStyle = long: minutes should appear");
assert.notSameValue(datetimeResult.search("7"), -1, "plain datetime, dateStyle = full, timeStyle = long: seconds should appear");
assert.sameValue(datetimeResult.search("888"), -1, "plain datetime, dateStyle = full, timeStyle = long: milliseconds should not appear");
ensureTimeField(result, "hour", "5", timeStyle);
ensureTimeField(result, "minute", "6", timeStyle);
ensureTimeField(result, "second", "7", timeStyle);
ensureTimeField(result, "millisecond", "888", timeStyle);
ensureTimeField(result, "microsecond", "999", timeStyle);
ensureTimeField(result, "nanosecond", "111", timeStyle);
}
}