[UDAT_ABSOLUTE_UNIT_COUNT][UDAT_DIRECTION_COUNT],
const char* localeId,
UErrorCode& status) {
+ if (U_FAILURE(status)) {
+ return;
+ }
Locale locale(localeId);
DateFormatSymbols dfSym(locale, status);
+ if (U_FAILURE(status)) {
+ return;
+ }
for (int32_t style = 0; style < UDAT_STYLE_COUNT; ++style) {
DateFormatSymbols::DtWidthType dtfmtWidth = styleToDateFormatSymbolWidth[style];
int32_t count;
RelDateTimeFmtDataSink sink(cacheData);
ures_getAllItemsWithFallback(resource, "fields", sink, status);
+ if (U_FAILURE(status)) {
+ return false;
+ }
// Get the weekday names from DateFormatSymbols.
loadWeekdayNames(cacheData.absoluteUnits, localeId, status);
*
*******************************************************************************
*/
+#include <memory>
#include <stdio.h>
#include <stdlib.h>
+#include <vector>
#include "intltest.h"
void TestBadDisplayContext();
void TestFormat();
void TestFormatNumeric();
+ void TestLocales();
void RunTest(
const Locale& locale,
const WithQuantityExpected* expectedResults,
TESTCASE_AUTO(TestSidewaysDataLoading);
TESTCASE_AUTO(TestFormat);
TESTCASE_AUTO(TestFormatNumeric);
+ TESTCASE_AUTO(TestLocales);
TESTCASE_AUTO_END;
}
RunTest("en", kEnglishFormat, UPRV_LENGTHOF(kEnglishFormat), false);
}
+void RelativeDateTimeFormatterTest::TestLocales() {
+ int32_t numLocales = 0;
+ const Locale *availableLocales = Locale::getAvailableLocales(numLocales);
+ std::vector<std::unique_ptr<RelativeDateTimeFormatter>> allFormatters;
+ for (int localeIdx=0; localeIdx<numLocales; localeIdx++) {
+ const Locale &loc = availableLocales[localeIdx];
+ UErrorCode status = U_ZERO_ERROR;
+ std::unique_ptr<RelativeDateTimeFormatter> rdtf(new RelativeDateTimeFormatter(loc, status));
+ allFormatters.push_back(std::move(rdtf));
+ assertSuccess(loc.getName(), status);
+ }
+}
+
static const char *kLast2 = "Last_2";
static const char *kLast = "Last";
static const char *kThis = "This";
}
EnumMap<Style, EnumMap<AbsoluteUnit, EnumMap<Direction, String>>> qualitativeUnitMap =
- new EnumMap<Style, EnumMap<AbsoluteUnit, EnumMap<Direction, String>>>(Style.class);
+ new EnumMap<>(Style.class);
EnumMap<Style, EnumMap<RelativeUnit, String[][]>> styleRelUnitPatterns =
- new EnumMap<Style, EnumMap<RelativeUnit, String[][]>>(Style.class);
+ new EnumMap<>(Style.class);
StringBuilder sb = new StringBuilder();
// Handle Zero seconds for "now".
EnumMap<Direction, String> unitStrings = absMap.get(AbsoluteUnit.NOW);
if (unitStrings == null) {
- unitStrings = new EnumMap<Direction, String>(Direction.class);
+ unitStrings = new EnumMap<>(Direction.class);
absMap.put(AbsoluteUnit.NOW, unitStrings);
}
if (unitStrings.get(Direction.PLAIN) == null) {
}
if (absMap == null) {
- absMap = new EnumMap<AbsoluteUnit, EnumMap<Direction, String>>(AbsoluteUnit.class);
+ absMap = new EnumMap<>(AbsoluteUnit.class);
qualitativeUnitMap.put(style, absMap);
}
EnumMap<Direction, String> dirMap = absMap.get(absUnit);
if (dirMap == null) {
- dirMap = new EnumMap<Direction, String>(Direction.class);
+ dirMap = new EnumMap<>(Direction.class);
absMap.put(absUnit, dirMap);
}
if (dirMap.get(keyDirection) == null) {
EnumMap<RelativeUnit, String[][]> unitPatterns = styleRelUnitPatterns.get(style);
if (unitPatterns == null) {
- unitPatterns = new EnumMap<RelativeUnit, String[][]>(RelativeUnit.class);
+ unitPatterns = new EnumMap<>(RelativeUnit.class);
styleRelUnitPatterns.put(style, unitPatterns);
}
String[][] patterns = unitPatterns.get(unit.relUnit);
EnumMap<AbsoluteUnit, EnumMap<Direction, String>> unitMap =
qualitativeUnitMap.get(style);
if (unitMap == null) {
- unitMap = new EnumMap<AbsoluteUnit, EnumMap<Direction, String>>(AbsoluteUnit.class);
+ unitMap = new EnumMap<>(AbsoluteUnit.class);
qualitativeUnitMap.put(style, unitMap);
}
EnumMap<Direction,String> dirMap = unitMap.get(absUnit);
if (dirMap == null) {
- dirMap = new EnumMap<Direction,String>(Direction.class);
+ dirMap = new EnumMap<>(Direction.class);
unitMap.put(absUnit, dirMap);
}
if (dirMap.get(Direction.PLAIN) == null) {