diff --git a/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/basic.js b/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/basic.js index 4d8c71fd684..b2fd5518679 100644 --- a/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/basic.js +++ b/test/built-ins/Temporal/PlainDateTime/prototype/weekOfYear/basic.js @@ -3,9 +3,35 @@ /*--- esid: sec-get-temporal.plaindatetime.prototype.weekofyear -description: Checking week of year for a "normal" case (non-undefined, non-boundary case, etc.) +description: Checking week of year for a "normal" case, as well as for dates near the turn of the year. features: [Temporal] ---*/ -const datetime = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789, "iso8601"); +const datetime = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789); assert.sameValue(datetime.weekOfYear, 47, "check week of year information"); + +for (let i = 29; i <= 31; ++i) { + const datetime = new Temporal.PlainDateTime(1975, 12, i, 15, 23, 30, 123, 456, 789); + assert.sameValue(datetime.weekOfYear, 1, `${datetime} should be in week 1`); +} +for (let i = 1; i <= 4; ++i) { + const datetime = new Temporal.PlainDateTime(1976, 1, i, 15, 23, 30, 123, 456, 789); + assert.sameValue(datetime.weekOfYear, 1, `${datetime} should be in week 1`); +} +for (let i = 5; i <= 11; ++i) { + const datetime = new Temporal.PlainDateTime(1976, 1, i, 15, 23, 30, 123, 456, 789); + assert.sameValue(datetime.weekOfYear, 2, `${datetime} should be in week 2`); +} +for (let i = 20; i <= 26; ++i) { + const datetime = new Temporal.PlainDateTime(1976, 12, i, 15, 23, 30, 123, 456, 789); + assert.sameValue(datetime.weekOfYear, 52, `${datetime} should be in week 52`); +} +for (let i = 27; i <= 31; ++i) { + const datetime = new Temporal.PlainDateTime(1976, 12, i, 15, 23, 30, 123, 456, 789); + assert.sameValue(datetime.weekOfYear, 53, `${datetime} should be in week 53`); +} +for (let i = 1; i <= 2; ++i) { + const datetime = new Temporal.PlainDateTime(1977, 1, i, 15, 23, 30, 123, 456, 789); + assert.sameValue(datetime.weekOfYear, 53, `${datetime} should be in week 53`); +} + diff --git a/test/built-ins/Temporal/ZonedDateTime/prototype/weekOfYear/basic.js b/test/built-ins/Temporal/ZonedDateTime/prototype/weekOfYear/basic.js new file mode 100644 index 00000000000..d199da9def9 --- /dev/null +++ b/test/built-ins/Temporal/ZonedDateTime/prototype/weekOfYear/basic.js @@ -0,0 +1,37 @@ +// Copyright (C) 2026 Igalia, S.L. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-get-temporal.zoneddatetime.prototype.weekofyear +description: Checking week of year for a "normal" case, as well as for dates near the turn of the year. +features: [Temporal] +---*/ + +const zdt = new Temporal.PlainDateTime(1976, 11, 18, 15, 23, 30, 123, 456, 789).toZonedDateTime("UTC"); +assert.sameValue(zdt.weekOfYear, 47, "check week of year information"); + +for (let i = 29; i <= 31; ++i) { + const zdt = new Temporal.PlainDateTime(1975, 12, i, 15, 23, 30, 123, 456, 789).toZonedDateTime("UTC"); + assert.sameValue(zdt.weekOfYear, 1, `${zdt} should be in week 1`); +} +for (let i = 1; i <= 4; ++i) { + const zdt = new Temporal.PlainDateTime(1976, 1, i, 15, 23, 30, 123, 456, 789).toZonedDateTime("UTC"); + assert.sameValue(zdt.weekOfYear, 1, `${zdt} should be in week 1`); +} +for (let i = 5; i <= 11; ++i) { + const zdt = new Temporal.PlainDateTime(1976, 1, i, 15, 23, 30, 123, 456, 789).toZonedDateTime("UTC"); + assert.sameValue(zdt.weekOfYear, 2, `${zdt} should be in week 2`); +} +for (let i = 20; i <= 26; ++i) { + const zdt = new Temporal.PlainDateTime(1976, 12, i, 15, 23, 30, 123, 456, 789).toZonedDateTime("UTC"); + assert.sameValue(zdt.weekOfYear, 52, `${zdt} should be in week 52`); +} +for (let i = 27; i <= 31; ++i) { + const zdt = new Temporal.PlainDateTime(1976, 12, i, 15, 23, 30, 123, 456, 789).toZonedDateTime("UTC"); + assert.sameValue(zdt.weekOfYear, 53, `${zdt} should be in week 53`); +} +for (let i = 1; i <= 2; ++i) { + const zdt = new Temporal.PlainDateTime(1977, 1, i, 15, 23, 30, 123, 456, 789).toZonedDateTime("UTC"); + assert.sameValue(zdt.weekOfYear, 53, `${zdt} should be in week 53`); +} + diff --git a/test/staging/Temporal/v8/calendar-week-of-year.js b/test/staging/Temporal/v8/calendar-week-of-year.js deleted file mode 100644 index 4aeab8a7cba..00000000000 --- a/test/staging/Temporal/v8/calendar-week-of-year.js +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2021 the V8 project authors. All rights reserved. -// This code is governed by the BSD license found in the LICENSE file. - -/*--- -esid: pending -description: > - Automatically ported from calendar-week-of-year test - in V8's mjsunit test calendar-week-of-year.js -features: [Temporal] ----*/ - -assert.sameValue((new Temporal.PlainDate(1977, 1, 1)).weekOfYear, 53); -assert.sameValue((new Temporal.PlainDate(1977, 1, 2)).weekOfYear, 53); -assert.sameValue((new Temporal.PlainDate(1977, 12, 31)).weekOfYear, 52); -assert.sameValue((new Temporal.PlainDate(1978, 1, 1)).weekOfYear, 52); -assert.sameValue((new Temporal.PlainDate(1978, 1, 2)).weekOfYear, 1); -assert.sameValue((new Temporal.PlainDate(1978, 12, 31)).weekOfYear, 52); -assert.sameValue((new Temporal.PlainDate(1979, 1, 1)).weekOfYear, 1); -assert.sameValue((new Temporal.PlainDate(1979, 12, 30)).weekOfYear, 52); -assert.sameValue((new Temporal.PlainDate(1979, 12, 31)).weekOfYear, 1); -assert.sameValue((new Temporal.PlainDate(1980, 1, 1)).weekOfYear, 1); -assert.sameValue((new Temporal.PlainDate(1980, 12, 28)).weekOfYear, 52); -assert.sameValue((new Temporal.PlainDate(1980, 12, 29)).weekOfYear, 1); -assert.sameValue((new Temporal.PlainDate(1980, 12, 30)).weekOfYear, 1); -assert.sameValue((new Temporal.PlainDate(1980, 12, 31)).weekOfYear, 1); -assert.sameValue((new Temporal.PlainDate(1981, 1, 1)).weekOfYear, 1); -assert.sameValue((new Temporal.PlainDate(1981, 12, 31)).weekOfYear, 53); -assert.sameValue((new Temporal.PlainDate(1982, 1, 1)).weekOfYear, 53); -assert.sameValue((new Temporal.PlainDate(1982, 1, 2)).weekOfYear, 53); -assert.sameValue((new Temporal.PlainDate(1982, 1, 3)).weekOfYear, 53); -assert.sameValue(Temporal.PlainDate.from('1977-01-01').weekOfYear, 53); -assert.sameValue(Temporal.PlainDate.from('1977-01-02').weekOfYear, 53); -assert.sameValue(Temporal.PlainDate.from('1977-12-31').weekOfYear, 52); -assert.sameValue(Temporal.PlainDate.from('1978-01-01').weekOfYear, 52); -assert.sameValue(Temporal.PlainDate.from('1978-01-02').weekOfYear, 1); -assert.sameValue(Temporal.PlainDate.from('1978-12-31').weekOfYear, 52); -assert.sameValue(Temporal.PlainDate.from('1979-01-01').weekOfYear, 1); -assert.sameValue(Temporal.PlainDate.from('1979-12-30').weekOfYear, 52); -assert.sameValue(Temporal.PlainDate.from('1979-12-31').weekOfYear, 1); -assert.sameValue(Temporal.PlainDate.from('1980-01-01').weekOfYear, 1); -assert.sameValue(Temporal.PlainDate.from('1980-12-28').weekOfYear, 52); -assert.sameValue(Temporal.PlainDate.from('1980-12-29').weekOfYear, 1); -assert.sameValue(Temporal.PlainDate.from('1980-12-30').weekOfYear, 1); -assert.sameValue(Temporal.PlainDate.from('1980-12-31').weekOfYear, 1); -assert.sameValue(Temporal.PlainDate.from('1981-01-01').weekOfYear, 1); -assert.sameValue(Temporal.PlainDate.from('1981-12-31').weekOfYear, 53); -assert.sameValue(Temporal.PlainDate.from('1982-01-01').weekOfYear, 53); -assert.sameValue(Temporal.PlainDate.from('1982-01-02').weekOfYear, 53); -assert.sameValue(Temporal.PlainDate.from('1982-01-03').weekOfYear, 53);