// 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.

/**
 * 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;

var English = const {
  "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"};

var German = const {
  "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"};

var Austrian = const {
  "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"};

var French = const {
  "DAY" : "27",
  "ABBR_WEEKDAY" : "ven.",
  "WEEKDAY" : "vendredi",
  "ABBR_STANDALONE_MONTH" : "janv.",
  "STANDALONE_MONTH" : "janvier",
  "NUM_MONTH" : "1",
  "NUM_MONTH_DAY" : "27/1",
  "NUM_MONTH_WEEKDAY_DAY" : "ven. 27/1",
  "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" : "1/2012",
  "YEAR_NUM_MONTH_DAY" : "27/1/2012",
  "YEAR_NUM_MONTH_WEEKDAY_DAY" : "ven. 27/1/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",
  "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" : "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"};

var Japanese = const {
  "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"};

var Greek = const {
  "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"};
