// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// @dart=2.9

/// Test data for one particular date formatted for a small number of locales.
/// Provides at least a basic check on formatting, including formatting with
/// non-ASCII characters and some different orderings.

// TODO(alanknight): Test more locales and a wider variety of test data,
// possibly by generating test data out of ICU.

library date_time_format_test_data;

const english = {
  'DAY': '27',
  'ABBR_WEEKDAY': 'Fri',
  'WEEKDAY': 'Friday',
  'ABBR_STANDALONE_MONTH': 'Jan',
  'STANDALONE_MONTH': 'January',
  'NUM_MONTH': '1',
  'NUM_MONTH_DAY': '1/27',
  'NUM_MONTH_WEEKDAY_DAY': 'Fri, 1/27',
  'ABBR_MONTH': 'Jan',
  'ABBR_MONTH_DAY': 'Jan 27',
  'ABBR_MONTH_WEEKDAY_DAY': 'Fri, Jan 27',
  'MONTH': 'January',
  'MONTH_DAY': 'January 27',
  'MONTH_WEEKDAY_DAY': 'Friday, January 27',
  'ABBR_QUARTER': 'Q1',
  'QUARTER': '1st quarter',
  'YEAR': '2012',
  'YEAR_NUM_MONTH': '1/2012',
  'YEAR_NUM_MONTH_DAY': '1/27/2012',
  'YEAR_NUM_MONTH_WEEKDAY_DAY': 'Fri, 1/27/2012',
  'YEAR_ABBR_MONTH': 'Jan 2012',
  'YEAR_ABBR_MONTH_DAY': 'Jan 27, 2012',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY': 'Fri, Jan 27, 2012',
  'YEAR_MONTH': 'January 2012',
  'YEAR_MONTH_DAY': 'January 27, 2012',
  'YEAR_MONTH_WEEKDAY_DAY': 'Friday, January 27, 2012',
  'YEAR_ABBR_QUARTER': 'Q1 2012',
  'YEAR_QUARTER': '1st quarter 2012',
  'HOUR24': '20',
  'HOUR24_MINUTE': '20:58',
  'HOUR24_MINUTE_SECOND': '20:58:59',
  'HOUR': '8 PM',
  'HOUR_MINUTE': '8:58 PM',
  'HOUR_MINUTE_SECOND': '8:58:59 PM',
  'MINUTE': '58',
  'MINUTE_SECOND': '58:59',
  'SECOND': '59',
  'LOCATION_TZ': 'United States Time (Los Angeles)',
  'GENERIC_TZ': 'Pacific Time',
  'ABBR_GENERIC_TZ': 'PT',
  'SPECIFIC_TZ': 'Pacific Standard Time',
  'ABBR_SPECIFIC_TZ': 'PST',
  'ABBR_UTC_TZ': 'GMT-08:00',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND':
      'Friday, January 27, 2012 8:58:59 PM',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + GENERIC_TZ':
      'Friday, January 27, 2012 8:58:59 PM Pacific Time',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + ABBR_SPECIFIC_TZ':
      'Fri, Jan 27, 2012 8:58:59 PM PST',
  'HOUR_MINUTE_SECOND + ABBR_GENERIC_TZ': '8:58:59 PM PT',
  'HOUR_MINUTE + ABBR_SPECIFIC_TZ': '8:58 PM PST'
};

const german = {
  'DAY': '27',
  'ABBR_WEEKDAY': 'Fr',
  'WEEKDAY': 'Freitag',
  'ABBR_STANDALONE_MONTH': 'Jan',
  'STANDALONE_MONTH': 'Januar',
  'NUM_MONTH': '1',
  'NUM_MONTH_DAY': '27.1.',
  'NUM_MONTH_WEEKDAY_DAY': 'Fr., 27.1.',
  'ABBR_MONTH': 'Jan',
  'ABBR_MONTH_DAY': '27. Jan.',
  'ABBR_MONTH_WEEKDAY_DAY': 'Fr., 27. Jan.',
  'MONTH': 'Januar',
  'MONTH_DAY': '27. Januar',
  'MONTH_WEEKDAY_DAY': 'Freitag, 27. Januar',
  'ABBR_QUARTER': 'Q1',
  'QUARTER': '1. Quartal',
  'YEAR': '2012',
  'YEAR_NUM_MONTH': '1.2012',
  'YEAR_NUM_MONTH_DAY': '27.1.2012',
  'YEAR_NUM_MONTH_WEEKDAY_DAY': 'Fr., 27.1.2012',
  'YEAR_ABBR_MONTH': 'Jan. 2012',
  'YEAR_ABBR_MONTH_DAY': '27. Jan. 2012',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY': 'Fr., 27. Jan. 2012',
  'YEAR_MONTH': 'Januar 2012',
  'YEAR_MONTH_DAY': '27. Januar 2012',
  'YEAR_MONTH_WEEKDAY_DAY': 'Freitag, 27. Januar 2012',
  'YEAR_ABBR_QUARTER': 'Q1 2012',
  'YEAR_QUARTER': '1. Quartal 2012',
  'HOUR24': '20 Uhr',
  'HOUR24_MINUTE': '20:58',
  'HOUR24_MINUTE_SECOND': '20:58:59',
  'HOUR': '20 Uhr',
  'HOUR_MINUTE': '20:58',
  'HOUR_MINUTE_SECOND': '20:58:59',
  'MINUTE': '58',
  'MINUTE_SECOND': '58:59',
  'SECOND': '59',
  'LOCATION_TZ': 'Vereinigte Staaten Zeit (Los Angeles)',
  'GENERIC_TZ': 'Nordamerikanische Westküstenzeit',
  'ABBR_GENERIC_TZ': 'Vereinigte Staaten Zeit (Los Angeles)',
  'SPECIFIC_TZ': 'Nordamerikanische Westküsten-Winterzeit',
  'ABBR_SPECIFIC_TZ': 'GMT-08:00',
  'ABBR_UTC_TZ': 'GMT-08:00',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND':
      'Freitag, 27. Januar 2012 20:58:59',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + GENERIC_TZ':
      'Freitag, 27. Januar 2012 20:58:59 Nordamerikanische Westküstenzeit',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + ABBR_SPECIFIC_TZ':
      'Fr., 27. Jan 2012 20:58:59 GMT-08:00',
  'HOUR_MINUTE_SECOND + ABBR_GENERIC_TZ':
      '20:58:59 Vereinigte Staaten Zeit (Los Angeles)',
  'HOUR_MINUTE + ABBR_SPECIFIC_TZ': '20:58 GMT-08:00'
};

const austrian = {
  'DAY': '27',
  'ABBR_WEEKDAY': 'Fr',
  'WEEKDAY': 'Freitag',
  'ABBR_STANDALONE_MONTH': 'Jän',
  'STANDALONE_MONTH': 'Jänner',
  'NUM_MONTH': '1',
  'NUM_MONTH_DAY': '27.1.',
  'NUM_MONTH_WEEKDAY_DAY': 'Fr., 27.1.',
  'ABBR_MONTH': 'Jän',
  'ABBR_MONTH_DAY': '27. Jän.',
  'ABBR_MONTH_WEEKDAY_DAY': 'Fr., 27. Jän.',
  'MONTH': 'Jänner',
  'MONTH_DAY': '27. Jänner',
  'MONTH_WEEKDAY_DAY': 'Freitag, 27. Jänner',
  'ABBR_QUARTER': 'Q1',
  'QUARTER': '1. Quartal',
  'YEAR': '2012',
  'YEAR_NUM_MONTH': '1.2012',
  'YEAR_NUM_MONTH_DAY': '27.1.2012',
  'YEAR_NUM_MONTH_WEEKDAY_DAY': 'Fr., 27.1.2012',
  'YEAR_ABBR_MONTH': 'Jän. 2012',
  'YEAR_ABBR_MONTH_DAY': '27. Jän. 2012',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY': 'Fr., 27. Jän. 2012',
  'YEAR_MONTH': 'Jänner 2012',
  'YEAR_MONTH_DAY': '27. Jänner 2012',
  'YEAR_MONTH_WEEKDAY_DAY': 'Freitag, 27. Jänner 2012',
  'YEAR_ABBR_QUARTER': 'Q1 2012',
  'YEAR_QUARTER': '1. Quartal 2012',
  'HOUR24': '20 Uhr',
  'HOUR24_MINUTE': '20:58',
  'HOUR24_MINUTE_SECOND': '20:58:59',
  'HOUR': '20 Uhr',
  'HOUR_MINUTE': '20:58',
  'HOUR_MINUTE_SECOND': '20:58:59',
  'MINUTE': '58',
  'MINUTE_SECOND': '58:59',
  'SECOND': '59',
  'LOCATION_TZ': 'Vereinigte Staaten Zeit (Los Angeles)',
  'GENERIC_TZ': 'Nordamerikanische Westküstenzeit',
  'ABBR_GENERIC_TZ': 'Vereinigte Staaten Zeit (Los Angeles)',
  'SPECIFIC_TZ': 'Nordamerikanische Westküsten-Winterzeit',
  'ABBR_SPECIFIC_TZ': 'GMT-08:00',
  'ABBR_UTC_TZ': 'GMT-08:00',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND':
      'Freitag, 27. Jänner 2012 20:58:59',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + GENERIC_TZ':
      'Freitag, 27. Jänner 2012 20:58:59 Nordamerikanische Westküstenzeit',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + ABBR_SPECIFIC_TZ':
      'Fr., 27. Jän 2012 20:58:59 GMT-08:00',
  'HOUR_MINUTE_SECOND + ABBR_GENERIC_TZ':
      '20:58:59 Vereinigte Staaten Zeit (Los Angeles)',
  'HOUR_MINUTE + ABBR_SPECIFIC_TZ': '20:58 GMT-08:00'
};

const french = {
  'DAY': '27',
  'ABBR_WEEKDAY': 'ven.',
  'WEEKDAY': 'vendredi',
  'ABBR_STANDALONE_MONTH': 'janv.',
  'STANDALONE_MONTH': 'janvier',
  'NUM_MONTH': '1',
  'NUM_MONTH_DAY': '27/01',
  'NUM_MONTH_WEEKDAY_DAY': 'ven. 27/01',
  'ABBR_MONTH': 'janv.',
  'ABBR_MONTH_DAY': '27 janv.',
  'ABBR_MONTH_WEEKDAY_DAY': 'ven. 27 janv.',
  'MONTH': 'janvier',
  'MONTH_DAY': '27 janvier',
  'MONTH_WEEKDAY_DAY': 'vendredi 27 janvier',
  'ABBR_QUARTER': 'T1',
  'QUARTER': '1er trimestre',
  'YEAR': '2012',
  'YEAR_NUM_MONTH': '01/2012',
  'YEAR_NUM_MONTH_DAY': '27/01/2012',
  'YEAR_NUM_MONTH_WEEKDAY_DAY': 'ven. 27/01/2012',
  'YEAR_ABBR_MONTH': 'janv. 2012',
  'YEAR_ABBR_MONTH_DAY': '27 janv. 2012',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY': 'ven. 27 janv. 2012',
  'YEAR_MONTH': 'janvier 2012',
  'YEAR_MONTH_DAY': '27 janvier 2012',
  'YEAR_MONTH_WEEKDAY_DAY': 'vendredi 27 janvier 2012',
  'YEAR_ABBR_QUARTER': 'T1 2012',
  'YEAR_QUARTER': '1er trimestre 2012',
  'HOUR24': '20 h',
  'HOUR24_MINUTE': '20:58',
  'HOUR24_MINUTE_SECOND': '20:58:59',
  'HOUR': '20 h',
  'HOUR_MINUTE': '20:58',
  'HOUR_MINUTE_SECOND': '20:58:59',
  'MINUTE': '58',
  'MINUTE_SECOND': '58:59',
  'SECOND': '59',
  'LOCATION_TZ': 'Heure : États-Unis (Los Angeles)',
  'GENERIC_TZ': 'heure du Pacifique',
  'ABBR_GENERIC_TZ': 'Heure : États-Unis (Los Angeles)',
  'SPECIFIC_TZ': 'heure normale du Pacifique',
  'ABBR_SPECIFIC_TZ': 'UTC-08:00',
  'ABBR_UTC_TZ': 'UTC-08:00',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND':
      'vendredi 27 janvier 2012 20:58:59',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + GENERIC_TZ':
      'vendredi 27 janvier 2012 20:58:59 heure du Pacifique',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + ABBR_SPECIFIC_TZ':
      'ven. 27 janv. 2012 20:58:59 UTC-08:00',
  'HOUR_MINUTE_SECOND + ABBR_GENERIC_TZ':
      '20:58:59 Heure : États-Unis (Los Angeles)',
  'HOUR_MINUTE + ABBR_SPECIFIC_TZ': '20:58 UTC-08:00'
};

const japanese = {
  'DAY': '27日',
  'ABBR_WEEKDAY': '金',
  'WEEKDAY': '金曜日',
  'ABBR_STANDALONE_MONTH': '1月',
  'STANDALONE_MONTH': '1月',
  'NUM_MONTH': '1月',
  'NUM_MONTH_DAY': '1/27',
  'NUM_MONTH_WEEKDAY_DAY': '1/27(金)',
  'ABBR_MONTH': '1月',
  'ABBR_MONTH_DAY': '1月27日',
  'ABBR_MONTH_WEEKDAY_DAY': '1月27日(金)',
  'MONTH': '1月',
  'MONTH_DAY': '1月27日',
  'MONTH_WEEKDAY_DAY': '1月27日金曜日',
  'ABBR_QUARTER': 'Q1',
  'QUARTER': '第1四半期',
  'YEAR': '2012年',
  'YEAR_NUM_MONTH': '2012/1',
  'YEAR_NUM_MONTH_DAY': '2012/1/27',
  'YEAR_NUM_MONTH_WEEKDAY_DAY': '2012/1/27(金)',
  'YEAR_ABBR_MONTH': '2012年1月',
  'YEAR_ABBR_MONTH_DAY': '2012年1月27日',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY': '2012年1月27日(金)',
  'YEAR_MONTH': '2012年1月',
  'YEAR_MONTH_DAY': '2012年1月27日',
  'YEAR_MONTH_WEEKDAY_DAY': '2012年1月27日金曜日',
  'YEAR_ABBR_QUARTER': '2012/Q1',
  'YEAR_QUARTER': '2012/第1四半期',
  'HOUR24': '20時',
  'HOUR24_MINUTE': '20:58',
  'HOUR24_MINUTE_SECOND': '20:58:59',
  'HOUR': '20時',
  'HOUR_MINUTE': '20:58',
  'HOUR_MINUTE_SECOND': '20:58:59',
  'MINUTE': '58',
  'MINUTE_SECOND': '58:59',
  'SECOND': '59',
  'LOCATION_TZ': 'アメリカ合衆国時間（ロサンゼルス）',
  'GENERIC_TZ': 'アメリカ太平洋時間',
  'ABBR_GENERIC_TZ': 'アメリカ合衆国時間（ロサンゼルス）',
  'SPECIFIC_TZ': 'アメリカ太平洋標準時',
  'ABBR_SPECIFIC_TZ': 'GMT-08:00',
  'ABBR_UTC_TZ': 'GMT-08:00',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND': '2012年1月27日(金曜日) 20:58:59',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + GENERIC_TZ':
      '2012年1月27日(金曜日) 20時58分59秒 アメリカ太平洋時間',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + ABBR_SPECIFIC_TZ':
      '2012年1月27日(金) 20時58分59秒 GMT-08:00',
  'HOUR_MINUTE_SECOND + ABBR_GENERIC_TZ': '20時58分59秒 アメリカ合衆国時間（ロサンゼルス）',
  'HOUR_MINUTE + ABBR_SPECIFIC_TZ': '20:58 GMT-08:00'
};

const greek = {
  'DAY': '27',
  'ABBR_WEEKDAY': 'Παρ',
  'WEEKDAY': 'Παρασκευή',
  'ABBR_STANDALONE_MONTH': 'Ιαν',
  'STANDALONE_MONTH': 'Ιανουαρίου',
  'NUM_MONTH': '1',
  'NUM_MONTH_DAY': '27/1',
  'NUM_MONTH_WEEKDAY_DAY': 'Παρ, 27/1',
  'ABBR_MONTH': 'Ιαν',
  'ABBR_MONTH_DAY': '27 Ιαν',
  'ABBR_MONTH_WEEKDAY_DAY': 'Παρ, 27 Ιαν',
  'MONTH': 'Ιανουαρίου',
  'MONTH_DAY': '27 Ιανουαρίου',
  'MONTH_WEEKDAY_DAY': 'Παρασκευή, 27 Ιανουαρίου',
  'ABBR_QUARTER': 'Τ1',
  'QUARTER': '1ο τρίμηνο',
  'YEAR': '2012',
  'YEAR_NUM_MONTH': '1/2012',
  'YEAR_NUM_MONTH_DAY': '27/1/2012',
  'YEAR_NUM_MONTH_WEEKDAY_DAY': 'Παρ, 27/1/2012',
  'YEAR_ABBR_MONTH': 'Ιαν 2012',
  'YEAR_ABBR_MONTH_DAY': '27 Ιαν 2012',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY': 'Παρ, 27 Ιαν 2012',
  'YEAR_MONTH': 'Ιανουάριος 2012',
  'YEAR_MONTH_DAY': '27 Ιανουαρίου 2012',
  'YEAR_MONTH_WEEKDAY_DAY': 'Παρασκευή, 27 Ιανουαρίου 2012',
  'YEAR_ABBR_QUARTER': '2012 Τ1',
  'YEAR_QUARTER': '2012 1ο τρίμηνο',
  'HOUR24': '20',
  'HOUR24_MINUTE': '20:58',
  'HOUR24_MINUTE_SECOND': '20:58:59',
  'HOUR': '8 μ.μ.',
  'HOUR_MINUTE': '8:58 μ.μ.',
  'HOUR_MINUTE_SECOND': '8:58:59 μ.μ.',
  'MINUTE': '58',
  'MINUTE_SECOND': '58:59',
  'SECOND': '59',
  'LOCATION_TZ': 'Ηνωμένες Πολιτείες της Αμερικής (Λος Άντζελες)',
  'GENERIC_TZ': 'Ώρα Ειρηνικού',
  'ABBR_GENERIC_TZ': 'Ηνωμένες Πολιτείες της Αμερικής (Λος Άντζελες)',
  'SPECIFIC_TZ': 'Χειμερινή ώρα Ειρηνικού',
  'ABBR_SPECIFIC_TZ': 'GMT-08:00',
  'ABBR_UTC_TZ': 'GMT-08:00',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND':
      'Παρασκευή, 27 Ιανουαρίου 2012 8:58:59 μ.μ.',
  'YEAR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + GENERIC_TZ':
      'Παρασκευή, 27 Ιανουαρίου 2012 8:58:59 μ.μ. Ώρα Ειρηνικού',
  'YEAR_ABBR_MONTH_WEEKDAY_DAY + HOUR_MINUTE_SECOND + ABBR_SPECIFIC_TZ':
      'Παρ, 27 Ιαν 2012 8:58:59 μ.μ. GMT-08:00',
  'HOUR_MINUTE_SECOND + ABBR_GENERIC_TZ':
      '8:58:59 μ.μ. Ηνωμένες Πολιτείες της Αμερικής (Λος Άντζελες)',
  'HOUR_MINUTE + ABBR_SPECIFIC_TZ': '8:58 μ.μ. GMT-08:00'
};
