v8/test/mjsunit/temporal/calendar-week-of-year.js
Frank Tang dfa3dfa3b5 [Temporal] Add some tests for Temporal.Calendar
All marked as FAIL at this stage.

Bug: v8:11544
Change-Id: I6e4346a57aa3df054d2ef5bd353544fba7fd855b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3044350
Commit-Queue: Frank Tang <ftang@chromium.org>
Reviewed-by: Shu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76211}
2021-08-10 20:04:10 +00:00

69 lines
3.0 KiB
JavaScript

// Copyright 2021 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Flags: --harmony-temporal
// https://tc39.es/proposal-temporal/#sec-temporal.calendar.prototype.weekofyear
let cal = new Temporal.Calendar("iso8601");
// From https://en.wikipedia.org/wiki/ISO_week_date#Relation_with_the_Gregorian_calendar
assertEquals(53, cal.weekOfYear(new Temporal.PlainDate(1977, 01, 01)));
assertEquals(53, cal.weekOfYear(new Temporal.PlainDate(1977, 01, 02)));
assertEquals(52, cal.weekOfYear(new Temporal.PlainDate(1977, 12, 31)));
assertEquals(52, cal.weekOfYear(new Temporal.PlainDate(1978, 01, 01)));
assertEquals(1, cal.weekOfYear(new Temporal.PlainDate(1978, 01, 02)));
assertEquals(52, cal.weekOfYear(new Temporal.PlainDate(1978, 12, 31)));
assertEquals(1, cal.weekOfYear(new Temporal.PlainDate(1979, 01, 01)));
assertEquals(52, cal.weekOfYear(new Temporal.PlainDate(1979, 12, 30)));
assertEquals(1, cal.weekOfYear(new Temporal.PlainDate(1979, 12, 31)));
assertEquals(1, cal.weekOfYear(new Temporal.PlainDate(1980, 01, 01)));
assertEquals(52, cal.weekOfYear(new Temporal.PlainDate(1980, 12, 28)));
assertEquals(1, cal.weekOfYear(new Temporal.PlainDate(1980, 12, 29)));
assertEquals(1, cal.weekOfYear(new Temporal.PlainDate(1980, 12, 30)));
assertEquals(1, cal.weekOfYear(new Temporal.PlainDate(1980, 12, 31)));
assertEquals(1, cal.weekOfYear(new Temporal.PlainDate(1981, 01, 01)));
assertEquals(53, cal.weekOfYear(new Temporal.PlainDate(1981, 12, 31)));
assertEquals(53, cal.weekOfYear(new Temporal.PlainDate(1982, 01, 01)));
assertEquals(53, cal.weekOfYear(new Temporal.PlainDate(1982, 01, 02)));
assertEquals(53, cal.weekOfYear(new Temporal.PlainDate(1982, 01, 03)));
assertEquals(53, cal.weekOfYear("1977-01-01"));
assertEquals(53, cal.weekOfYear("1977-01-02"));
assertEquals(52, cal.weekOfYear("1977-12-31"));
assertEquals(52, cal.weekOfYear("1978-01-01"));
assertEquals(1, cal.weekOfYear("1978-01-02"));
assertEquals(52, cal.weekOfYear("1978-12-31"));
assertEquals(1, cal.weekOfYear("1979-01-01"));
assertEquals(52, cal.weekOfYear("1979-12-30"));
assertEquals(1, cal.weekOfYear("1979-12-31"));
assertEquals(1, cal.weekOfYear("1980-01-01"));
assertEquals(52, cal.weekOfYear("1980-12-28"));
assertEquals(1, cal.weekOfYear("1980-12-29"));
assertEquals(1, cal.weekOfYear("1980-12-30"));
assertEquals(1, cal.weekOfYear("1980-12-31"));
assertEquals(1, cal.weekOfYear("1981-01-01"));
assertEquals(53, cal.weekOfYear("1981-12-31"));
assertEquals(53, cal.weekOfYear("1982-01-01"));
assertEquals(53, cal.weekOfYear("1982-01-02"));
assertEquals(53, cal.weekOfYear("1982-01-03"));
// TODO test the following later
//assertEquals(4, cal.weekOfYear(new Temporal.PlainDateTime(1997, 1, 23, 5,
// 30, 13)));
//assertEquals(7, cal.weekOfYear(new Temporal.PlainMonthDay(2, 6)));
//assertEquals(31, cal.weekOfYear(new Temporal.ZonedDateTime(
// 86400n * 366n * 50n, "UTC")))
//assertEquals(30, cal.weekOfYear({year: 2001, month: 9, day: 11}));