return 0;
}
+struct create_mu {
+ const char* unit_type;
+ const char* unit_subtype;
+ int (*fp)(i18n_measure_unit_h *measure_unit);
+};
+
+struct create_mu mu[] = {
+ {"acceleration", "g-force", i18n_measure_unit_create_g_force},
+ {"acceleration", "meter-per-second-squared", i18n_measure_unit_create_meter_per_second_squared},
+ {"angle", "arc-minute", i18n_measure_unit_create_arc_minute},
+ {"angle", "arc-second", i18n_measure_unit_create_arc_second},
+ {"angle", "degree", i18n_measure_unit_create_degree},
+ {"angle", "radian", i18n_measure_unit_create_radian},
+ {"area", "acre", i18n_measure_unit_create_acre},
+ {"area", "hectare", i18n_measure_unit_create_hectare},
+ {"area", "square-centimeter", i18n_measure_unit_create_square_centimeter},
+ {"area", "square-foot", i18n_measure_unit_create_square_foot},
+ {"area", "square-inch", i18n_measure_unit_create_square_inch},
+ {"area", "square-kilometer", i18n_measure_unit_create_square_kilometer},
+ {"area", "square-meter", i18n_measure_unit_create_square_meter},
+ {"area", "square-mile", i18n_measure_unit_create_square_mile},
+ {"area", "square-yard", i18n_measure_unit_create_square_yard},
+ {"concentr", "karat", i18n_measure_unit_create_karat},
+ {"consumption", "liter-per-kilometer", i18n_measure_unit_create_liter_per_kilometer},
+ {"consumption", "mile-per-gallon", i18n_measure_unit_create_mile_per_gallon},
+ {"digital", "bit", i18n_measure_unit_create_bit},
+ {"digital", "byte", i18n_measure_unit_create_byte},
+ {"digital", "gigabit", i18n_measure_unit_create_gigabit},
+ {"digital", "gigabyte", i18n_measure_unit_create_gigabyte},
+ {"digital", "kilobit", i18n_measure_unit_create_kilobit},
+ {"digital", "kilobyte", i18n_measure_unit_create_kilobyte},
+ {"digital", "megabit", i18n_measure_unit_create_megabit},
+ {"digital", "megabyte", i18n_measure_unit_create_megabyte},
+ {"digital", "terabit", i18n_measure_unit_create_terabit},
+ {"digital", "terabyte", i18n_measure_unit_create_terabyte},
+ {"duration", "day", i18n_measure_unit_create_day},
+ {"duration", "hour", i18n_measure_unit_create_hour},
+ {"duration", "microsecond", i18n_measure_unit_create_microsecond},
+ {"duration", "milisecond", i18n_measure_unit_create_millisecond},
+ {"duration", "minute", i18n_measure_unit_create_minute},
+ {"duration", "month", i18n_measure_unit_create_month},
+ {"duration", "nanosecond", i18n_measure_unit_create_nanosecond},
+ {"duration", "second", i18n_measure_unit_create_second},
+ {"duration", "week", i18n_measure_unit_create_week},
+ {"duration", "year", i18n_measure_unit_create_year},
+ {"electric", "ampere", i18n_measure_unit_create_ampere},
+ {"electric", "miliampere", i18n_measure_unit_create_milliampere},
+ {"electric", "ohm", i18n_measure_unit_create_ohm},
+ {"electric", "volt", i18n_measure_unit_create_volt},
+ {"energy", "calorie", i18n_measure_unit_create_calorie},
+ {"energy", "foodcalorie", i18n_measure_unit_create_foodcalorie},
+ {"energy", "joule", i18n_measure_unit_create_joule},
+ {"energy", "kilocalorie", i18n_measure_unit_create_kilocalorie},
+ {"energy", "kilojoule", i18n_measure_unit_create_kilojoule},
+ {"energy", "kilowatt-hour", i18n_measure_unit_create_kilowatt_hour},
+ {"frequency", "gigahertz", i18n_measure_unit_create_gigahertz},
+ {"frequency", "hertz", i18n_measure_unit_create_hertz},
+ {"frequency", "kilohertz", i18n_measure_unit_create_kilohertz},
+ {"frequency", "megahertz", i18n_measure_unit_create_megahertz},
+ {"length", "astronomical-unit", i18n_measure_unit_create_astronomical_unit},
+ {"length", "centimeter", i18n_measure_unit_create_centimeter},
+ {"length", "decimeter", i18n_measure_unit_create_decimeter},
+ {"length", "fathom", i18n_measure_unit_create_fathom},
+ {"length", "foot", i18n_measure_unit_create_foot},
+ {"length", "furlong", i18n_measure_unit_create_furlong},
+ {"length", "inch", i18n_measure_unit_create_inch},
+ {"length", "kilometer", i18n_measure_unit_create_kilometer},
+ {"length", "light-year", i18n_measure_unit_create_light_year},
+ {"length", "meter", i18n_measure_unit_create_meter},
+ {"length", "micrometer", i18n_measure_unit_create_micrometer},
+ {"length", "mile", i18n_measure_unit_create_mile},
+ {"length", "millimeter", i18n_measure_unit_create_millimeter},
+ {"length", "nanometer", i18n_measure_unit_create_nanometer},
+ {"length", "nautical-mile", i18n_measure_unit_create_nautical_mile},
+ {"length", "parsec", i18n_measure_unit_create_parsec},
+ {"length", "picometer", i18n_measure_unit_create_picometer},
+ {"length", "yard", i18n_measure_unit_create_yard},
+ {"light", "lux", i18n_measure_unit_create_lux},
+ {"mass", "carat", i18n_measure_unit_create_carat},
+ {"mass", "gram", i18n_measure_unit_create_gram},
+ {"mass", "kilogram", i18n_measure_unit_create_kilogram},
+ {"mass", "metric-ton", i18n_measure_unit_create_metric_ton},
+ {"mass", "microgram", i18n_measure_unit_create_microgram},
+ {"mass", "milligram", i18n_measure_unit_create_milligram},
+ {"mass", "ounce-troy", i18n_measure_unit_create_ounce_troy},
+ {"mass", "ounce", i18n_measure_unit_create_ounce},
+ {"mass", "pound", i18n_measure_unit_create_pound},
+ {"mass", "stone", i18n_measure_unit_create_stone},
+ {"mass", "ton", i18n_measure_unit_create_ton},
+ {"power", "gigawatt", i18n_measure_unit_create_gigawatt},
+ {"power", "horsepower", i18n_measure_unit_create_horsepower},
+ {"power", "kilowatt", i18n_measure_unit_create_kilowatt},
+ {"power", "megawatt", i18n_measure_unit_create_megawatt},
+ {"power", "milliwatt", i18n_measure_unit_create_milliwatt},
+ {"power", "watt", i18n_measure_unit_create_watt},
+ {"pressure", "hectopascal", i18n_measure_unit_create_hectopascal},
+ {"pressure", "inch-hg", i18n_measure_unit_create_inch_hg},
+ {"pressure", "millibar", i18n_measure_unit_create_millibar},
+ {"pressure", "millimeter-of-mercury", i18n_measure_unit_create_millimeter_of_mercury},
+ {"pressure", "pound-per-square-inch", i18n_measure_unit_create_pound_per_square_inch},
+ {"speed", "kilometer-per-hour", i18n_measure_unit_create_kilometer_per_hour},
+ {"speed", "meter-per-second", i18n_measure_unit_create_meter_per_second},
+ {"speed", "mile-per-hour", i18n_measure_unit_create_mile_per_hour},
+ {"temperature", "celsius", i18n_measure_unit_create_celsius},
+ {"temperature", "fahrenheit", i18n_measure_unit_create_fahrenheit},
+ {"temperature", "kelvin", i18n_measure_unit_create_kelvin},
+ {"volume", "acre-foot", i18n_measure_unit_create_acre_foot},
+ {"volume", "bushel", i18n_measure_unit_create_bushel},
+ {"volume", "centiliter", i18n_measure_unit_create_centiliter},
+ {"volume", "cubic-centimeter", i18n_measure_unit_create_cubic_centimeter},
+ {"volume", "cubic-foot", i18n_measure_unit_create_cubic_foot},
+ {"volume", "cubic-inch", i18n_measure_unit_create_cubic_inch},
+ {"volume", "cubic-kilometer", i18n_measure_unit_create_cubic_kilometer},
+ {"volume", "cubic-meter", i18n_measure_unit_create_cubic_meter},
+ {"volume", "cubic-mile", i18n_measure_unit_create_cubic_mile},
+ {"volume", "cubic-yard", i18n_measure_unit_create_cubic_yard},
+ {"volume", "cup", i18n_measure_unit_create_cup},
+ {"volume", "deciliter", i18n_measure_unit_create_deciliter},
+ {"volume", "fluid-ounce", i18n_measure_unit_create_fluid_ounce},
+ {"volume", "gallon", i18n_measure_unit_create_gallon},
+ {"volume", "hectoliter", i18n_measure_unit_create_hectoliter},
+ {"volume", "liter", i18n_measure_unit_create_liter},
+ {"volume", "megaliter", i18n_measure_unit_create_megaliter},
+ {"volume", "milliliter", i18n_measure_unit_create_milliliter},
+ {"volume", "pint", i18n_measure_unit_create_pint},
+ {"volume", "quart", i18n_measure_unit_create_quart},
+ {"volume", "tablespoon", i18n_measure_unit_create_tablespoon},
+ {"volume", "teaspoon", i18n_measure_unit_create_teaspoon}
+ };
+
+static int __show_measure_unit(char *input_number)
+{
+ printf(" - To show the measure unit\n");
+ printf("****************************************\n");
+
+ if (!input_number)
+ input_number = (char *)"137";
+ PRINT_DEBUG_LOG("Input number : %s\n", input_number);
+
+ PRINT_ASCIIDOC_LOG("\n[options=\"header\"]\n");
+ PRINT_ASCIIDOC_LOG("|===\n");
+ printf("| TYPE | SUBTYPE | NARROW | SHORT | WIDE \n");
+
+ unsigned int i;
+ for (i = 0; i < sizeof(mu) / sizeof(mu[0]); i++) {
+ i18n_measure_unit_h measure_unit = NULL;
+ int error_code = mu[i].fp(&measure_unit);
+
+ i18n_formattable_h formattable = NULL;
+ double numer;
+ sscanf(input_number, "%lf", &numer);
+ error_code = i18n_formattable_create_with_double(numer, &formattable);
+
+ i18n_measure_h measure;
+ error_code = i18n_measure_create(formattable, measure_unit, &measure);
+ i18n_formattable_destroy(formattable);
+
+ int measure_array_count = 0;
+ const int max_measures = 10;
+ i18n_measure_h measure_array[max_measures] = { NULL };
+ measure_array[measure_array_count++] = measure;
+
+ i18n_measure_format_h measure_format_narrow = NULL;
+ i18n_measure_format_create("en", "US", I18N_UMEASFMT_WIDTH_NARROW, &measure_format_narrow);
+
+ i18n_measure_format_h measure_format_short = NULL;
+ i18n_measure_format_create("en", "US", I18N_UMEASFMT_WIDTH_SHORT, &measure_format_short);
+
+ i18n_measure_format_h measure_format_wide = NULL;
+ i18n_measure_format_create("en", "US", I18N_UMEASFMT_WIDTH_WIDE, &measure_format_wide);
+
+ i18n_field_position_h field_position = NULL;
+ i18n_field_position_create_for_field(5, &field_position);
+ const int width = 100;
+ const char *input = " ";
+ i18n_uchar dest_narrow[width];
+ i18n_ustring_copy_ua_n(dest_narrow, input, width);
+ i18n_uchar dest_short[width];
+ i18n_ustring_copy_ua_n(dest_short, input, width);
+ i18n_uchar dest_wide[width];
+ i18n_ustring_copy_ua_n(dest_wide, input, width);
+
+ int32_t length = 0;
+ error_code = i18n_measure_format_format_measures(measure_format_narrow, measure_array, measure_array_count,
+ field_position, width, dest_narrow, &length);
+ CHECK_ERROR("i18n_measure_format_format_measures[I18N_UMEASFMT_WIDTH_NARROW]", error_code);
+ error_code = i18n_measure_format_format_measures(measure_format_short, measure_array, measure_array_count,
+ field_position, width, dest_short, &length);
+ CHECK_ERROR("i18n_measure_format_format_measures[I18N_UMEASFMT_WIDTH_SHORT]", error_code);
+ error_code = i18n_measure_format_format_measures(measure_format_wide, measure_array, measure_array_count,
+ field_position, width, dest_wide, &length);
+ CHECK_ERROR("i18n_measure_format_format_measures[I18N_UMEASFMT_WIDTH_WIDE]", error_code);
+ PRINT_DEBUG_LOG("length = %d\n", length);
+
+ char output_text_narrow[width + 1] = { 0x00, };
+ char output_text_short[width + 1] = { 0x00, };
+ char output_text_wide[width + 1] = { 0x00, };
+ i18n_ustring_copy_au_n(output_text_narrow, dest_narrow, width);
+ i18n_ustring_copy_au_n(output_text_short, dest_short, width);
+ i18n_ustring_copy_au_n(output_text_wide, dest_wide, width);
+
+ printf("| %-12s | %-24s |%-10s |%-15s |%s\n", mu[i].unit_type, mu[i].unit_subtype, output_text_narrow, output_text_short, output_text_wide);
+ i18n_measure_destroy(measure);
+ }
+ PRINT_ASCIIDOC_LOG("|===\n");
+
+ return 0;
+}
+
void allTest()
{
int ret = 0, i = 0;
__get_tzdata_version();
}
+void showMeasureUnit(char *input)
+{
+ printf("\n== Show Measure Unit");
+ printf("\n****************************************\n");
+ __show_measure_unit(input);
+}
+
void showUbidi(char *input)
{
printf("\n== Show Ubidi");
showUbidi(arguments.testTextArg);
}
+ if (arguments.showMeasureUnit) {
+ showMeasureUnit(arguments.testInputNumArg);
+ }
+
return 0;
}