diff options
Diffstat (limited to 'js/src/tests/test262/intl402/Temporal/TimeZone/prototype/getPlainDateTimeFor/basic.js')
-rw-r--r-- | js/src/tests/test262/intl402/Temporal/TimeZone/prototype/getPlainDateTimeFor/basic.js | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/js/src/tests/test262/intl402/Temporal/TimeZone/prototype/getPlainDateTimeFor/basic.js b/js/src/tests/test262/intl402/Temporal/TimeZone/prototype/getPlainDateTimeFor/basic.js new file mode 100644 index 0000000000..c10f4676c4 --- /dev/null +++ b/js/src/tests/test262/intl402/Temporal/TimeZone/prototype/getPlainDateTimeFor/basic.js @@ -0,0 +1,81 @@ +// |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally +// Copyright (C) 2022 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-temporal.timezone.prototype.getplaindatetimefor +description: Sample of results for IANA time zones +includes: [temporalHelpers.js] +features: [Temporal] +---*/ + +function test(epochNs, results) { + const instant = new Temporal.Instant(epochNs); + Object.entries(results).forEach(([id, expected]) => { + const tz = new Temporal.TimeZone(id); + const dt = tz.getPlainDateTimeFor(instant); + TemporalHelpers.assertPlainDateTime(dt, ...expected, `Local time of ${instant} in ${id}`); + }); +} + +// Unix epoch +test(0n, { + 'America/Los_Angeles': [1969, 12, "M12", 31, 16, 0, 0, 0, 0, 0], + 'America/New_York': [1969, 12, "M12", 31, 19, 0, 0, 0, 0, 0], + 'Africa/Monrovia': [1969, 12, "M12", 31, 23, 15, 30, 0, 0, 0], + 'Europe/London': [1970, 1, "M01", 1, 1, 0, 0, 0, 0, 0], + 'Europe/Berlin': [1970, 1, "M01", 1, 1, 0, 0, 0, 0, 0], + 'Europe/Moscow': [1970, 1, "M01", 1, 3, 0, 0, 0, 0, 0], + 'Asia/Kolkata': [1970, 1, "M01", 1, 5, 30, 0, 0, 0, 0], + 'Asia/Tokyo': [1970, 1, "M01", 1, 9, 0, 0, 0, 0, 0], +}); + +// Just before epoch +test(-1n, { + 'America/Los_Angeles': [1969, 12, "M12", 31, 15, 59, 59, 999, 999, 999], + 'America/New_York': [1969, 12, "M12", 31, 18, 59, 59, 999, 999, 999], + 'Africa/Monrovia': [1969, 12, "M12", 31, 23, 15, 29, 999, 999, 999], + 'Europe/London': [1970, 1, "M01", 1, 0, 59, 59, 999, 999, 999], + 'Europe/Berlin': [1970, 1, "M01", 1, 0, 59, 59, 999, 999, 999], + 'Europe/Moscow': [1970, 1, "M01", 1, 2, 59, 59, 999, 999, 999], + 'Asia/Kolkata': [1970, 1, "M01", 1, 5, 29, 59, 999, 999, 999], + 'Asia/Tokyo': [1970, 1, "M01", 1, 8, 59, 59, 999, 999, 999], +}); + +// Just after epoch +test(1n, { + 'America/Los_Angeles': [1969, 12, "M12", 31, 16, 0, 0, 0, 0, 1], + 'America/New_York': [1969, 12, "M12", 31, 19, 0, 0, 0, 0, 1], + 'Africa/Monrovia': [1969, 12, "M12", 31, 23, 15, 30, 0, 0, 1], + 'Europe/London': [1970, 1, "M01", 1, 1, 0, 0, 0, 0, 1], + 'Europe/Berlin': [1970, 1, "M01", 1, 1, 0, 0, 0, 0, 1], + 'Europe/Moscow': [1970, 1, "M01", 1, 3, 0, 0, 0, 0, 1], + 'Asia/Kolkata': [1970, 1, "M01", 1, 5, 30, 0, 0, 0, 1], + 'Asia/Tokyo': [1970, 1, "M01", 1, 9, 0, 0, 0, 0, 1], +}); + +// Hours before epoch +test(-6300_000_000_001n, { + 'America/Los_Angeles': [1969, 12, "M12", 31, 14, 14, 59, 999, 999, 999], + 'America/New_York': [1969, 12, "M12", 31, 17, 14, 59, 999, 999, 999], + 'Africa/Monrovia': [1969, 12, "M12", 31, 21, 30, 29, 999, 999, 999], + 'Europe/London': [1969, 12, "M12", 31, 23, 14, 59, 999, 999, 999], + 'Europe/Berlin': [1969, 12, "M12", 31, 23, 14, 59, 999, 999, 999], + 'Europe/Moscow': [1970, 1, "M01", 1, 1, 14, 59, 999, 999, 999], + 'Asia/Kolkata': [1970, 1, "M01", 1, 3, 44, 59, 999, 999, 999], + 'Asia/Tokyo': [1970, 1, "M01", 1, 7, 14, 59, 999, 999, 999], +}); + +// Hours after epoch +test(6300_000_000_001n, { + 'America/Los_Angeles': [1969, 12, "M12", 31, 17, 45, 0, 0, 0, 1], + 'America/New_York': [1969, 12, "M12", 31, 20, 45, 0, 0, 0, 1], + 'Africa/Monrovia': [1970, 1, "M01", 1, 1, 0, 30, 0, 0, 1], + 'Europe/London': [1970, 1, "M01", 1, 2, 45, 0, 0, 0, 1], + 'Europe/Berlin': [1970, 1, "M01", 1, 2, 45, 0, 0, 0, 1], + 'Europe/Moscow': [1970, 1, "M01", 1, 4, 45, 0, 0, 0, 1], + 'Asia/Kolkata': [1970, 1, "M01", 1, 7, 15, 0, 0, 0, 1], + 'Asia/Tokyo': [1970, 1, "M01", 1, 10, 45, 0, 0, 0, 1], +}); + +reportCompare(0, 0); |