From 3316c0aaf676d657f5a6b33364fa7e579c78ac7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bargull?= Date: Thu, 22 May 2025 11:59:01 +0200 Subject: [PATCH] Test all combinations in temporal-plaindatetime-formatting-datetime-style --- ...plaindatetime-formatting-datetime-style.js | 311 ++++++++---------- 1 file changed, 139 insertions(+), 172 deletions(-) diff --git a/test/intl402/DateTimeFormat/prototype/format/temporal-plaindatetime-formatting-datetime-style.js b/test/intl402/DateTimeFormat/prototype/format/temporal-plaindatetime-formatting-datetime-style.js index 09cc9eaffa..fd01081176 100644 --- a/test/intl402/DateTimeFormat/prototype/format/temporal-plaindatetime-formatting-datetime-style.js +++ b/test/intl402/DateTimeFormat/prototype/format/temporal-plaindatetime-formatting-datetime-style.js @@ -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); + } +}