fAfterPrefixInsert.setToBogus();
}
if (suffix.length() > 0 && suffix.fieldAt(0) == Field(UFIELD_CATEGORY_NUMBER, UNUM_CURRENCY_FIELD)) {
- int suffixCp = suffix.getLastCodePoint();
+ int suffixCp = suffix.getFirstCodePoint();
UnicodeSet suffixUnicodeSet = getUnicodeSet(symbols, IN_CURRENCY, SUFFIX, status);
if (suffixUnicodeSet.contains(suffixCp)) {
fBeforeSuffixUnicodeSet = getUnicodeSet(symbols, IN_NUMBER, SUFFIX, status);
CurrencyUnit ESP;
CurrencyUnit PTE;
CurrencyUnit RON;
+ CurrencyUnit CNY;
MeasureUnit METER;
MeasureUnit DAY;
ESP(u"ESP", status),
PTE(u"PTE", status),
RON(u"RON", status),
+ CNY(u"CNY", status),
FRENCH_SYMBOLS(Locale::getFrench(), status),
SWISS_SYMBOLS(Locale("de-CH"), status),
MYANMAR_SYMBOLS(Locale("my"), status) {
Locale("ro-RO"),
24,
u"24,00 lei românești");
+
+ assertFormatSingle(
+ u"Currency spacing in suffix (ICU-20954)",
+ u"currency/CNY",
+ u"currency/CNY",
+ NumberFormatter::with().unit(CNY),
+ Locale("lu"),
+ 123.12,
+ u"123,12 CN¥");
}
void NumberFormatterApiTest::unitPercent() {
bn-BD
০€
+৯২ হা€
- (০.২২ €)
+ (০.২২€)
compact-short measure-unit/length-furlong sign-accounting-except-zero
es-MX
bn-BD
০.০০E+০০€
+৯.১৮E+০৪€
- (২.২২E-০১ €)
+ (২.২২E-০১€)
scientific/+ee/sign-always measure-unit/length-furlong sign-accounting-except-zero
es-MX
bn-BD
০.০০€
+৯১,৮২৭.৩৬€
- (০.২২ €)
+ (০.২২€)
currency/EUR unit-width-full-name sign-accounting-except-zero
es-MX
bn-BD
০.০০০€
+৯১,৮২৭.৩৬৪€
- (০.২২২ €)
+ (০.২২২€)
currency/EUR .##/@@@+ sign-accounting-except-zero
es-MX
bn-BD
০€
+৯১,৮২৭.৩৬€
- (০.২২২ €)
+ (০.২২২€)
currency/EUR @@ sign-accounting-except-zero
es-MX
bn-BD
০.০€
+৯২,০০০€
- (০.২২ €)
+ (০.২২€)
measure-unit/length-furlong precision-integer sign-accounting-except-zero
es-MX
bn-BD
০.০০€
+৯১,৮২৭.৩৬€
- (০.২৩ €)
+ (০.২৩€)
measure-unit/length-furlong rounding-mode-floor sign-accounting-except-zero
es-MX
bn-BD
০০.০০€
+১,৮২৭.৩৬€
- (০০.২২ €)
+ (০০.২২€)
measure-unit/length-furlong integer-width/##00 sign-accounting-except-zero
es-MX
bn-BD
০.০০€
+৪৫,৯১৩.৬৮€
- (০.১১ €)
+ (০.১১€)
measure-unit/length-furlong scale/0.5 sign-accounting-except-zero
es-MX
bn-BD
০.০০€
+৯১,৮২৭.৩৬€
- (০.২২ €)
+ (০.২২€)
measure-unit/length-furlong group-on-aligned sign-accounting-except-zero
es-MX
bn-BD
0.00€
+91,827.36€
- (0.22 €)
+ (0.22€)
measure-unit/length-furlong latin sign-accounting-except-zero
es-MX
bn-BD
০.০০€
+৯১,৮২৭.৩৬€
- (০.২২ €)
+ (০.২২€)
measure-unit/length-furlong sign-accounting-except-zero decimal-always
es-MX
afterPrefixInsert = null;
}
if (suffix.length() > 0 && suffix.fieldAt(0) == NumberFormat.Field.CURRENCY) {
- int suffixCp = suffix.getLastCodePoint();
+ int suffixCp = suffix.getFirstCodePoint();
UnicodeSet suffixUnicodeSet = getUnicodeSet(symbols, IN_CURRENCY, SUFFIX);
if (suffixUnicodeSet.contains(suffixCp)) {
beforeSuffixUnicodeSet = getUnicodeSet(symbols, IN_NUMBER, SUFFIX);
bn-BD
০€
+৯২ হা€
- (০.২২ €)
+ (০.২২€)
compact-short measure-unit/length-furlong sign-accounting-except-zero
es-MX
bn-BD
০.০০E+০০€
+৯.১৮E+০৪€
- (২.২২E-০১ €)
+ (২.২২E-০১€)
scientific/+ee/sign-always measure-unit/length-furlong sign-accounting-except-zero
es-MX
bn-BD
০.০০€
+৯১,৮২৭.৩৬€
- (০.২২ €)
+ (০.২২€)
currency/EUR unit-width-full-name sign-accounting-except-zero
es-MX
bn-BD
০.০০০€
+৯১,৮২৭.৩৬৪€
- (০.২২২ €)
+ (০.২২২€)
currency/EUR .##/@@@+ sign-accounting-except-zero
es-MX
bn-BD
০€
+৯১,৮২৭.৩৬€
- (০.২২২ €)
+ (০.২২২€)
currency/EUR @@ sign-accounting-except-zero
es-MX
bn-BD
০.০€
+৯২,০০০€
- (০.২২ €)
+ (০.২২€)
measure-unit/length-furlong precision-integer sign-accounting-except-zero
es-MX
bn-BD
০.০০€
+৯১,৮২৭.৩৬€
- (০.২৩ €)
+ (০.২৩€)
measure-unit/length-furlong rounding-mode-floor sign-accounting-except-zero
es-MX
bn-BD
০০.০০€
+১,৮২৭.৩৬€
- (০০.২২ €)
+ (০০.২২€)
measure-unit/length-furlong integer-width/##00 sign-accounting-except-zero
es-MX
bn-BD
০.০০€
+৪৫,৯১৩.৬৮€
- (০.১১ €)
+ (০.১১€)
measure-unit/length-furlong scale/0.5 sign-accounting-except-zero
es-MX
bn-BD
০.০০€
+৯১,৮২৭.৩৬€
- (০.২২ €)
+ (০.২২€)
measure-unit/length-furlong group-on-aligned sign-accounting-except-zero
es-MX
bn-BD
0.00€
+91,827.36€
- (0.22 €)
+ (0.22€)
measure-unit/length-furlong latin sign-accounting-except-zero
es-MX
bn-BD
০.০০€
+৯১,৮২৭.৩৬€
- (০.২২ €)
+ (০.২২€)
measure-unit/length-furlong sign-accounting-except-zero decimal-always
es-MX
private static final Currency ESP = Currency.getInstance("ESP");
private static final Currency PTE = Currency.getInstance("PTE");
private static final Currency RON = Currency.getInstance("RON");
+ private static final Currency CNY = Currency.getInstance("CNY");
@Test
public void notationSimple() {
ULocale.forLanguageTag("ro-RO"),
24,
"24,00 lei românești");
+
+ assertFormatSingle(
+ "Currency spacing in suffix (ICU-20954)",
+ "currency/CNY",
+ "currency/CNY",
+ NumberFormatter.with().unit(CNY),
+ ULocale.forLanguageTag("lu"),
+ 123.12,
+ "123,12 CN¥");
}
@Test