mirror of
https://github.com/tc39/test262.git
synced 2025-11-29 18:13:13 +01:00
Temporal: Add tests for addition/subtraction across era boundaries for Hijri calendars
This commit is contained in:
parent
29e8305d0f
commit
7ab1a79c0e
68
test/intl402/Temporal/PlainDate/prototype/add/era-boundary-islamic-civil.js
vendored
Normal file
68
test/intl402/Temporal/PlainDate/prototype/add/era-boundary-islamic-civil.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindate.prototype.add
|
||||
description: Adding years works correctly across era boundaries in islamic-civil calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(1);
|
||||
const duration1n = new Temporal.Duration(-1);
|
||||
const calendar = "islamic-civil";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDate.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date1.add(duration1),
|
||||
0, 6, "M06", 15, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDate.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.add(duration1),
|
||||
1, 6, "M06", 15, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDate.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.add(duration1),
|
||||
2, 6, "M06", 15, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDate.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date4.add(new Temporal.Duration(10)),
|
||||
6, 3, "M03", 1, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDate.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date5.add(duration1n),
|
||||
1, 6, "M06", 15, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.add(duration1n),
|
||||
0, 6, "M06", 15, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.add(duration1n),
|
||||
-1, 6, "M06", 15, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDate.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date6.add(new Temporal.Duration(-10)),
|
||||
-5, 3, "M03", 1, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/PlainDate/prototype/add/era-boundary-islamic-tbla.js
vendored
Normal file
68
test/intl402/Temporal/PlainDate/prototype/add/era-boundary-islamic-tbla.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindate.prototype.add
|
||||
description: Adding years works correctly across era boundaries in islamic-tbla calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(1);
|
||||
const duration1n = new Temporal.Duration(-1);
|
||||
const calendar = "islamic-tbla";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDate.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date1.add(duration1),
|
||||
0, 6, "M06", 15, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDate.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.add(duration1),
|
||||
1, 6, "M06", 15, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDate.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.add(duration1),
|
||||
2, 6, "M06", 15, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDate.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date4.add(new Temporal.Duration(10)),
|
||||
6, 3, "M03", 1, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDate.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date5.add(duration1n),
|
||||
1, 6, "M06", 15, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.add(duration1n),
|
||||
0, 6, "M06", 15, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.add(duration1n),
|
||||
-1, 6, "M06", 15, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDate.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date6.add(new Temporal.Duration(-10)),
|
||||
-5, 3, "M03", 1, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/PlainDate/prototype/add/era-boundary-islamic-umalqura.js
vendored
Normal file
68
test/intl402/Temporal/PlainDate/prototype/add/era-boundary-islamic-umalqura.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindate.prototype.add
|
||||
description: Adding years works correctly across era boundaries in islamic-umalqura calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(1);
|
||||
const duration1n = new Temporal.Duration(-1);
|
||||
const calendar = "islamic-umalqura";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDate.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date1.add(duration1),
|
||||
0, 6, "M06", 15, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDate.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.add(duration1),
|
||||
1, 6, "M06", 15, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDate.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.add(duration1),
|
||||
2, 6, "M06", 15, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDate.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date4.add(new Temporal.Duration(10)),
|
||||
6, 3, "M03", 1, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDate.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date5.add(duration1n),
|
||||
1, 6, "M06", 15, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.add(duration1n),
|
||||
0, 6, "M06", 15, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.add(duration1n),
|
||||
-1, 6, "M06", 15, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDate.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date6.add(new Temporal.Duration(-10)),
|
||||
-5, 3, "M03", 1, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/PlainDate/prototype/subtract/era-boundary-islamic-civil.js
vendored
Normal file
68
test/intl402/Temporal/PlainDate/prototype/subtract/era-boundary-islamic-civil.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindate.prototype.subtract
|
||||
description: Adding years works correctly across era boundaries in islamic-civil calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(-1);
|
||||
const duration1n = new Temporal.Duration(1);
|
||||
const calendar = "islamic-civil";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDate.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date1.subtract(duration1),
|
||||
0, 6, "M06", 15, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDate.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.subtract(duration1),
|
||||
1, 6, "M06", 15, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDate.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.subtract(duration1),
|
||||
2, 6, "M06", 15, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDate.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date4.subtract(new Temporal.Duration(-10)),
|
||||
6, 3, "M03", 1, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDate.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date5.subtract(duration1n),
|
||||
1, 6, "M06", 15, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.subtract(duration1n),
|
||||
0, 6, "M06", 15, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.subtract(duration1n),
|
||||
-1, 6, "M06", 15, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDate.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date6.subtract(new Temporal.Duration(10)),
|
||||
-5, 3, "M03", 1, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/PlainDate/prototype/subtract/era-boundary-islamic-tbla.js
vendored
Normal file
68
test/intl402/Temporal/PlainDate/prototype/subtract/era-boundary-islamic-tbla.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindate.prototype.subtract
|
||||
description: Adding years works correctly across era boundaries in islamic-tbla calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(-1);
|
||||
const duration1n = new Temporal.Duration(1);
|
||||
const calendar = "islamic-tbla";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDate.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date1.subtract(duration1),
|
||||
0, 6, "M06", 15, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDate.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.subtract(duration1),
|
||||
1, 6, "M06", 15, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDate.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.subtract(duration1),
|
||||
2, 6, "M06", 15, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDate.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date4.subtract(new Temporal.Duration(-10)),
|
||||
6, 3, "M03", 1, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDate.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date5.subtract(duration1n),
|
||||
1, 6, "M06", 15, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.subtract(duration1n),
|
||||
0, 6, "M06", 15, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.subtract(duration1n),
|
||||
-1, 6, "M06", 15, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDate.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date6.subtract(new Temporal.Duration(10)),
|
||||
-5, 3, "M03", 1, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/PlainDate/prototype/subtract/era-boundary-islamic-umalqura.js
vendored
Normal file
68
test/intl402/Temporal/PlainDate/prototype/subtract/era-boundary-islamic-umalqura.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindate.prototype.subtract
|
||||
description: Adding years works correctly across era boundaries in islamic-umalqura calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(-1);
|
||||
const duration1n = new Temporal.Duration(1);
|
||||
const calendar = "islamic-umalqura";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDate.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date1.subtract(duration1),
|
||||
0, 6, "M06", 15, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDate.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.subtract(duration1),
|
||||
1, 6, "M06", 15, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDate.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.subtract(duration1),
|
||||
2, 6, "M06", 15, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDate.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date4.subtract(new Temporal.Duration(-10)),
|
||||
6, 3, "M03", 1, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDate.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date5.subtract(duration1n),
|
||||
1, 6, "M06", 15, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date3.subtract(duration1n),
|
||||
0, 6, "M06", 15, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date2.subtract(duration1n),
|
||||
-1, 6, "M06", 15, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDate.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, calendar }, options);
|
||||
TemporalHelpers.assertPlainDate(
|
||||
date6.subtract(new Temporal.Duration(10)),
|
||||
-5, 3, "M03", 1, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/PlainDateTime/prototype/add/era-boundary-islamic-civil.js
vendored
Normal file
68
test/intl402/Temporal/PlainDateTime/prototype/add/era-boundary-islamic-civil.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindatetime.prototype.add
|
||||
description: Adding years works correctly across era boundaries in islamic-civil calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(1);
|
||||
const duration1n = new Temporal.Duration(-1);
|
||||
const calendar = "islamic-civil";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.add(duration1),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.add(new Temporal.Duration(10)),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.add(duration1n),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1n),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1n),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.add(new Temporal.Duration(-10)),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/PlainDateTime/prototype/add/era-boundary-islamic-tbla.js
vendored
Normal file
68
test/intl402/Temporal/PlainDateTime/prototype/add/era-boundary-islamic-tbla.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindatetime.prototype.add
|
||||
description: Adding years works correctly across era boundaries in islamic-tbla calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(1);
|
||||
const duration1n = new Temporal.Duration(-1);
|
||||
const calendar = "islamic-tbla";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.add(duration1),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.add(new Temporal.Duration(10)),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.add(duration1n),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1n),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1n),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.add(new Temporal.Duration(-10)),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/PlainDateTime/prototype/add/era-boundary-islamic-umalqura.js
vendored
Normal file
68
test/intl402/Temporal/PlainDateTime/prototype/add/era-boundary-islamic-umalqura.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindatetime.prototype.add
|
||||
description: Adding years works correctly across era boundaries in islamic-umalqura calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(1);
|
||||
const duration1n = new Temporal.Duration(-1);
|
||||
const calendar = "islamic-umalqura";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.add(duration1),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.add(new Temporal.Duration(10)),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.add(duration1n),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1n),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1n),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.add(new Temporal.Duration(-10)),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/PlainDateTime/prototype/subtract/era-boundary-islamic-civil.js
vendored
Normal file
68
test/intl402/Temporal/PlainDateTime/prototype/subtract/era-boundary-islamic-civil.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindatetime.prototype.subtract
|
||||
description: Adding years works correctly across era boundaries in islamic-civil calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(-1);
|
||||
const duration1n = new Temporal.Duration(1);
|
||||
const calendar = "islamic-civil";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.subtract(duration1),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.subtract(new Temporal.Duration(-10)),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.subtract(duration1n),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1n),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1n),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.subtract(new Temporal.Duration(10)),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/PlainDateTime/prototype/subtract/era-boundary-islamic-tbla.js
vendored
Normal file
68
test/intl402/Temporal/PlainDateTime/prototype/subtract/era-boundary-islamic-tbla.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindatetime.prototype.subtract
|
||||
description: Adding years works correctly across era boundaries in islamic-tbla calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(-1);
|
||||
const duration1n = new Temporal.Duration(1);
|
||||
const calendar = "islamic-tbla";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.subtract(duration1),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.subtract(new Temporal.Duration(-10)),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.subtract(duration1n),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1n),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1n),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.subtract(new Temporal.Duration(10)),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/PlainDateTime/prototype/subtract/era-boundary-islamic-umalqura.js
vendored
Normal file
68
test/intl402/Temporal/PlainDateTime/prototype/subtract/era-boundary-islamic-umalqura.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.plaindatetime.prototype.subtract
|
||||
description: Adding years works correctly across era boundaries in islamic-umalqura calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(-1);
|
||||
const duration1n = new Temporal.Duration(1);
|
||||
const calendar = "islamic-umalqura";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.subtract(duration1),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.PlainDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.subtract(new Temporal.Duration(-10)),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.subtract(duration1n),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1n),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1n),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.PlainDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.subtract(new Temporal.Duration(10)),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/ZonedDateTime/prototype/add/era-boundary-islamic-civil.js
vendored
Normal file
68
test/intl402/Temporal/ZonedDateTime/prototype/add/era-boundary-islamic-civil.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.zoneddatetime.prototype.add
|
||||
description: Adding years works correctly across era boundaries in islamic-civil calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(1);
|
||||
const duration1n = new Temporal.Duration(-1);
|
||||
const calendar = "islamic-civil";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.add(duration1).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1).toPlainDateTime(),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.add(new Temporal.Duration(10)).toPlainDateTime(),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.add(duration1n).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1n).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1n).toPlainDateTime(),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.add(new Temporal.Duration(-10)).toPlainDateTime(),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/ZonedDateTime/prototype/add/era-boundary-islamic-tbla.js
vendored
Normal file
68
test/intl402/Temporal/ZonedDateTime/prototype/add/era-boundary-islamic-tbla.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.zoneddatetime.prototype.add
|
||||
description: Adding years works correctly across era boundaries in islamic-tbla calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(1);
|
||||
const duration1n = new Temporal.Duration(-1);
|
||||
const calendar = "islamic-tbla";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.add(duration1).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1).toPlainDateTime(),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.add(new Temporal.Duration(10)).toPlainDateTime(),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.add(duration1n).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1n).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1n).toPlainDateTime(),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.add(new Temporal.Duration(-10)).toPlainDateTime(),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/ZonedDateTime/prototype/add/era-boundary-islamic-umalqura.js
vendored
Normal file
68
test/intl402/Temporal/ZonedDateTime/prototype/add/era-boundary-islamic-umalqura.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.zoneddatetime.prototype.add
|
||||
description: Adding years works correctly across era boundaries in islamic-umalqura calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(1);
|
||||
const duration1n = new Temporal.Duration(-1);
|
||||
const calendar = "islamic-umalqura";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.add(duration1).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1).toPlainDateTime(),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.add(new Temporal.Duration(10)).toPlainDateTime(),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.add(duration1n).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.add(duration1n).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.add(duration1n).toPlainDateTime(),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.add(new Temporal.Duration(-10)).toPlainDateTime(),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/ZonedDateTime/prototype/subtract/era-boundary-islamic-civil.js
vendored
Normal file
68
test/intl402/Temporal/ZonedDateTime/prototype/subtract/era-boundary-islamic-civil.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.zoneddatetime.prototype.subtract
|
||||
description: Adding years works correctly across era boundaries in islamic-civil calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(-1);
|
||||
const duration1n = new Temporal.Duration(1);
|
||||
const calendar = "islamic-civil";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.subtract(duration1).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1).toPlainDateTime(),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.subtract(new Temporal.Duration(-10)).toPlainDateTime(),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.subtract(duration1n).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1n).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1n).toPlainDateTime(),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.subtract(new Temporal.Duration(10)).toPlainDateTime(),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/ZonedDateTime/prototype/subtract/era-boundary-islamic-tbla.js
vendored
Normal file
68
test/intl402/Temporal/ZonedDateTime/prototype/subtract/era-boundary-islamic-tbla.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.zoneddatetime.prototype.subtract
|
||||
description: Adding years works correctly across era boundaries in islamic-tbla calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(-1);
|
||||
const duration1n = new Temporal.Duration(1);
|
||||
const calendar = "islamic-tbla";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.subtract(duration1).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1).toPlainDateTime(),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.subtract(new Temporal.Duration(-10)).toPlainDateTime(),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.subtract(duration1n).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1n).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1n).toPlainDateTime(),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.subtract(new Temporal.Duration(10)).toPlainDateTime(),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
68
test/intl402/Temporal/ZonedDateTime/prototype/subtract/era-boundary-islamic-umalqura.js
vendored
Normal file
68
test/intl402/Temporal/ZonedDateTime/prototype/subtract/era-boundary-islamic-umalqura.js
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2025 Igalia, S.L. All rights reserved.
|
||||
// This code is governed by the BSD license found in the LICENSE file.
|
||||
|
||||
/*---
|
||||
esid: sec-temporal.zoneddatetime.prototype.subtract
|
||||
description: Adding years works correctly across era boundaries in islamic-umalqura calendar
|
||||
includes: [temporalHelpers.js]
|
||||
features: [Temporal, Intl.Era-monthcode]
|
||||
---*/
|
||||
|
||||
const duration1 = new Temporal.Duration(-1);
|
||||
const duration1n = new Temporal.Duration(1);
|
||||
const calendar = "islamic-umalqura";
|
||||
const options = { overflow: "reject" };
|
||||
|
||||
const date1 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date1.subtract(duration1).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 2 BH lands in 1 BH (counts backwards)",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
const date2 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 BH lands in 1 AH (no year zero)",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
const date3 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 1, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1).toPlainDateTime(),
|
||||
2, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Adding 1 year to 1 AH lands in 2 AH",
|
||||
"ah", 2
|
||||
);
|
||||
|
||||
const date4 = Temporal.ZonedDateTime.from({ era: "bh", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date4.subtract(new Temporal.Duration(-10)).toPlainDateTime(),
|
||||
6, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Adding 10 years to 5 BH lands in 6 AH (no year zero)",
|
||||
"ah", 6
|
||||
);
|
||||
|
||||
const date5 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 2, monthCode: "M06", day: 15, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date5.subtract(duration1n).toPlainDateTime(),
|
||||
1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 2 AH lands in 1 AH",
|
||||
"ah", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date3.subtract(duration1n).toPlainDateTime(),
|
||||
0, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 AH lands in 1 BH",
|
||||
"bh", 1
|
||||
);
|
||||
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date2.subtract(duration1n).toPlainDateTime(),
|
||||
-1, 6, "M06", 15, 12, 34, 0, 0, 0, 0, "Subtracting 1 year from 1 BH lands in 2 BH",
|
||||
"bh", 2
|
||||
);
|
||||
|
||||
const date6 = Temporal.ZonedDateTime.from({ era: "ah", eraYear: 5, monthCode: "M03", day: 1, hour: 12, minute: 34, timeZone: "UTC", calendar }, options);
|
||||
TemporalHelpers.assertPlainDateTime(
|
||||
date6.subtract(new Temporal.Duration(10)).toPlainDateTime(),
|
||||
-5, 3, "M03", 1, 12, 34, 0, 0, 0, 0, "Subtracting 10 years from 5 AH lands in 6 BH",
|
||||
"bh", 6
|
||||
);
|
||||
Loading…
x
Reference in New Issue
Block a user