scuffed-code/icu4c/source/test/testdata/format.txt
2012-08-28 21:56:06 +00:00

443 lines
16 KiB
Plaintext

// Copyright (c) 2007-2012 International Business Machines
// Corporation and others. All Rights Reserved.
format:table(nofallback) {
Info {
Description { "These are the data driven format tests" }
LongDescription { "Data for data driven format tests." }
}
TestData {
TestDateFormatBasic {
Info {
Description { "Test data for format and parse :" }
}
Settings {
// options: 'format', or 'parse'. One can be omitted if this is a 1 way test.
{
Type { "date_format" }
},
{
Type { "date_parse" }
},
}
Headers { "locale","spec", "date", "str"}
// locale: locale including calendar type
// spec: either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG'
// date: either 'MILLIS=####' where #### is millis,
// or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
// or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis
// or RELATIVE_ADD:DATE=1 which means that the field "DATE" will be added by +1 relative to current time
// str: the expected unicode string
Cases {
{
"en_US@calendar=gregorian",
"DATE=SHORT,TIME=SHORT",
"ERA=1,YEAR=2007,MONTH=AUGUST,DATE=8,HOUR_OF_DAY=18,MINUTE=54,SECOND=0",
"8/8/07, 6:54 PM"
},
{
"zh_TW@calendar=roc",
"DATE=LONG",
"ERA=1,YEAR=98,MONTH=0,DATE=24",
"民國98年1月24日",
},
{
//民國前2年1月24日 -> 1910-1-24
"zh_TW@calendar=roc",
"DATE=LONG",
"ERA=0,YEAR=2,MONTH=0,DATE=24",
"民國前2年1月24日",
},
}
}
TestFormatRelative {
Info {
Description { "relative format :" }
}
Settings {
{
Type { "date_format" }
},
}
Headers { "locale","spec", "date", "str"}
Cases {
{
"en_US@calendar=gregorian",
"DATE=RELATIVE_SHORT",
"RELATIVE_ADD:DATE=1", // one day from now
"Tomorrow"
},
{
"en_US@calendar=gregorian",
"DATE=RELATIVE_SHORT",
"RELATIVE_MILLIS=0", // today
"Today"
},
{
"en_US@calendar=gregorian",
"DATE=RELATIVE_SHORT",
"RELATIVE_ADD:DATE=-1", // one day before now
"Yesterday"
},
{
"mt_MT@calendar=gregorian",
"DATE=RELATIVE_SHORT",
"RELATIVE_ADD:DATE=1", // one day from now
"Għada"
},
{
"mt_MT@calendar=gregorian",
"DATE=RELATIVE_SHORT",
"RELATIVE_MILLIS=0", // today
"Illum"
},
{
"mt_MT@calendar=gregorian",
"DATE=RELATIVE_SHORT",
"RELATIVE_ADD:DATE=-1", // one day before now
"Lbieraħ"
},
{
"ru",
"DATE=RELATIVE_SHORT",
"RELATIVE_ADD:DATE=-2", // 2 days ago
"Позавчера"
},
}
}
TestYearLengths {
Info {
Description { "Test data for multiple year lengths, y yy yyy yyyy yyyyy:" }
}
Settings {
// options: 'format', or 'parse'. One can be omitted if this is a 1 way test.
{
Type { "date_format" }
},
// These are not round trippable, so do not parse.
// {
// Type { "date_parse" }
// },
}
Headers { "locale","spec", "date", "str"}
// locale: locale including calendar type
// spec: either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG'
// date: either 'MILLIS=####' where #### is millis,
// or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
// or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis
// or RELATIVE_ADD:DATE=1 which means that the field "DATE" will be added by +1 relative to current time
// str: the expected unicode string
// from CLDR UTS 35:
//Year y yy yyy yyyy yyyyy
Cases {
//AD 1 1 01 001 0001 00001
{
"en_US@calendar=gregorian",
"PATTERN=G y",
"YEAR=1",
"AD 1"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yy",
"YEAR=1",
"AD 01"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyy",
"YEAR=1",
"AD 001"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyy",
"YEAR=1",
"AD 0001"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyyy",
"YEAR=1",
"AD 00001"
},
//AD 12 12 12 012 0012 00012
{
"en_US@calendar=gregorian",
"PATTERN=G y",
"YEAR=12",
"AD 12"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yy",
"YEAR=12",
"AD 12"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyy",
"YEAR=12",
"AD 012"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyy",
"YEAR=12",
"AD 0012"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyyy",
"YEAR=12",
"AD 00012"
},
//AD 123 123 23 123 0123 00123
{
"en_US@calendar=gregorian",
"PATTERN=G y",
"YEAR=123",
"AD 123"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yy",
"YEAR=123",
"AD 23"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyy",
"YEAR=123",
"AD 123"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyy",
"YEAR=123",
"AD 0123"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyyy",
"YEAR=123",
"AD 00123"
},
//AD 1234 1234 34 1234 1234 01234
{
"en_US@calendar=gregorian",
"PATTERN=G y",
"YEAR=1234",
"AD 1234"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yy",
"YEAR=1234",
"AD 34"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyy",
"YEAR=1234",
"AD 1234"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyy",
"YEAR=1234",
"AD 1234"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyyy",
"YEAR=1234",
"AD 01234"
},
//AD 12345 12345 45 12345 12345 12345
{
"en_US@calendar=gregorian",
"PATTERN=G y",
"YEAR=12345",
"AD 12345"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yy",
"YEAR=12345",
"AD 45"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyy",
"YEAR=12345",
"AD 12345"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyy",
"YEAR=12345",
"AD 12345"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyyy",
"YEAR=12345",
"AD 12345"
},
}
}
TestConsistentPivot {
Info {
Description { "Test consistent pivot (parse/format) for multiple year lengths, y yy yyy yyyy yyyyy:" }
}
Settings {
// options: 'format', or 'parse'. One can be omitted if this is a 1 way test.
{
Type { "date_format" }
},
{
Type { "date_parse" }
},
}
Headers { "locale","spec", "date", "str"}
// locale: locale including calendar type
// spec: either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG'
// date: either 'MILLIS=####' where #### is millis,
// or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
// or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis
// or RELATIVE_ADD:DATE=1 which means that the field "DATE" will be added by +1 relative to current time
// str: the expected unicode string
// from CLDR UTS 35:
//Year y yy yyy yyyy yyyyy
Cases {
//AD 1 1 01 001 0001 00001
{
"en_US@calendar=gregorian",
"PATTERN=G y",
"YEAR=2008",
"AD 2008"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yy",
"YEAR=2008",
"AD 08"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyy",
"YEAR=2008",
"AD 2008"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyy",
"YEAR=2008",
"AD 2008"
},
{
"en_US@calendar=gregorian",
"PATTERN=G yyyyy",
"YEAR=2008",
"AD 02008"
},
// Japanese
{
"en_US@calendar=japanese",
"PATTERN=G y",
"YEAR=8",
"Heisei 8"
},
{
"en_US@calendar=japanese",
"PATTERN=G yy",
"YEAR=8",
"Heisei 08"
},
{
"en_US@calendar=japanese",
"PATTERN=G yyy",
"YEAR=8",
"Heisei 008"
},
{
"en_US@calendar=japanese",
"PATTERN=G yyyy",
"YEAR=8",
"Heisei 0008"
},
{
"en_US@calendar=japanese",
"PATTERN=G yyyyy",
"YEAR=8",
"Heisei 00008"
},
}
}
TestHebrew{
Info {
Description { "Test Hebrew calendar:" }
}
Settings {
// options: 'format', or 'parse'. One can be omitted if this is a 1 way test.
{
Type { "date_format" }
},
}
Headers { "locale","spec", "date", "str"}
// locale: locale including calendar type
// spec: either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG'
// date: either 'MILLIS=####' where #### is millis,
// or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
// or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis
// or RELATIVE_ADD:DATE=1 which means that the field "DATE" will be added by +1 relative to current time
// str: the expected unicode string
Cases {
{
"en_US@calendar=hebrew",
"DATE=FULL,TIME=FULL",
"MILLIS=3076424179200000",
"Friday, Heshvan 3, 103217 at 12:00:00 AM GMT-08:00"
},
}
}
TestMoreDateParse {
Info {
Description { "Additional date parse tests (may not
round/trip to format.)" }
}
Settings {
// options: 'format', or 'parse'. One can be omitted if this is a 1 way test.
{
Type { "date_parse" }
},
}
Headers { "locale","spec", "date", "str"}
// locale: locale including calendar type
// spec: either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG'
// date: either 'MILLIS=####' where #### is millis,
// or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
// or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis
// or RELATIVE_ADD:DATE=1 which means that the field "DATE" will be added by +1 relative to current time
// str: the expected unicode string
Cases {
{
"en_US@calendar=gregorian",
"PATTERN=YYYYHHmmssEEEww",
"YEAR=1999,HOUR_OF_DAY=4,MINUTE=5,SECOND=6,DAY_OF_WEEK=2,WEEK_OF_YEAR=4",
// won't roundtrip.
"1998040506MON56"
}
}
}
}
}