]> granicus.if.org Git - icu/commitdiff
Add Tests for Area
authorYounies <younies.mahmoud@gmail.com>
Fri, 17 Jan 2020 11:40:32 +0000 (12:40 +0100)
committerYounies <younies.mahmoud@gmail.com>
Fri, 17 Jan 2020 11:40:32 +0000 (12:40 +0100)
icu4c/source/test/intltest/unitstest.cpp

index 59f4176d4222f92a2f6d9235b4840170e4d562a1..2d692c23b03e8c6e3dc2f19c6c082ace58184000 100644 (file)
@@ -17,9 +17,10 @@ public:
     void runIndexedTest(int32_t index, UBool exec, const char *&name, char *par = NULL);
 
     void testBasic();
+    void testSiPrefixes();
     void testMass();
     void testTemperature();
-    void testSiPrefixes();
+    void testArea();
 };
 
 extern IntlTest *createUnitsTest()
@@ -35,9 +36,10 @@ void UnitsTest::runIndexedTest(int32_t index, UBool exec, const char *&name, cha
     }
     TESTCASE_AUTO_BEGIN;
     TESTCASE_AUTO(testBasic);
+    TESTCASE_AUTO(testSiPrefixes);
     TESTCASE_AUTO(testMass);
     TESTCASE_AUTO(testTemperature);
-    TESTCASE_AUTO(testSiPrefixes);
+    TESTCASE_AUTO(testArea);
     TESTCASE_AUTO_END;
 }
 
@@ -151,4 +153,26 @@ void UnitsTest::testTemperature()
     }
 }
 
+void UnitsTest::testArea()
+{
+    IcuTestErrorCode status(*this, "Units Area");
+
+    // Test Cases
+    struct TestCase
+    {
+        const char16_t *source;
+        const char16_t *target;
+        const double inputValue;
+        const double expectedValue;
+    } testCases[]{
+        {u"square-meter", u"square-yard", 10.0, 11.9599},
+        {u"hectare", u"square-yard", 1.0, 11959.9},
+        {u"square-mile", u"square-foot", 0.0001, 2787.84}};
+
+    for (const auto &testCase : testCases)
+    {
+        assertEquals("test convert", testConvert(testCase.source, testCase.target, testCase.inputValue), testCase.expectedValue);
+    }
+}
+
 #endif /* #if !UCONFIG_NO_FORMATTING */