// Copyright 2018 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. // The following test are not part of the comformance. Just some output in // English to verify the format does return something reasonable for English. // It may be changed when we update the CLDR data. // NOTE: These are UNSPECIFIED behavior in // http://tc39.github.io/proposal-intl-list-time/ let enLongConjunction = new Intl.ListFormat( ["en"], {style: "long", type: 'conjunction'}); assertEquals('', enLongConjunction.format()); assertEquals('', enLongConjunction.format([])); assertEquals('a', enLongConjunction.format(['a'])); assertEquals('b', enLongConjunction.format(['b'])); assertEquals('a and b', enLongConjunction.format(['a', 'b'])); assertEquals('a, b, and c', enLongConjunction.format(['a', 'b', 'c'])); assertEquals('a, b, c, and d', enLongConjunction.format(['a', 'b', 'c', 'd'])); assertEquals('a, b, c, d, and and', enLongConjunction.format(['a', 'b', 'c', 'd', 'and'])); let enLongDisjunction = new Intl.ListFormat( ["en"], {style: "long", type: 'disjunction'}); assertEquals('', enLongDisjunction.format()); assertEquals('', enLongDisjunction.format([])); assertEquals('a', enLongDisjunction.format(['a'])); assertEquals('b', enLongDisjunction.format(['b'])); assertEquals('a or b', enLongDisjunction.format(['a', 'b'])); assertEquals('a, b, or c', enLongDisjunction.format(['a', 'b', 'c'])); assertEquals('a, b, c, or d', enLongDisjunction.format(['a', 'b', 'c', 'd'])); assertEquals('a, b, c, d, or or', enLongDisjunction.format(['a', 'b', 'c', 'd', 'or'])); let enLongUnit = new Intl.ListFormat( ["en"], {style: "long", type: 'unit'}); assertEquals('', enLongUnit.format()); assertEquals('', enLongUnit.format([])); assertEquals('a', enLongUnit.format(['a'])); assertEquals('b', enLongUnit.format(['b'])); assertEquals('a, b', enLongUnit.format(['a', 'b'])); assertEquals('a, b, c', enLongUnit.format(['a', 'b', 'c'])); assertEquals('a, b, c, d', enLongUnit.format(['a', 'b', 'c', 'd'])); assertEquals('a, b, c, d, or', enLongUnit.format(['a', 'b', 'c', 'd', 'or'])); let enShortConjunction = new Intl.ListFormat( ["en"], {style: "short", type: 'conjunction'}); assertEquals('', enShortConjunction.format()); assertEquals('', enShortConjunction.format([])); assertEquals('a', enShortConjunction.format(['a'])); assertEquals('b', enShortConjunction.format(['b'])); assertEquals('a & b', enShortConjunction.format(['a', 'b'])); assertEquals('a, b, & c', enShortConjunction.format(['a', 'b', 'c'])); assertEquals('a, b, c, & d', enShortConjunction.format(['a', 'b', 'c', 'd'])); assertEquals('a, b, c, d, & and', enShortConjunction.format(['a', 'b', 'c', 'd', 'and'])); let enShortDisjunction = new Intl.ListFormat( ["en"], {style: "short", type: 'disjunction'}); assertEquals('', enShortDisjunction.format()); assertEquals('', enShortDisjunction.format([])); assertEquals('a', enShortDisjunction.format(['a'])); assertEquals('b', enShortDisjunction.format(['b'])); assertEquals('a or b', enShortDisjunction.format(['a', 'b'])); assertEquals('a, b, or c', enShortDisjunction.format(['a', 'b', 'c'])); assertEquals('a, b, c, or d', enShortDisjunction.format(['a', 'b', 'c', 'd'])); assertEquals('a, b, c, d, or or', enShortDisjunction.format(['a', 'b', 'c', 'd', 'or'])); let enShortUnit = new Intl.ListFormat( ["en"], {style: "short", type: 'unit'}); assertEquals('', enShortUnit.format()); assertEquals('', enShortUnit.format([])); assertEquals('a', enShortUnit.format(['a'])); assertEquals('b', enShortUnit.format(['b'])); assertEquals('a, b', enShortUnit.format(['a', 'b'])); assertEquals('a, b, c', enShortUnit.format(['a', 'b', 'c'])); assertEquals('a, b, c, d', enShortUnit.format(['a', 'b', 'c', 'd'])); assertEquals('a, b, c, d, or', enShortUnit.format(['a', 'b', 'c', 'd', 'or'])); let enNarrowUnit = new Intl.ListFormat( ["en"], {style: "narrow", type: 'unit'}); assertEquals('', enNarrowUnit.format()); assertEquals('', enNarrowUnit.format([])); assertEquals('a', enNarrowUnit.format(['a'])); assertEquals('b', enNarrowUnit.format(['b'])); assertEquals('a b', enNarrowUnit.format(['a', 'b'])); assertEquals('a b c', enNarrowUnit.format(['a', 'b', 'c'])); assertEquals('a b c d', enNarrowUnit.format(['a', 'b', 'c', 'd'])); assertEquals('a b c d or', enNarrowUnit.format(['a', 'b', 'c', 'd', 'or']));