tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

format.txt (22693B)


      1 // Copyright (C) 2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 // Copyright (c) 2007-2015 International Business Machines
      4 // Corporation and others. All Rights Reserved.
      5 format:table(nofallback) {
      6    Info {
      7        Description { "These are the data driven format tests" }
      8        LongDescription {   "Data for data driven format tests." }
      9    }
     10    TestData {
     11        TestDateFormatBasic {
     12            Info {
     13                Description { "Test data for format and parse :" }
     14            }
     15            Settings {
     16                // options: 'format', or 'parse'.  One can be omitted if this is a 1 way test.
     17                {
     18                    Type { "date_format" }
     19                },
     20                {
     21                    Type { "date_parse" }
     22                },
     23            }
     24            Headers { "locale", "zone", "spec", "date", "str"}
     25            // locale: locale including calendar type
     26            // zone:   time zone name, or "" to not explicitly set zone
     27            // spec:   either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG'
     28            // date:   either 'MILLIS=####' where #### is millis,
     29            //        or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
     30            //        or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis
     31            //        or RELATIVE_ADD:DATE=1  which means that the field "DATE" will be added by +1 relative to current time,
     32            //           and any other fields present will be set explicitly.
     33            // str:   the expected unicode string
     34            Cases { 
     35               {
     36                    "en_US@calendar=gregorian",
     37                    "",
     38                    "DATE=SHORT,TIME=SHORT",
     39                    "ERA=1,YEAR=2007,MONTH=AUGUST,DATE=8,HOUR_OF_DAY=18,MINUTE=54,SECOND=0",
     40                    "8/8/07, 6:54 PM"
     41               },
     42               {
     43                    "zh_TW@calendar=roc",
     44                    "",
     45                    "DATE=LONG",
     46                    "ERA=1,YEAR=98,MONTH=0,DATE=24",
     47                    "民國98年1月24日",
     48               },
     49               {
     50                    //民國前2年1月24日 -> 1910-1-24 
     51                    "zh_TW@calendar=roc",
     52                    "",
     53                    "DATE=LONG",
     54                    "ERA=0,YEAR=2,MONTH=0,DATE=24",
     55                    "民國前2年1月24日",
     56               },
     57            }
     58        }
     59        TestFormatRelative {
     60            Info {
     61                Description { "relative format :" }
     62            }
     63            Settings {
     64                {
     65                    Type { "date_format" }
     66                },
     67            }
     68            Headers { "locale", "zone", "spec", "date", "str"}
     69            Cases { 
     70               {
     71                    "en_US@calendar=gregorian",         
     72                    "",
     73                    "DATE=RELATIVE_SHORT",
     74                    "RELATIVE_ADD:DATE=1", // one day from now
     75                    "tomorrow"
     76               },
     77               {
     78                    "en_US@calendar=gregorian",         
     79                    "",
     80                    "DATE=RELATIVE_SHORT",
     81                    "RELATIVE_MILLIS=0", // today
     82                    "today"
     83               },
     84               {
     85                    "en_US@calendar=gregorian",         
     86                    "",
     87                    "DATE=RELATIVE_SHORT",
     88                    "RELATIVE_ADD:DATE=-1", // one day before now
     89                    "yesterday"
     90               },
     91               // date only, out of relative range
     92               {
     93                    "en_US@calendar=gregorian",         
     94                    "GMT",
     95                    "DATE=RELATIVE_FULL",
     96                    "ERA=1,YEAR=2012,MONTH=OCTOBER,DATE=8,HOUR_OF_DAY=23,MINUTE=59,SECOND=0",
     97                    "Monday, October 8, 2012"
     98               },
     99               // time only
    100               {
    101                    "en_US@calendar=gregorian",         
    102                    "GMT",
    103                    "TIME=LONG",
    104                    "ERA=1,YEAR=2012,MONTH=OCTOBER,DATE=8,HOUR_OF_DAY=23,MINUTE=59,SECOND=0",
    105                    "11:59:00 PM GMT"
    106               },
    107               {
    108                    "en_US@calendar=gregorian",         
    109                    "GMT",
    110                    "TIME=LONG",
    111                    "RELATIVE_ADD:DATE=-1,HOUR_OF_DAY=17,MINUTE=0,SECOND=0", // one day before now at specified time
    112                    "5:00:00 PM GMT"
    113               },
    114               // normal formats, combined using 'at'
    115               {
    116                    "en_US@calendar=gregorian",         
    117                    "GMT",
    118                    "DATE=RELATIVE_FULL,TIME=LONG",
    119                    "ERA=1,YEAR=2012,MONTH=OCTOBER,DATE=8,HOUR_OF_DAY=23,MINUTE=59,SECOND=0",
    120                    "Monday, October 8, 2012, 11:59:00 PM GMT"
    121               },
    122               // normal formats, combined using ", "
    123               {
    124                    "en_US@calendar=gregorian",         
    125                    "GMT",
    126                    "DATE=RELATIVE_MEDIUM,TIME=SHORT",
    127                    "ERA=1,YEAR=2012,MONTH=OCTOBER,DATE=8,HOUR_OF_DAY=23,MINUTE=59,SECOND=0",
    128                    "Oct 8, 2012, 11:59 PM"
    129               },
    130               // formats with relative day, combined using 'at'
    131               {
    132                    "en_US@calendar=gregorian",         
    133                    "GMT",
    134                    "DATE=RELATIVE_FULL,TIME=LONG",
    135                    "RELATIVE_ADD:DATE=-1,HOUR_OF_DAY=17,MINUTE=0,SECOND=0", // one day before now at specified time
    136                    "yesterday, 5:00:00 PM GMT"
    137               },
    138               // formats with relative day, combined using ", "
    139               {
    140                    "en_US@calendar=gregorian",         
    141                    "GMT",
    142                    "DATE=RELATIVE_MEDIUM,TIME=SHORT",
    143                    "RELATIVE_ADD:DATE=-1,HOUR_OF_DAY=17,MINUTE=0,SECOND=0", // one day before now at specified time
    144                    "yesterday, 5:00 PM"
    145               },
    146               // normal formats that have quoted literals, combined
    147               {
    148                    "pt@calendar=gregorian",         
    149                    "GMT",
    150                    "DATE=RELATIVE_FULL,TIME=LONG",
    151                    "ERA=1,YEAR=2012,MONTH=OCTOBER,DATE=8,HOUR_OF_DAY=23,MINUTE=59,SECOND=0",
    152                    "segunda-feira, 8 de outubro de 2012 23:59:00 GMT+0"
    153               },
    154               // vi combined formats have time first
    155               {
    156                    "vi@calendar=gregorian",         
    157                    "GMT",
    158                    "DATE=RELATIVE_LONG,TIME=MEDIUM",
    159                    "ERA=1,YEAR=2012,MONTH=OCTOBER,DATE=8,HOUR_OF_DAY=23,MINUTE=59,SECOND=0",
    160                    "23:59:00 8 tháng 10, 2012"
    161               },
    162               {
    163                    "vi@calendar=gregorian",         
    164                    "GMT",
    165                    "DATE=RELATIVE_LONG,TIME=MEDIUM",
    166                    "RELATIVE_ADD:DATE=-1,HOUR_OF_DAY=17,MINUTE=0,SECOND=0", // one day before now at specified time
    167                    "17:00:00 Hôm qua"
    168               },
    169               // el combines formats using hyphen
    170               {
    171                    "el@calendar=gregorian",         
    172                    "GMT",
    173                    "DATE=RELATIVE_LONG,TIME=MEDIUM",
    174                    "ERA=1,YEAR=2012,MONTH=OCTOBER,DATE=8,HOUR_OF_DAY=23,MINUTE=59,SECOND=0",
    175                    "8 Οκτωβρίου 2012 - 11:59:00 μ.μ."
    176               },
    177               {
    178                    "el@calendar=gregorian",         
    179                    "GMT",
    180                    "DATE=RELATIVE_LONG,TIME=MEDIUM",
    181                    "RELATIVE_ADD:DATE=-1,HOUR_OF_DAY=17,MINUTE=0,SECOND=0", // one day before now at specified time
    182                    "χθες - 5:00:00 μ.μ."
    183               },
    184              // other tests
    185               {
    186                    "mt_MT@calendar=gregorian",         
    187                    "",
    188                    "DATE=RELATIVE_SHORT",
    189                    "RELATIVE_ADD:DATE=1", // one day from now
    190                    "għada"
    191               },
    192               {
    193                    "mt_MT@calendar=gregorian",         
    194                    "",
    195                    "DATE=RELATIVE_SHORT",
    196                    "RELATIVE_MILLIS=0", // today
    197                    "illum"
    198               },
    199               {
    200                    "mt_MT@calendar=gregorian",         
    201                    "",
    202                    "DATE=RELATIVE_SHORT",
    203                    "RELATIVE_ADD:DATE=-1", // one day before now
    204                    "lbieraħ"
    205               },
    206               {
    207                    "ru",
    208                    "",
    209                    "DATE=RELATIVE_SHORT",
    210                    "RELATIVE_ADD:DATE=-2", // 2 days ago
    211                    "позавчера"
    212               },
    213            }
    214        }
    215        TestYearLengths {
    216            Info {
    217                Description { "Test data for multiple year lengths, y yy yyy yyyy yyyyy:" }
    218            }
    219            Settings {
    220                // options: 'format', or 'parse'.  One can be omitted if this is a 1 way test.
    221                {
    222                    Type { "date_format" }
    223                },
    224 // These are not round trippable, so do not parse.
    225 //                {
    226 //                    Type { "date_parse" }
    227 //                },
    228            }
    229            Headers { "locale", "zone", "spec", "date", "str"}
    230            // locale: locale including calendar type
    231            // zone:   time zone name, or "" to not explicitly set zone
    232            // spec:   either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG'
    233            // date:   either 'MILLIS=####' where #### is millis,
    234            //        or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
    235            //        or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis
    236            //        or RELATIVE_ADD:DATE=1  which means that the field "DATE" will be added by +1 relative to current time,
    237            //           and any other fields present will be set explicitly.
    238            // str:   the expected unicode string
    239           
    240 // from CLDR UTS 35: 
    241 //Year  	y  	yy  	yyy  	yyyy  	yyyyy
    242            
    243            Cases { 
    244 //AD 1 	    1 	01 	001 	0001 	00001
    245               {
    246                    "en_US@calendar=gregorian",         
    247                    "",
    248                    "PATTERN=G y",
    249                    "YEAR=1",
    250                    "AD 1"
    251               },
    252               {
    253                    "en_US@calendar=gregorian",         
    254                    "",
    255                    "PATTERN=G yy",
    256                    "YEAR=1",
    257                    "AD 01"
    258               },
    259               {
    260                    "en_US@calendar=gregorian",         
    261                    "",
    262                    "PATTERN=G yyy",
    263                    "YEAR=1",
    264                    "AD 001"
    265               },
    266               {
    267                    "en_US@calendar=gregorian",         
    268                    "",
    269                    "PATTERN=G yyyy",
    270                    "YEAR=1",
    271                    "AD 0001"
    272               },
    273               {
    274                    "en_US@calendar=gregorian",         
    275                    "",
    276                    "PATTERN=G yyyyy",
    277                    "YEAR=1",
    278                    "AD 00001"
    279               },
    280 //AD 12 	12 	12 	012 	0012 	00012
    281               {
    282                    "en_US@calendar=gregorian",         
    283                    "",
    284                    "PATTERN=G y",
    285                    "YEAR=12",
    286                    "AD 12"
    287               },
    288               {
    289                    "en_US@calendar=gregorian",         
    290                    "",
    291                    "PATTERN=G yy",
    292                    "YEAR=12",
    293                    "AD 12"
    294               },
    295               {
    296                    "en_US@calendar=gregorian",         
    297                    "",
    298                    "PATTERN=G yyy",
    299                    "YEAR=12",
    300                    "AD 012"
    301               },
    302               {
    303                    "en_US@calendar=gregorian",         
    304                    "",
    305                    "PATTERN=G yyyy",
    306                    "YEAR=12",
    307                    "AD 0012"
    308               },
    309               {
    310                    "en_US@calendar=gregorian",         
    311                    "",
    312                    "PATTERN=G yyyyy",
    313                    "YEAR=12",
    314                    "AD 00012"
    315               },
    316 //AD 123 	123 	23 	123 	0123 	00123
    317               {
    318                    "en_US@calendar=gregorian",         
    319                    "",
    320                    "PATTERN=G y",
    321                    "YEAR=123",
    322                    "AD 123"
    323               },
    324               {
    325                    "en_US@calendar=gregorian",         
    326                    "",
    327                    "PATTERN=G yy",
    328                    "YEAR=123",
    329                    "AD 23"
    330               },
    331               {
    332                    "en_US@calendar=gregorian",         
    333                    "",
    334                    "PATTERN=G yyy",
    335                    "YEAR=123",
    336                    "AD 123"
    337               },
    338               {
    339                    "en_US@calendar=gregorian",         
    340                    "",
    341                    "PATTERN=G yyyy",
    342                    "YEAR=123",
    343                    "AD 0123"
    344               },
    345               {
    346                    "en_US@calendar=gregorian",         
    347                    "",
    348                    "PATTERN=G yyyyy",
    349                    "YEAR=123",
    350                    "AD 00123"
    351               },
    352 //AD 1234 	1234 	34 	1234 	1234 	01234
    353               {
    354                    "en_US@calendar=gregorian",         
    355                    "",
    356                    "PATTERN=G y",
    357                    "YEAR=1234",
    358                    "AD 1234"
    359               },
    360               {
    361                    "en_US@calendar=gregorian",         
    362                    "",
    363                    "PATTERN=G yy",
    364                    "YEAR=1234",
    365                    "AD 34"
    366               },
    367               {
    368                    "en_US@calendar=gregorian",         
    369                    "",
    370                    "PATTERN=G yyy",
    371                    "YEAR=1234",
    372                    "AD 1234"
    373               },
    374               {
    375                    "en_US@calendar=gregorian",         
    376                    "",
    377                    "PATTERN=G yyyy",
    378                    "YEAR=1234",
    379                    "AD 1234"
    380               },
    381               {
    382                    "en_US@calendar=gregorian",         
    383                    "",
    384                    "PATTERN=G yyyyy",
    385                    "YEAR=1234",
    386                    "AD 01234"
    387               },
    388 //AD 12345 	12345 	45 	12345 	12345 	12345
    389               {
    390                    "en_US@calendar=gregorian",         
    391                    "",
    392                    "PATTERN=G y",
    393                    "YEAR=12345",
    394                    "AD 12345"
    395               },
    396               {
    397                    "en_US@calendar=gregorian",         
    398                    "",
    399                    "PATTERN=G yy",
    400                    "YEAR=12345",
    401                    "AD 45"
    402               },
    403               {
    404                    "en_US@calendar=gregorian",         
    405                    "",
    406                    "PATTERN=G yyy",
    407                    "YEAR=12345",
    408                    "AD 12345"
    409               },
    410               {
    411                    "en_US@calendar=gregorian",         
    412                    "",
    413                    "PATTERN=G yyyy",
    414                    "YEAR=12345",
    415                    "AD 12345"
    416               },
    417               {
    418                    "en_US@calendar=gregorian",         
    419                    "",
    420                    "PATTERN=G yyyyy",
    421                    "YEAR=12345",
    422                    "AD 12345"
    423               },
    424            }
    425        }
    426        TestConsistentPivot {
    427            Info {
    428                Description { "Test consistent pivot (parse/format) for multiple year lengths, y yy yyy yyyy yyyyy:" }
    429            }
    430            Settings {
    431                // options: 'format', or 'parse'.  One can be omitted if this is a 1 way test.
    432                {
    433                    Type { "date_format" }
    434                },
    435                {
    436                    Type { "date_parse" }
    437                },
    438            }
    439            Headers { "locale", "zone", "spec", "date", "str"}
    440            // locale: locale including calendar type
    441            // zone:   time zone name, or "" to not explicitly set zone
    442            // spec:   either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG'
    443            // date:   either 'MILLIS=####' where #### is millis,
    444            //        or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
    445            //        or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis
    446            //        or RELATIVE_ADD:DATE=1  which means that the field "DATE" will be added by +1 relative to current time,
    447            //           and any other fields present will be set explicitly.
    448            // str:   the expected unicode string
    449           
    450 // from CLDR UTS 35: 
    451 //Year  	y  	yy  	yyy  	yyyy  	yyyyy
    452            
    453            Cases { 
    454 //AD 1 	    1 	01 	001 	0001 	00001
    455               {
    456                    "en_US@calendar=gregorian",         
    457                    "",
    458                    "PATTERN=G y",
    459                    "YEAR=2008",
    460                    "AD 2008"
    461               },
    462               {
    463                    "en_US@calendar=gregorian",         
    464                    "",
    465                    "PATTERN=G yy",
    466                    "YEAR=2008",
    467                    "AD 08"
    468               },
    469               {
    470                    "en_US@calendar=gregorian",         
    471                    "",
    472                    "PATTERN=G yyy",
    473                    "YEAR=2008",
    474                    "AD 2008"
    475               },
    476               {
    477                    "en_US@calendar=gregorian",         
    478                    "",
    479                    "PATTERN=G yyyy",
    480                    "YEAR=2008",
    481                    "AD 2008"
    482               },
    483               {
    484                    "en_US@calendar=gregorian",         
    485                    "",
    486                    "PATTERN=G yyyyy",
    487                    "YEAR=2008",
    488                    "AD 02008"
    489               },
    490 
    491 			// Japanese
    492 //               {
    493 //                    "en_US@calendar=japanese",         
    494 //                    "",
    495 //                    "PATTERN=G y",
    496 //                    "YEAR=8",
    497 //                    "Heisei 8"
    498 //               },
    499 //               {
    500 //                    "en_US@calendar=japanese",         
    501 //                    "",
    502 //                    "PATTERN=G yy",
    503 //                    "YEAR=8",
    504 //                    "Heisei 08"
    505 //               },
    506 //               {
    507 //                    "en_US@calendar=japanese",         
    508 //                    "",
    509 //                    "PATTERN=G yyy",
    510 //                    "YEAR=8",
    511 //                    "Heisei 008"
    512 //               },
    513 //               {
    514 //                    "en_US@calendar=japanese",         
    515 //                    "",
    516 //                    "PATTERN=G yyyy",
    517 //                    "YEAR=8",
    518 //                    "Heisei 0008"
    519 //               },
    520 //               {
    521 //                    "en_US@calendar=japanese",         
    522 //                    "",
    523 //                    "PATTERN=G yyyyy",
    524 //                    "YEAR=8",
    525 //                    "Heisei 00008"
    526 //               },
    527 
    528            }
    529        }
    530        TestHebrew{
    531            Info {
    532                Description { "Test Hebrew calendar:" }
    533            }
    534            Settings {
    535                // options: 'format', or 'parse'.  One can be omitted if this is a 1 way test.
    536                {
    537                    Type { "date_format" }
    538                },
    539            }
    540            Headers { "locale", "zone", "spec", "date", "str"}
    541            // locale: locale including calendar type
    542            // zone:   time zone name, or "" to not explicitly set zone
    543            // spec:   either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG'
    544            // date:   either 'MILLIS=####' where #### is millis,
    545            //        or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
    546            //        or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis
    547            //        or RELATIVE_ADD:DATE=1  which means that the field "DATE" will be added by +1 relative to current time,
    548            //           and any other fields present will be set explicitly.
    549            // str:   the expected unicode string
    550            
    551            Cases { 
    552               {
    553                    "en_US@calendar=hebrew",         
    554                    "",
    555                    "DATE=FULL,TIME=FULL",
    556                    "MILLIS=3076424179200000",
    557                    "Friday, 3 Heshvan 103217 at 12:00:00 AM GMT-08:00"
    558               },
    559            }    
    560        }
    561        TestMoreDateParse {
    562            Info {
    563                Description { "Additional date parse tests (may not
    564               round/trip to format.)" }
    565            }
    566            Settings {
    567                // options: 'format', or 'parse'.  One can be omitted if this is a 1 way test.
    568                {
    569                    Type { "date_parse" }
    570                },
    571            }
    572            Headers { "locale", "zone", "spec", "date", "str"}
    573            // locale: locale including calendar type
    574            // zone:   time zone name, or "" to not explicitly set zone
    575            // spec:   either 'PATTERN=y mm h' etc, or 'DATE=SHORT,TIME=LONG'
    576            // date:   either 'MILLIS=####' where #### is millis,
    577            //        or a calendar spec ERA=0,YEAR=1, etc.. applied to the calendar type specified by the locale
    578            //        or RELATIVE_MILLIS=### where ### is a signed value which is added to the current millis
    579            //        or RELATIVE_ADD:DATE=1  which means that the field "DATE" will be added by +1 relative to current time,
    580            //           and any other fields present will be set explicitly.
    581            // str:   the expected unicode string
    582            
    583            Cases { 
    584               {
    585                    "en_US@calendar=gregorian",         
    586                    "",
    587                    "PATTERN=YYYYHHmmssEEEww",
    588                    "YEAR=1999,HOUR_OF_DAY=4,MINUTE=5,SECOND=6,DAY_OF_WEEK=2,WEEK_OF_YEAR=4",
    589               // won't roundtrip.
    590                    "1998040506MON56"
    591               }
    592            }    
    593        }
    594    }        
    595 }