]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/test/intltest/reldatefmttest.cpp
ICU-66108.tar.gz
[apple/icu.git] / icuSources / test / intltest / reldatefmttest.cpp
index baccceb33cd33486ccc7e25b83b5e82f67ea3187..661228dc9fedba8f63261365a1b0e6f82bbc6c54 100644 (file)
@@ -286,6 +286,8 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_FRIDAY, "this Friday"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_SATURDAY, "this Saturday"},
         {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_SUNDAY, "this Sunday"},
+        {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_HOUR, "this hour"},
+        {UDAT_DIRECTION_THIS, UDAT_ABSOLUTE_MINUTE, "this minute"},
         
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_DAY, "day"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_WEEK, "week"},
@@ -299,6 +301,8 @@ static WithoutQuantityExpected kEnglishNoQuantity[] = {
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_FRIDAY, "Friday"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_SATURDAY, "Saturday"},
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_SUNDAY, "Sunday"},
+        {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_HOUR, "hour"},
+        {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_MINUTE, "minute"},
         
         {UDAT_DIRECTION_PLAIN, UDAT_ABSOLUTE_NOW, "now"}
 };
@@ -623,11 +627,11 @@ static WithQuantityExpectedRelativeDateTimeUnit kEnglishFormat[] = {
         {0.5, UDAT_REL_UNIT_SECOND, "in 0.5 seconds"},
         {1.0, UDAT_REL_UNIT_SECOND, "in 1 second"},
         {2.0, UDAT_REL_UNIT_SECOND, "in 2 seconds"},
-        {0.0, UDAT_REL_UNIT_MINUTE, "in 0 minutes"},
+        {0.0, UDAT_REL_UNIT_MINUTE, "this minute"},
         {0.5, UDAT_REL_UNIT_MINUTE, "in 0.5 minutes"},
         {1.0, UDAT_REL_UNIT_MINUTE, "in 1 minute"},
         {2.0, UDAT_REL_UNIT_MINUTE, "in 2 minutes"},
-        {0.0, UDAT_REL_UNIT_HOUR, "in 0 hours"},
+        {0.0, UDAT_REL_UNIT_HOUR, "this hour"},
         {0.5, UDAT_REL_UNIT_HOUR, "in 0.5 hours"},
         {1.0, UDAT_REL_UNIT_HOUR, "in 1 hour"},
         {2.0, UDAT_REL_UNIT_HOUR, "in 2 hours"},
@@ -684,11 +688,11 @@ static WithQuantityExpectedRelativeDateTimeUnit kEnglishFormat[] = {
         {-0.5, UDAT_REL_UNIT_SECOND, "0.5 seconds ago"},
         {-1.0, UDAT_REL_UNIT_SECOND, "1 second ago"},
         {-2.0, UDAT_REL_UNIT_SECOND, "2 seconds ago"},
-        {-0.0, UDAT_REL_UNIT_MINUTE, "0 minutes ago"},
+        {-0.0, UDAT_REL_UNIT_MINUTE, "this minute"},
         {-0.5, UDAT_REL_UNIT_MINUTE, "0.5 minutes ago"},
         {-1.0, UDAT_REL_UNIT_MINUTE, "1 minute ago"},
         {-2.0, UDAT_REL_UNIT_MINUTE, "2 minutes ago"},
-        {-0.0, UDAT_REL_UNIT_HOUR, "0 hours ago"},
+        {-0.0, UDAT_REL_UNIT_HOUR, "this hour"},
         {-0.5, UDAT_REL_UNIT_HOUR, "0.5 hours ago"},
         {-1.0, UDAT_REL_UNIT_HOUR, "1 hour ago"},
         {-2.0, UDAT_REL_UNIT_HOUR, "2 hours ago"},
@@ -742,6 +746,26 @@ static WithQuantityExpectedRelativeDateTimeUnit kEnglishFormat[] = {
         {-2.0, UDAT_REL_UNIT_SATURDAY, "2 Saturdays ago"}
 };
 
+static WithQuantityExpected kAfrikaans[] = {
+        {1.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "oor 1 maand"},
+        {2.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_MONTHS, "oor 2 maande"},
+        {1.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "1 maand gelede"},
+        {2.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_MONTHS, "2 maande gelede"},
+};
+
+static WithoutQuantityExpected kAfrikaansNoQuantity[] = {
+        {UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_MONTH, "volgende maand"},
+        {UDAT_DIRECTION_LAST, UDAT_ABSOLUTE_MONTH, "verlede maand"},
+};
+
+static WithQuantityExpectedRelativeDateTimeUnit kAfrikaansFormatNumeric[] = {
+        {0.0, UDAT_REL_UNIT_MONTH, "oor 0 maande"},
+        {1.0, UDAT_REL_UNIT_MONTH, "oor 1 maand"},
+        {2.0, UDAT_REL_UNIT_MONTH, "oor 2 maande"},
+        {-0.0, UDAT_REL_UNIT_MONTH, "0 maande gelede"},
+        {-1.0, UDAT_REL_UNIT_MONTH, "1 maand gelede"},
+        {-2.0, UDAT_REL_UNIT_MONTH, "2 maande gelede"},
+};
 
 class RelativeDateTimeFormatterTest : public IntlTestWithFieldPosition {
 public:
@@ -761,6 +785,7 @@ private:
     void TestEnglishNoQuantityShort();
     void TestEnglishNoQuantityNarrow();
     void TestSpanishNoQuantity();
+    void TestAfrikaans();
     void TestFormatWithQuantityIllegalArgument();
     void TestFormatWithoutQuantityIllegalArgument();
     void TestCustomNumberFormat();
@@ -853,6 +878,7 @@ void RelativeDateTimeFormatterTest::runIndexedTest(
     TESTCASE_AUTO(TestEnglishNoQuantityShort);
     TESTCASE_AUTO(TestEnglishNoQuantityNarrow);
     TESTCASE_AUTO(TestSpanishNoQuantity);
+    TESTCASE_AUTO(TestAfrikaans);
     TESTCASE_AUTO(TestFormatWithQuantityIllegalArgument);
     TESTCASE_AUTO(TestFormatWithoutQuantityIllegalArgument);
     TESTCASE_AUTO(TestCustomNumberFormat);
@@ -951,6 +977,12 @@ void RelativeDateTimeFormatterTest::TestSpanishNoQuantity() {
     RunTest("es", kSpanishNoQuantity, UPRV_LENGTHOF(kSpanishNoQuantity));
 }
 
+void RelativeDateTimeFormatterTest::TestAfrikaans() {
+    RunTest("af", kAfrikaans, UPRV_LENGTHOF(kAfrikaans));
+    RunTest("af", kAfrikaansNoQuantity, UPRV_LENGTHOF(kAfrikaansNoQuantity));
+    RunTest("af", kAfrikaansFormatNumeric, UPRV_LENGTHOF(kAfrikaansFormatNumeric), true);
+}
+
 void RelativeDateTimeFormatterTest::TestFormatWithQuantityIllegalArgument() {
     UErrorCode status = U_ZERO_ERROR;
     RelativeDateTimeFormatter fmt("en", status);
@@ -984,7 +1016,7 @@ void RelativeDateTimeFormatterTest::TestCustomNumberFormat() {
                     "Failure creating format object - %s", u_errorName(status));
             return;
         }
-        nf = (NumberFormat *) fmt.getNumberFormat().clone();
+        nf = fmt.getNumberFormat().clone();
     }
     nf->setMinimumFractionDigits(1);
     nf->setMaximumFractionDigits(1);
@@ -1284,7 +1316,7 @@ void RelativeDateTimeFormatterTest::TestSidewaysDataLoading(void) {
     fmt.format(-3.0, UDAT_DIRECTION_LAST, UDAT_RELATIVE_DAYS, actual.remove(), status);
     assertEquals("3 days ago (negative 3.0): ", expected, actual);
 
-    expected = "next yr.";
+    expected = "next yr";
     fmt.format(UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, actual.remove(), status);
     assertEquals("next year: ", expected, actual);
 
@@ -1294,7 +1326,7 @@ void RelativeDateTimeFormatterTest::TestSidewaysDataLoading(void) {
     expected = "now";
     fmtshort.format(0.0, UDAT_DIRECTION_NEXT, UDAT_RELATIVE_SECONDS, actual.remove(), status);
 
-    expected = "next yr.";
+    expected = "next yr";
     fmt.format(UDAT_DIRECTION_NEXT, UDAT_ABSOLUTE_YEAR, actual.remove(), status);
     assertEquals("next year: ", expected, actual);
 }