Search in sources :

Example 1 with CurrencyPluralInfo

use of android.icu.text.CurrencyPluralInfo in project j2objc by google.

the class IntlTestDecimalFormatAPIC method TestAPI.

// This test checks various generic API methods in DecimalFormat to achieve 100% API coverage.
@Test
public void TestAPI() {
    logln("DecimalFormat API test---");
    logln("");
    Locale.setDefault(Locale.ENGLISH);
    // ======= Test constructors
    logln("Testing DecimalFormat constructors");
    DecimalFormat def = new DecimalFormat();
    final String pattern = new String("#,##0.# FF");
    final DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.FRENCH);
    final CurrencyPluralInfo infoInput = new CurrencyPluralInfo(ULocale.FRENCH);
    DecimalFormat pat = null;
    try {
        pat = new DecimalFormat(pattern);
    } catch (IllegalArgumentException e) {
        errln("ERROR: Could not create DecimalFormat (pattern)");
    }
    DecimalFormat cust1 = null;
    try {
        cust1 = new DecimalFormat(pattern, symbols);
    } catch (IllegalArgumentException e) {
        errln("ERROR: Could not create DecimalFormat (pattern, symbols)");
    }
    @SuppressWarnings("unused") DecimalFormat cust2 = null;
    try {
        cust2 = new DecimalFormat(pattern, symbols, infoInput, NumberFormat.PLURALCURRENCYSTYLE);
    } catch (IllegalArgumentException e) {
        errln("ERROR: Could not create DecimalFormat (pattern, symbols, infoInput, style)");
    }
    // ======= Test clone(), assignment, and equality
    logln("Testing clone() and equality operators");
    Format clone = (Format) def.clone();
    if (!def.equals(clone)) {
        errln("ERROR: Clone() failed");
    }
    // ======= Test various format() methods
    logln("Testing various format() methods");
    // final double d = -10456.0037; // this appears as -10456.003700000001 on NT
    // final double d = -1.04560037e-4; // this appears as -1.0456003700000002E-4 on NT
    // this works!
    final double d = -10456.00370000000000;
    final long l = 100000000;
    logln("" + Double.toString(d) + " is the double value");
    StringBuffer res1 = new StringBuffer();
    StringBuffer res2 = new StringBuffer();
    StringBuffer res3 = new StringBuffer();
    StringBuffer res4 = new StringBuffer();
    FieldPosition pos1 = new FieldPosition(0);
    FieldPosition pos2 = new FieldPosition(0);
    FieldPosition pos3 = new FieldPosition(0);
    FieldPosition pos4 = new FieldPosition(0);
    res1 = def.format(d, res1, pos1);
    logln("" + Double.toString(d) + " formatted to " + res1);
    res2 = pat.format(l, res2, pos2);
    logln("" + l + " formatted to " + res2);
    res3 = cust1.format(d, res3, pos3);
    logln("" + Double.toString(d) + " formatted to " + res3);
    res4 = cust1.format(l, res4, pos4);
    logln("" + l + " formatted to " + res4);
    // ======= Test parse()
    logln("Testing parse()");
    String text = new String("-10,456.0037");
    ParsePosition pos = new ParsePosition(0);
    String patt = new String("#,##0.#");
    pat.applyPattern(patt);
    double d2 = pat.parse(text, pos).doubleValue();
    if (d2 != d) {
        errln("ERROR: Roundtrip failed (via parse(" + Double.toString(d2) + " != " + Double.toString(d) + ")) for " + text);
    }
    logln(text + " parsed into " + (long) d2);
    // ======= Test getters and setters
    logln("Testing getters and setters");
    final DecimalFormatSymbols syms = pat.getDecimalFormatSymbols();
    def.setDecimalFormatSymbols(syms);
    if (!pat.getDecimalFormatSymbols().equals(def.getDecimalFormatSymbols())) {
        errln("ERROR: set DecimalFormatSymbols() failed");
    }
    String posPrefix;
    pat.setPositivePrefix("+");
    posPrefix = pat.getPositivePrefix();
    logln("Positive prefix (should be +): " + posPrefix);
    if (posPrefix != "+") {
        errln("ERROR: setPositivePrefix() failed");
    }
    String negPrefix;
    pat.setNegativePrefix("-");
    negPrefix = pat.getNegativePrefix();
    logln("Negative prefix (should be -): " + negPrefix);
    if (negPrefix != "-") {
        errln("ERROR: setNegativePrefix() failed");
    }
    String posSuffix;
    pat.setPositiveSuffix("_");
    posSuffix = pat.getPositiveSuffix();
    logln("Positive suffix (should be _): " + posSuffix);
    if (posSuffix != "_") {
        errln("ERROR: setPositiveSuffix() failed");
    }
    String negSuffix;
    pat.setNegativeSuffix("~");
    negSuffix = pat.getNegativeSuffix();
    logln("Negative suffix (should be ~): " + negSuffix);
    if (negSuffix != "~") {
        errln("ERROR: setNegativeSuffix() failed");
    }
    long multiplier = 0;
    pat.setMultiplier(8);
    multiplier = pat.getMultiplier();
    logln("Multiplier (should be 8): " + multiplier);
    if (multiplier != 8) {
        errln("ERROR: setMultiplier() failed");
    }
    int groupingSize = 0;
    pat.setGroupingSize(2);
    groupingSize = pat.getGroupingSize();
    logln("Grouping size (should be 2): " + (long) groupingSize);
    if (groupingSize != 2) {
        errln("ERROR: setGroupingSize() failed");
    }
    pat.setDecimalSeparatorAlwaysShown(true);
    boolean tf = pat.isDecimalSeparatorAlwaysShown();
    logln("DecimalSeparatorIsAlwaysShown (should be true) is " + (tf ? "true" : "false"));
    if (tf != true) {
        errln("ERROR: setDecimalSeparatorAlwaysShown() failed");
    }
    String funkyPat;
    funkyPat = pat.toPattern();
    logln("Pattern is " + funkyPat);
    String locPat;
    locPat = pat.toLocalizedPattern();
    logln("Localized pattern is " + locPat);
    pat.setCurrencyPluralInfo(infoInput);
    if (!infoInput.equals(pat.getCurrencyPluralInfo())) {
        errln("ERROR: set/get CurrencyPluralInfo() failed");
    }
    pat.setCurrencyPluralInfo(infoInput);
    if (!infoInput.equals(pat.getCurrencyPluralInfo())) {
        errln("ERROR: set/get CurrencyPluralInfo() failed");
    }
    // ======= Test applyPattern()
    logln("Testing applyPattern()");
    String p1 = new String("#,##0.0#;(#,##0.0#)");
    logln("Applying pattern " + p1);
    pat.applyPattern(p1);
    String s2;
    s2 = pat.toPattern();
    logln("Extracted pattern is " + s2);
    if (!s2.equals(p1)) {
        errln("ERROR: toPattern() result did not match pattern applied");
    }
    String p2 = new String("#,##0.0# FF;(#,##0.0# FF)");
    logln("Applying pattern " + p2);
    pat.applyLocalizedPattern(p2);
    String s3;
    s3 = pat.toLocalizedPattern();
    logln("Extracted pattern is " + s3);
    if (!s3.equals(p2)) {
        errln("ERROR: toLocalizedPattern() result did not match pattern applied");
    }
// ======= Test getStaticClassID()
// logln("Testing instanceof()");
// try {
// NumberFormat test = new DecimalFormat();
// if (! (test instanceof DecimalFormat)) {
// errln("ERROR: instanceof failed");
// }
// }
// catch (Exception e) {
// errln("ERROR: Couldn't create a DecimalFormat");
// }
}
Also used : DecimalFormatSymbols(android.icu.text.DecimalFormatSymbols) DecimalFormat(android.icu.text.DecimalFormat) FieldPosition(java.text.FieldPosition) CurrencyPluralInfo(android.icu.text.CurrencyPluralInfo) DecimalFormat(android.icu.text.DecimalFormat) Format(java.text.Format) NumberFormat(android.icu.text.NumberFormat) ParsePosition(java.text.ParsePosition) Test(org.junit.Test)

Example 2 with CurrencyPluralInfo

use of android.icu.text.CurrencyPluralInfo in project j2objc by google.

the class PluralFormatTest method TestSetLocale.

/* Tests the method public void setLocale(ULocale loc) */
@Test
public void TestSetLocale() {
    CurrencyPluralInfo cpi = new CurrencyPluralInfo();
    cpi.setLocale(new ULocale("en_US"));
    if (!cpi.getLocale().equals(new ULocale("en_US"))) {
        errln("CurrencyPluralInfo.setLocale() was suppose to return true when passing the same ULocale");
    }
    if (cpi.getLocale().equals(new ULocale("jp_JP"))) {
        errln("CurrencyPluralInfo.setLocale() was not suppose to return true when passing a different ULocale");
    }
}
Also used : CurrencyPluralInfo(android.icu.text.CurrencyPluralInfo) ULocale(android.icu.util.ULocale) Test(org.junit.Test)

Aggregations

CurrencyPluralInfo (android.icu.text.CurrencyPluralInfo)2 Test (org.junit.Test)2 DecimalFormat (android.icu.text.DecimalFormat)1 DecimalFormatSymbols (android.icu.text.DecimalFormatSymbols)1 NumberFormat (android.icu.text.NumberFormat)1 ULocale (android.icu.util.ULocale)1 FieldPosition (java.text.FieldPosition)1 Format (java.text.Format)1 ParsePosition (java.text.ParsePosition)1