[UTC][base-utils][ACR-808][Tests for Ubidi module added.]
authorDamian Pietruchowski <d.pietruchow@samsung.com>
Tue, 25 Oct 2016 08:52:39 +0000 (10:52 +0200)
committerHyunjee Kim <hj0426.kim@samsung.com>
Thu, 24 Nov 2016 04:56:09 +0000 (13:56 +0900)
Signed-off-by: Damian Pietruchowski <d.pietruchow@samsung.com>
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
Change-Id: Icc3e038584f8b379a134e15103e8c85d37ef0d11

src/utc/base-utils/CMakeLists.txt
src/utc/base-utils/tct-base-utils-core_common_iot.h
src/utc/base-utils/tct-base-utils-core_mobile.h
src/utc/base-utils/tct-base-utils-core_wearable.h
src/utc/base-utils/utc-capi-base-utils-ubidi.c [new file with mode: 0644]

index 8aa7dfdcd1c0cb02895485c40a86d4c1177ba0df..272adc37c418a287d73a04c57e28d02d46414d08 100755 (executable)
@@ -29,6 +29,7 @@ SET(TC_SOURCES
     utc-capi-base-utils-alpha-idx.c
     utc-capi-base-utils-ushape.c
     utc-capi-base-utils-utmscale.c
+    utc-capi-base-utils-ubidi.c
 )
 
 PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED
index 1f14fd5c0318917012a997fd5b54d50a38d77a43..3aa6a380eb659bd9c859b77137b582cca03817ee 100755 (executable)
@@ -67,6 +67,8 @@ extern void utc_capi_base_utils_ushape_startup(void);
 extern void utc_capi_base_utils_ushape_cleanup(void);
 extern void utc_capi_base_utils_utmscale_startup(void);
 extern void utc_capi_base_utils_utmscale_cleanup(void);
+extern void utc_capi_base_utils_ubidi_startup(void);
+extern void utc_capi_base_utils_ubidi_cleanup(void);
 
 extern int utc_capi_base_utils_i18n_ustring_get_length_p(void);
 extern int utc_capi_base_utils_i18n_ustring_get_length_n(void);
@@ -1502,6 +1504,150 @@ extern int utc_capi_base_utils_i18n_utmscale_from_int64_n2(void);
 extern int utc_capi_base_utils_i18n_utmscale_to_int64_p(void);
 extern int utc_capi_base_utils_i18n_utmscale_to_int64_n(void);
 extern int utc_capi_base_utils_i18n_utmscale_to_int64_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n5(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_options_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_options_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_mode_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_mode_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n5(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n6(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n7(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_inverse_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_inverse_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_inverse_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n5(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_class_cb_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_class_cb_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_map_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_map_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_map_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_result_length_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_result_length_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_result_length_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_options_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_options_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_options_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_processed_length_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_processed_length_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_processed_length_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_run_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_run_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_map_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_map_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_map_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_levels_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_levels_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_levels_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_level_at_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_level_at_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_level_at_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_length_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_length_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_length_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_direction_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_direction_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_direction_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_class_cb_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_class_cb_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_runs_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_runs_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_runs_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_paragraphs_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_paragraphs_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_paragraphs_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_destroy_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_destroy_n(void);
 
 testcase tc_array[] = {
     {"utc_capi_base_utils_i18n_ustring_get_length_p", utc_capi_base_utils_i18n_ustring_get_length_p, utc_capi_base_utils_string_startup, utc_capi_base_utils_string_cleanup},
@@ -2938,6 +3084,150 @@ testcase tc_array[] = {
     {"utc_capi_base_utils_i18n_utmscale_to_int64_p", utc_capi_base_utils_i18n_utmscale_to_int64_p, utc_capi_base_utils_utmscale_startup, utc_capi_base_utils_utmscale_cleanup},
     {"utc_capi_base_utils_i18n_utmscale_to_int64_n", utc_capi_base_utils_i18n_utmscale_to_int64_n, utc_capi_base_utils_utmscale_startup, utc_capi_base_utils_utmscale_cleanup},
     {"utc_capi_base_utils_i18n_utmscale_to_int64_n2", utc_capi_base_utils_i18n_utmscale_to_int64_n2, utc_capi_base_utils_utmscale_startup, utc_capi_base_utils_utmscale_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_p", utc_capi_base_utils_i18n_ubidi_write_reverse_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_p2", utc_capi_base_utils_i18n_ubidi_write_reverse_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n", utc_capi_base_utils_i18n_ubidi_write_reverse_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n2", utc_capi_base_utils_i18n_ubidi_write_reverse_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n3", utc_capi_base_utils_i18n_ubidi_write_reverse_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n4", utc_capi_base_utils_i18n_ubidi_write_reverse_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n5", utc_capi_base_utils_i18n_ubidi_write_reverse_n5, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_p", utc_capi_base_utils_i18n_ubidi_write_reordered_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n", utc_capi_base_utils_i18n_ubidi_write_reordered_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n2", utc_capi_base_utils_i18n_ubidi_write_reordered_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n3", utc_capi_base_utils_i18n_ubidi_write_reordered_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n4", utc_capi_base_utils_i18n_ubidi_write_reordered_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_options_p", utc_capi_base_utils_i18n_ubidi_set_reordering_options_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_options_n", utc_capi_base_utils_i18n_ubidi_set_reordering_options_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_mode_p", utc_capi_base_utils_i18n_ubidi_set_reordering_mode_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_mode_n", utc_capi_base_utils_i18n_ubidi_set_reordering_mode_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_p", utc_capi_base_utils_i18n_ubidi_set_para_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_n", utc_capi_base_utils_i18n_ubidi_set_para_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_n2", utc_capi_base_utils_i18n_ubidi_set_para_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_n3", utc_capi_base_utils_i18n_ubidi_set_para_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_p", utc_capi_base_utils_i18n_ubidi_set_line_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n", utc_capi_base_utils_i18n_ubidi_set_line_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n2", utc_capi_base_utils_i18n_ubidi_set_line_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n3", utc_capi_base_utils_i18n_ubidi_set_line_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n4", utc_capi_base_utils_i18n_ubidi_set_line_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n5", utc_capi_base_utils_i18n_ubidi_set_line_n5, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n6", utc_capi_base_utils_i18n_ubidi_set_line_n6, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n7", utc_capi_base_utils_i18n_ubidi_set_line_n7, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_inverse_p", utc_capi_base_utils_i18n_ubidi_set_inverse_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_inverse_p2", utc_capi_base_utils_i18n_ubidi_set_inverse_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_inverse_n", utc_capi_base_utils_i18n_ubidi_set_inverse_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_p", utc_capi_base_utils_i18n_ubidi_set_context_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_p2", utc_capi_base_utils_i18n_ubidi_set_context_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n", utc_capi_base_utils_i18n_ubidi_set_context_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n2", utc_capi_base_utils_i18n_ubidi_set_context_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n3", utc_capi_base_utils_i18n_ubidi_set_context_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n4", utc_capi_base_utils_i18n_ubidi_set_context_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n5", utc_capi_base_utils_i18n_ubidi_set_context_n5, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_class_cb_p", utc_capi_base_utils_i18n_ubidi_set_class_cb_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_class_cb_n", utc_capi_base_utils_i18n_ubidi_set_class_cb_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_p", utc_capi_base_utils_i18n_ubidi_reorder_visual_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_n", utc_capi_base_utils_i18n_ubidi_reorder_visual_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_n2", utc_capi_base_utils_i18n_ubidi_reorder_visual_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_n3", utc_capi_base_utils_i18n_ubidi_reorder_visual_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_p", utc_capi_base_utils_i18n_ubidi_reorder_logical_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_n", utc_capi_base_utils_i18n_ubidi_reorder_logical_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_n2", utc_capi_base_utils_i18n_ubidi_reorder_logical_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_n3", utc_capi_base_utils_i18n_ubidi_reorder_logical_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_p", utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_n", utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_p", utc_capi_base_utils_i18n_ubidi_create_sized_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_n", utc_capi_base_utils_i18n_ubidi_create_sized_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_n2", utc_capi_base_utils_i18n_ubidi_create_sized_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_n3", utc_capi_base_utils_i18n_ubidi_create_sized_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_p", utc_capi_base_utils_i18n_ubidi_create_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_n", utc_capi_base_utils_i18n_ubidi_create_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_p", utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n", utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n2", utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_p", utc_capi_base_utils_i18n_ubidi_is_inverse_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_p2", utc_capi_base_utils_i18n_ubidi_is_inverse_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_n", utc_capi_base_utils_i18n_ubidi_is_inverse_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_n2", utc_capi_base_utils_i18n_ubidi_is_inverse_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_p", utc_capi_base_utils_i18n_ubidi_invert_map_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_n", utc_capi_base_utils_i18n_ubidi_invert_map_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_n2", utc_capi_base_utils_i18n_ubidi_invert_map_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_n3", utc_capi_base_utils_i18n_ubidi_invert_map_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_p", utc_capi_base_utils_i18n_ubidi_get_visual_run_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_n", utc_capi_base_utils_i18n_ubidi_get_visual_run_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_n2", utc_capi_base_utils_i18n_ubidi_get_visual_run_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_n3", utc_capi_base_utils_i18n_ubidi_get_visual_run_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_map_p", utc_capi_base_utils_i18n_ubidi_get_visual_map_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_map_n", utc_capi_base_utils_i18n_ubidi_get_visual_map_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_map_n2", utc_capi_base_utils_i18n_ubidi_get_visual_map_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_p", utc_capi_base_utils_i18n_ubidi_get_visual_index_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_n", utc_capi_base_utils_i18n_ubidi_get_visual_index_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_n2", utc_capi_base_utils_i18n_ubidi_get_visual_index_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_n3", utc_capi_base_utils_i18n_ubidi_get_visual_index_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_p", utc_capi_base_utils_i18n_ubidi_get_text_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_n", utc_capi_base_utils_i18n_ubidi_get_text_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_n2", utc_capi_base_utils_i18n_ubidi_get_text_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_n3", utc_capi_base_utils_i18n_ubidi_get_text_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_result_length_p", utc_capi_base_utils_i18n_ubidi_get_result_length_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_result_length_n", utc_capi_base_utils_i18n_ubidi_get_result_length_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_result_length_n2", utc_capi_base_utils_i18n_ubidi_get_result_length_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_options_p", utc_capi_base_utils_i18n_ubidi_get_reordering_options_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_options_n", utc_capi_base_utils_i18n_ubidi_get_reordering_options_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_options_n2", utc_capi_base_utils_i18n_ubidi_get_reordering_options_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_mode_p", utc_capi_base_utils_i18n_ubidi_get_reordering_mode_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n", utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n2", utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_processed_length_p", utc_capi_base_utils_i18n_ubidi_get_processed_length_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_processed_length_n", utc_capi_base_utils_i18n_ubidi_get_processed_length_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_processed_length_n2", utc_capi_base_utils_i18n_ubidi_get_processed_length_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_p", utc_capi_base_utils_i18n_ubidi_get_para_level_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_p2", utc_capi_base_utils_i18n_ubidi_get_para_level_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_n", utc_capi_base_utils_i18n_ubidi_get_para_level_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_n2", utc_capi_base_utils_i18n_ubidi_get_para_level_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_p", utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n", utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n2", utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_p", utc_capi_base_utils_i18n_ubidi_get_paragraph_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_n", utc_capi_base_utils_i18n_ubidi_get_paragraph_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_n2", utc_capi_base_utils_i18n_ubidi_get_paragraph_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_n3", utc_capi_base_utils_i18n_ubidi_get_paragraph_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_run_p", utc_capi_base_utils_i18n_ubidi_get_logical_run_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_run_n", utc_capi_base_utils_i18n_ubidi_get_logical_run_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_map_p", utc_capi_base_utils_i18n_ubidi_get_logical_map_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_map_n", utc_capi_base_utils_i18n_ubidi_get_logical_map_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_map_n2", utc_capi_base_utils_i18n_ubidi_get_logical_map_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_p", utc_capi_base_utils_i18n_ubidi_get_logical_index_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_n", utc_capi_base_utils_i18n_ubidi_get_logical_index_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_n2", utc_capi_base_utils_i18n_ubidi_get_logical_index_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_n3", utc_capi_base_utils_i18n_ubidi_get_logical_index_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_levels_p", utc_capi_base_utils_i18n_ubidi_get_levels_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_levels_n", utc_capi_base_utils_i18n_ubidi_get_levels_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_levels_n2", utc_capi_base_utils_i18n_ubidi_get_levels_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_level_at_p", utc_capi_base_utils_i18n_ubidi_get_level_at_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_level_at_n", utc_capi_base_utils_i18n_ubidi_get_level_at_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_level_at_n2", utc_capi_base_utils_i18n_ubidi_get_level_at_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_length_p", utc_capi_base_utils_i18n_ubidi_get_length_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_length_n", utc_capi_base_utils_i18n_ubidi_get_length_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_length_n2", utc_capi_base_utils_i18n_ubidi_get_length_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_direction_p", utc_capi_base_utils_i18n_ubidi_get_direction_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_direction_n", utc_capi_base_utils_i18n_ubidi_get_direction_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_direction_n2", utc_capi_base_utils_i18n_ubidi_get_direction_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_p", utc_capi_base_utils_i18n_ubidi_get_customized_class_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_p2", utc_capi_base_utils_i18n_ubidi_get_customized_class_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_n", utc_capi_base_utils_i18n_ubidi_get_customized_class_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_n2", utc_capi_base_utils_i18n_ubidi_get_customized_class_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_class_cb_p", utc_capi_base_utils_i18n_ubidi_get_class_cb_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_class_cb_n", utc_capi_base_utils_i18n_ubidi_get_class_cb_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_p", utc_capi_base_utils_i18n_ubidi_get_base_direction_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_n", utc_capi_base_utils_i18n_ubidi_get_base_direction_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_n2", utc_capi_base_utils_i18n_ubidi_get_base_direction_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_n3", utc_capi_base_utils_i18n_ubidi_get_base_direction_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_runs_p", utc_capi_base_utils_i18n_ubidi_count_runs_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_runs_n", utc_capi_base_utils_i18n_ubidi_count_runs_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_runs_n2", utc_capi_base_utils_i18n_ubidi_count_runs_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_paragraphs_p", utc_capi_base_utils_i18n_ubidi_count_paragraphs_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_paragraphs_n", utc_capi_base_utils_i18n_ubidi_count_paragraphs_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_paragraphs_n2", utc_capi_base_utils_i18n_ubidi_count_paragraphs_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_destroy_p", utc_capi_base_utils_i18n_ubidi_destroy_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_destroy_n", utc_capi_base_utils_i18n_ubidi_destroy_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
     {NULL, NULL}
 };
 
index 8fa079cf87aee96051b9e331468c8458f51bf7a4..f80ce1c4f576b64eea53aee67de7b4afd4e5fc57 100755 (executable)
@@ -67,6 +67,8 @@ extern void utc_capi_base_utils_ushape_startup(void);
 extern void utc_capi_base_utils_ushape_cleanup(void);
 extern void utc_capi_base_utils_utmscale_startup(void);
 extern void utc_capi_base_utils_utmscale_cleanup(void);
+extern void utc_capi_base_utils_ubidi_startup(void);
+extern void utc_capi_base_utils_ubidi_cleanup(void);
 
 extern int utc_capi_base_utils_i18n_ustring_get_length_p(void);
 extern int utc_capi_base_utils_i18n_ustring_get_length_n(void);
@@ -1509,6 +1511,150 @@ extern int utc_capi_base_utils_i18n_utmscale_from_int64_n2(void);
 extern int utc_capi_base_utils_i18n_utmscale_to_int64_p(void);
 extern int utc_capi_base_utils_i18n_utmscale_to_int64_n(void);
 extern int utc_capi_base_utils_i18n_utmscale_to_int64_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n5(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_options_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_options_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_mode_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_mode_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n5(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n6(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n7(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_inverse_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_inverse_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_inverse_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n5(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_class_cb_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_class_cb_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_map_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_map_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_map_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_result_length_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_result_length_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_result_length_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_options_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_options_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_options_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_processed_length_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_processed_length_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_processed_length_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_run_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_run_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_map_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_map_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_map_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_levels_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_levels_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_levels_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_level_at_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_level_at_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_level_at_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_length_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_length_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_length_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_direction_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_direction_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_direction_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_class_cb_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_class_cb_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_runs_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_runs_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_runs_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_paragraphs_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_paragraphs_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_paragraphs_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_destroy_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_destroy_n(void);
 
 testcase tc_array[] = {
     {"utc_capi_base_utils_i18n_ustring_get_length_p", utc_capi_base_utils_i18n_ustring_get_length_p, utc_capi_base_utils_string_startup, utc_capi_base_utils_string_cleanup},
@@ -2952,6 +3098,150 @@ testcase tc_array[] = {
     {"utc_capi_base_utils_i18n_utmscale_to_int64_p", utc_capi_base_utils_i18n_utmscale_to_int64_p, utc_capi_base_utils_utmscale_startup, utc_capi_base_utils_utmscale_cleanup},
     {"utc_capi_base_utils_i18n_utmscale_to_int64_n", utc_capi_base_utils_i18n_utmscale_to_int64_n, utc_capi_base_utils_utmscale_startup, utc_capi_base_utils_utmscale_cleanup},
     {"utc_capi_base_utils_i18n_utmscale_to_int64_n2", utc_capi_base_utils_i18n_utmscale_to_int64_n2, utc_capi_base_utils_utmscale_startup, utc_capi_base_utils_utmscale_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_p", utc_capi_base_utils_i18n_ubidi_write_reverse_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_p2", utc_capi_base_utils_i18n_ubidi_write_reverse_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n", utc_capi_base_utils_i18n_ubidi_write_reverse_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n2", utc_capi_base_utils_i18n_ubidi_write_reverse_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n3", utc_capi_base_utils_i18n_ubidi_write_reverse_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n4", utc_capi_base_utils_i18n_ubidi_write_reverse_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n5", utc_capi_base_utils_i18n_ubidi_write_reverse_n5, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_p", utc_capi_base_utils_i18n_ubidi_write_reordered_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n", utc_capi_base_utils_i18n_ubidi_write_reordered_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n2", utc_capi_base_utils_i18n_ubidi_write_reordered_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n3", utc_capi_base_utils_i18n_ubidi_write_reordered_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n4", utc_capi_base_utils_i18n_ubidi_write_reordered_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_options_p", utc_capi_base_utils_i18n_ubidi_set_reordering_options_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_options_n", utc_capi_base_utils_i18n_ubidi_set_reordering_options_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_mode_p", utc_capi_base_utils_i18n_ubidi_set_reordering_mode_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_mode_n", utc_capi_base_utils_i18n_ubidi_set_reordering_mode_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_p", utc_capi_base_utils_i18n_ubidi_set_para_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_n", utc_capi_base_utils_i18n_ubidi_set_para_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_n2", utc_capi_base_utils_i18n_ubidi_set_para_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_n3", utc_capi_base_utils_i18n_ubidi_set_para_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_p", utc_capi_base_utils_i18n_ubidi_set_line_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n", utc_capi_base_utils_i18n_ubidi_set_line_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n2", utc_capi_base_utils_i18n_ubidi_set_line_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n3", utc_capi_base_utils_i18n_ubidi_set_line_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n4", utc_capi_base_utils_i18n_ubidi_set_line_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n5", utc_capi_base_utils_i18n_ubidi_set_line_n5, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n6", utc_capi_base_utils_i18n_ubidi_set_line_n6, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n7", utc_capi_base_utils_i18n_ubidi_set_line_n7, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_inverse_p", utc_capi_base_utils_i18n_ubidi_set_inverse_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_inverse_p2", utc_capi_base_utils_i18n_ubidi_set_inverse_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_inverse_n", utc_capi_base_utils_i18n_ubidi_set_inverse_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_p", utc_capi_base_utils_i18n_ubidi_set_context_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_p2", utc_capi_base_utils_i18n_ubidi_set_context_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n", utc_capi_base_utils_i18n_ubidi_set_context_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n2", utc_capi_base_utils_i18n_ubidi_set_context_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n3", utc_capi_base_utils_i18n_ubidi_set_context_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n4", utc_capi_base_utils_i18n_ubidi_set_context_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n5", utc_capi_base_utils_i18n_ubidi_set_context_n5, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_class_cb_p", utc_capi_base_utils_i18n_ubidi_set_class_cb_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_class_cb_n", utc_capi_base_utils_i18n_ubidi_set_class_cb_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_p", utc_capi_base_utils_i18n_ubidi_reorder_visual_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_n", utc_capi_base_utils_i18n_ubidi_reorder_visual_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_n2", utc_capi_base_utils_i18n_ubidi_reorder_visual_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_n3", utc_capi_base_utils_i18n_ubidi_reorder_visual_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_p", utc_capi_base_utils_i18n_ubidi_reorder_logical_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_n", utc_capi_base_utils_i18n_ubidi_reorder_logical_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_n2", utc_capi_base_utils_i18n_ubidi_reorder_logical_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_n3", utc_capi_base_utils_i18n_ubidi_reorder_logical_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_p", utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_n", utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_p", utc_capi_base_utils_i18n_ubidi_create_sized_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_n", utc_capi_base_utils_i18n_ubidi_create_sized_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_n2", utc_capi_base_utils_i18n_ubidi_create_sized_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_n3", utc_capi_base_utils_i18n_ubidi_create_sized_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_p", utc_capi_base_utils_i18n_ubidi_create_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_n", utc_capi_base_utils_i18n_ubidi_create_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_p", utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n", utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n2", utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_p", utc_capi_base_utils_i18n_ubidi_is_inverse_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_p2", utc_capi_base_utils_i18n_ubidi_is_inverse_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_n", utc_capi_base_utils_i18n_ubidi_is_inverse_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_n2", utc_capi_base_utils_i18n_ubidi_is_inverse_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_p", utc_capi_base_utils_i18n_ubidi_invert_map_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_n", utc_capi_base_utils_i18n_ubidi_invert_map_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_n2", utc_capi_base_utils_i18n_ubidi_invert_map_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_n3", utc_capi_base_utils_i18n_ubidi_invert_map_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_p", utc_capi_base_utils_i18n_ubidi_get_visual_run_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_n", utc_capi_base_utils_i18n_ubidi_get_visual_run_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_n2", utc_capi_base_utils_i18n_ubidi_get_visual_run_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_n3", utc_capi_base_utils_i18n_ubidi_get_visual_run_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_map_p", utc_capi_base_utils_i18n_ubidi_get_visual_map_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_map_n", utc_capi_base_utils_i18n_ubidi_get_visual_map_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_map_n2", utc_capi_base_utils_i18n_ubidi_get_visual_map_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_p", utc_capi_base_utils_i18n_ubidi_get_visual_index_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_n", utc_capi_base_utils_i18n_ubidi_get_visual_index_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_n2", utc_capi_base_utils_i18n_ubidi_get_visual_index_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_n3", utc_capi_base_utils_i18n_ubidi_get_visual_index_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_p", utc_capi_base_utils_i18n_ubidi_get_text_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_n", utc_capi_base_utils_i18n_ubidi_get_text_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_n2", utc_capi_base_utils_i18n_ubidi_get_text_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_n3", utc_capi_base_utils_i18n_ubidi_get_text_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_result_length_p", utc_capi_base_utils_i18n_ubidi_get_result_length_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_result_length_n", utc_capi_base_utils_i18n_ubidi_get_result_length_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_result_length_n2", utc_capi_base_utils_i18n_ubidi_get_result_length_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_options_p", utc_capi_base_utils_i18n_ubidi_get_reordering_options_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_options_n", utc_capi_base_utils_i18n_ubidi_get_reordering_options_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_options_n2", utc_capi_base_utils_i18n_ubidi_get_reordering_options_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_mode_p", utc_capi_base_utils_i18n_ubidi_get_reordering_mode_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n", utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n2", utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_processed_length_p", utc_capi_base_utils_i18n_ubidi_get_processed_length_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_processed_length_n", utc_capi_base_utils_i18n_ubidi_get_processed_length_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_processed_length_n2", utc_capi_base_utils_i18n_ubidi_get_processed_length_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_p", utc_capi_base_utils_i18n_ubidi_get_para_level_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_p2", utc_capi_base_utils_i18n_ubidi_get_para_level_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_n", utc_capi_base_utils_i18n_ubidi_get_para_level_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_n2", utc_capi_base_utils_i18n_ubidi_get_para_level_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_p", utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n", utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n2", utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_p", utc_capi_base_utils_i18n_ubidi_get_paragraph_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_n", utc_capi_base_utils_i18n_ubidi_get_paragraph_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_n2", utc_capi_base_utils_i18n_ubidi_get_paragraph_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_n3", utc_capi_base_utils_i18n_ubidi_get_paragraph_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_run_p", utc_capi_base_utils_i18n_ubidi_get_logical_run_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_run_n", utc_capi_base_utils_i18n_ubidi_get_logical_run_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_map_p", utc_capi_base_utils_i18n_ubidi_get_logical_map_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_map_n", utc_capi_base_utils_i18n_ubidi_get_logical_map_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_map_n2", utc_capi_base_utils_i18n_ubidi_get_logical_map_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_p", utc_capi_base_utils_i18n_ubidi_get_logical_index_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_n", utc_capi_base_utils_i18n_ubidi_get_logical_index_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_n2", utc_capi_base_utils_i18n_ubidi_get_logical_index_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_n3", utc_capi_base_utils_i18n_ubidi_get_logical_index_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_levels_p", utc_capi_base_utils_i18n_ubidi_get_levels_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_levels_n", utc_capi_base_utils_i18n_ubidi_get_levels_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_levels_n2", utc_capi_base_utils_i18n_ubidi_get_levels_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_level_at_p", utc_capi_base_utils_i18n_ubidi_get_level_at_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_level_at_n", utc_capi_base_utils_i18n_ubidi_get_level_at_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_level_at_n2", utc_capi_base_utils_i18n_ubidi_get_level_at_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_length_p", utc_capi_base_utils_i18n_ubidi_get_length_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_length_n", utc_capi_base_utils_i18n_ubidi_get_length_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_length_n2", utc_capi_base_utils_i18n_ubidi_get_length_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_direction_p", utc_capi_base_utils_i18n_ubidi_get_direction_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_direction_n", utc_capi_base_utils_i18n_ubidi_get_direction_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_direction_n2", utc_capi_base_utils_i18n_ubidi_get_direction_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_p", utc_capi_base_utils_i18n_ubidi_get_customized_class_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_p2", utc_capi_base_utils_i18n_ubidi_get_customized_class_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_n", utc_capi_base_utils_i18n_ubidi_get_customized_class_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_n2", utc_capi_base_utils_i18n_ubidi_get_customized_class_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_class_cb_p", utc_capi_base_utils_i18n_ubidi_get_class_cb_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_class_cb_n", utc_capi_base_utils_i18n_ubidi_get_class_cb_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_p", utc_capi_base_utils_i18n_ubidi_get_base_direction_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_n", utc_capi_base_utils_i18n_ubidi_get_base_direction_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_n2", utc_capi_base_utils_i18n_ubidi_get_base_direction_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_n3", utc_capi_base_utils_i18n_ubidi_get_base_direction_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_runs_p", utc_capi_base_utils_i18n_ubidi_count_runs_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_runs_n", utc_capi_base_utils_i18n_ubidi_count_runs_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_runs_n2", utc_capi_base_utils_i18n_ubidi_count_runs_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_paragraphs_p", utc_capi_base_utils_i18n_ubidi_count_paragraphs_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_paragraphs_n", utc_capi_base_utils_i18n_ubidi_count_paragraphs_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_paragraphs_n2", utc_capi_base_utils_i18n_ubidi_count_paragraphs_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_destroy_p", utc_capi_base_utils_i18n_ubidi_destroy_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_destroy_n", utc_capi_base_utils_i18n_ubidi_destroy_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
     {NULL, NULL}
 };
 
index 27afadad62dee030fdfbc20ed046f3336b231ee7..ea498f1e3ba0373cfb91cf21c410a97d95ef4d46 100755 (executable)
@@ -67,6 +67,8 @@ extern void utc_capi_base_utils_ushape_startup(void);
 extern void utc_capi_base_utils_ushape_cleanup(void);
 extern void utc_capi_base_utils_utmscale_startup(void);
 extern void utc_capi_base_utils_utmscale_cleanup(void);
+extern void utc_capi_base_utils_ubidi_startup(void);
+extern void utc_capi_base_utils_ubidi_cleanup(void);
 
 extern int utc_capi_base_utils_i18n_ustring_get_length_p(void);
 extern int utc_capi_base_utils_i18n_ustring_get_length_n(void);
@@ -1502,6 +1504,150 @@ extern int utc_capi_base_utils_i18n_utmscale_from_int64_n2(void);
 extern int utc_capi_base_utils_i18n_utmscale_to_int64_p(void);
 extern int utc_capi_base_utils_i18n_utmscale_to_int64_n(void);
 extern int utc_capi_base_utils_i18n_utmscale_to_int64_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reverse_n5(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_write_reordered_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_options_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_options_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_mode_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_reordering_mode_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_para_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n5(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n6(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_line_n7(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_inverse_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_inverse_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_inverse_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n4(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_context_n5(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_class_cb_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_set_class_cb_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_visual_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_reorder_logical_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_sized_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_create_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_is_inverse_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_invert_map_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_run_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_map_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_map_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_map_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_visual_index_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_text_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_result_length_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_result_length_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_result_length_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_options_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_options_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_options_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_processed_length_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_processed_length_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_processed_length_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_para_level_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_paragraph_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_run_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_run_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_map_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_map_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_map_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_logical_index_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_levels_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_levels_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_levels_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_level_at_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_level_at_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_level_at_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_length_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_length_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_length_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_direction_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_direction_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_direction_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_p2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_customized_class_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_class_cb_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_class_cb_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_get_base_direction_n3(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_runs_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_runs_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_runs_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_paragraphs_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_paragraphs_n(void);
+extern int utc_capi_base_utils_i18n_ubidi_count_paragraphs_n2(void);
+extern int utc_capi_base_utils_i18n_ubidi_destroy_p(void);
+extern int utc_capi_base_utils_i18n_ubidi_destroy_n(void);
 
 testcase tc_array[] = {
     {"utc_capi_base_utils_i18n_ustring_get_length_p", utc_capi_base_utils_i18n_ustring_get_length_p, utc_capi_base_utils_string_startup, utc_capi_base_utils_string_cleanup},
@@ -2938,6 +3084,150 @@ testcase tc_array[] = {
     {"utc_capi_base_utils_i18n_utmscale_to_int64_p", utc_capi_base_utils_i18n_utmscale_to_int64_p, utc_capi_base_utils_utmscale_startup, utc_capi_base_utils_utmscale_cleanup},
     {"utc_capi_base_utils_i18n_utmscale_to_int64_n", utc_capi_base_utils_i18n_utmscale_to_int64_n, utc_capi_base_utils_utmscale_startup, utc_capi_base_utils_utmscale_cleanup},
     {"utc_capi_base_utils_i18n_utmscale_to_int64_n2", utc_capi_base_utils_i18n_utmscale_to_int64_n2, utc_capi_base_utils_utmscale_startup, utc_capi_base_utils_utmscale_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_p", utc_capi_base_utils_i18n_ubidi_write_reverse_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_p2", utc_capi_base_utils_i18n_ubidi_write_reverse_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n", utc_capi_base_utils_i18n_ubidi_write_reverse_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n2", utc_capi_base_utils_i18n_ubidi_write_reverse_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n3", utc_capi_base_utils_i18n_ubidi_write_reverse_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n4", utc_capi_base_utils_i18n_ubidi_write_reverse_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reverse_n5", utc_capi_base_utils_i18n_ubidi_write_reverse_n5, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_p", utc_capi_base_utils_i18n_ubidi_write_reordered_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n", utc_capi_base_utils_i18n_ubidi_write_reordered_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n2", utc_capi_base_utils_i18n_ubidi_write_reordered_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n3", utc_capi_base_utils_i18n_ubidi_write_reordered_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_write_reordered_n4", utc_capi_base_utils_i18n_ubidi_write_reordered_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_options_p", utc_capi_base_utils_i18n_ubidi_set_reordering_options_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_options_n", utc_capi_base_utils_i18n_ubidi_set_reordering_options_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_mode_p", utc_capi_base_utils_i18n_ubidi_set_reordering_mode_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_reordering_mode_n", utc_capi_base_utils_i18n_ubidi_set_reordering_mode_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_p", utc_capi_base_utils_i18n_ubidi_set_para_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_n", utc_capi_base_utils_i18n_ubidi_set_para_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_n2", utc_capi_base_utils_i18n_ubidi_set_para_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_para_n3", utc_capi_base_utils_i18n_ubidi_set_para_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_p", utc_capi_base_utils_i18n_ubidi_set_line_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n", utc_capi_base_utils_i18n_ubidi_set_line_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n2", utc_capi_base_utils_i18n_ubidi_set_line_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n3", utc_capi_base_utils_i18n_ubidi_set_line_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n4", utc_capi_base_utils_i18n_ubidi_set_line_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n5", utc_capi_base_utils_i18n_ubidi_set_line_n5, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n6", utc_capi_base_utils_i18n_ubidi_set_line_n6, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_line_n7", utc_capi_base_utils_i18n_ubidi_set_line_n7, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_inverse_p", utc_capi_base_utils_i18n_ubidi_set_inverse_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_inverse_p2", utc_capi_base_utils_i18n_ubidi_set_inverse_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_inverse_n", utc_capi_base_utils_i18n_ubidi_set_inverse_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_p", utc_capi_base_utils_i18n_ubidi_set_context_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_p2", utc_capi_base_utils_i18n_ubidi_set_context_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n", utc_capi_base_utils_i18n_ubidi_set_context_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n2", utc_capi_base_utils_i18n_ubidi_set_context_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n3", utc_capi_base_utils_i18n_ubidi_set_context_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n4", utc_capi_base_utils_i18n_ubidi_set_context_n4, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_context_n5", utc_capi_base_utils_i18n_ubidi_set_context_n5, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_class_cb_p", utc_capi_base_utils_i18n_ubidi_set_class_cb_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_set_class_cb_n", utc_capi_base_utils_i18n_ubidi_set_class_cb_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_p", utc_capi_base_utils_i18n_ubidi_reorder_visual_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_n", utc_capi_base_utils_i18n_ubidi_reorder_visual_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_n2", utc_capi_base_utils_i18n_ubidi_reorder_visual_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_visual_n3", utc_capi_base_utils_i18n_ubidi_reorder_visual_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_p", utc_capi_base_utils_i18n_ubidi_reorder_logical_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_n", utc_capi_base_utils_i18n_ubidi_reorder_logical_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_n2", utc_capi_base_utils_i18n_ubidi_reorder_logical_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_reorder_logical_n3", utc_capi_base_utils_i18n_ubidi_reorder_logical_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_p", utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_n", utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_p", utc_capi_base_utils_i18n_ubidi_create_sized_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_n", utc_capi_base_utils_i18n_ubidi_create_sized_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_n2", utc_capi_base_utils_i18n_ubidi_create_sized_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_sized_n3", utc_capi_base_utils_i18n_ubidi_create_sized_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_p", utc_capi_base_utils_i18n_ubidi_create_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_create_n", utc_capi_base_utils_i18n_ubidi_create_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_p", utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n", utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n2", utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_p", utc_capi_base_utils_i18n_ubidi_is_inverse_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_p2", utc_capi_base_utils_i18n_ubidi_is_inverse_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_n", utc_capi_base_utils_i18n_ubidi_is_inverse_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_is_inverse_n2", utc_capi_base_utils_i18n_ubidi_is_inverse_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_p", utc_capi_base_utils_i18n_ubidi_invert_map_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_n", utc_capi_base_utils_i18n_ubidi_invert_map_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_n2", utc_capi_base_utils_i18n_ubidi_invert_map_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_invert_map_n3", utc_capi_base_utils_i18n_ubidi_invert_map_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_p", utc_capi_base_utils_i18n_ubidi_get_visual_run_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_n", utc_capi_base_utils_i18n_ubidi_get_visual_run_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_n2", utc_capi_base_utils_i18n_ubidi_get_visual_run_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_run_n3", utc_capi_base_utils_i18n_ubidi_get_visual_run_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_map_p", utc_capi_base_utils_i18n_ubidi_get_visual_map_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_map_n", utc_capi_base_utils_i18n_ubidi_get_visual_map_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_map_n2", utc_capi_base_utils_i18n_ubidi_get_visual_map_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_p", utc_capi_base_utils_i18n_ubidi_get_visual_index_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_n", utc_capi_base_utils_i18n_ubidi_get_visual_index_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_n2", utc_capi_base_utils_i18n_ubidi_get_visual_index_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_visual_index_n3", utc_capi_base_utils_i18n_ubidi_get_visual_index_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_p", utc_capi_base_utils_i18n_ubidi_get_text_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_n", utc_capi_base_utils_i18n_ubidi_get_text_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_n2", utc_capi_base_utils_i18n_ubidi_get_text_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_text_n3", utc_capi_base_utils_i18n_ubidi_get_text_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_result_length_p", utc_capi_base_utils_i18n_ubidi_get_result_length_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_result_length_n", utc_capi_base_utils_i18n_ubidi_get_result_length_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_result_length_n2", utc_capi_base_utils_i18n_ubidi_get_result_length_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_options_p", utc_capi_base_utils_i18n_ubidi_get_reordering_options_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_options_n", utc_capi_base_utils_i18n_ubidi_get_reordering_options_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_options_n2", utc_capi_base_utils_i18n_ubidi_get_reordering_options_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_mode_p", utc_capi_base_utils_i18n_ubidi_get_reordering_mode_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n", utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n2", utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_processed_length_p", utc_capi_base_utils_i18n_ubidi_get_processed_length_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_processed_length_n", utc_capi_base_utils_i18n_ubidi_get_processed_length_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_processed_length_n2", utc_capi_base_utils_i18n_ubidi_get_processed_length_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_p", utc_capi_base_utils_i18n_ubidi_get_para_level_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_p2", utc_capi_base_utils_i18n_ubidi_get_para_level_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_n", utc_capi_base_utils_i18n_ubidi_get_para_level_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_para_level_n2", utc_capi_base_utils_i18n_ubidi_get_para_level_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_p", utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n", utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n2", utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_p", utc_capi_base_utils_i18n_ubidi_get_paragraph_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_n", utc_capi_base_utils_i18n_ubidi_get_paragraph_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_n2", utc_capi_base_utils_i18n_ubidi_get_paragraph_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_paragraph_n3", utc_capi_base_utils_i18n_ubidi_get_paragraph_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_run_p", utc_capi_base_utils_i18n_ubidi_get_logical_run_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_run_n", utc_capi_base_utils_i18n_ubidi_get_logical_run_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_map_p", utc_capi_base_utils_i18n_ubidi_get_logical_map_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_map_n", utc_capi_base_utils_i18n_ubidi_get_logical_map_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_map_n2", utc_capi_base_utils_i18n_ubidi_get_logical_map_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_p", utc_capi_base_utils_i18n_ubidi_get_logical_index_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_n", utc_capi_base_utils_i18n_ubidi_get_logical_index_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_n2", utc_capi_base_utils_i18n_ubidi_get_logical_index_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_logical_index_n3", utc_capi_base_utils_i18n_ubidi_get_logical_index_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_levels_p", utc_capi_base_utils_i18n_ubidi_get_levels_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_levels_n", utc_capi_base_utils_i18n_ubidi_get_levels_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_levels_n2", utc_capi_base_utils_i18n_ubidi_get_levels_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_level_at_p", utc_capi_base_utils_i18n_ubidi_get_level_at_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_level_at_n", utc_capi_base_utils_i18n_ubidi_get_level_at_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_level_at_n2", utc_capi_base_utils_i18n_ubidi_get_level_at_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_length_p", utc_capi_base_utils_i18n_ubidi_get_length_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_length_n", utc_capi_base_utils_i18n_ubidi_get_length_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_length_n2", utc_capi_base_utils_i18n_ubidi_get_length_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_direction_p", utc_capi_base_utils_i18n_ubidi_get_direction_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_direction_n", utc_capi_base_utils_i18n_ubidi_get_direction_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_direction_n2", utc_capi_base_utils_i18n_ubidi_get_direction_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_p", utc_capi_base_utils_i18n_ubidi_get_customized_class_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_p2", utc_capi_base_utils_i18n_ubidi_get_customized_class_p2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_n", utc_capi_base_utils_i18n_ubidi_get_customized_class_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_customized_class_n2", utc_capi_base_utils_i18n_ubidi_get_customized_class_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_class_cb_p", utc_capi_base_utils_i18n_ubidi_get_class_cb_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_class_cb_n", utc_capi_base_utils_i18n_ubidi_get_class_cb_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_p", utc_capi_base_utils_i18n_ubidi_get_base_direction_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_n", utc_capi_base_utils_i18n_ubidi_get_base_direction_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_n2", utc_capi_base_utils_i18n_ubidi_get_base_direction_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_get_base_direction_n3", utc_capi_base_utils_i18n_ubidi_get_base_direction_n3, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_runs_p", utc_capi_base_utils_i18n_ubidi_count_runs_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_runs_n", utc_capi_base_utils_i18n_ubidi_count_runs_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_runs_n2", utc_capi_base_utils_i18n_ubidi_count_runs_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_paragraphs_p", utc_capi_base_utils_i18n_ubidi_count_paragraphs_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_paragraphs_n", utc_capi_base_utils_i18n_ubidi_count_paragraphs_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_count_paragraphs_n2", utc_capi_base_utils_i18n_ubidi_count_paragraphs_n2, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_destroy_p", utc_capi_base_utils_i18n_ubidi_destroy_p, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
+    {"utc_capi_base_utils_i18n_ubidi_destroy_n", utc_capi_base_utils_i18n_ubidi_destroy_n, utc_capi_base_utils_ubidi_startup, utc_capi_base_utils_ubidi_cleanup},
     {NULL, NULL}
 };
 
diff --git a/src/utc/base-utils/utc-capi-base-utils-ubidi.c b/src/utc/base-utils/utc-capi-base-utils-ubidi.c
new file mode 100644 (file)
index 0000000..6ff0763
--- /dev/null
@@ -0,0 +1,3242 @@
+#include "assert.h"
+#include <utils_i18n.h>
+#include <string.h>
+
+#define BUFLEN 255
+#define L I18N_UCHAR_U_LEFT_TO_RIGHT
+#define R I18N_UCHAR_U_RIGHT_TO_LEFT
+
+static i18n_ubidi_h ubidi = NULL;
+static i18n_ubidi_h ubidi_line = NULL;
+static i18n_uchar *prologue = NULL;
+static i18n_uchar *src = NULL;
+static i18n_uchar *dst = NULL;
+static int32_t src_length = -1;
+static int32_t dst_size = -1;
+static int ret = 0;
+
+static i18n_uchar_direction_e new_class_cb(const void* context, i18n_uchar32 c)
+{
+    i18n_uchar_direction_e custom_classes[] = {
+            R, R, R, R, R, R, R, R,
+            L, L, L, L, L, L, L, L
+            };
+
+    return c >= 16 ? I18N_UBIDI_CLASS_DEFAULT : custom_classes[c];
+}
+
+static i18n_uchar_direction_e old_class_cb(const void* context, i18n_uchar32 c)
+{
+    i18n_uchar_direction_e custom_classes[] = {
+            R, L
+            };
+
+    return c >= 2 ? I18N_UBIDI_CLASS_DEFAULT : custom_classes[c];
+}
+
+static int32_t get_uchar_length(const char *arr)
+{
+    int32_t ulen = strlen(arr);
+    i18n_uchar _text[ulen + 1];
+    i18n_ustring_copy_ua(_text, arr);
+
+    return i18n_ustring_get_length(_text);
+}
+
+/**
+ * @function        utc_capi_base_utils_ubidi_startup
+ * @description     Called before each test
+ * @parameter       NA
+ * @return          NA
+ */
+void utc_capi_base_utils_ubidi_startup(void)
+{
+    ret = i18n_ubidi_create(&ubidi);
+
+    char test_string[] = "<Paragraph1> <اختبار> paragraph1\n"
+                         "<Paragraph2> <اختبار> paragraph2";
+
+    src_length = get_uchar_length(test_string);
+
+    src = (i18n_uchar *) malloc(sizeof(i18n_uchar) * (src_length + 1));
+    i18n_ustring_copy_ua(src, test_string);
+
+    dst_size = src_length + 1;
+    dst = (i18n_uchar *) malloc(sizeof(i18n_uchar) * (dst_size));
+
+    ret |= i18n_ubidi_set_para(ubidi, src, src_length, I18N_UBIDI_DEFAULT_LTR, NULL);
+    ret |= i18n_ubidi_set_reordering_options(ubidi, I18N_UBIDI_OPTION_DEFAULT);
+    ret |= i18n_ubidi_set_reordering_mode(ubidi, I18N_UBIDI_REORDER_DEFAULT);
+    ret |= i18n_ubidi_set_class_cb(ubidi, old_class_cb, NULL, NULL, NULL);
+}
+
+/**
+ * @function        utc_capi_base_utils_ubidi_cleanup
+ * @description     Called after each test
+ * @parameter       NA
+ * @return          NA
+ */
+void utc_capi_base_utils_ubidi_cleanup(void)
+{
+    if(ubidi != NULL)
+    {
+        i18n_ubidi_destroy(ubidi);
+        ubidi = NULL;
+    }
+    if(ubidi_line != NULL)
+    {
+        i18n_ubidi_destroy(ubidi_line);
+        ubidi_line = NULL;
+    }
+
+    free(src);
+    src = NULL;
+
+    free(dst);
+    dst = NULL;
+
+    free(prologue);
+    prologue = NULL;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reverse_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reverse and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reverse_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    uint16_t options = I18N_UBIDI_DO_MIRRORING;
+
+    int32_t output_length = -1;
+    ret = i18n_ubidi_write_reverse(src, src_length, options, dst_size,
+                                   dst, &output_length);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_neq(output_length, -1);
+
+    char tmp[BUFLEN];
+    i18n_ustring_copy_au(tmp, dst);
+    int cmp = strcmp(tmp, "2hpargarap <رابتخا> <2hpargaraP>\n"
+                          "1hpargarap <رابتخا> <1hpargaraP>");
+
+    assert_eq(cmp, 0);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reverse_p2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reverse and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reverse_p2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    int32_t output_length = -1;
+    ret = i18n_ubidi_write_reverse(src, src_length, options, dst_size,
+                                   dst, &output_length);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_neq(output_length, -1);
+
+    char tmp[BUFLEN];
+    i18n_ustring_copy_au(tmp, dst);
+    int cmp = strcmp(tmp, "2hpargarap >رابتخا< >2hpargaraP<\n"
+                          "1hpargarap >رابتخا< >1hpargaraP<");
+
+    assert_eq(cmp, 0);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reverse_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reverse passing invalid src and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reverse_n(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_uchar *src = NULL; // Invalid parameter
+
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    int32_t output_length = -1;
+
+    ret = i18n_ubidi_write_reverse(src, src_length, options, dst_size,
+                                   dst, &output_length);
+
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reverse_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reverse passing invalid src_length and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reverse_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t invalid_src_length = -2; // Invalid parameter
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    int32_t output_length = -1;
+
+    ret = i18n_ubidi_write_reverse(src, invalid_src_length, options, dst_size,
+                                   dst, &output_length);
+
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reverse_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reverse passing invalid dst_size and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reverse_n3(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t dst_size = -2; // Invalid parameter
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    int32_t output_length = -1;
+
+    ret = i18n_ubidi_write_reverse(src, src_length, options, dst_size,
+                                   dst, &output_length);
+
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reverse_n4
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reverse passing invalid dst and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reverse_n4(void)
+{
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    int32_t output_length = -1;
+
+    ret = i18n_ubidi_write_reverse(src, src_length, options, dst_size,
+                                   NULL, &output_length);
+
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reverse_n5
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reverse passing invalid output_length and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reverse_n5(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    ret = i18n_ubidi_write_reverse(src, src_length, dst_size, options,
+                                   dst, NULL);
+
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reordered_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reordered and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reordered_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    int32_t output_length = -1;
+
+    ret = i18n_ubidi_write_reordered(ubidi, options, dst_size,
+                                     dst, &output_length);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(output_length, src_length);
+
+    char tmp[BUFLEN];
+    i18n_ustring_copy_au(tmp, dst);
+    int cmp = strcmp(tmp, "<Paragraph1> <رابتخا> paragraph1\n"
+                          "<Paragraph2> <رابتخا> paragraph2");
+
+    assert_eq(cmp, 0);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reordered_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reordered passing invalid ubidi and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reordered_n(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    int32_t output_length = -1;
+
+    ret = i18n_ubidi_write_reordered(ubidi, options, dst_size,
+                                     dst, &output_length);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reordered_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reordered passing invalid dst_size and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reordered_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t dst_size = -2; // Invalid parameter
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    int32_t output_length = -1;
+
+    ret = i18n_ubidi_write_reordered(ubidi, options, dst_size,
+                                     dst, &output_length);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reordered_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reordered passing invalid dst and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reordered_n3(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_uchar *dst = NULL; // Invalid parameter
+
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    int32_t output_length = -1;
+
+    ret = i18n_ubidi_write_reordered(ubidi, options, dst_size,
+                                     dst, &output_length);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_write_reordered_n4
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_write_reordered passing invalid output_length and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_write_reordered_n4(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    ret = i18n_ubidi_write_reordered(ubidi, options, dst_size,
+                                     dst, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_reordering_options_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_reordering_options and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_reordering_options_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_reordering_option_e options = I18N_UBIDI_OPTION_INSERT_MARKS;
+    ret = i18n_ubidi_get_reordering_options(ubidi, &options);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(options, I18N_UBIDI_OPTION_DEFAULT);
+
+    ret = i18n_ubidi_set_reordering_options(ubidi, I18N_UBIDI_OPTION_INSERT_MARKS);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    options = I18N_UBIDI_OPTION_DEFAULT;
+    ret = i18n_ubidi_get_reordering_options(ubidi, &options);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(options, I18N_UBIDI_OPTION_INSERT_MARKS);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_reordering_options_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_reordering_options passing invalid ubidi and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_reordering_options_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    uint32_t reordering_options = 0;
+
+    ret = i18n_ubidi_set_reordering_options(ubidi, reordering_options);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_reordering_mode_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_reordering_mode and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_reordering_mode_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_reordering_mode_e mode = I18N_UBIDI_REORDER_NUMBERS_SPECIAL;
+
+    ret = i18n_ubidi_get_reordering_mode(ubidi, &mode);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(mode, I18N_UBIDI_REORDER_DEFAULT);
+
+    ret = i18n_ubidi_set_reordering_mode(ubidi, I18N_UBIDI_REORDER_NUMBERS_SPECIAL);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    mode = I18N_UBIDI_REORDER_DEFAULT;
+
+    ret = i18n_ubidi_get_reordering_mode(ubidi, &mode);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(mode, I18N_UBIDI_REORDER_NUMBERS_SPECIAL);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_reordering_mode_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_reordering_mode passing invalid ubidi and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_reordering_mode_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    i18n_ubidi_reordering_mode_e reordering_mode = I18N_UBIDI_REORDER_DEFAULT;
+
+    ret = i18n_ubidi_set_reordering_mode(ubidi, reordering_mode);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_para_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_para and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_para_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    char test_text[] = "<Test> <اختبار> test";
+
+    /* Create new text */
+    int32_t text_length = get_uchar_length(test_text);
+    i18n_uchar text[text_length + 1];
+    i18n_ustring_copy_ua(text, test_text);
+
+    ret = i18n_ubidi_set_para(ubidi, text, text_length, I18N_UBIDI_DEFAULT_LTR, NULL);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    /* Check if the text was set. */
+    char *ret_text = NULL;
+    ret = i18n_ubidi_get_text(ubidi, &ret_text);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_neq(ret_text, NULL);
+
+    int cmp = strcmp(ret_text, test_text);
+    assert_eq(cmp, 0);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_para_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_para passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_para_n(void)
+{
+    char test_text[] = "<Test> <اختبار> test";
+
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t text_length = get_uchar_length(test_text);
+    i18n_uchar text[text_length + 1];
+    i18n_ustring_copy_ua(text, test_text);
+
+    i18n_ubidi_level_t para_level = 0;
+
+    ret = i18n_ubidi_set_para(ubidi, text, text_length, para_level, NULL);
+
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_para_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_para passing invalid text and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_para_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_uchar *text = NULL;
+    int text_length = 0;
+
+    i18n_ubidi_level_t para_level = 0;
+
+    ret = i18n_ubidi_set_para(ubidi, text, text_length, para_level, NULL);
+
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_para_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_para passing invalid length and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_para_n3(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    char test_text[] = "<Test> <اختبار> test";
+
+    int32_t text_length = get_uchar_length(test_text);
+    i18n_uchar text[text_length + 1];
+    i18n_ustring_copy_ua(text, test_text);
+
+    text_length = -2;
+
+    i18n_ubidi_level_t para_level = 0;
+
+    ret = i18n_ubidi_set_para(ubidi, text, text_length, para_level, NULL);
+
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_line_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_line and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_line_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+    i18n_ubidi_level_t valid_levels[] = {0, 0, 0, 0, 1, 1};
+
+    ret = i18n_ubidi_create(&ubidi_line);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_set_line(ubidi, 10, 16, ubidi_line);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t processed_length = 0;
+    ret = i18n_ubidi_get_processed_length(ubidi_line, &processed_length);
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(processed_length, 6);
+
+    const i18n_ubidi_level_t *levels = NULL;
+    ret = i18n_ubidi_get_levels(ubidi_line, &levels);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int i;
+    for(i = 0; i < processed_length; ++i)
+    {
+        assert_eq(levels[i], valid_levels[i]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_line_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_line passing invalid ubidi and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_line_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t start = 0;
+    int32_t limit = 1;
+
+    i18n_ubidi_h ubidi_line = NULL;
+    ret = i18n_ubidi_create(&ubidi_line);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_set_line(ubidi, start, limit, ubidi_line);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_line_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_line passing invalid start and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_line_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t start = -1; // Invalid parameter
+    int32_t limit = 1;
+
+    i18n_ubidi_h ubidi_line = NULL;
+    ret = i18n_ubidi_create(&ubidi_line);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_set_line(ubidi, start, limit, ubidi_line);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_line_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_line passing invalid limit and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_line_n3(void)
+{
+    int32_t start = 0;
+    int32_t limit = -1; // Invalid parameter
+
+    i18n_ubidi_h ubidi_line = NULL;
+    ret = i18n_ubidi_create(&ubidi_line);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_set_line(ubidi, start, limit, ubidi_line);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_line_n4
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_line passing invalid limit (equal to start)
+ *              and checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_line_n4(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t start = 10;
+
+    /* limit is equal to start parameter */
+    int32_t limit = 10;
+
+    i18n_ubidi_h ubidi_line = NULL;
+    ret = i18n_ubidi_create(&ubidi_line);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_set_line(ubidi, start, limit, ubidi_line);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_line_n5
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_line passing invalid limit (lower than start)
+ *              and checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_line_n5(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t start = 10;
+
+    /* limit is lower than start parameter */
+    int32_t limit = 5;
+
+    i18n_ubidi_h ubidi_line = NULL;
+    ret = i18n_ubidi_create(&ubidi_line);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_set_line(ubidi, start, limit, ubidi_line);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_line_n6
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_line passing invalid limit
+ *              (greater than ubidi processed length) and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_line_n6(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t start = 0;
+
+    /* limit is greater than ubidi processed length */
+    int32_t limit = 80;
+
+    i18n_ubidi_h ubidi_line = NULL;
+    ret = i18n_ubidi_create(&ubidi_line);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_set_line(ubidi, start, limit, ubidi_line);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_line_n7
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_line passing invalid ubidi_line and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_line_n7(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t start = 0;
+    int32_t limit = 1;
+
+    i18n_ubidi_h ubidi_line = NULL; // Invalid parameter
+
+    ret = i18n_ubidi_set_line(ubidi, start, limit, ubidi_line);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_inverse_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_inverse and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_inverse_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubool is_inverse = true;
+    ret = i18n_ubidi_set_inverse(ubidi, is_inverse);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    is_inverse = false;
+    ret = i18n_ubidi_is_inverse(ubidi, &is_inverse);
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(is_inverse, true);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_inverse_p2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_inverse and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_inverse_p2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubool is_inverse = false;
+    ret = i18n_ubidi_set_inverse(ubidi, is_inverse);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    is_inverse = true;
+    ret = i18n_ubidi_is_inverse(ubidi, &is_inverse);
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(is_inverse, false);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_inverse_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_inverse passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_inverse_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+    i18n_ubool is_inverse = true;
+
+    ret = i18n_ubidi_set_inverse(ubidi, is_inverse);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_context_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_context with the prologue in Arabic
+ *              and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_context_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    char test_prologue[] = "اختبار";
+
+    int32_t pro_length = get_uchar_length(test_prologue);
+    prologue = (i18n_uchar *) malloc(sizeof(i18n_uchar) * (pro_length + 1));
+    i18n_ustring_copy_ua(prologue, test_prologue);
+
+    ret = i18n_ubidi_set_context(ubidi, prologue, pro_length, NULL, 0);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    /* Create new text */
+    char test_text[] = "<Test> <اختبار> test";
+
+    int32_t text_length = get_uchar_length(test_text);
+    i18n_uchar text[text_length + 1];
+    i18n_ustring_copy_ua(text, test_text);
+
+    ret = i18n_ubidi_set_para(ubidi, text, text_length, I18N_UBIDI_DEFAULT_LTR, NULL);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t dst_size = text_length + 1;
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    int32_t output_length = -1;
+
+    ret = i18n_ubidi_write_reordered(ubidi, options, dst_size,
+                                     dst, &output_length);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    char tmp[BUFLEN];
+    i18n_ustring_copy_au(tmp, dst);
+    int cmp = strcmp(tmp, "test >رابتخا< >Test<");
+
+    assert_eq(cmp, 0);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_context_p2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_context with the prologue in English
+ *              and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_context_p2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    char test_prologue[] = "Test";
+
+    int32_t pro_length = get_uchar_length(test_prologue);
+    prologue = (i18n_uchar *) malloc(sizeof(i18n_uchar) * (pro_length + 1));
+    i18n_ustring_copy_ua(prologue, test_prologue);
+
+    ret = i18n_ubidi_set_context(ubidi, prologue, pro_length, NULL, 0);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    /* Create new text */
+    char test_text[] = "<Test> <اختبار> test";
+
+    int32_t text_length = get_uchar_length(test_text);
+    i18n_uchar text[text_length + 1];
+    i18n_ustring_copy_ua(text, test_text);
+
+    ret = i18n_ubidi_set_para(ubidi, text, text_length, I18N_UBIDI_DEFAULT_LTR, NULL);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t dst_size = text_length + 1;
+    uint16_t options = I18N_UBIDI_KEEP_BASE_COMBINING;
+
+    int32_t output_length = -1;
+
+    ret = i18n_ubidi_write_reordered(ubidi, options, dst_size,
+                                     dst, &output_length);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    char tmp[BUFLEN];
+    i18n_ustring_copy_au(tmp, dst);
+    int cmp = strcmp(tmp, "<Test> <رابتخا> test");
+
+    assert_eq(cmp, 0);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_context_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_context passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_context_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t pro_length = 0;
+    int32_t epi_length = 0;
+
+    ret = i18n_ubidi_set_context(ubidi, NULL, pro_length, NULL, epi_length);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_context_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_context passing invalid prologue and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_context_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t pro_length = 1; // Invalid parameter
+    int32_t epi_length = 0;
+
+    ret = i18n_ubidi_set_context(ubidi, NULL, pro_length, NULL, epi_length);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_context_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_context passing invalid pro_length and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_context_n3(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+    prologue = (i18n_uchar *) malloc(sizeof(i18n_uchar) * (BUFLEN));
+    i18n_ustring_copy_ua(prologue, "Prologue");
+
+    int32_t pro_length = -2; // Invalid parameter
+    int32_t epi_length = 0;
+
+    ret = i18n_ubidi_set_context(ubidi, prologue, pro_length, NULL, epi_length);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_context_n4
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_context passing invalid epilogue and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_context_n4(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t pro_length = 0;
+    int32_t epi_length = 1; // Invalid parameter
+
+    ret = i18n_ubidi_set_context(ubidi, NULL, pro_length, NULL, epi_length);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_context_n5
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_context passing invalid epi_length and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_context_n5(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t pro_length = 0;
+    i18n_uchar *epilogue = (i18n_uchar *) malloc(sizeof(i18n_uchar) * (BUFLEN));
+    i18n_ustring_copy_ua(epilogue, "Epilogue");
+
+    int32_t epi_length = -2; // Invalid parameter
+
+    ret = i18n_ubidi_set_context(ubidi, NULL, pro_length, epilogue, epi_length);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_class_cb_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_class_cb and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_class_cb_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_class_cb new_fn = new_class_cb;
+
+    i18n_ubidi_class_cb old_fn = NULL;
+
+    ret = i18n_ubidi_set_class_cb(ubidi, new_fn, NULL, &old_fn, NULL);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    assert_neq(old_fn, NULL);
+    assert_eq(old_fn, old_class_cb);
+
+    i18n_ubidi_class_cb ret_fn = NULL;
+    const void *context = NULL;
+
+    ret = i18n_ubidi_get_class_cb(ubidi, &ret_fn, &context);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    assert_neq(ret_fn, NULL);
+    assert_eq(ret_fn, new_fn);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_class_cb_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_class_cb passing invalid ubidi and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_class_cb_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    i18n_ubidi_class_cb new_fn = new_class_cb;
+
+    ret = i18n_ubidi_set_class_cb(ubidi, new_fn, NULL, NULL, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_set_class_cb_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_set_class_cb passing invalid new_fn and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_set_class_cb_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_class_cb new_fn = NULL; // Invalid parameter
+
+    ret = i18n_ubidi_set_class_cb(ubidi, new_fn, NULL, NULL, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_reorder_visual_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_reorder_visual and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_reorder_visual_p(void)
+{
+    i18n_ubidi_level_t levels[] = {1, 1, 1, 1, 0, 0, 0, 1, 1, 1};
+    int32_t length = 10;
+    int32_t valid_index_map[] = {3, 2, 1, 0, 4, 5, 6, 9, 8, 7};
+
+    int32_t index_map[length + 1];
+
+    ret = i18n_ubidi_reorder_visual(levels, length, index_map);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int i;
+    for(i = 0; i < length; ++i)
+    {
+        assert_eq(index_map[i], valid_index_map[i]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_reorder_visual_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_reorder_visual passing invalid levels and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_reorder_visual_n(void)
+{
+    int32_t length = 10;
+    int32_t index_map[length + 1];
+
+    ret = i18n_ubidi_reorder_visual(NULL, length, index_map);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_reorder_visual_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_reorder_visual passing invalid length and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_reorder_visual_n2(void)
+{
+    i18n_ubidi_level_t levels[] = {1, 1, 1, 1, 0, 0, 0, 1, 1, 1};
+    int32_t valid_length = 10;
+    int32_t length = -2; // Invalid parameter
+
+    int32_t index_map[valid_length + 1];
+
+    ret = i18n_ubidi_reorder_visual(levels, length, index_map);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_reorder_visual_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_reorder_visual passing invalid index_map and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_reorder_visual_n3(void)
+{
+    i18n_ubidi_level_t levels[] = {1, 1, 1, 1, 0, 0, 0, 1, 1, 1};
+    int32_t length = 10;
+
+    ret = i18n_ubidi_reorder_visual(levels, length, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_reorder_logical_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_reorder_logical and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_reorder_logical_p(void)
+{
+    i18n_ubidi_level_t levels[] = {1, 1, 1, 1, 0, 0, 0, 1, 1, 1};
+    int32_t length = 10;
+    int32_t valid_index_map[] = {3, 2, 1, 0, 4, 5, 6, 9, 8, 7};
+
+    int32_t index_map[length + 1];
+
+    ret = i18n_ubidi_reorder_logical(levels, length, index_map);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int i;
+    for(i = 0; i < length; ++i)
+    {
+        assert_eq(index_map[i], valid_index_map[i]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_reorder_logical_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_reorder_logical passing invalid levels and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_reorder_logical_n(void)
+{
+    int32_t length = 10;
+    int32_t index_map[length + 1];
+
+    ret = i18n_ubidi_reorder_logical(NULL, length, index_map);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_reorder_logical_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_reorder_logical passing invalid length and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_reorder_logical_n2(void)
+{
+    i18n_ubidi_level_t levels[] = {1, 1, 1, 1, 0, 0, 0, 1, 1, 1};
+
+    int32_t length = -2; // Invalid parameter
+    int32_t valid_length = 10;
+    int32_t index_map[valid_length + 1];
+
+    ret = i18n_ubidi_reorder_logical(levels, length, index_map);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_reorder_logical_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_reorder_logical passing invalid index_map and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_reorder_logical_n3(void)
+{
+    i18n_ubidi_level_t levels[] = {1, 1, 1, 1, 0, 0, 0, 1, 1, 1};
+
+    int32_t length = 10;
+
+    ret = i18n_ubidi_reorder_logical(levels, length, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_order_paragraphs_ltr and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubool ret_order_paragraph_ltr = true;
+    ret = i18n_ubidi_is_order_paragraphs_ltr(ubidi, &ret_order_paragraph_ltr);
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(ret_order_paragraph_ltr, false);
+
+    i18n_ubool order_paragraph_ltr = true;
+
+    ret = i18n_ubidi_order_paragraphs_ltr(ubidi, order_paragraph_ltr);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int src_length = i18n_ustring_get_length(src);
+    ret = i18n_ubidi_set_para(ubidi, src, src_length, I18N_UBIDI_DEFAULT_RTL, NULL);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret_order_paragraph_ltr = false;
+    ret = i18n_ubidi_is_order_paragraphs_ltr(ubidi, &ret_order_paragraph_ltr);
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(ret_order_paragraph_ltr, true);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_order_paragraphs_ltr passing invalid ubidi and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_order_paragraphs_ltr_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    i18n_ubool order_paragraph_ltr = true;
+
+    ret = i18n_ubidi_order_paragraphs_ltr(ubidi, order_paragraph_ltr);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_create_sized_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_create_sized and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_create_sized_p(void)
+{
+    int32_t max_length = 10;
+    int32_t max_run_count = 3;
+
+    i18n_ubidi_h ubidi = NULL;
+    ret = i18n_ubidi_create_sized(max_length, max_run_count, &ubidi);
+
+    assert_neq(ubidi, NULL);
+    i18n_ubidi_destroy(ubidi);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_create_sized_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_create_sized passing invalid max_length and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_create_sized_n(void)
+{
+    int32_t max_length = -2; // Invalid parameter
+    int32_t max_run_count = 3;
+
+    i18n_ubidi_h ubidi = NULL;
+
+    ret = i18n_ubidi_create_sized(max_length, max_run_count, &ubidi);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_create_sized_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_create_sized passing invalid max_run_count and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_create_sized_n2(void)
+{
+    int32_t max_length = 10;
+    int32_t max_run_count = -2; // Invalid parameter
+
+    i18n_ubidi_h ubidi = NULL;
+
+    ret = i18n_ubidi_create_sized(max_length, max_run_count, &ubidi);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_create_sized_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_create_sized passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_create_sized_n3(void)
+{
+    int32_t max_length = 10;
+    int32_t max_run_count = 0;
+
+    ret = i18n_ubidi_create_sized(max_length, max_run_count, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_create_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_create and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_create_p(void)
+{
+    i18n_ubidi_h ubidi = NULL;
+
+    ret = i18n_ubidi_create(&ubidi);
+
+    assert_neq(ubidi, NULL);
+    i18n_ubidi_destroy(ubidi);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_create_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_create passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_create_n(void)
+{
+    ret = i18n_ubidi_create(NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_is_order_paragraphs_ltr and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubool order_paragraph_ltr = true;
+
+    ret = i18n_ubidi_order_paragraphs_ltr(ubidi, order_paragraph_ltr);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int src_length = i18n_ustring_get_length(src);
+    ret = i18n_ubidi_set_para(ubidi, src, src_length, I18N_UBIDI_DEFAULT_LTR, NULL);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubool ret_order_paragraph_ltr = false;
+    ret = i18n_ubidi_is_order_paragraphs_ltr(ubidi, &ret_order_paragraph_ltr);
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(ret_order_paragraph_ltr, true);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_is_order_paragraphs_ltr passing invalid ubidi and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    i18n_ubool is_order = true;
+
+    ret = i18n_ubidi_is_order_paragraphs_ltr(ubidi, &is_order);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_is_order_paragraphs_ltr passing invalid is_order and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_is_order_paragraphs_ltr_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_is_order_paragraphs_ltr(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_is_inverse_p
+ * @since_tizen 3.0
+ * @description Sets reordering mode to I18N_UBIDI_REORDER_INVERSE_NUMBERS_AS_L,
+ *              calls i18n_ubidi_is_inverse and checks whether is_inverse is true.
+ */
+int utc_capi_base_utils_i18n_ubidi_is_inverse_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_reordering_mode_e mode = I18N_UBIDI_REORDER_INVERSE_NUMBERS_AS_L;
+    ret = i18n_ubidi_set_reordering_mode(ubidi, mode);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubool is_inverse = false;
+    ret = i18n_ubidi_is_inverse(ubidi, &is_inverse);
+    assert_eq(is_inverse, true);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_is_inverse_p2
+ * @since_tizen 3.0
+ * @description Sets reordering mode to I18N_UBIDI_REORDER_DEFAULT,
+ *              calls i18n_ubidi_is_inverse and checks whether is_inverse is false.
+ */
+int utc_capi_base_utils_i18n_ubidi_is_inverse_p2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_reordering_mode_e mode = I18N_UBIDI_REORDER_DEFAULT;
+    ret = i18n_ubidi_set_reordering_mode(ubidi, mode);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubool is_inverse = true;
+    ret = i18n_ubidi_is_inverse(ubidi, &is_inverse);
+    assert_eq(is_inverse, false);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_is_inverse_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_is_inverse passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_is_inverse_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    i18n_ubool is_inverse = false;
+
+    ret = i18n_ubidi_is_inverse(ubidi, &is_inverse);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_is_inverse_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_is_inverse passing invalid is_inverse and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_is_inverse_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_is_inverse(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_invert_map_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_invert_map and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_invert_map_p(void)
+{
+    int32_t length = 10;
+    int32_t src_map[] = {0, 1, 11, 12, 6, 5, 4, 13, 9, -1};
+    int32_t valid_dst_map[] = {0, 1, -1, -1, 6, 5, 4, -1, -1, 8, -1, 2, 3, 7};
+
+    int32_t dst_length = 14;
+    int32_t dst_map[dst_length+1];
+
+    ret = i18n_ubidi_invert_map(src_map, length, dst_map);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int i;
+    for(i = 0; i < dst_length; ++i)
+    {
+        assert_eq(dst_map[i], valid_dst_map[i]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_invert_map_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_invert_map passing invalid src_map and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_invert_map_n(void)
+{
+    int32_t dst_length = 14;
+    int32_t dst_map[dst_length+1];
+    int32_t length = 10;
+
+    ret = i18n_ubidi_invert_map(NULL, length, dst_map);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_invert_map_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_invert_map passing invalid length and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_invert_map_n2(void)
+{
+    int32_t src_map[] = {0, 1, 11, 12, 6, 5, 4, 13, 9, -1};
+    int32_t dst_length = 14;
+    int32_t dst_map[dst_length+1];
+    int32_t length = -2; // Invalid parameter
+
+    ret = i18n_ubidi_invert_map(src_map, length, dst_map);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_invert_map_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_invert_map passing invalid dst_map and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_invert_map_n3(void)
+{
+    int32_t src_map[] = {0, 1, 11, 12, 6, 5, 4, 13, 9, -1};;
+    int32_t length = 10;
+
+    ret = i18n_ubidi_invert_map(src_map, length, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_visual_run_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_visual_run and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_visual_run_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int logical_ind[] = {0, 14, 20, 47, 53};
+    int length[] = {14, 6, 27, 6, 12};
+    i18n_ubidi_direction_e dir[] = {I18N_UBIDI_LTR, I18N_UBIDI_RTL,
+            I18N_UBIDI_LTR, I18N_UBIDI_RTL, I18N_UBIDI_LTR};
+
+    int runs_counter = -1;
+    ret = i18n_ubidi_count_runs(ubidi, &runs_counter);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t run_index;
+    for(run_index = 0; run_index < runs_counter; ++run_index)
+    {
+        int32_t p_logical_index = -1;
+        int32_t p_length = -1;
+        i18n_ubidi_direction_e direction = I18N_UBIDI_MIXED;
+
+        ret = i18n_ubidi_get_visual_run(ubidi, run_index, &p_logical_index, &p_length, &direction);
+
+        assert_eq(p_logical_index, logical_ind[run_index]);
+        assert_eq(p_length, length[run_index]);
+        assert_eq(direction, dir[run_index]);
+        assert_eq(ret, I18N_ERROR_NONE);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_visual_run_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_visual_run passing invalid ubidi and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_visual_run_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t run_index = 0;
+    i18n_ubidi_direction_e direction = I18N_UBIDI_LTR;
+
+    ret = i18n_ubidi_get_visual_run(ubidi, run_index, NULL, NULL, &direction);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_visual_run_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_visual_run passing invalid run_index and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_visual_run_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t run_index = -2; //Invalid parameter
+    i18n_ubidi_direction_e direction = I18N_UBIDI_LTR;
+
+    ret = i18n_ubidi_get_visual_run(ubidi, run_index, NULL, NULL, &direction);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_visual_run_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_visual_run passing invalid direction and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_visual_run_n3(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t run_index = 0;
+
+    ret = i18n_ubidi_get_visual_run(ubidi, run_index, NULL, NULL, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_visual_map_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_visual_map and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_visual_map_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t valid_map[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+                           19, 18, 17, 16, 15, 14,
+                           20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+                           32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+                           44, 45, 46,
+                           52, 51, 50, 49, 48, 47,
+                           53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64};
+
+    int32_t length = -1;
+    ret = i18n_ubidi_get_result_length(ubidi, &length);
+    assert_eq(ret, I18N_ERROR_NONE);
+    int32_t index_map[length];
+
+    ret = i18n_ubidi_get_visual_map(ubidi, index_map);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    int i;
+    for(i = 0; i < length; ++i)
+    {
+        assert_eq(index_map[i], valid_map[i]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_visual_map_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_visual_map passing invalid ubidi and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_visual_map_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t length = 1;
+    int32_t index_map[length];
+
+    ret = i18n_ubidi_get_visual_map(ubidi, index_map);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_visual_map_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_visual_map passing invalid index_map and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_visual_map_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_get_visual_map(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_visual_index_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_visual_index and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_visual_index_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t valid_map[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+                           19, 18, 17, 16, 15, 14,
+                           20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+                           32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+                           44, 45, 46,
+                           52, 51, 50, 49, 48, 47,
+                           53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64};
+
+    int32_t length = -1;
+    ret = i18n_ubidi_get_result_length(ubidi, &length);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int i;
+    for(i = 0; i < length; ++i)
+    {
+        int32_t visual_index = -1;
+        ret = i18n_ubidi_get_visual_index(ubidi, i, &visual_index);
+        assert_eq(ret, I18N_ERROR_NONE);
+        assert_eq(visual_index, valid_map[i]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_visual_index_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_visual_index passing invalid ubidi and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_visual_index_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t logical_index = 0;
+
+    int32_t visual_index = -1;
+
+    ret = i18n_ubidi_get_visual_index(ubidi, logical_index, &visual_index);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_visual_index_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_visual_index passing invalid logical_index and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_visual_index_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t logical_index = -2; // Invalid parameter
+
+    int32_t visual_index = -1;
+
+    ret = i18n_ubidi_get_visual_index(ubidi, logical_index, &visual_index);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_visual_index_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_visual_index passing invalid visual_index and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_visual_index_n3(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t logical_index = 0;
+
+    ret = i18n_ubidi_get_visual_index(ubidi, logical_index, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_text_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_text and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_text_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    char *text = NULL;
+
+    ret = i18n_ubidi_get_text(ubidi, &text);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int cmp = strcmp(text, "<Paragraph1> <اختبار> paragraph1\n"
+                           "<Paragraph2> <اختبار> paragraph2");
+    assert_eq(cmp, 0);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_text_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_text passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_text_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    char *text = NULL;
+
+    ret = i18n_ubidi_get_text(ubidi, &text);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_text_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_text passing invalid text and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_text_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_get_text(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_text_n3
+ * @since_tizen 3.0
+ * @description Creates ubidi without text and calls i18n_ubidi_get_text for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_text_n3(void)
+{
+    i18n_ubidi_h ubidi = NULL;
+    ret = i18n_ubidi_create(&ubidi);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    char *text = NULL;
+
+    ret = i18n_ubidi_get_text(ubidi, &text);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_result_length_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_result_length and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_result_length_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t length = -1;
+
+    ret = i18n_ubidi_get_result_length(ubidi, &length);
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(length, src_length);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_result_length_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_result_length passing invalid ubidi and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_result_length_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t length = -1;
+
+    ret = i18n_ubidi_get_result_length(ubidi, &length);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_result_length_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_result_length passing invalid length and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_result_length_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_get_result_length(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_reordering_options_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_reordering_options and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_reordering_options_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_set_reordering_options(ubidi, I18N_UBIDI_OPTION_INSERT_MARKS);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_reordering_option_e options = I18N_UBIDI_OPTION_DEFAULT;
+    ret = i18n_ubidi_get_reordering_options(ubidi, &options);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(options, I18N_UBIDI_OPTION_INSERT_MARKS);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_reordering_options_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_reordering_options passing invalid ubidi and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_reordering_options_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    i18n_ubidi_reordering_option_e options = I18N_UBIDI_OPTION_DEFAULT;
+
+    ret = i18n_ubidi_get_reordering_options(ubidi, &options);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_reordering_options_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_reordering_options passing invalid options and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_reordering_options_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_get_reordering_options(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_reordering_mode_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_reordering_mode and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_set_reordering_mode(ubidi, I18N_UBIDI_REORDER_NUMBERS_SPECIAL);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_reordering_mode_e mode = I18N_UBIDI_REORDER_DEFAULT;
+
+    ret = i18n_ubidi_get_reordering_mode(ubidi, &mode);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(mode, I18N_UBIDI_REORDER_NUMBERS_SPECIAL);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_reordering_mode passing invalid ubidi and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    i18n_ubidi_reordering_mode_e mode = I18N_UBIDI_REORDER_DEFAULT;
+
+    ret = i18n_ubidi_get_reordering_mode(ubidi, &mode);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_reordering_mode passing invalid mode and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_reordering_mode_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_get_reordering_mode(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_processed_length_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_processed_length and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_processed_length_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t length = -1;
+
+    ret = i18n_ubidi_get_processed_length(ubidi, &length);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(length, src_length);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_processed_length_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_processed_length passing invalid ubidi and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_processed_length_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t length = -1;
+
+    ret = i18n_ubidi_get_processed_length(ubidi, &length);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_processed_length_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_processed_length passing invalid length and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_processed_length_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_get_processed_length(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_para_level_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_para_level and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_para_level_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_level_t level = 1;
+    ret = i18n_ubidi_get_para_level(ubidi, &level);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(level, 0);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_para_level_p2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_para_level and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_para_level_p2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    free(src);
+    char test_text[] = "اختبار paragraph1";
+    src_length = get_uchar_length(test_text);
+    src = (i18n_uchar *) malloc(sizeof(i18n_uchar) * (src_length + 1));
+    i18n_ustring_copy_ua(src, test_text);
+
+    ret = i18n_ubidi_set_para(ubidi, src, src_length, I18N_UBIDI_DEFAULT_LTR, NULL);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_level_t level = 0;
+    ret = i18n_ubidi_get_para_level(ubidi, &level);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    assert_eq(level, 1);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_para_level_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_para_level passing invalid ubidi and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_para_level_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    i18n_ubidi_level_t level = 0;
+
+    ret = i18n_ubidi_get_para_level(ubidi, &level);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_para_level_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_para_level passing invalid level and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_para_level_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_get_para_level(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_paragraph_by_index and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t valid_para_start[] = {0, 33};
+    int32_t valid_para_limit[] = {33, 65};
+    i18n_ubidi_level_t valid_para_level[] = {0, 0};
+
+    int32_t count = -1;
+    ret = i18n_ubidi_count_paragraphs(ubidi, &count);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t para_index;
+    for(para_index = 0; para_index < count; ++para_index)
+    {
+        int32_t p_para_start = -1;
+        int32_t p_para_limit = -1;
+        i18n_ubidi_level_t p_para_level = 1;
+
+        ret = i18n_ubidi_get_paragraph_by_index(ubidi, para_index, &p_para_start, &p_para_limit, &p_para_level);
+
+        assert_eq(ret, I18N_ERROR_NONE);
+        assert_eq(p_para_start, valid_para_start[para_index]);
+        assert_eq(p_para_limit, valid_para_limit[para_index]);
+        assert_eq(p_para_level, valid_para_level[para_index]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_paragraph_by_index passing invalid ubidi and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t para_index = 0;
+
+    ret = i18n_ubidi_get_paragraph_by_index(ubidi, para_index, NULL, NULL, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_paragraph_by_index passing invalid para_index
+ *              and checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_paragraph_by_index_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t para_index = -2; // Invalid parameter
+
+    ret = i18n_ubidi_get_paragraph_by_index(ubidi, para_index, NULL, NULL, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_paragraph_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_paragraph and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_paragraph_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t valid_para_start[] = {0, 33};
+    int32_t valid_para_limit[] = {33, 65};
+    i18n_ubidi_level_t valid_para_level[] = {0, 0};
+
+    int32_t length = -1;
+    ret = i18n_ubidi_get_processed_length(ubidi, &length);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t char_index;
+    for(char_index = 0; char_index < length; ++char_index)
+    {
+        int32_t paragraph_index = -1;
+        int32_t p_para_start = -1;
+        int32_t p_para_limit = -1;
+        i18n_ubidi_level_t p_para_level = 1;
+
+        ret = i18n_ubidi_get_paragraph(ubidi, char_index,
+                                       &p_para_start, &p_para_limit,
+                                       &p_para_level, &paragraph_index);
+        assert_eq(ret, I18N_ERROR_NONE);
+
+        assert_eq(p_para_start, valid_para_start[paragraph_index]);
+        assert_eq(p_para_limit, valid_para_limit[paragraph_index]);
+        assert_eq(p_para_level, valid_para_level[paragraph_index]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_paragraph_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_paragraph passing invalid ubidi and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_paragraph_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t char_index = 0;
+    int32_t paragraph_index = -1;
+
+    ret = i18n_ubidi_get_paragraph(ubidi, char_index, NULL, NULL, NULL, &paragraph_index);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_paragraph_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_paragraph passing invalid char_index and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_paragraph_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t char_index = -1; // Invalid parameter
+    int32_t paragraph_index = -1;
+
+    ret = i18n_ubidi_get_paragraph(ubidi, char_index, NULL, NULL, NULL, &paragraph_index);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_paragraph_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_paragraph passing invalid index and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_paragraph_n3(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t char_index = 0;
+
+    ret = i18n_ubidi_get_paragraph(ubidi, char_index, NULL, NULL, NULL, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_logical_run_p
+ * @since_tizen 3.0
+ * @description Calls i18n_get_logical_run and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_logical_run_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+    int valid_p_logical_position[] = {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+                                      20, 20, 20, 20, 20, 20,
+                                      47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+                                      47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
+                                      53, 53, 53, 53, 53, 53,
+                                      65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65};
+    i18n_ubidi_level_t valid_levels[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                                         1, 1, 1, 1, 1, 1,
+                                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                                         1, 1, 1, 1, 1, 1,
+                                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+    int32_t processed_length = -1;
+    ret = i18n_ubidi_get_processed_length(ubidi, &processed_length);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t logical_position;
+    for(logical_position = 0; logical_position < processed_length; ++processed_length)
+    {
+        int32_t p_logical_position = -2;
+        i18n_ubidi_level_t level = 2;
+
+        ret = i18n_ubidi_get_logical_run(ubidi, logical_position, &p_logical_position, &level);
+
+        assert_eq(ret, I18N_ERROR_NONE);
+        assert_eq(p_logical_position, valid_p_logical_position[logical_position]);
+        assert_eq(level, valid_levels[logical_position]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_logical_run_n
+ * @since_tizen 3.0
+ * @description Calls i18n_get_logical_run passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_logical_run_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t logical_position = 0;
+
+    ret = i18n_ubidi_get_logical_run(ubidi, logical_position, NULL, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_logical_map_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_logical_map and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_logical_map_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t valid_map[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+                           19, 18, 17, 16, 15, 14,
+                           20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+                           32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+                           44, 45, 46,
+                           52, 51, 50, 49, 48, 47,
+                           53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64};
+
+    int32_t length = -1;
+    ret = i18n_ubidi_get_result_length(ubidi, &length);
+    assert_eq(ret, I18N_ERROR_NONE);
+    int32_t index_map[length];
+
+    ret = i18n_ubidi_get_logical_map(ubidi, index_map);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    int i;
+    for(i = 0; i < length; ++i)
+    {
+        assert_eq(index_map[i], valid_map[i]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_logical_map_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_logical_map passing invalid ubidi and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_logical_map_n(void)
+{
+    i18n_ubidi_h invalid_ubidi = NULL; // Invalid parameter
+
+    int32_t length = -1;
+    ret = i18n_ubidi_get_result_length(ubidi, &length);
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert(length > 0);
+    int32_t index_map[length];
+
+    ret = i18n_ubidi_get_logical_map(invalid_ubidi, index_map);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_logical_map_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_logical_map passing invalid index_map and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_logical_map_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_get_logical_map(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_logical_index_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_logical_index and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_logical_index_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t valid_map[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+                           19, 18, 17, 16, 15, 14,
+                           20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
+                           32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+                           44, 45, 46,
+                           52, 51, 50, 49, 48, 47,
+                           53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64};
+
+    int32_t length = -1;
+    ret = i18n_ubidi_get_result_length(ubidi, &length);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int i;
+    for(i = 0; i < length; ++i)
+    {
+        int32_t logical_index = -1;
+        ret = i18n_ubidi_get_logical_index(ubidi, i, &logical_index);
+        assert_eq(ret, I18N_ERROR_NONE);
+        assert_eq(logical_index, valid_map[i]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_logical_index_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_logical_index passing invalid ubidi and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_logical_index_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t visual_index = 0;
+
+    int32_t logical_index = -1;
+
+    ret = i18n_ubidi_get_logical_index(ubidi, visual_index, &logical_index);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_logical_index_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_logical_index passing invalid visual_index and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_logical_index_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t visual_index = -2; // Invalid parameter
+
+    int32_t logical_index = -1;
+
+    ret = i18n_ubidi_get_logical_index(ubidi, visual_index, &logical_index);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_logical_index_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_logical_index passing invalid logical_index and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_logical_index_n3(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t visual_index = 0;
+    ret = i18n_ubidi_get_logical_index(ubidi, visual_index, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_levels_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_levels and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_levels_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_level_t valid_levels[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                                         1, 1, 1, 1, 1, 1,
+                                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                                         1, 1, 1, 1, 1, 1,
+                                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+    int32_t processed_length = -1;
+    ret = i18n_ubidi_get_processed_length(ubidi, &processed_length);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    const i18n_ubidi_level_t *levels = NULL;
+
+    ret = i18n_ubidi_get_levels(ubidi, &levels);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t char_index;
+    for(char_index = 0; char_index < processed_length; ++char_index)
+    {
+        assert_eq(levels[char_index], valid_levels[char_index]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_levels_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_levels passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_levels_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    const i18n_ubidi_level_t *levels = NULL;
+
+    ret = i18n_ubidi_get_levels(ubidi, &levels);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_levels_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_levels passing invalid level and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_levels_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_get_levels(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_level_at_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_level_at and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_level_at_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_level_t valid_levels[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                                         1, 1, 1, 1, 1, 1,
+                                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                                         1, 1, 1, 1, 1, 1,
+                                         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+
+    int32_t processed_length = -1;
+    ret = i18n_ubidi_get_processed_length(ubidi, &processed_length);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t char_index;
+    i18n_ubidi_level_t levels[processed_length];
+    for(char_index = 0; char_index < processed_length; ++char_index)
+    {
+        ret = i18n_ubidi_get_level_at(ubidi, char_index, &levels[char_index]);
+        assert_eq(ret, I18N_ERROR_NONE);
+    }
+
+    int i;
+    for(i = 0; i < processed_length; ++i)
+    {
+        assert_eq(levels[i], valid_levels[i]);
+    }
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_level_at_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_level_at passing invalid ubidi and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_level_at_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+    int32_t char_index = 0;
+
+    i18n_ubidi_level_t level = 0;
+
+    ret = i18n_ubidi_get_level_at(ubidi, char_index, &level);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_level_at_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_level_at passing invalid level and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_level_at_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t char_index = 0;
+
+    ret = i18n_ubidi_get_level_at(ubidi, char_index, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_length_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_length and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_length_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t length = -1;
+
+    ret = i18n_ubidi_get_length(ubidi, &length);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(length, src_length);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_length_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_length passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_length_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t length = -1;
+
+    ret = i18n_ubidi_get_length(ubidi, &length);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_length_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_length passing invalid length and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_length_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_get_length(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_direction_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_direction and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_direction_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_direction_e direction = I18N_UBIDI_LTR;
+
+    ret = i18n_ubidi_get_direction(ubidi, &direction);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(direction, I18N_UBIDI_MIXED);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_direction_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_direction passing invalid ubidi and checks for
+ *              an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_direction_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    i18n_ubidi_direction_e direction = I18N_UBIDI_LTR;
+
+    ret = i18n_ubidi_get_direction(ubidi, &direction);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_direction_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_direction passing invalid direction and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_direction_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_get_direction(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_customized_class_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_customized_class and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_customized_class_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_uchar32 c = 0;
+    i18n_uchar_direction_e direction = L;
+
+    ret = i18n_ubidi_get_customized_class(ubidi, c, &direction);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(direction, R);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_customized_class_p2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_customized_class and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_customized_class_p2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_uchar32 c = 1;
+    i18n_uchar_direction_e direction = R;
+
+    ret = i18n_ubidi_get_customized_class(ubidi, c, &direction);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(direction, L);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_customized_class_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_customized_class passing invalid ubidi and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_customized_class_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    i18n_uchar32 c = 0;
+
+    i18n_uchar_direction_e direction;
+
+    ret = i18n_ubidi_get_customized_class(ubidi, c, &direction);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_customized_class_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_customized_class passing invalid direction and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_customized_class_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_uchar32 c = 0;
+
+    ret = i18n_ubidi_get_customized_class(ubidi, c, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_class_cb_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_class_cb and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_class_cb_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    i18n_ubidi_class_cb new_fn = new_class_cb;
+
+    i18n_ubidi_class_cb old_fn = NULL;
+
+    ret = i18n_ubidi_set_class_cb(ubidi, new_fn, NULL, &old_fn, NULL);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    assert_neq(old_fn, NULL);
+    assert_eq(old_fn, old_class_cb);
+
+    i18n_ubidi_class_cb ret_fn = NULL;
+    const void *context = NULL;
+
+    ret = i18n_ubidi_get_class_cb(ubidi, &ret_fn, &context);
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    assert_neq(ret_fn, NULL);
+    assert_eq(ret_fn, new_fn);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_class_cb_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_class_cb passing invalid ubidi and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_class_cb_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    i18n_ubidi_class_cb fn = NULL;
+    const void *context = NULL;
+
+    ret = i18n_ubidi_get_class_cb(ubidi, &fn, &context);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_base_direction_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_base_direction and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_base_direction_p(void)
+{
+    i18n_ubidi_direction_e direction = I18N_UBIDI_LTR;
+
+    ret = i18n_ubidi_get_base_direction(src, src_length, &direction);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(direction, I18N_UBIDI_LTR);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_base_direction_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_base_direction passing invalid text and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_base_direction_n(void)
+{
+    i18n_uchar *text = NULL; // Invalid parameter
+
+    i18n_ubidi_direction_e direction = I18N_UBIDI_LTR;
+
+    ret = i18n_ubidi_get_base_direction(text, src_length, &direction);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_base_direction_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_base_direction passing invalid length and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_base_direction_n2(void)
+{
+    int32_t length = -2; // Invalid parameter
+
+    i18n_ubidi_direction_e direction = I18N_UBIDI_LTR;
+
+    ret = i18n_ubidi_get_base_direction(src, length, &direction);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_get_base_direction_n3
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_get_base_direction passing invalid direction and
+ *              checks for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_get_base_direction_n3(void)
+{
+    ret = i18n_ubidi_get_base_direction(src, src_length, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_count_runs_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_count_runs and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_count_runs_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t count = -1;
+
+    ret = i18n_ubidi_count_runs(ubidi, &count);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(count, 5);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_count_runs_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_count_runs passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_count_runs_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t count = -1;
+
+    ret = i18n_ubidi_count_runs(ubidi, &count);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_count_runs_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_count_runs passing invalid count and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_count_runs_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_count_runs(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_count_paragraphs_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_count_paragraphs and checks whether function
+ *              succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_count_paragraphs_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    int32_t count = -1;
+
+    ret = i18n_ubidi_count_paragraphs(ubidi, &count);
+
+    assert_eq(ret, I18N_ERROR_NONE);
+    assert_eq(count, 2);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_count_paragraphs_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_count_paragraphs passing invalid ubidi and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_count_paragraphs_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    int32_t count = -1;
+
+    ret = i18n_ubidi_count_paragraphs(ubidi, &count);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_count_paragraphs_n2
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_count_paragraphs passing invalid count and checks
+ *              for an invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_count_paragraphs_n2(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_count_paragraphs(ubidi, NULL);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_destroy_p
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_destroy and checks whether function succeeded.
+ */
+int utc_capi_base_utils_i18n_ubidi_destroy_p(void)
+{
+    assert_eq(ret, I18N_ERROR_NONE);
+
+    ret = i18n_ubidi_destroy(ubidi);
+    assert_eq(ret, I18N_ERROR_NONE);
+    ubidi = NULL;
+
+    return 0;
+}
+
+/**
+ * @testcase utc_capi_base_utils_i18n_ubidi_destroy_n
+ * @since_tizen 3.0
+ * @description Calls i18n_ubidi_destroy passing invalid ubidi and checks for an
+ *              invalid parameter error code.
+ */
+int utc_capi_base_utils_i18n_ubidi_destroy_n(void)
+{
+    i18n_ubidi_h ubidi = NULL; // Invalid parameter
+
+    ret = i18n_ubidi_destroy(ubidi);
+    assert_eq(ret, I18N_ERROR_INVALID_PARAMETER);
+
+    return 0;
+}
+