]> granicus.if.org Git - icu/commitdiff
ICU-7635 Reintroduce testcase in platform neutral fashion
authorJohn Emmons <emmo@us.ibm.com>
Wed, 26 Oct 2011 14:39:51 +0000 (14:39 +0000)
committerJohn Emmons <emmo@us.ibm.com>
Wed, 26 Oct 2011 14:39:51 +0000 (14:39 +0000)
X-SVN-Rev: 30875

icu4c/source/test/cintltst/cnumtst.c

index 64573dfd7d5ea0782645c3776e44250cd5af42b9..4c37203487ed9229e28a997687269ef20736ae94 100644 (file)
@@ -1966,58 +1966,64 @@ static void TestNBSPInPattern(void) {
 
 
 }
-static void TestCloneWithRBNF(void) {
-/*    const wchar_t* pattern = L"\
-//%main:0.x: >%%millis-only>;\n\
-//x.0: <%%duration<;\n\
-//x.x: <%%durationwithmillis<>%%millis-added>;\n\
-//-x: ->>;%%millis-only:\n\
-//1000: 00:00.<%%millis<;\n\
-//%%millis-added:\n\
-//1000: .<%%millis<;\n\
-//%%millis:\n\
-//0: =000=;\n\
-//%%duration:\n\
-//0: =%%seconds-only=;\n\
-//60: =%%min-sec=;\n\
-//3600: =%%hr-min-sec=;\n\
-//86400/86400: <%%ddaayyss<[, >>];\n\
-//%%durationwithmillis:\n\
-//0: =%%seconds-only=;\n\
-//60: =%%min-sec=;\n\
-//3600: =%%hr-min-sec=;\n\
-//86400/86400: <%%ddaayyss<, >>;\n\
-//%%seconds-only:\n\
-//0: 0:00:=00=;\n\
-//%%min-sec:\n\
-//0: :=00=;\n\
-//0/60: 0:<00<>>;\n\
-//%%hr-min-sec:\n\
-//0: :=00=;\n\
-//60/60: <00<>>;\n\
-//3600/60: <0<:>>>;\n\
-//%%ddaayyss:\n\
-//0 days;\n\
-//1 day;\n\
-//=0= days;";
-
-//     UErrorCode status = U_ZERO_ERROR;
-//     UChar buffer[256];
-//     UChar buffer_cloned[256];
-//     char temp1[256];
-//     char temp2[256];
-
-//     UNumberFormat *pform_cloned;
-//    UNumberFormat *pform = unum_open(UNUM_PATTERN_RULEBASED, pattern, -1, "en_US", NULL, &status);
-
-//     unum_formatDouble(pform, 3600, buffer, 256, NULL, &status);
-
-//     pform_cloned = unum_clone(pform,&status);
-//     unum_formatDouble(pform_cloned, 3600, buffer_cloned, 256, NULL, &status);
-
-//     if (u_strcmp(buffer,buffer_cloned)) {
-//             log_err("Result from cloned formatter not identical to the original. Original: %s Cloned: %s",u_austrcpy(temp1, buffer),u_austrcpy(temp2,buffer_cloned));
-//     }
-*/
+static void TestCloneWithRBNF(void) {   
+    UChar pattern[1024];
+    UChar pat2[512];
+    UErrorCode status = U_ZERO_ERROR;
+    UChar buffer[256];
+    UChar buffer_cloned[256];
+    char temp1[256];
+    char temp2[256];
+    UNumberFormat *pform_cloned;
+    UNumberFormat *pform;
+
+    u_uastrcpy(pattern,
+        "%main:\n"
+        "0.x: >%%millis-only>;\n"
+        "x.0: <%%duration<;\n"
+        "x.x: <%%durationwithmillis<>%%millis-added>;\n"
+        "-x: ->>;%%millis-only:\n"
+        "1000: 00:00.<%%millis<;\n"
+        "%%millis-added:\n"
+        "1000: .<%%millis<;\n"
+        "%%millis:\n"
+        "0: =000=;\n"
+        "%%duration:\n"
+        "0: =%%seconds-only=;\n"
+        "60: =%%min-sec=;\n"
+        "3600: =%%hr-min-sec=;\n"
+        "86400/86400: <%%ddaayyss<[, >>];\n"
+        "%%durationwithmillis:\n"
+        "0: =%%seconds-only=;\n"
+        "60: =%%min-sec=;\n"
+        "3600: =%%hr-min-sec=;\n"
+        "86400/86400: <%%ddaayyss<, >>;\n");
+    u_uastrcpy(pat2,
+        "%%seconds-only:\n"
+        "0: 0:00:=00=;\n"
+        "%%min-sec:\n"
+        "0: :=00=;\n"
+        "0/60: 0:<00<>>;\n"
+        "%%hr-min-sec:\n"
+        "0: :=00=;\n"
+        "60/60: <00<>>;\n"
+        "3600/60: <0<:>>>;\n"
+        "%%ddaayyss:\n"
+        "0 days;\n"
+        "1 day;\n"
+        "=0= days;");
+
+    /* This is to get around some compiler warnings about char * string length. */
+    u_strcat(pattern, pat2);
+
+    pform = unum_open(UNUM_PATTERN_RULEBASED, pattern, -1, "en_US", NULL, &status);
+    unum_formatDouble(pform, 3600, buffer, 256, NULL, &status);
+
+    pform_cloned = unum_clone(pform,&status);
+    unum_formatDouble(pform_cloned, 3600, buffer_cloned, 256, NULL, &status);
+
+    if (u_strcmp(buffer,buffer_cloned)) {
+        log_err("Result from cloned formatter not identical to the original. Original: %s Cloned: %s",u_austrcpy(temp1, buffer),u_austrcpy(temp2,buffer_cloned));
+    }
 }
 #endif /* #if !UCONFIG_NO_FORMATTING */