OLD | NEW |
(Empty) | |
| 1 /* |
| 2 ******************************************************************************* |
| 3 * Copyright (C) 2013-2014, International Business Machines Corporation and * |
| 4 * others. All Rights Reserved. * |
| 5 ******************************************************************************* |
| 6 * |
| 7 * File RELDATEFMTTEST.CPP |
| 8 * |
| 9 ******************************************************************************* |
| 10 */ |
| 11 #include <stdio.h> |
| 12 #include <stdlib.h> |
| 13 |
| 14 #include "intltest.h" |
| 15 |
| 16 #if !UCONFIG_NO_FORMATTING && !UCONFIG_NO_BREAK_ITERATION |
| 17 |
| 18 #include "unicode/localpointer.h" |
| 19 #include "unicode/numfmt.h" |
| 20 #include "unicode/reldatefmt.h" |
| 21 #include "cmemory.h" |
| 22 |
| 23 static const char *DirectionStr(UDateDirection direction); |
| 24 static const char *RelativeUnitStr(UDateRelativeUnit unit); |
| 25 static const char *AbsoluteUnitStr(UDateAbsoluteUnit unit); |
| 26 |
| 27 typedef struct WithQuantityExpected { |
| 28 double value; |
| 29 UDateDirection direction; |
| 30 UDateRelativeUnit unit; |
| 31 const char *expected; |
| 32 } WithQuantityExpected; |
| 33 |
| 34 typedef struct WithoutQuantityExpected { |
| 35 UDateDirection direction; |
| 36 UDateAbsoluteUnit unit; |
| 37 const char *expected; |
| 38 } WithoutQuantityExpected; |
| 39 |
| 40 static WithQuantityExpected kEnglish[] = { |
| 41 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 0 seconds"}, |
| 42 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 0.5 seconds"}, |
| 43 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 1 second"}, |
| 44 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 2 seconds"}, |
| 45 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "in 0 minutes"}, |
| 46 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "in 0.5 minutes"}, |
| 47 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "in 1 minute"}, |
| 48 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "in 2 minutes"}, |
| 49 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "in 0 hours"}, |
| 50 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "in 0.5 hours"}, |
| 51 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "in 1 hour"}, |
| 52 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "in 2 hours"}, |
| 53 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "in 0 days"}, |
| 54 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "in 0.5 days"}, |
| 55 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "in 1 day"}, |
| 56 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "in 2 days"}, |
| 57 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "in 0 weeks"}, |
| 58 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "in 0.5 weeks"}, |
| 59 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "in 1 week"}, |
| 60 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "in 2 weeks"}, |
| 61 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "in 0 months"}, |
| 62 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "in 0.5 months"}, |
| 63 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "in 1 month"}, |
| 64 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "in 2 months"}, |
| 65 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "in 0 years"}, |
| 66 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "in 0.5 years"}, |
| 67 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "in 1 year"}, |
| 68 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "in 2 years"}, |
| 69 |
| 70 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "0 seconds ago"}, |
| 71 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "0.5 seconds ago"}, |
| 72 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "1 second ago"}, |
| 73 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "2 seconds ago"}, |
| 74 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "0 minutes ago"}, |
| 75 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "0.5 minutes ago"}, |
| 76 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "1 minute ago"}, |
| 77 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "2 minutes ago"}, |
| 78 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "0 hours ago"}, |
| 79 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "0.5 hours ago"}, |
| 80 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "1 hour ago"}, |
| 81 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "2 hours ago"}, |
| 82 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "0 days ago"}, |
| 83 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "0.5 days ago"}, |
| 84 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "1 day ago"}, |
| 85 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "2 days ago"}, |
| 86 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "0 weeks ago"}, |
| 87 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "0.5 weeks ago"}, |
| 88 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "1 week ago"}, |
| 89 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "2 weeks ago"}, |
| 90 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "0 months ago"}, |
| 91 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "0.5 months ago"}, |
| 92 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "1 month ago"}, |
| 93 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "2 months ago"}, |
| 94 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "0 years ago"}, |
| 95 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "0.5 years ago"}, |
| 96 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "1 year ago"}, |
| 97 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "2 years ago"} |
| 98 }; |
| 99 |
| 100 static WithQuantityExpected kEnglishCaps[] = { |
| 101 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "In 0 seconds"}, |
| 102 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "In 0.5 seconds"}, |
| 103 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "In 1 second"}, |
| 104 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "In 2 seconds"}, |
| 105 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "In 0 minutes"}, |
| 106 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "In 0.5 minutes"}, |
| 107 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "In 1 minute"}, |
| 108 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "In 2 minutes"}, |
| 109 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "In 0 hours"}, |
| 110 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "In 0.5 hours"}, |
| 111 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "In 1 hour"}, |
| 112 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "In 2 hours"}, |
| 113 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "In 0 days"}, |
| 114 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "In 0.5 days"}, |
| 115 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "In 1 day"}, |
| 116 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "In 2 days"}, |
| 117 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "In 0 weeks"}, |
| 118 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "In 0.5 weeks"}, |
| 119 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "In 1 week"}, |
| 120 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "In 2 weeks"}, |
| 121 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "In 0 months"}, |
| 122 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "In 0.5 months"}, |
| 123 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "In 1 month"}, |
| 124 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "In 2 months"}, |
| 125 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "In 0 years"}, |
| 126 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "In 0.5 years"}, |
| 127 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "In 1 year"}, |
| 128 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "In 2 years"}, |
| 129 |
| 130 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "0 seconds ago"}, |
| 131 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "0.5 seconds ago"}, |
| 132 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "1 second ago"}, |
| 133 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "2 seconds ago"}, |
| 134 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "0 minutes ago"}, |
| 135 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "0.5 minutes ago"}, |
| 136 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "1 minute ago"}, |
| 137 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "2 minutes ago"}, |
| 138 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "0 hours ago"}, |
| 139 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "0.5 hours ago"}, |
| 140 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "1 hour ago"}, |
| 141 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "2 hours ago"}, |
| 142 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "0 days ago"}, |
| 143 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "0.5 days ago"}, |
| 144 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "1 day ago"}, |
| 145 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "2 days ago"}, |
| 146 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "0 weeks ago"}, |
| 147 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "0.5 weeks ago"}, |
| 148 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "1 week ago"}, |
| 149 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "2 weeks ago"}, |
| 150 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "0 months ago"}, |
| 151 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "0.5 months ago"}, |
| 152 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "1 month ago"}, |
| 153 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "2 months ago"}, |
| 154 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "0 years ago"}, |
| 155 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "0.5 years ago"}, |
| 156 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "1 year ago"}, |
| 157 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "2 years ago"} |
| 158 }; |
| 159 |
| 160 static WithQuantityExpected kEnglishShort[] = { |
| 161 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 0 sec."}, |
| 162 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 0.5 sec."}, |
| 163 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 1 sec."}, |
| 164 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 2 sec."}, |
| 165 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "in 0 min."}, |
| 166 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "in 0.5 min."}, |
| 167 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "in 1 min."}, |
| 168 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MINUTES, "in 2 min."}, |
| 169 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "in 0 hr."}, |
| 170 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "in 0.5 hr."}, |
| 171 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "in 1 hr."}, |
| 172 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_HOURS, "in 2 hr."}, |
| 173 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "in 0 days"}, |
| 174 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "in 0.5 days"}, |
| 175 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "in 1 day"}, |
| 176 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_DAYS, "in 2 days"}, |
| 177 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "in 0 wk."}, |
| 178 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "in 0.5 wk."}, |
| 179 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "in 1 wk."}, |
| 180 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_WEEKS, "in 2 wk."}, |
| 181 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "in 0 mo."}, |
| 182 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "in 0.5 mo."}, |
| 183 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "in 1 mo."}, |
| 184 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "in 2 mo."}, |
| 185 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "in 0 yr."}, |
| 186 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "in 0.5 yr."}, |
| 187 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "in 1 yr."}, |
| 188 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_YEARS, "in 2 yr."}, |
| 189 |
| 190 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "0 sec. ago"}, |
| 191 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "0.5 sec. ago"}, |
| 192 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "1 sec. ago"}, |
| 193 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_SECONDS, "2 sec. ago"}, |
| 194 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "0 min. ago"}, |
| 195 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "0.5 min. ago"}, |
| 196 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "1 min. ago"}, |
| 197 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MINUTES, "2 min. ago"}, |
| 198 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "0 hr. ago"}, |
| 199 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "0.5 hr. ago"}, |
| 200 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "1 hr. ago"}, |
| 201 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_HOURS, "2 hr. ago"}, |
| 202 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "0 days ago"}, |
| 203 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "0.5 days ago"}, |
| 204 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "1 day ago"}, |
| 205 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, "2 days ago"}, |
| 206 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "0 wk. ago"}, |
| 207 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "0.5 wk. ago"}, |
| 208 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "1 wk. ago"}, |
| 209 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_WEEKS, "2 wk. ago"}, |
| 210 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "0 mo. ago"}, |
| 211 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "0.5 mo. ago"}, |
| 212 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "1 mo. ago"}, |
| 213 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "2 mo. ago"}, |
| 214 {0.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "0 yr. ago"}, |
| 215 {0.5, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "0.5 yr. ago"}, |
| 216 {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "1 yr. ago"}, |
| 217 {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_YEARS, "2 yr. ago"} |
| 218 }; |
| 219 |
| 220 static WithQuantityExpected kEnglishDecimal[] = { |
| 221 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 0.0 seconds"}, |
| 222 {0.5, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 0.5 seconds"}, |
| 223 {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 1.0 seconds"}, |
| 224 {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, "in 2.0 seconds"} |
| 225 }; |
| 226 |
| 227 static WithQuantityExpected kSerbian[] = { |
| 228 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "\\u0437\\u0430 0 \\u04
3c\\u0435\\u0441\\u0435\\u0446\\u0438"}, |
| 229 {1.2, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "\\u0437\\u0430 1,2 \\u
043c\\u0435\\u0441\\u0435\\u0446\\u0430"}, |
| 230 {21.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "\\u0437\\u0430 21 \\u
043c\\u0435\\u0441\\u0435\\u0446"} |
| 231 }; |
| 232 |
| 233 static WithQuantityExpected kSerbianNarrow[] = { |
| 234 {0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "\\u0437\\u0430 0 \\u04
3c\\u0435\\u0441."}, |
| 235 {1.2, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "\\u0437\\u0430 1,2 \\u
043c\\u0435\\u0441."}, |
| 236 {21.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "\\u0437\\u0430 21 \\u
043c\\u0435\\u0441."} |
| 237 }; |
| 238 |
| 239 static WithoutQuantityExpected kEnglishNoQuantity[] = { |
| 240 {UDAT_DIRECTION_NEXT_2, UDAT_ABSOLUTE_DAY, ""}, |
| 241 |
| 242 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"}, |
| 243 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next week"}, |
| 244 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next month"}, |
| 245 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next year"}, |
| 246 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next Monday"}, |
| 247 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tuesday"}, |
| 248 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEDNESDAY, "next Wednesday"}, |
| 249 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_THURSDAY, "next Thursday"}, |
| 250 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_FRIDAY, "next Friday"}, |
| 251 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_SATURDAY, "next Saturday"}, |
| 252 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_SUNDAY, "next Sunday"}, |
| 253 |
| 254 {UDAT_DIRECTION_LAST_2, UDAT_ABSOLUTE_DAY, ""}, |
| 255 |
| 256 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"}, |
| 257 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last week"}, |
| 258 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last month"}, |
| 259 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last year"}, |
| 260 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last Monday"}, |
| 261 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tuesday"}, |
| 262 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEDNESDAY, "last Wednesday"}, |
| 263 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_THURSDAY, "last Thursday"}, |
| 264 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_FRIDAY, "last Friday"}, |
| 265 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_SATURDAY, "last Saturday"}, |
| 266 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_SUNDAY, "last Sunday"}, |
| 267 |
| 268 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"}, |
| 269 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this week"}, |
| 270 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this month"}, |
| 271 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this year"}, |
| 272 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this Monday"}, |
| 273 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tuesday"}, |
| 274 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEDNESDAY, "this Wednesday"}, |
| 275 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_THURSDAY, "this Thursday"}, |
| 276 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_FRIDAY, "this Friday"}, |
| 277 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_SATURDAY, "this Saturday"}, |
| 278 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_SUNDAY, "this Sunday"}, |
| 279 |
| 280 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"}, |
| 281 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "week"}, |
| 282 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "month"}, |
| 283 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "year"}, |
| 284 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Monday"}, |
| 285 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tuesday"}, |
| 286 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEDNESDAY, "Wednesday"}, |
| 287 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_THURSDAY, "Thursday"}, |
| 288 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_FRIDAY, "Friday"}, |
| 289 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_SATURDAY, "Saturday"}, |
| 290 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_SUNDAY, "Sunday"}, |
| 291 |
| 292 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_NOW, "now"} |
| 293 }; |
| 294 |
| 295 static WithoutQuantityExpected kEnglishNoQuantityCaps[] = { |
| 296 {UDAT_DIRECTION_NEXT_2, UDAT_ABSOLUTE_DAY, ""}, |
| 297 |
| 298 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "Tomorrow"}, |
| 299 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "Next week"}, |
| 300 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "Next month"}, |
| 301 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "Next year"}, |
| 302 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "Next Monday"}, |
| 303 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "Next Tuesday"}, |
| 304 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEDNESDAY, "Next Wednesday"}, |
| 305 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_THURSDAY, "Next Thursday"}, |
| 306 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_FRIDAY, "Next Friday"}, |
| 307 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_SATURDAY, "Next Saturday"}, |
| 308 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_SUNDAY, "Next Sunday"}, |
| 309 |
| 310 {UDAT_DIRECTION_LAST_2, UDAT_ABSOLUTE_DAY, ""}, |
| 311 |
| 312 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "Yesterday"}, |
| 313 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "Last week"}, |
| 314 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "Last month"}, |
| 315 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "Last year"}, |
| 316 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "Last Monday"}, |
| 317 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "Last Tuesday"}, |
| 318 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEDNESDAY, "Last Wednesday"}, |
| 319 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_THURSDAY, "Last Thursday"}, |
| 320 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_FRIDAY, "Last Friday"}, |
| 321 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_SATURDAY, "Last Saturday"}, |
| 322 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_SUNDAY, "Last Sunday"}, |
| 323 |
| 324 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "Today"}, |
| 325 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "This week"}, |
| 326 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "This month"}, |
| 327 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "This year"}, |
| 328 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "This Monday"}, |
| 329 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "This Tuesday"}, |
| 330 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEDNESDAY, "This Wednesday"}, |
| 331 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_THURSDAY, "This Thursday"}, |
| 332 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_FRIDAY, "This Friday"}, |
| 333 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_SATURDAY, "This Saturday"}, |
| 334 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_SUNDAY, "This Sunday"}, |
| 335 |
| 336 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "Day"}, |
| 337 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "Week"}, |
| 338 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "Month"}, |
| 339 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "Year"}, |
| 340 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Monday"}, |
| 341 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tuesday"}, |
| 342 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEDNESDAY, "Wednesday"}, |
| 343 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_THURSDAY, "Thursday"}, |
| 344 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_FRIDAY, "Friday"}, |
| 345 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_SATURDAY, "Saturday"}, |
| 346 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_SUNDAY, "Sunday"}, |
| 347 |
| 348 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_NOW, "Now"} |
| 349 }; |
| 350 |
| 351 static WithoutQuantityExpected kEnglishNoQuantityShort[] = { |
| 352 {UDAT_DIRECTION_NEXT_2, UDAT_ABSOLUTE_DAY, ""}, |
| 353 |
| 354 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"}, |
| 355 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next wk."}, |
| 356 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next mo."}, |
| 357 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next yr."}, |
| 358 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next Mon."}, |
| 359 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tue."}, |
| 360 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEDNESDAY, "next Wed."}, |
| 361 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_THURSDAY, "next Thu."}, |
| 362 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_FRIDAY, "next Fri."}, |
| 363 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_SATURDAY, "next Sat."}, |
| 364 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_SUNDAY, "next Sun."}, |
| 365 |
| 366 {UDAT_DIRECTION_LAST_2, UDAT_ABSOLUTE_DAY, ""}, |
| 367 |
| 368 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"}, |
| 369 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last wk."}, |
| 370 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last mo."}, |
| 371 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last yr."}, |
| 372 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last Mon."}, |
| 373 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tue."}, |
| 374 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEDNESDAY, "last Wed."}, |
| 375 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_THURSDAY, "last Thu."}, |
| 376 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_FRIDAY, "last Fri."}, |
| 377 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_SATURDAY, "last Sat."}, |
| 378 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_SUNDAY, "last Sun."}, |
| 379 |
| 380 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"}, |
| 381 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this wk."}, |
| 382 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this mo."}, |
| 383 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this yr."}, |
| 384 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this Mon."}, |
| 385 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tue."}, |
| 386 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEDNESDAY, "this Wed."}, |
| 387 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_THURSDAY, "this Thu."}, |
| 388 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_FRIDAY, "this Fri."}, |
| 389 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_SATURDAY, "this Sat."}, |
| 390 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_SUNDAY, "this Sun."}, |
| 391 |
| 392 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"}, |
| 393 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "wk."}, |
| 394 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "mo."}, |
| 395 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "yr."}, |
| 396 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "Mo"}, |
| 397 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "Tu"}, |
| 398 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEDNESDAY, "We"}, |
| 399 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_THURSDAY, "Th"}, |
| 400 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_FRIDAY, "Fr"}, |
| 401 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_SATURDAY, "Sa"}, |
| 402 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_SUNDAY, "Su"}, |
| 403 |
| 404 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_NOW, "now"} |
| 405 }; |
| 406 |
| 407 static WithoutQuantityExpected kEnglishNoQuantityNarrow[] = { |
| 408 {UDAT_DIRECTION_NEXT_2, UDAT_ABSOLUTE_DAY, ""}, |
| 409 |
| 410 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_DAY, "tomorrow"}, |
| 411 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEEK, "next wk."}, |
| 412 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "next mo."}, |
| 413 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, "next yr."}, |
| 414 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONDAY, "next M"}, |
| 415 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_TUESDAY, "next Tu"}, |
| 416 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_WEDNESDAY, "next W"}, |
| 417 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_THURSDAY, "next Th"}, |
| 418 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_FRIDAY, "next F"}, |
| 419 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_SATURDAY, "next Sa"}, |
| 420 {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_SUNDAY, "next Su"}, |
| 421 |
| 422 {UDAT_DIRECTION_LAST_2, UDAT_ABSOLUTE_DAY, ""}, |
| 423 |
| 424 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_DAY, "yesterday"}, |
| 425 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEEK, "last wk."}, |
| 426 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "last mo."}, |
| 427 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_YEAR, "last yr."}, |
| 428 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONDAY, "last M"}, |
| 429 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_TUESDAY, "last Tu"}, |
| 430 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_WEDNESDAY, "last W"}, |
| 431 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_THURSDAY, "last Th"}, |
| 432 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_FRIDAY, "last F"}, |
| 433 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_SATURDAY, "last Sa"}, |
| 434 {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_SUNDAY, "last Su"}, |
| 435 |
| 436 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_DAY, "today"}, |
| 437 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEEK, "this wk."}, |
| 438 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONTH, "this mo."}, |
| 439 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_YEAR, "this yr."}, |
| 440 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MONDAY, "this M"}, |
| 441 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_TUESDAY, "this Tu"}, |
| 442 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_WEDNESDAY, "this W"}, |
| 443 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_THURSDAY, "this Th"}, |
| 444 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_FRIDAY, "this F"}, |
| 445 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_SATURDAY, "this Sa"}, |
| 446 {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_SUNDAY, "this Su"}, |
| 447 |
| 448 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"}, |
| 449 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "wk."}, |
| 450 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONTH, "mo."}, |
| 451 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_YEAR, "yr."}, |
| 452 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MONDAY, "M"}, |
| 453 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_TUESDAY, "T"}, |
| 454 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEDNESDAY, "W"}, |
| 455 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_THURSDAY, "T"}, |
| 456 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_FRIDAY, "F"}, |
| 457 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_SATURDAY, "S"}, |
| 458 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_SUNDAY, "S"}, |
| 459 |
| 460 {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_NOW, "now"} |
| 461 }; |
| 462 |
| 463 static WithoutQuantityExpected kSpanishNoQuantity[] = { |
| 464 {UDAT_DIRECTION_NEXT_2, UDAT_ABSOLUTE_DAY, "pasado ma\\u00F1ana"}, |
| 465 {UDAT_DIRECTION_LAST_2, UDAT_ABSOLUTE_DAY, "antes de ayer"} |
| 466 }; |
| 467 |
| 468 class RelativeDateTimeFormatterTest : public IntlTest { |
| 469 public: |
| 470 RelativeDateTimeFormatterTest() { |
| 471 } |
| 472 |
| 473 void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par=
0); |
| 474 private: |
| 475 void TestEnglish(); |
| 476 void TestEnglishCaps(); |
| 477 void TestEnglishShort(); |
| 478 void TestEnglishNarrow(); |
| 479 void TestSerbian(); |
| 480 void TestSerbianFallback(); |
| 481 void TestEnglishNoQuantity(); |
| 482 void TestEnglishNoQuantityCaps(); |
| 483 void TestEnglishNoQuantityShort(); |
| 484 void TestEnglishNoQuantityNarrow(); |
| 485 void TestSpanishNoQuantity(); |
| 486 void TestFormatWithQuantityIllegalArgument(); |
| 487 void TestFormatWithoutQuantityIllegalArgument(); |
| 488 void TestCustomNumberFormat(); |
| 489 void TestGetters(); |
| 490 void TestCombineDateAndTime(); |
| 491 void TestBadDisplayContext(); |
| 492 void RunTest( |
| 493 const Locale& locale, |
| 494 const WithQuantityExpected* expectedResults, |
| 495 int32_t expectedResultLength); |
| 496 void RunTest( |
| 497 const Locale& locale, |
| 498 UDateRelativeDateTimeFormatterStyle style, |
| 499 const WithQuantityExpected* expectedResults, |
| 500 int32_t expectedResultLength); |
| 501 void RunTest( |
| 502 const Locale& locale, |
| 503 const WithoutQuantityExpected* expectedResults, |
| 504 int32_t expectedResultLength); |
| 505 void RunTest( |
| 506 const Locale& locale, |
| 507 UDateRelativeDateTimeFormatterStyle style, |
| 508 const WithoutQuantityExpected* expectedResults, |
| 509 int32_t expectedResultLength); |
| 510 void RunTest( |
| 511 const RelativeDateTimeFormatter& fmt, |
| 512 const WithQuantityExpected* expectedResults, |
| 513 int32_t expectedResultLength, |
| 514 const char *description); |
| 515 void RunTest( |
| 516 const RelativeDateTimeFormatter& fmt, |
| 517 const WithoutQuantityExpected* expectedResults, |
| 518 int32_t expectedResultLength, |
| 519 const char *description); |
| 520 void CheckExpectedResult( |
| 521 const RelativeDateTimeFormatter& fmt, |
| 522 const WithQuantityExpected& expectedResult, |
| 523 const char* description); |
| 524 void CheckExpectedResult( |
| 525 const RelativeDateTimeFormatter& fmt, |
| 526 const WithoutQuantityExpected& expectedResult, |
| 527 const char* description); |
| 528 void VerifyIllegalArgument( |
| 529 const RelativeDateTimeFormatter& fmt, |
| 530 UDateDirection direction, |
| 531 UDateRelativeUnit unit); |
| 532 void VerifyIllegalArgument( |
| 533 const RelativeDateTimeFormatter& fmt, |
| 534 UDateDirection direction, |
| 535 UDateAbsoluteUnit unit); |
| 536 }; |
| 537 |
| 538 void RelativeDateTimeFormatterTest::runIndexedTest( |
| 539 int32_t index, UBool exec, const char *&name, char *) { |
| 540 if (exec) { |
| 541 logln("TestSuite RelativeDateTimeFormatterTest: "); |
| 542 } |
| 543 TESTCASE_AUTO_BEGIN; |
| 544 TESTCASE_AUTO(TestEnglish); |
| 545 TESTCASE_AUTO(TestEnglishCaps); |
| 546 TESTCASE_AUTO(TestEnglishShort); |
| 547 TESTCASE_AUTO(TestEnglishNarrow); |
| 548 TESTCASE_AUTO(TestSerbian); |
| 549 TESTCASE_AUTO(TestSerbianFallback); |
| 550 TESTCASE_AUTO(TestEnglishNoQuantity); |
| 551 TESTCASE_AUTO(TestEnglishNoQuantityCaps); |
| 552 TESTCASE_AUTO(TestEnglishNoQuantityShort); |
| 553 TESTCASE_AUTO(TestEnglishNoQuantityNarrow); |
| 554 TESTCASE_AUTO(TestSpanishNoQuantity); |
| 555 TESTCASE_AUTO(TestFormatWithQuantityIllegalArgument); |
| 556 TESTCASE_AUTO(TestFormatWithoutQuantityIllegalArgument); |
| 557 TESTCASE_AUTO(TestCustomNumberFormat); |
| 558 TESTCASE_AUTO(TestGetters); |
| 559 TESTCASE_AUTO(TestCombineDateAndTime); |
| 560 TESTCASE_AUTO(TestBadDisplayContext); |
| 561 TESTCASE_AUTO_END; |
| 562 } |
| 563 |
| 564 void RelativeDateTimeFormatterTest::TestEnglish() { |
| 565 RunTest("en", kEnglish, UPRV_LENGTHOF(kEnglish)); |
| 566 } |
| 567 |
| 568 void RelativeDateTimeFormatterTest::TestEnglishCaps() { |
| 569 UErrorCode status = U_ZERO_ERROR; |
| 570 RelativeDateTimeFormatter fmt( |
| 571 "en", |
| 572 NULL, |
| 573 UDAT_STYLE_LONG, |
| 574 UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE, |
| 575 status); |
| 576 if (U_FAILURE(status)) { |
| 577 dataerrln("Failed call to RelativeDateTimeFormatter(\"en\", NULL, UDAT_S
TYLE_LONG, UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE, status); : %s", u_
errorName(status)); |
| 578 return; |
| 579 } |
| 580 RelativeDateTimeFormatter fmt3(status); |
| 581 |
| 582 // Test assignment and copy constructor with capitalization on. |
| 583 RelativeDateTimeFormatter fmt2(fmt); |
| 584 fmt3 = fmt2; |
| 585 assertSuccess("", status); |
| 586 RunTest(fmt3, kEnglishCaps, UPRV_LENGTHOF(kEnglishCaps), "en caps"); |
| 587 } |
| 588 |
| 589 void RelativeDateTimeFormatterTest::TestEnglishShort() { |
| 590 RunTest("en", UDAT_STYLE_SHORT, kEnglishShort, UPRV_LENGTHOF(kEnglishShort))
; |
| 591 } |
| 592 |
| 593 void RelativeDateTimeFormatterTest::TestEnglishNarrow() { |
| 594 RunTest("en", UDAT_STYLE_NARROW, kEnglishShort, UPRV_LENGTHOF(kEnglishShort)
); |
| 595 } |
| 596 |
| 597 void RelativeDateTimeFormatterTest::TestSerbian() { |
| 598 RunTest("sr", kSerbian, UPRV_LENGTHOF(kSerbian)); |
| 599 } |
| 600 |
| 601 void RelativeDateTimeFormatterTest::TestSerbianFallback() { |
| 602 RunTest("sr", UDAT_STYLE_NARROW, kSerbianNarrow, UPRV_LENGTHOF(kSerbianNarro
w)); |
| 603 } |
| 604 |
| 605 void RelativeDateTimeFormatterTest::TestEnglishNoQuantity() { |
| 606 RunTest("en", kEnglishNoQuantity, UPRV_LENGTHOF(kEnglishNoQuantity)); |
| 607 } |
| 608 |
| 609 void RelativeDateTimeFormatterTest::TestEnglishNoQuantityCaps() { |
| 610 UErrorCode status = U_ZERO_ERROR; |
| 611 RelativeDateTimeFormatter fmt( |
| 612 "en", |
| 613 NULL, |
| 614 UDAT_STYLE_LONG, |
| 615 UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE, |
| 616 status); |
| 617 if (assertSuccess("RelativeDateTimeFormatter", status, TRUE) == FALSE) { |
| 618 return; |
| 619 } |
| 620 RunTest( |
| 621 fmt, |
| 622 kEnglishNoQuantityCaps, |
| 623 UPRV_LENGTHOF(kEnglishNoQuantityCaps), |
| 624 "en caps no quantity"); |
| 625 } |
| 626 |
| 627 void RelativeDateTimeFormatterTest::TestEnglishNoQuantityShort() { |
| 628 RunTest( |
| 629 "en", |
| 630 UDAT_STYLE_SHORT, |
| 631 kEnglishNoQuantityShort, |
| 632 UPRV_LENGTHOF(kEnglishNoQuantityShort)); |
| 633 } |
| 634 |
| 635 void RelativeDateTimeFormatterTest::TestEnglishNoQuantityNarrow() { |
| 636 RunTest( |
| 637 "en", |
| 638 UDAT_STYLE_NARROW, |
| 639 kEnglishNoQuantityNarrow, |
| 640 UPRV_LENGTHOF(kEnglishNoQuantityNarrow)); |
| 641 } |
| 642 |
| 643 void RelativeDateTimeFormatterTest::TestSpanishNoQuantity() { |
| 644 RunTest("es", kSpanishNoQuantity, UPRV_LENGTHOF(kSpanishNoQuantity)); |
| 645 } |
| 646 |
| 647 void RelativeDateTimeFormatterTest::TestFormatWithQuantityIllegalArgument() { |
| 648 UErrorCode status = U_ZERO_ERROR; |
| 649 RelativeDateTimeFormatter fmt("en", status); |
| 650 if (U_FAILURE(status)) { |
| 651 dataerrln("Failure creating format object - %s", u_errorName(status)); |
| 652 return; |
| 653 } |
| 654 VerifyIllegalArgument(fmt, UDAT_DIRECTION_PLAIN, UDAT_RELATIVE_DAYS); |
| 655 VerifyIllegalArgument(fmt, UDAT_DIRECTION_THIS, UDAT_RELATIVE_DAYS); |
| 656 } |
| 657 |
| 658 void RelativeDateTimeFormatterTest::TestFormatWithoutQuantityIllegalArgument() { |
| 659 UErrorCode status = U_ZERO_ERROR; |
| 660 RelativeDateTimeFormatter fmt("en", status); |
| 661 if (U_FAILURE(status)) { |
| 662 dataerrln("Failure creating format object - %s", u_errorName(status)); |
| 663 return; |
| 664 } |
| 665 VerifyIllegalArgument(fmt, UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_NOW); |
| 666 VerifyIllegalArgument(fmt, UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_NOW); |
| 667 VerifyIllegalArgument(fmt, UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_NOW); |
| 668 } |
| 669 |
| 670 void RelativeDateTimeFormatterTest::TestCustomNumberFormat() { |
| 671 NumberFormat *nf; |
| 672 UErrorCode status = U_ZERO_ERROR; |
| 673 { |
| 674 RelativeDateTimeFormatter fmt("en", status); |
| 675 if (U_FAILURE(status)) { |
| 676 dataerrln( |
| 677 "Failure creating format object - %s", u_errorName(status)); |
| 678 return; |
| 679 } |
| 680 nf = (NumberFormat *) fmt.getNumberFormat().clone(); |
| 681 } |
| 682 nf->setMinimumFractionDigits(1); |
| 683 nf->setMaximumFractionDigits(1); |
| 684 RelativeDateTimeFormatter fmt("en", nf, status); |
| 685 |
| 686 // Test copy constructor. |
| 687 RelativeDateTimeFormatter fmt2(fmt); |
| 688 RunTest(fmt2, kEnglishDecimal, UPRV_LENGTHOF(kEnglishDecimal), "en decimal d
igits"); |
| 689 |
| 690 // Test assignment |
| 691 fmt = RelativeDateTimeFormatter("es", status); |
| 692 RunTest(fmt, kSpanishNoQuantity, UPRV_LENGTHOF(kSpanishNoQuantity), "assignm
ent operator"); |
| 693 |
| 694 } |
| 695 |
| 696 void RelativeDateTimeFormatterTest::TestGetters() { |
| 697 UErrorCode status = U_ZERO_ERROR; |
| 698 RelativeDateTimeFormatter fmt( |
| 699 "en", |
| 700 NULL, |
| 701 UDAT_STYLE_NARROW, |
| 702 UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE, |
| 703 status); |
| 704 if (U_FAILURE(status)) { |
| 705 dataerrln("Failed call to RelativeDateTimeFormatter(\"en\", NULL, UDAT_S
TYLE_NARROW, UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE, status);) : %s", u_
errorName(status)); |
| 706 return; |
| 707 } |
| 708 RelativeDateTimeFormatter fmt3(status); |
| 709 |
| 710 // copy and assignment. |
| 711 RelativeDateTimeFormatter fmt2(fmt); |
| 712 fmt3 = fmt2; |
| 713 assertEquals("style", UDAT_STYLE_NARROW, fmt3.getFormatStyle()); |
| 714 assertEquals( |
| 715 "context", |
| 716 UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE, |
| 717 fmt3.getCapitalizationContext()); |
| 718 assertSuccess("", status); |
| 719 } |
| 720 |
| 721 void RelativeDateTimeFormatterTest::TestCombineDateAndTime() { |
| 722 UErrorCode status = U_ZERO_ERROR; |
| 723 RelativeDateTimeFormatter fmt("en", status); |
| 724 if (U_FAILURE(status)) { |
| 725 dataerrln("Failure creating format object - %s", u_errorName(status)); |
| 726 return; |
| 727 } |
| 728 UnicodeString actual; |
| 729 fmt.combineDateAndTime( |
| 730 UnicodeString("yesterday"), |
| 731 UnicodeString("3:50"), |
| 732 actual, |
| 733 status); |
| 734 UnicodeString expected("yesterday, 3:50"); |
| 735 if (expected != actual) { |
| 736 errln("Expected "+expected+", got "+actual); |
| 737 } |
| 738 } |
| 739 |
| 740 void RelativeDateTimeFormatterTest::TestBadDisplayContext() { |
| 741 UErrorCode status = U_ZERO_ERROR; |
| 742 RelativeDateTimeFormatter fmt( |
| 743 "en", NULL, UDAT_STYLE_LONG, UDISPCTX_STANDARD_NAMES, status); |
| 744 if (status != U_ILLEGAL_ARGUMENT_ERROR) { |
| 745 errln("Expected U_ILLEGAL_ARGUMENT_ERROR, got %s", u_errorName(status)); |
| 746 } |
| 747 } |
| 748 |
| 749 |
| 750 |
| 751 void RelativeDateTimeFormatterTest::RunTest( |
| 752 const Locale& locale, |
| 753 const WithQuantityExpected* expectedResults, |
| 754 int32_t expectedResultLength) { |
| 755 UErrorCode status = U_ZERO_ERROR; |
| 756 RelativeDateTimeFormatter fmt(locale, status); |
| 757 if (U_FAILURE(status)) { |
| 758 dataerrln("Unable to create format object - %s", u_errorName(status)); |
| 759 return; |
| 760 } |
| 761 RunTest(fmt, expectedResults, expectedResultLength, locale.getName()); |
| 762 } |
| 763 |
| 764 void RelativeDateTimeFormatterTest::RunTest( |
| 765 const Locale& locale, |
| 766 UDateRelativeDateTimeFormatterStyle style, |
| 767 const WithQuantityExpected* expectedResults, |
| 768 int32_t expectedResultLength) { |
| 769 UErrorCode status = U_ZERO_ERROR; |
| 770 RelativeDateTimeFormatter fmt( |
| 771 locale, NULL, style, UDISPCTX_CAPITALIZATION_NONE, status); |
| 772 if (U_FAILURE(status)) { |
| 773 dataerrln("Unable to create format object - %s", u_errorName(status)); |
| 774 return; |
| 775 } |
| 776 RunTest(fmt, expectedResults, expectedResultLength, locale.getName()); |
| 777 } |
| 778 |
| 779 void RelativeDateTimeFormatterTest::RunTest( |
| 780 const Locale& locale, |
| 781 const WithoutQuantityExpected* expectedResults, |
| 782 int32_t expectedResultLength) { |
| 783 UErrorCode status = U_ZERO_ERROR; |
| 784 RelativeDateTimeFormatter fmt(locale, status); |
| 785 if (U_FAILURE(status)) { |
| 786 dataerrln("Unable to create format object - %s", u_errorName(status)); |
| 787 return; |
| 788 } |
| 789 RunTest(fmt, expectedResults, expectedResultLength, locale.getName()); |
| 790 } |
| 791 |
| 792 void RelativeDateTimeFormatterTest::RunTest( |
| 793 const Locale& locale, |
| 794 UDateRelativeDateTimeFormatterStyle style, |
| 795 const WithoutQuantityExpected* expectedResults, |
| 796 int32_t expectedResultLength) { |
| 797 UErrorCode status = U_ZERO_ERROR; |
| 798 RelativeDateTimeFormatter fmt( |
| 799 locale, NULL, style, UDISPCTX_CAPITALIZATION_NONE, status); |
| 800 if (U_FAILURE(status)) { |
| 801 dataerrln("Unable to create format object - %s", u_errorName(status)); |
| 802 return; |
| 803 } |
| 804 RunTest(fmt, expectedResults, expectedResultLength, locale.getName()); |
| 805 } |
| 806 |
| 807 void RelativeDateTimeFormatterTest::RunTest( |
| 808 const RelativeDateTimeFormatter& fmt, |
| 809 const WithQuantityExpected* expectedResults, |
| 810 int32_t expectedResultLength, |
| 811 const char *description) { |
| 812 for (int32_t i = 0; i < expectedResultLength; ++i) { |
| 813 CheckExpectedResult(fmt, expectedResults[i], description); |
| 814 } |
| 815 } |
| 816 |
| 817 void RelativeDateTimeFormatterTest::RunTest( |
| 818 const RelativeDateTimeFormatter& fmt, |
| 819 const WithoutQuantityExpected* expectedResults, |
| 820 int32_t expectedResultLength, |
| 821 const char *description) { |
| 822 for (int32_t i = 0; i < expectedResultLength; ++i) { |
| 823 CheckExpectedResult(fmt, expectedResults[i], description); |
| 824 } |
| 825 } |
| 826 |
| 827 void RelativeDateTimeFormatterTest::CheckExpectedResult( |
| 828 const RelativeDateTimeFormatter& fmt, |
| 829 const WithQuantityExpected& expectedResult, |
| 830 const char* description) { |
| 831 UErrorCode status = U_ZERO_ERROR; |
| 832 UnicodeString actual; |
| 833 fmt.format(expectedResult.value, expectedResult.direction, expectedResult.un
it, actual, status); |
| 834 UnicodeString expected(expectedResult.expected, -1, US_INV); |
| 835 expected = expected.unescape(); |
| 836 char buffer[256]; |
| 837 sprintf( |
| 838 buffer, |
| 839 "%s, %f, %s, %s", |
| 840 description, |
| 841 expectedResult.value, |
| 842 DirectionStr(expectedResult.direction), |
| 843 RelativeUnitStr(expectedResult.unit)); |
| 844 if (actual != expected) { |
| 845 errln(UnicodeString("Fail: Expected: ") + expected |
| 846 + ", Got: " + actual |
| 847 + ", For: " + buffer); |
| 848 } |
| 849 } |
| 850 |
| 851 void RelativeDateTimeFormatterTest::CheckExpectedResult( |
| 852 const RelativeDateTimeFormatter& fmt, |
| 853 const WithoutQuantityExpected& expectedResult, |
| 854 const char* description) { |
| 855 UErrorCode status = U_ZERO_ERROR; |
| 856 UnicodeString actual; |
| 857 fmt.format(expectedResult.direction, expectedResult.unit, actual, status); |
| 858 UnicodeString expected(expectedResult.expected, -1, US_INV); |
| 859 expected = expected.unescape(); |
| 860 char buffer[256]; |
| 861 sprintf( |
| 862 buffer, |
| 863 "%s, %s, %s", |
| 864 description, |
| 865 DirectionStr(expectedResult.direction), |
| 866 AbsoluteUnitStr(expectedResult.unit)); |
| 867 if (actual != expected) { |
| 868 errln(UnicodeString("Fail: Expected: ") + expected |
| 869 + ", Got: " + actual |
| 870 + ", For: " + buffer); |
| 871 } |
| 872 } |
| 873 |
| 874 void RelativeDateTimeFormatterTest::VerifyIllegalArgument( |
| 875 const RelativeDateTimeFormatter& fmt, |
| 876 UDateDirection direction, |
| 877 UDateRelativeUnit unit) { |
| 878 UnicodeString appendTo; |
| 879 UErrorCode status = U_ZERO_ERROR; |
| 880 fmt.format(1.0, direction, unit, appendTo, status); |
| 881 if (status != U_ILLEGAL_ARGUMENT_ERROR) { |
| 882 errln("Expected U_ILLEGAL_ARGUMENT_ERROR, got %s", u_errorName(status)); |
| 883 } |
| 884 } |
| 885 |
| 886 void RelativeDateTimeFormatterTest::VerifyIllegalArgument( |
| 887 const RelativeDateTimeFormatter& fmt, |
| 888 UDateDirection direction, |
| 889 UDateAbsoluteUnit unit) { |
| 890 UnicodeString appendTo; |
| 891 UErrorCode status = U_ZERO_ERROR; |
| 892 fmt.format(direction, unit, appendTo, status); |
| 893 if (status != U_ILLEGAL_ARGUMENT_ERROR) { |
| 894 errln("Expected U_ILLEGAL_ARGUMENT_ERROR, got %s", u_errorName(status)); |
| 895 } |
| 896 } |
| 897 |
| 898 static const char *kLast2 = "Last_2"; |
| 899 static const char *kLast = "Last"; |
| 900 static const char *kThis = "This"; |
| 901 static const char *kNext = "Next"; |
| 902 static const char *kNext2 = "Next_2"; |
| 903 static const char *kPlain = "Plain"; |
| 904 |
| 905 static const char *kSeconds = "Seconds"; |
| 906 static const char *kMinutes = "Minutes"; |
| 907 static const char *kHours = "Hours"; |
| 908 static const char *kDays = "Days"; |
| 909 static const char *kWeeks = "Weeks"; |
| 910 static const char *kMonths = "Months"; |
| 911 static const char *kYears = "Years"; |
| 912 |
| 913 static const char *kSunday = "Sunday"; |
| 914 static const char *kMonday = "Monday"; |
| 915 static const char *kTuesday = "Tuesday"; |
| 916 static const char *kWednesday = "Wednesday"; |
| 917 static const char *kThursday = "Thursday"; |
| 918 static const char *kFriday = "Friday"; |
| 919 static const char *kSaturday = "Saturday"; |
| 920 static const char *kDay = "Day"; |
| 921 static const char *kWeek = "Week"; |
| 922 static const char *kMonth = "Month"; |
| 923 static const char *kYear = "Year"; |
| 924 static const char *kNow = "Now"; |
| 925 |
| 926 static const char *kUndefined = "Undefined"; |
| 927 |
| 928 static const char *DirectionStr( |
| 929 UDateDirection direction) { |
| 930 switch (direction) { |
| 931 case UDAT_DIRECTION_LAST_2: |
| 932 return kLast2; |
| 933 case UDAT_DIRECTION_LAST: |
| 934 return kLast; |
| 935 case UDAT_DIRECTION_THIS: |
| 936 return kThis; |
| 937 case UDAT_DIRECTION_NEXT: |
| 938 return kNext; |
| 939 case UDAT_DIRECTION_NEXT_2: |
| 940 return kNext2; |
| 941 case UDAT_DIRECTION_PLAIN: |
| 942 return kPlain; |
| 943 default: |
| 944 return kUndefined; |
| 945 } |
| 946 return kUndefined; |
| 947 } |
| 948 |
| 949 static const char *RelativeUnitStr( |
| 950 UDateRelativeUnit unit) { |
| 951 switch (unit) { |
| 952 case UDAT_RELATIVE_SECONDS: |
| 953 return kSeconds; |
| 954 case UDAT_RELATIVE_MINUTES: |
| 955 return kMinutes; |
| 956 case UDAT_RELATIVE_HOURS: |
| 957 return kHours; |
| 958 case UDAT_RELATIVE_DAYS: |
| 959 return kDays; |
| 960 case UDAT_RELATIVE_WEEKS: |
| 961 return kWeeks; |
| 962 case UDAT_RELATIVE_MONTHS: |
| 963 return kMonths; |
| 964 case UDAT_RELATIVE_YEARS: |
| 965 return kYears; |
| 966 default: |
| 967 return kUndefined; |
| 968 } |
| 969 return kUndefined; |
| 970 } |
| 971 |
| 972 static const char *AbsoluteUnitStr( |
| 973 UDateAbsoluteUnit unit) { |
| 974 switch (unit) { |
| 975 case UDAT_ABSOLUTE_SUNDAY: |
| 976 return kSunday; |
| 977 case UDAT_ABSOLUTE_MONDAY: |
| 978 return kMonday; |
| 979 case UDAT_ABSOLUTE_TUESDAY: |
| 980 return kTuesday; |
| 981 case UDAT_ABSOLUTE_WEDNESDAY: |
| 982 return kWednesday; |
| 983 case UDAT_ABSOLUTE_THURSDAY: |
| 984 return kThursday; |
| 985 case UDAT_ABSOLUTE_FRIDAY: |
| 986 return kFriday; |
| 987 case UDAT_ABSOLUTE_SATURDAY: |
| 988 return kSaturday; |
| 989 case UDAT_ABSOLUTE_DAY: |
| 990 return kDay; |
| 991 case UDAT_ABSOLUTE_WEEK: |
| 992 return kWeek; |
| 993 case UDAT_ABSOLUTE_MONTH: |
| 994 return kMonth; |
| 995 case UDAT_ABSOLUTE_YEAR: |
| 996 return kYear; |
| 997 case UDAT_ABSOLUTE_NOW: |
| 998 return kNow; |
| 999 default: |
| 1000 return kUndefined; |
| 1001 } |
| 1002 return kUndefined; |
| 1003 } |
| 1004 |
| 1005 extern IntlTest *createRelativeDateTimeFormatterTest() { |
| 1006 return new RelativeDateTimeFormatterTest(); |
| 1007 } |
| 1008 |
| 1009 #endif |
OLD | NEW |