12d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert// © 2016 and later: Unicode, Inc. and others. 22d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html#License 37935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/***************************************************************************************** 47935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * 5e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer * Copyright (C) 1996-2016, International Business Machines 67935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Corporation and others. All Rights Reserved. 77935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert **/ 87935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 92d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert/** 107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Port From: JDK 1.4b1 : java.text.Format.IntlTestDecimalFormatSymbols 117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Source File: java/text/format/IntlTestDecimalFormatSymbols.java 127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert **/ 132d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/* 157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert @test 1.4 98/03/06 167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert @summary test International Decimal Format Symbols 177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert*/ 187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpackage com.ibm.icu.dev.test.format; 217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 222d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubertimport java.util.Arrays; 237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.util.Locale; 247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 252d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubertimport org.junit.Test; 262d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.text.DecimalFormatSymbols; 287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.util.Currency; 29e7a7efded856b8959849879938d1cb2e8ccab318Markus Schererimport com.ibm.icu.util.ULocale; 307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpublic class IntlTestDecimalFormatSymbols extends com.ibm.icu.dev.test.TestFmwk 327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert{ 337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // Test the API of DecimalFormatSymbols; primarily a simple get/set set. 342d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert @Test 357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert public void TestSymbols() 367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert { 377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert DecimalFormatSymbols fr = new DecimalFormatSymbols(Locale.FRENCH); 387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert DecimalFormatSymbols en = new DecimalFormatSymbols(Locale.ENGLISH); 407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(en.equals(fr)) { 427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: English DecimalFormatSymbols equal to French"); 437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // just do some VERY basic tests to make sure that get/set work 462d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 472d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if(!en.getLocale().equals(Locale.ENGLISH)) { 482d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: getLocale failed"); 492d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 502d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if(!en.getULocale().equals(ULocale.ENGLISH)) { 512d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: getULocale failed"); 522d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 532d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 54e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer if(!en.getLocale().equals(Locale.ENGLISH)) { 55e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer errln("ERROR: getLocale failed"); 56e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer } 57e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer if(!en.getULocale().equals(ULocale.ENGLISH)) { 58e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer errln("ERROR: getULocale failed"); 59e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer } 607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char zero = en.getZeroDigit(); 627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setZeroDigit(zero); 637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getZeroDigit() != en.getZeroDigit()) { 647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set ZeroDigit failed"); 657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 672d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert String[] digits = en.getDigitStrings(); 682d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert fr.setDigitStrings(digits); 692d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!Arrays.equals(fr.getDigitStrings(), en.getDigitStrings())) { 702d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: get/set DigitStrings failed"); 712d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 722d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char sigDigit = en.getSignificantDigit(); 742d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert fr.setSignificantDigit(sigDigit); 757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getSignificantDigit() != en.getSignificantDigit()) { 767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set SignificantDigit failed"); 777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert Currency currency = Currency.getInstance("USD"); 807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setCurrency(currency); 817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if (!fr.getCurrency().equals(currency)){ 827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set Currency failed"); 837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 842d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char group = en.getGroupingSeparator(); 867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setGroupingSeparator(group); 877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getGroupingSeparator() != en.getGroupingSeparator()) { 887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set GroupingSeparator failed"); 897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 912d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert String groupStr = en.getGroupingSeparatorString(); 922d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert fr.setGroupingSeparatorString(groupStr); 932d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!fr.getGroupingSeparatorString().equals(en.getGroupingSeparatorString())) { 942d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: get/set GroupingSeparatorString failed"); 952d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 962d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char decimal = en.getDecimalSeparator(); 987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setDecimalSeparator(decimal); 997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getDecimalSeparator() != en.getDecimalSeparator()) { 1007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set DecimalSeparator failed"); 1017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1032d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert String decimalStr = en.getDecimalSeparatorString(); 1042d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert fr.setDecimalSeparatorString(decimalStr); 1052d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!fr.getDecimalSeparatorString().equals(en.getDecimalSeparatorString())) { 1062d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: get/set DecimalSeparatorString failed"); 1072d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 1082d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 1097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char monetaryGroup = en.getMonetaryGroupingSeparator(); 1107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setMonetaryGroupingSeparator(monetaryGroup); 1117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getMonetaryGroupingSeparator() != en.getMonetaryGroupingSeparator()) { 1127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set MonetaryGroupingSeparator failed"); 1137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1152d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert String monetaryGroupStr = en.getMonetaryGroupingSeparatorString(); 1162d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert fr.setMonetaryGroupingSeparatorString(monetaryGroupStr); 1172d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!fr.getMonetaryGroupingSeparatorString().equals(en.getMonetaryGroupingSeparatorString())){ 1182d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: get/set MonetaryGroupingSeparatorString failed"); 1192d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 1202d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 1217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char monetaryDecimal = en.getMonetaryDecimalSeparator(); 1227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setMonetaryDecimalSeparator(monetaryDecimal); 1237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getMonetaryDecimalSeparator() != en.getMonetaryDecimalSeparator()) { 1247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set MonetaryDecimalSeparator failed"); 1257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1272d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert String monetaryDecimalStr = en.getMonetaryDecimalSeparatorString(); 1282d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert fr.setMonetaryDecimalSeparatorString(monetaryDecimalStr); 1292d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!fr.getMonetaryDecimalSeparatorString().equals(en.getMonetaryDecimalSeparatorString())) { 1302d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: get/set MonetaryDecimalSeparatorString failed"); 1312d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 1322d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 1337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char perMill = en.getPerMill(); 1347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setPerMill(perMill); 1357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getPerMill() != en.getPerMill()) { 1367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set PerMill failed"); 1377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1392d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert String perMillStr = en.getPerMillString(); 1402d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert fr.setPerMillString(perMillStr); 1412d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!fr.getPerMillString().equals(en.getPerMillString())) { 1422d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: get/set PerMillString failed"); 1432d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 1442d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 1457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char percent = en.getPercent(); 1467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setPercent(percent); 1477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getPercent() != en.getPercent()) { 1487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set Percent failed"); 1497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1512d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert String percentStr = en.getPercentString(); 1522d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert fr.setPercentString(percentStr); 1532d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!fr.getPercentString().equals(en.getPercentString())) { 1542d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: get/set PercentString failed"); 1552d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 1562d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 1577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char digit = en.getDigit(); 1587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setDigit(digit); 1592d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if(fr.getDigit() != en.getDigit()) { 1602d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: get/set Digit failed"); 1617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char patternSeparator = en.getPatternSeparator(); 1647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setPatternSeparator(patternSeparator); 1657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getPatternSeparator() != en.getPatternSeparator()) { 1667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set PatternSeparator failed"); 1677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert String infinity = en.getInfinity(); 1707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setInfinity(infinity); 1717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert String infinity2 = fr.getInfinity(); 1727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(! infinity.equals(infinity2)) { 1737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set Infinity failed"); 1747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert String nan = en.getNaN(); 1777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setNaN(nan); 1787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert String nan2 = fr.getNaN(); 1797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(! nan.equals(nan2)) { 1807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set NaN failed"); 1817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char minusSign = en.getMinusSign(); 1847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setMinusSign(minusSign); 1857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getMinusSign() != en.getMinusSign()) { 1867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set MinusSign failed"); 1877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 1887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 1892d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert String minusSignStr = en.getMinusSignString(); 1902d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert fr.setMinusSignString(minusSignStr); 1912d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!fr.getMinusSignString().equals(en.getMinusSignString())) { 1922d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: get/set MinusSignString failed"); 1932d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 1942d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 1957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char plusSign = en.getPlusSign(); 1967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setPlusSign(plusSign); 1977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getPlusSign() != en.getPlusSign()) { 1987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set PlusSign failed"); 1997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 2007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 2012d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert String plusSignStr = en.getPlusSignString(); 2022d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert fr.setPlusSignString(plusSignStr); 2032d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!fr.getPlusSignString().equals(en.getPlusSignString())) { 2042d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: get/set PlusSignString failed"); 2052d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 2062d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 2077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert char padEscape = en.getPadEscape(); 2087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setPadEscape(padEscape); 2097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getPadEscape() != en.getPadEscape()) { 2107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set PadEscape failed"); 2117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 2127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 2137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert String exponential = en.getExponentSeparator(); 2147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.setExponentSeparator(exponential); 2157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(fr.getExponentSeparator() != en.getExponentSeparator()) { 2167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get/set Exponential failed"); 2177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 2182d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 219e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer String exponentMultiplicationSign = en.getExponentMultiplicationSign(); 220e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer fr.setExponentMultiplicationSign(exponentMultiplicationSign); 221e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer if(fr.getExponentMultiplicationSign() != en.getExponentMultiplicationSign()) { 222e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer errln("ERROR: get/set ExponentMultiplicationSign failed"); 223e7a7efded856b8959849879938d1cb2e8ccab318Markus Scherer } 2242d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 2257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // Test CurrencySpacing. 2262d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert // In CLDR 1.7, only root.txt has CurrencySpacing data. This data might 2277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert // be different between en and fr in the future. 2287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert for (int i = DecimalFormatSymbols.CURRENCY_SPC_CURRENCY_MATCH; i <= DecimalFormatSymbols.CURRENCY_SPC_INSERT; i++) { 2297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if (en.getPatternForCurrencySpacing(i, true) != 2307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.getPatternForCurrencySpacing(i, true)) { 2317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get currency spacing item:"+ i+" before the currency"); 2327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if (en.getPatternForCurrencySpacing(i, false) != 2337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert fr.getPatternForCurrencySpacing(i, false)) { 2347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: get currency spacing item:" + i + " after currency"); 2357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 2367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 2377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 2382d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 2397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert String dash = "-"; 2407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert en.setPatternForCurrencySpacing(DecimalFormatSymbols.CURRENCY_SPC_INSERT, true, dash); 2417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if (dash != en.getPatternForCurrencySpacing(DecimalFormatSymbols.CURRENCY_SPC_INSERT, true)) { 2427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: set currency spacing pattern for before currency."); 2437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 2447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 2457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert //DecimalFormatSymbols foo = new DecimalFormatSymbols(); //The variable is never used 2467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 2477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert en = (DecimalFormatSymbols) fr.clone(); 2487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert 2497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if(! en.equals(fr)) { 2507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert errln("ERROR: Clone failed"); 2517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 2527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 2532d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 2542d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert @Test 2557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert public void testCoverage() { 2567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert DecimalFormatSymbols df = new DecimalFormatSymbols(); 2577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert DecimalFormatSymbols df2 = (DecimalFormatSymbols)df.clone(); 2587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert if (!df.equals(df2) || df.hashCode() != df2.hashCode()) { 2592d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("decimal format symbols clone, equals, or hashCode failed"); 2602d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 2612d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 2622d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 2632d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert @Test 2642d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert public void testDigitSymbols() { 2652d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert final char defZero = '0'; 2662d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert final char[] defDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}; 2672d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert final String[] defDigitStrings = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}; 2682d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert final String[] osmanyaDigitStrings = { 2692d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert "\uD801\uDCA0", "\uD801\uDCA1", "\uD801\uDCA2", "\uD801\uDCA3", "\uD801\uDCA4", 2702d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert "\uD801\uDCA5", "\uD801\uDCA6", "\uD801\uDCA7", "\uD801\uDCA8", "\uD801\uDCA9" 2712d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert }; 2722d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 2732d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.ENGLISH); 2742d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 2752d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert symbols.setDigitStrings(osmanyaDigitStrings); 2762d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!Arrays.equals(symbols.getDigitStrings(), osmanyaDigitStrings)) { 2772d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: Osmanya digits (supplementary) should be set"); 2782d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 2792d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (defZero != symbols.getZeroDigit()) { 2802d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: Zero digit should be 0"); 2812d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 2822d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!Arrays.equals(symbols.getDigits(), defDigits)) { 2832d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: Char digits should be Latin digits"); 2842d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert } 2852d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert 2862d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert // Reset digits to Latin 2872d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert symbols.setZeroDigit(defZero); 2882d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert if (!Arrays.equals(symbols.getDigitStrings(), defDigitStrings)) { 2892d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert errln("ERROR: Latin digits should be set" + symbols.getDigitStrings()[0]); 2907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 2917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert } 2927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert} 293