mirror of https://github.com/tc39/test262.git
Temporal: Some more tests for PlainDateTime#withPlainDate.
This commit is contained in:
parent
7823be3e96
commit
a226601d12
|
@ -0,0 +1,38 @@
|
||||||
|
// 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.plaindatetime.prototype.withplaindate
|
||||||
|
description: PlainDate calendar is preserved with ISO PDT
|
||||||
|
features: [Temporal]
|
||||||
|
includes: [temporalHelpers.js]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
const cal = {
|
||||||
|
id: 'thisisnotiso',
|
||||||
|
era() { return "the era"; },
|
||||||
|
eraYear() { return 1909; },
|
||||||
|
toString() { return "this is a string"; },
|
||||||
|
year() { return 2008; },
|
||||||
|
month() { return 9; },
|
||||||
|
monthCode() { return "M09"; },
|
||||||
|
day() { return 6; }
|
||||||
|
};
|
||||||
|
const pdt = new Temporal.PlainDateTime(1995, 12, 7, 3, 24, 30, 0, 0, 0);
|
||||||
|
assert.sameValue(pdt.calendar.toString(), "iso8601", "PlainDateTime with ISO calendar");
|
||||||
|
const pd = new Temporal.PlainDate(2010, 11, 12, cal);
|
||||||
|
const shifted = pdt.withPlainDate(pd);
|
||||||
|
|
||||||
|
TemporalHelpers.assertPlainDateTime(
|
||||||
|
shifted,
|
||||||
|
2008, 9, "M09", 6, 3, 24, 30, 0, 0, 0,
|
||||||
|
"calendar is changed if receiver has ISO calendar (1)",
|
||||||
|
"the era",
|
||||||
|
1909
|
||||||
|
);
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
shifted.calendar,
|
||||||
|
cal,
|
||||||
|
"calendar is changed if receiver has ISO calendar (2)"
|
||||||
|
);
|
|
@ -0,0 +1,40 @@
|
||||||
|
// 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.plaindatetime.prototype.withplaindate
|
||||||
|
description: PlainDate calendar is preserved when both calendars have the same id
|
||||||
|
features: [Temporal]
|
||||||
|
includes: [temporalHelpers.js]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
const cal1 = {
|
||||||
|
toString() { return "this is a string"; },
|
||||||
|
};
|
||||||
|
const cal2 = {
|
||||||
|
id: 'thisisnotiso',
|
||||||
|
era() { return "the era"; },
|
||||||
|
eraYear() { return 1909; },
|
||||||
|
toString() { return "this is a string"; },
|
||||||
|
year() { return 2008; },
|
||||||
|
month() { return 9; },
|
||||||
|
monthCode() { return "M09"; },
|
||||||
|
day() { return 6; }
|
||||||
|
};
|
||||||
|
const pdt = new Temporal.PlainDateTime(1995, 12, 7, 3, 24, 30, 0, 0, 0, cal1);
|
||||||
|
const pd = new Temporal.PlainDate(2010, 11, 12, cal2);
|
||||||
|
const shifted = pdt.withPlainDate(pd);
|
||||||
|
|
||||||
|
TemporalHelpers.assertPlainDateTime(
|
||||||
|
shifted,
|
||||||
|
2008, 9, "M09", 6, 3, 24, 30, 0, 0, 0,
|
||||||
|
"calendar is changed with same id (1)",
|
||||||
|
"the era",
|
||||||
|
1909
|
||||||
|
);
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
shifted.calendar,
|
||||||
|
cal2,
|
||||||
|
"calendar is changed with same id (2)"
|
||||||
|
);
|
|
@ -0,0 +1,42 @@
|
||||||
|
// 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.plaindatetime.prototype.withplaindate
|
||||||
|
description: PlainDate calendar is preserved when both calendars are the same object
|
||||||
|
features: [Temporal]
|
||||||
|
includes: [temporalHelpers.js]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
let calls = 0;
|
||||||
|
const cal = {
|
||||||
|
id: 'thisisnotiso',
|
||||||
|
era() { return "the era"; },
|
||||||
|
eraYear() { return 1909; },
|
||||||
|
toString() {
|
||||||
|
++calls;
|
||||||
|
return "this is a string";
|
||||||
|
},
|
||||||
|
year() { return 2008; },
|
||||||
|
month() { return 9; },
|
||||||
|
monthCode() { return "M09"; },
|
||||||
|
day() { return 6; }
|
||||||
|
};
|
||||||
|
const pdt = new Temporal.PlainDateTime(1995, 12, 7, 3, 24, 30, 0, 0, 0, cal);
|
||||||
|
const pd = new Temporal.PlainDate(2010, 11, 12, cal);
|
||||||
|
const shifted = pdt.withPlainDate(pd);
|
||||||
|
|
||||||
|
TemporalHelpers.assertPlainDateTime(
|
||||||
|
shifted,
|
||||||
|
2008, 9, "M09", 6, 3, 24, 30, 0, 0, 0,
|
||||||
|
"calendar is unchanged with same calendars (1)",
|
||||||
|
"the era",
|
||||||
|
1909
|
||||||
|
);
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
shifted.calendar,
|
||||||
|
cal,
|
||||||
|
"calendar is unchanged with same calendars (2)"
|
||||||
|
);
|
||||||
|
assert.sameValue(calls, 0, "should not have called cal.toString()");
|
38
test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js
vendored
Normal file
38
test/built-ins/Temporal/PlainDateTime/prototype/withPlainDate/argument-plaindate-calendar.js
vendored
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
// 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.plaindatetime.prototype.withplaindate
|
||||||
|
description: Original PDT calendar is preserved with ISO PlainDate
|
||||||
|
features: [Temporal]
|
||||||
|
includes: [temporalHelpers.js]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
const cal = {
|
||||||
|
id: 'thisisnotiso',
|
||||||
|
era() { return "the era"; },
|
||||||
|
eraYear() { return 1909; },
|
||||||
|
toString() { return "this is a string"; },
|
||||||
|
year() { return 2008; },
|
||||||
|
month() { return 9; },
|
||||||
|
monthCode() { return "M09"; },
|
||||||
|
day() { return 6; }
|
||||||
|
};
|
||||||
|
const pdt = new Temporal.PlainDateTime(1995, 12, 7, 3, 24, 30, 0, 0, 0, cal);
|
||||||
|
const pd = new Temporal.PlainDate(2010, 11, 12);
|
||||||
|
assert.sameValue(pd.calendar.toString(), "iso8601", "PlainDate with ISO calendar");
|
||||||
|
const shifted = pdt.withPlainDate(pd);
|
||||||
|
|
||||||
|
TemporalHelpers.assertPlainDateTime(
|
||||||
|
shifted,
|
||||||
|
2008, 9, "M09", 6, 3, 24, 30, 0, 0, 0,
|
||||||
|
"calendar is unchanged if input has ISO calendar (1)",
|
||||||
|
"the era",
|
||||||
|
1909
|
||||||
|
);
|
||||||
|
|
||||||
|
assert.sameValue(
|
||||||
|
shifted.calendar,
|
||||||
|
cal,
|
||||||
|
"calendar is unchanged if input has ISO calendar (2)"
|
||||||
|
);
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
/*---
|
/*---
|
||||||
esid: sec-temporal.plaindatetime.prototype.withplaindate
|
esid: sec-temporal.plaindatetime.prototype.withplaindate
|
||||||
description: New calendar is preserved if original PDT has ISO calendar
|
description: Original PDT calendar is preserved with ISO string
|
||||||
features: [Temporal]
|
features: [Temporal]
|
||||||
includes: [temporalHelpers.js]
|
includes: [temporalHelpers.js]
|
||||||
---*/
|
---*/
|
||||||
|
|
Loading…
Reference in New Issue