tweaking, still no good results with danish sorting
[pazpar2-moved-to-github.git] / src / test_icu_I18N.c
index c4f3067..62b5255 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: test_icu_I18N.c,v 1.5 2007-05-01 13:16:09 marc Exp $
+/* $Id: test_icu_I18N.c,v 1.7 2007-05-02 14:01:36 marc Exp $
    Copyright (c) 2006-2007, Index Data.
 
 This file is part of Pazpar2.
@@ -219,8 +219,9 @@ int test_icu_sortmap(const char * locale, size_t list_len,
         //dest8_list[i]->sort_key =  nmem_strdup(nmem, src8_list[i]);
         //dest8_list[i]->sort_len =  strlen(src8_list[i]);
         dest8_list[i]->sort_key 
-            = icu_sortmap(nmem, buf, buf_cap, &(dest8_list[i]->sort_len),
-                          src8_list[i], locale);
+            = icu_sortmap(nmem, buf, buf_cap, 0, src8_list[i], locale);
+        // = icu_sortmap(nmem, buf, buf_cap, &(dest8_list[i]->sort_len),
+        //                  src8_list[i], locale);
     }
 
     // do the sorting
@@ -234,12 +235,26 @@ int test_icu_sortmap(const char * locale, size_t list_len,
         }
     }
 
-    if (!sucess)
-        for (i = 0; i < list_len; i++){
-            printf("icu_sortmap '%s': '%s' '%s'\n", locale,
-                   dest8_list[i]->disp_term, check8_list[i]);
-        }
-
+    if (1 || !sucess){
+        printf("\n");
+        printf("Input    '%s':", locale);
+        for (i = 0; i < list_len; i++)
+            printf(" '%s'", src8_list[i]);
+        printf("\n");        
+        printf("ICU sort '%s':", locale);
+        for (i = 0; i < list_len; i++)
+            printf(" '%s'", dest8_list[i]->disp_term);
+        if (sucess)
+            printf(" OK");
+        else
+            printf(" ERROR ??");
+        printf("\n");
+        printf("Expected '%s':", locale);
+        for (i = 0; i < list_len; i++)
+            printf(" '%s'", check8_list[i]);
+        printf("\n");        
+    }
+    
     nmem_destroy(nmem);
 
     return sucess;
@@ -256,18 +271,25 @@ void test_icu_I18N_sortmap(int argc, char **argv)
     const char * en_1_src[6] = {"z", "K", "a", "A", "Z", "k"};
     const char * en_1_cck[6] = {"a", "A", "K", "k", "z", "Z"};
     YAZ_CHECK(test_icu_sortmap("en", en_1_len, en_1_src, en_1_cck));
+    YAZ_CHECK(0 == test_icu_sortmap("en_AU", en_1_len, en_1_src, en_1_cck));
+    YAZ_CHECK(0 == test_icu_sortmap("en_CA", en_1_len, en_1_src, en_1_cck));
+    YAZ_CHECK(0 == test_icu_sortmap("en_GB", en_1_len, en_1_src, en_1_cck));
+    YAZ_CHECK(0 == test_icu_sortmap("en_US", en_1_len, en_1_src, en_1_cck));
     
     // sucessful tests - this one fails and should not!!!
     size_t da_1_len = 6;
     const char * da_1_src[6] = {"z", "å", "o", "æ", "a", "ø"};
     const char * da_1_cck[6] = {"a", "o", "z", "æ", "ø", "å"};
     YAZ_CHECK(0 == test_icu_sortmap("da", da_1_len, da_1_src, da_1_cck));
+    YAZ_CHECK(0 == test_icu_sortmap("da_DK", da_1_len, da_1_src, da_1_cck));
     
     // sucessful tests
     size_t de_1_len = 9;
     const char * de_1_src[9] = {"u", "ä", "o", "t", "s", "ß", "ü", "ö", "a"};
     const char * de_1_cck[9] = {"ä", "a", "o", "ö", "s", "ß", "t", "u", "ü"};
     YAZ_CHECK(test_icu_sortmap("de", de_1_len, de_1_src, de_1_cck));
+    YAZ_CHECK(0 == test_icu_sortmap("de_AT", de_1_len, de_1_src, de_1_cck));
+    YAZ_CHECK(0 == test_icu_sortmap("de_DE", de_1_len, de_1_src, de_1_cck));
     
 }