mirror of
https://github.com/tc39/test262.git
synced 2025-07-23 14:04:51 +02:00
Add DurationFormat test for negative durations
This commit is contained in:
parent
fa3581986f
commit
e27c9f690c
33
test/intl402/DurationFormat/prototype/format/negative-duration-style-default-en.js
vendored
Normal file
33
test/intl402/DurationFormat/prototype/format/negative-duration-style-default-en.js
vendored
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
// Copyright (C) 2023 André Bargull. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-Intl.DurationFormat.prototype.format
|
||||||
|
description: >
|
||||||
|
Test format method with negative duration and default style
|
||||||
|
locale: [en-US]
|
||||||
|
includes: [testIntl.js]
|
||||||
|
features: [Intl.DurationFormat]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
const duration = {
|
||||||
|
years: -1,
|
||||||
|
months: -2,
|
||||||
|
weeks: -3,
|
||||||
|
days: -3,
|
||||||
|
hours: -4,
|
||||||
|
minutes: -5,
|
||||||
|
seconds: -6,
|
||||||
|
milliseconds: -7,
|
||||||
|
microseconds: -8,
|
||||||
|
nanoseconds: -9,
|
||||||
|
};
|
||||||
|
|
||||||
|
const expected = formatDurationFormatPattern(duration);
|
||||||
|
|
||||||
|
const df = new Intl.DurationFormat("en");
|
||||||
|
assert.sameValue(
|
||||||
|
df.format(duration),
|
||||||
|
expected,
|
||||||
|
`DurationFormat format output using default style option`
|
||||||
|
);
|
35
test/intl402/DurationFormat/prototype/format/negative-duration-style-short-en.js
vendored
Normal file
35
test/intl402/DurationFormat/prototype/format/negative-duration-style-short-en.js
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// Copyright (C) 2023 André Bargull. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-Intl.DurationFormat.prototype.format
|
||||||
|
description: >
|
||||||
|
Test format method with negative duration and "short" style
|
||||||
|
locale: [en-US]
|
||||||
|
includes: [testIntl.js]
|
||||||
|
features: [Intl.DurationFormat]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
const style = "short";
|
||||||
|
|
||||||
|
const duration = {
|
||||||
|
years: -1,
|
||||||
|
months: -2,
|
||||||
|
weeks: -3,
|
||||||
|
days: -3,
|
||||||
|
hours: -4,
|
||||||
|
minutes: -5,
|
||||||
|
seconds: -6,
|
||||||
|
milliseconds: -7,
|
||||||
|
microseconds: -8,
|
||||||
|
nanoseconds: -9,
|
||||||
|
};
|
||||||
|
|
||||||
|
const expected = formatDurationFormatPattern(duration, style);
|
||||||
|
|
||||||
|
const df = new Intl.DurationFormat("en", {style});
|
||||||
|
assert.sameValue(
|
||||||
|
df.format(duration),
|
||||||
|
expected,
|
||||||
|
`DurationFormat format output using ${style} style option`
|
||||||
|
);
|
35
test/intl402/DurationFormat/prototype/format/negative-durationstyle-digital-en.js
vendored
Normal file
35
test/intl402/DurationFormat/prototype/format/negative-durationstyle-digital-en.js
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// Copyright (C) 2023 André Bargull. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-Intl.DurationFormat.prototype.format
|
||||||
|
description: >
|
||||||
|
Test format method with negative duration and "digital" style
|
||||||
|
locale: [en-US]
|
||||||
|
includes: [testIntl.js]
|
||||||
|
features: [Intl.DurationFormat]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
const style = "digital";
|
||||||
|
|
||||||
|
const duration = {
|
||||||
|
years: -1,
|
||||||
|
months: -2,
|
||||||
|
weeks: -3,
|
||||||
|
days: -3,
|
||||||
|
hours: -4,
|
||||||
|
minutes: -5,
|
||||||
|
seconds: -6,
|
||||||
|
milliseconds: -7,
|
||||||
|
microseconds: -8,
|
||||||
|
nanoseconds: -9,
|
||||||
|
};
|
||||||
|
|
||||||
|
const expected = formatDurationFormatPattern(duration, style);
|
||||||
|
|
||||||
|
const df = new Intl.DurationFormat("en", {style});
|
||||||
|
assert.sameValue(
|
||||||
|
df.format(duration),
|
||||||
|
expected,
|
||||||
|
`DurationFormat format output using ${style} style option`
|
||||||
|
);
|
35
test/intl402/DurationFormat/prototype/format/negative-durationstyle-long-en.js
vendored
Normal file
35
test/intl402/DurationFormat/prototype/format/negative-durationstyle-long-en.js
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// Copyright (C) 2023 André Bargull. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-Intl.DurationFormat.prototype.format
|
||||||
|
description: >
|
||||||
|
Test format method with negative duration and "long" style
|
||||||
|
locale: [en-US]
|
||||||
|
includes: [testIntl.js]
|
||||||
|
features: [Intl.DurationFormat]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
const style = "long";
|
||||||
|
|
||||||
|
const duration = {
|
||||||
|
years: -1,
|
||||||
|
months: -2,
|
||||||
|
weeks: -3,
|
||||||
|
days: -3,
|
||||||
|
hours: -4,
|
||||||
|
minutes: -5,
|
||||||
|
seconds: -6,
|
||||||
|
milliseconds: -7,
|
||||||
|
microseconds: -8,
|
||||||
|
nanoseconds: -9,
|
||||||
|
};
|
||||||
|
|
||||||
|
const expected = formatDurationFormatPattern(duration, style);
|
||||||
|
|
||||||
|
const df = new Intl.DurationFormat("en", {style});
|
||||||
|
assert.sameValue(
|
||||||
|
df.format(duration),
|
||||||
|
expected,
|
||||||
|
`DurationFormat format output using ${style} style option`
|
||||||
|
);
|
35
test/intl402/DurationFormat/prototype/format/negative-durationstyle-narrow-en.js
vendored
Normal file
35
test/intl402/DurationFormat/prototype/format/negative-durationstyle-narrow-en.js
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// Copyright (C) 2023 André Bargull. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-Intl.DurationFormat.prototype.format
|
||||||
|
description: >
|
||||||
|
Test format method with negative duration and "narrow" style
|
||||||
|
locale: [en-US]
|
||||||
|
includes: [testIntl.js]
|
||||||
|
features: [Intl.DurationFormat]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
const style = "narrow";
|
||||||
|
|
||||||
|
const duration = {
|
||||||
|
years: -1,
|
||||||
|
months: -2,
|
||||||
|
weeks: -3,
|
||||||
|
days: -3,
|
||||||
|
hours: -4,
|
||||||
|
minutes: -5,
|
||||||
|
seconds: -6,
|
||||||
|
milliseconds: -7,
|
||||||
|
microseconds: -8,
|
||||||
|
nanoseconds: -9,
|
||||||
|
};
|
||||||
|
|
||||||
|
const expected = formatDurationFormatPattern(duration, style);
|
||||||
|
|
||||||
|
const df = new Intl.DurationFormat("en", {style});
|
||||||
|
assert.sameValue(
|
||||||
|
df.format(duration),
|
||||||
|
expected,
|
||||||
|
`DurationFormat format output using ${style} style option`
|
||||||
|
);
|
@ -0,0 +1,47 @@
|
|||||||
|
// Copyright (C) 2023 André Bargull. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-Intl.DurationFormat.prototype.formatToParts
|
||||||
|
description: >
|
||||||
|
Test formatToParts method with negative duration and default style
|
||||||
|
locale: [en-US]
|
||||||
|
includes: [testIntl.js]
|
||||||
|
features: [Intl.DurationFormat]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
function compare(actual, expected, message) {
|
||||||
|
assert.sameValue(Array.isArray(expected), true, `${message}: expected is Array`);
|
||||||
|
assert.sameValue(Array.isArray(actual), true, `${message}: actual is Array`);
|
||||||
|
assert.sameValue(actual.length, expected.length, `${message}: length`);
|
||||||
|
|
||||||
|
for (let i = 0; i < expected.length; ++i) {
|
||||||
|
let actualEntry = actual[i];
|
||||||
|
let expectedEntry = expected[i];
|
||||||
|
|
||||||
|
assert.sameValue(actualEntry.type, expectedEntry.type, `type for entry ${i}`);
|
||||||
|
assert.sameValue(actualEntry.value, expectedEntry.value, `value for entry ${i}`);
|
||||||
|
assert.sameValue("unit" in actualEntry, "unit" in expectedEntry, `unit for entry ${i}`);
|
||||||
|
if ("unit" in expectedEntry) {
|
||||||
|
assert.sameValue(actualEntry.unit, expectedEntry.unit, `unit for entry ${i}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const duration = {
|
||||||
|
years: -1,
|
||||||
|
months: -2,
|
||||||
|
weeks: -3,
|
||||||
|
days: -4,
|
||||||
|
hours: -5,
|
||||||
|
minutes: -6,
|
||||||
|
seconds: -7,
|
||||||
|
milliseconds: -123,
|
||||||
|
microseconds: -456,
|
||||||
|
nanoseconds: -789,
|
||||||
|
};
|
||||||
|
|
||||||
|
const expected = partitionDurationFormatPattern(duration);
|
||||||
|
|
||||||
|
const df = new Intl.DurationFormat("en");
|
||||||
|
compare(df.formatToParts(duration), expected, `Using style : default`);
|
@ -0,0 +1,49 @@
|
|||||||
|
// Copyright (C) 2023 André Bargull. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-Intl.DurationFormat.prototype.formatToParts
|
||||||
|
description: >
|
||||||
|
Test formatToParts method with negative duration and "digital" style
|
||||||
|
locale: [en-US]
|
||||||
|
includes: [testIntl.js]
|
||||||
|
features: [Intl.DurationFormat]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
function compare(actual, expected, message) {
|
||||||
|
assert.sameValue(Array.isArray(expected), true, `${message}: expected is Array`);
|
||||||
|
assert.sameValue(Array.isArray(actual), true, `${message}: actual is Array`);
|
||||||
|
assert.sameValue(actual.length, expected.length, `${message}: length`);
|
||||||
|
|
||||||
|
for (let i = 0; i < expected.length; ++i) {
|
||||||
|
let actualEntry = actual[i];
|
||||||
|
let expectedEntry = expected[i];
|
||||||
|
|
||||||
|
assert.sameValue(actualEntry.type, expectedEntry.type, `type for entry ${i}`);
|
||||||
|
assert.sameValue(actualEntry.value, expectedEntry.value, `value for entry ${i}`);
|
||||||
|
assert.sameValue("unit" in actualEntry, "unit" in expectedEntry, `unit for entry ${i}`);
|
||||||
|
if ("unit" in expectedEntry) {
|
||||||
|
assert.sameValue(actualEntry.unit, expectedEntry.unit, `unit for entry ${i}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const style = "digital";
|
||||||
|
|
||||||
|
const duration = {
|
||||||
|
years: -1,
|
||||||
|
months: -2,
|
||||||
|
weeks: -3,
|
||||||
|
days: -4,
|
||||||
|
hours: -5,
|
||||||
|
minutes: -6,
|
||||||
|
seconds: -7,
|
||||||
|
milliseconds: -123,
|
||||||
|
microseconds: -456,
|
||||||
|
nanoseconds: -789,
|
||||||
|
};
|
||||||
|
|
||||||
|
const expected = partitionDurationFormatPattern(duration, style);
|
||||||
|
|
||||||
|
const df = new Intl.DurationFormat("en", { style });
|
||||||
|
compare(df.formatToParts(duration), expected, `Using style : ${style}`);
|
@ -0,0 +1,49 @@
|
|||||||
|
// Copyright (C) 2023 André Bargull. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-Intl.DurationFormat.prototype.formatToParts
|
||||||
|
description: >
|
||||||
|
Test formatToParts method with negative duration and "long" style
|
||||||
|
locale: [en-US]
|
||||||
|
includes: [testIntl.js]
|
||||||
|
features: [Intl.DurationFormat]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
function compare(actual, expected, message) {
|
||||||
|
assert.sameValue(Array.isArray(expected), true, `${message}: expected is Array`);
|
||||||
|
assert.sameValue(Array.isArray(actual), true, `${message}: actual is Array`);
|
||||||
|
assert.sameValue(actual.length, expected.length, `${message}: length`);
|
||||||
|
|
||||||
|
for (let i = 0; i < expected.length; ++i) {
|
||||||
|
let actualEntry = actual[i];
|
||||||
|
let expectedEntry = expected[i];
|
||||||
|
|
||||||
|
assert.sameValue(actualEntry.type, expectedEntry.type, `type for entry ${i}`);
|
||||||
|
assert.sameValue(actualEntry.value, expectedEntry.value, `value for entry ${i}`);
|
||||||
|
assert.sameValue("unit" in actualEntry, "unit" in expectedEntry, `unit for entry ${i}`);
|
||||||
|
if ("unit" in expectedEntry) {
|
||||||
|
assert.sameValue(actualEntry.unit, expectedEntry.unit, `unit for entry ${i}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const style = "long";
|
||||||
|
|
||||||
|
const duration = {
|
||||||
|
years: -1,
|
||||||
|
months: -2,
|
||||||
|
weeks: -3,
|
||||||
|
days: -4,
|
||||||
|
hours: -5,
|
||||||
|
minutes: -6,
|
||||||
|
seconds: -7,
|
||||||
|
milliseconds: -123,
|
||||||
|
microseconds: -456,
|
||||||
|
nanoseconds: -789,
|
||||||
|
};
|
||||||
|
|
||||||
|
const expected = partitionDurationFormatPattern(duration, style);
|
||||||
|
|
||||||
|
const df = new Intl.DurationFormat("en", { style });
|
||||||
|
compare(df.formatToParts(duration), expected, `Using style : ${style}`);
|
@ -0,0 +1,49 @@
|
|||||||
|
// Copyright (C) 2023 André Bargull. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-Intl.DurationFormat.prototype.formatToParts
|
||||||
|
description: >
|
||||||
|
Test formatToParts method with negative duration and "narrow" style
|
||||||
|
locale: [en-US]
|
||||||
|
includes: [testIntl.js]
|
||||||
|
features: [Intl.DurationFormat]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
function compare(actual, expected, message) {
|
||||||
|
assert.sameValue(Array.isArray(expected), true, `${message}: expected is Array`);
|
||||||
|
assert.sameValue(Array.isArray(actual), true, `${message}: actual is Array`);
|
||||||
|
assert.sameValue(actual.length, expected.length, `${message}: length`);
|
||||||
|
|
||||||
|
for (let i = 0; i < expected.length; ++i) {
|
||||||
|
let actualEntry = actual[i];
|
||||||
|
let expectedEntry = expected[i];
|
||||||
|
|
||||||
|
assert.sameValue(actualEntry.type, expectedEntry.type, `type for entry ${i}`);
|
||||||
|
assert.sameValue(actualEntry.value, expectedEntry.value, `value for entry ${i}`);
|
||||||
|
assert.sameValue("unit" in actualEntry, "unit" in expectedEntry, `unit for entry ${i}`);
|
||||||
|
if ("unit" in expectedEntry) {
|
||||||
|
assert.sameValue(actualEntry.unit, expectedEntry.unit, `unit for entry ${i}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const style = "narrow";
|
||||||
|
|
||||||
|
const duration = {
|
||||||
|
years: -1,
|
||||||
|
months: -2,
|
||||||
|
weeks: -3,
|
||||||
|
days: -4,
|
||||||
|
hours: -5,
|
||||||
|
minutes: -6,
|
||||||
|
seconds: -7,
|
||||||
|
milliseconds: -123,
|
||||||
|
microseconds: -456,
|
||||||
|
nanoseconds: -789,
|
||||||
|
};
|
||||||
|
|
||||||
|
const expected = partitionDurationFormatPattern(duration, style);
|
||||||
|
|
||||||
|
const df = new Intl.DurationFormat("en", { style });
|
||||||
|
compare(df.formatToParts(duration), expected, `Using style : ${style}`);
|
@ -0,0 +1,49 @@
|
|||||||
|
// Copyright (C) 2023 André Bargull. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
/*---
|
||||||
|
esid: sec-Intl.DurationFormat.prototype.formatToParts
|
||||||
|
description: >
|
||||||
|
Test formatToParts method with negative duration and "short" style
|
||||||
|
locale: [en-US]
|
||||||
|
includes: [testIntl.js]
|
||||||
|
features: [Intl.DurationFormat]
|
||||||
|
---*/
|
||||||
|
|
||||||
|
function compare(actual, expected, message) {
|
||||||
|
assert.sameValue(Array.isArray(expected), true, `${message}: expected is Array`);
|
||||||
|
assert.sameValue(Array.isArray(actual), true, `${message}: actual is Array`);
|
||||||
|
assert.sameValue(actual.length, expected.length, `${message}: length`);
|
||||||
|
|
||||||
|
for (let i = 0; i < expected.length; ++i) {
|
||||||
|
let actualEntry = actual[i];
|
||||||
|
let expectedEntry = expected[i];
|
||||||
|
|
||||||
|
assert.sameValue(actualEntry.type, expectedEntry.type, `type for entry ${i}`);
|
||||||
|
assert.sameValue(actualEntry.value, expectedEntry.value, `value for entry ${i}`);
|
||||||
|
assert.sameValue("unit" in actualEntry, "unit" in expectedEntry, `unit for entry ${i}`);
|
||||||
|
if ("unit" in expectedEntry) {
|
||||||
|
assert.sameValue(actualEntry.unit, expectedEntry.unit, `unit for entry ${i}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const style = "short";
|
||||||
|
|
||||||
|
const duration = {
|
||||||
|
years: -1,
|
||||||
|
months: -2,
|
||||||
|
weeks: -3,
|
||||||
|
days: -4,
|
||||||
|
hours: -5,
|
||||||
|
minutes: -6,
|
||||||
|
seconds: -7,
|
||||||
|
milliseconds: -123,
|
||||||
|
microseconds: -456,
|
||||||
|
nanoseconds: -789,
|
||||||
|
};
|
||||||
|
|
||||||
|
const expected = partitionDurationFormatPattern(duration, style);
|
||||||
|
|
||||||
|
const df = new Intl.DurationFormat("en", { style });
|
||||||
|
compare(df.formatToParts(duration), expected, `Using style : ${style}`);
|
Loading…
x
Reference in New Issue
Block a user