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 *
57935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *   Copyright (C) 1996-2009, International Business Machines
67935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert *   Corporation and others.  All Rights Reserved.
77935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert **/
87935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/**
97935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Port From:   JDK 1.4b1 : java.text.Format.IntlTestNumberFormatAPI
107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert * Source File: java/text/format/IntlTestNumberFormatAPI.java
117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert **/
127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert/*
147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    @test 1.4 98/03/06
157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    @summary test International Number Format API
167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert*/
177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpackage com.ibm.icu.dev.test.format;
197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.math.BigInteger;
217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.text.FieldPosition;
227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.text.ParseException;
237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.text.ParsePosition;
247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport java.util.Locale;
257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
262d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubertimport org.junit.Test;
272d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert
287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.text.NumberFormat;
297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertimport com.ibm.icu.util.ULocale;
307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubertpublic class IntlTestNumberFormatAPI extends com.ibm.icu.dev.test.TestFmwk
327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert{
337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    // This test checks various generic API methods in DecimalFormat to achieve 100% API coverage.
342d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert    @Test
357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestAPI()
367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    {
377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("NumberFormat API test---"); logln("");
387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        Locale.setDefault(Locale.ENGLISH);
397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // ======= Test constructors
417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("Testing NumberFormat constructors");
437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        NumberFormat def = NumberFormat.getInstance();
457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        NumberFormat fr = NumberFormat.getInstance(Locale.FRENCH);
477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        NumberFormat cur = NumberFormat.getCurrencyInstance();
497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        NumberFormat cur_fr = NumberFormat.getCurrencyInstance(Locale.FRENCH);
517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        NumberFormat per = NumberFormat.getPercentInstance();
537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        NumberFormat per_fr = NumberFormat.getPercentInstance(Locale.FRENCH);
557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        NumberFormat integer = NumberFormat.getIntegerInstance();
577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        NumberFormat int_fr = NumberFormat.getIntegerInstance(Locale.FRENCH);
597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        //Fix "The variable is never used" compilation warnings
617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("Currency : " + cur.format(1234.5));
627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("Percent : " + per.format(1234.5));
637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("Integer : " + integer.format(1234.5));
647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("Int_fr : " + int_fr.format(1234.5));
657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // ======= Test equality
677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("Testing equality operator");
697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if( per_fr.equals(cur_fr) ) {
717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: == failed");
727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // ======= Test various format() methods
757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("Testing various format() methods");
777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//        final double d = -10456.0037; // this appears as -10456.003700000001 on NT
797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//        final double d = -1.04560037e-4; // this appears as -1.0456003700000002E-4 on NT
807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final double d = -10456.00370000000000; // this works!
817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final long l = 100000000;
827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        String res1 = new String();
847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        String res2 = new String();
857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        StringBuffer res3 = new StringBuffer();
867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        StringBuffer res4 = new StringBuffer();
877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        StringBuffer res5 = new StringBuffer();
887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        StringBuffer res6 = new StringBuffer();
897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        FieldPosition pos1 = new FieldPosition(0);
907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        FieldPosition pos2 = new FieldPosition(0);
917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        FieldPosition pos3 = new FieldPosition(0);
927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        FieldPosition pos4 = new FieldPosition(0);
937935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
947935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        res1 = cur_fr.format(d);
957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln( "" + d + " formatted to " + res1);
967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        res2 = cur_fr.format(l);
987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("" + l + " formatted to " + res2);
997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        res3 = cur_fr.format(d, res3, pos1);
1017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln( "" + d + " formatted to " + res3);
1027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1037935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        res4 = cur_fr.format(l, res4, pos2);
1047935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("" + l + " formatted to " + res4);
1057935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1067935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        res5 = cur_fr.format(d, res5, pos3);
1077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("" + d + " formatted to " + res5);
1087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        res6 = cur_fr.format(l, res6, pos4);
1107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("" + l + " formatted to " + res6);
1117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // ======= Test parse()
1147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("Testing parse()");
1167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//        String text = new String("-10,456.0037");
1187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        String text = new String("-10456,0037");
1197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        ParsePosition pos = new ParsePosition(0);
1207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        ParsePosition pos01 = new ParsePosition(0);
1217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        double d1 = ((Number)fr.parseObject(text, pos)).doubleValue();
1227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(d1 != d) {
1237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: Roundtrip failed (via parse()) for " + text);
1247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln(text + " parsed into " + d1);
1267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        double d2 = fr.parse(text, pos01).doubleValue();
1287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(d2 != d) {
1297935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: Roundtrip failed (via parse()) for " + text);
1307935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1317935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln(text + " parsed into " + d2);
1327935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1337935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        double d3 = 0;
1347935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        try {
1357935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            d3 = fr.parse(text).doubleValue();
1367935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1377935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        catch (ParseException e) {
1387935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: parse() failed");
1397935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1407935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(d3 != d) {
1417935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            errln("ERROR: Roundtrip failed (via parse()) for " + text);
1427935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1437935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln(text + " parsed into " + d3);
1447935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1457935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1467935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // ======= Test getters and setters
1477935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1487935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("Testing getters and setters");
1497935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1507935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        final Locale[] locales = NumberFormat.getAvailableLocales();
1517935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        long count = locales.length;
1527935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        logln("Got " + count + " locales" );
1537935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        for(int i = 0; i < count; i++) {
1547935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            String name;
1557935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            name = locales[i].getDisplayName();
1567935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            logln(name);
1577935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1587935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1597935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setParseIntegerOnly( def.isParseIntegerOnly() );
1607935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(fr.isParseIntegerOnly() != def.isParseIntegerOnly() ) {
1617935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                errln("ERROR: setParseIntegerOnly() failed");
1627935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1637935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1647935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setGroupingUsed( def.isGroupingUsed() );
1657935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(fr.isGroupingUsed() != def.isGroupingUsed() ) {
1667935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                errln("ERROR: setGroupingUsed() failed");
1677935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1687935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1697935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setMaximumIntegerDigits( def.getMaximumIntegerDigits() );
1707935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(fr.getMaximumIntegerDigits() != def.getMaximumIntegerDigits() ) {
1717935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                errln("ERROR: setMaximumIntegerDigits() failed");
1727935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1737935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1747935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setMinimumIntegerDigits( def.getMinimumIntegerDigits() );
1757935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(fr.getMinimumIntegerDigits() != def.getMinimumIntegerDigits() ) {
1767935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                errln("ERROR: setMinimumIntegerDigits() failed");
1777935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1787935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1797935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setMaximumFractionDigits( def.getMaximumFractionDigits() );
1807935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(fr.getMaximumFractionDigits() != def.getMaximumFractionDigits() ) {
1817935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                errln("ERROR: setMaximumFractionDigits() failed");
1827935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1837935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1847935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        fr.setMinimumFractionDigits( def.getMinimumFractionDigits() );
1857935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        if(fr.getMinimumFractionDigits() != def.getMinimumFractionDigits() ) {
1867935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                errln("ERROR: setMinimumFractionDigits() failed");
1877935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
1887935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1897935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        // ======= Test getStaticClassID()
1907935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1917935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//        logln("Testing instanceof()");
1927935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1937935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//        try {
1947935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//            NumberFormat test = new DecimalFormat();
1957935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
1967935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//            if (! (test instanceof DecimalFormat)) {
1977935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//                errln("ERROR: instanceof failed");
1987935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//            }
1997935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//        }
2007935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//        catch (Exception e) {
2017935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//            errln("ERROR: Couldn't create a DecimalFormat");
2027935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert//        }
2037935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
2047935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert
2057935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    // Jitterbug 4451, for coverage
2062d2bb24f747c65578da13d5b13b82f0669690461Fredrik Roubert    @Test
2077935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    public void TestCoverage(){
2087935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        class StubNumberFormat extends NumberFormat{
2097935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            /**
2107935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert             * For serialization
2117935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert             */
2127935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            private static final long serialVersionUID = 3768385020503005993L;
2137935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            public void run(){
2147935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                String p = NumberFormat.getPattern(ULocale.getDefault().toLocale(),0);
2157935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                if (!p.equals(NumberFormat.getPattern(ULocale.getDefault(),0))){
2167935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                    errln("NumberFormat.getPattern(Locale, int) should delegate to (ULocale,)");
2177935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert                }
2187935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            }
2197935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos) {return null;}
2207935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos) {return null;}
2217935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            public StringBuffer format(BigInteger number, StringBuffer toAppendTo, FieldPosition pos) {return null;}
2227935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            public StringBuffer format(java.math.BigDecimal number, StringBuffer toAppendTo, FieldPosition pos) {return null;}
2237935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            public StringBuffer format(com.ibm.icu.math.BigDecimal number, StringBuffer toAppendTo, FieldPosition pos) {return null;}
2247935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert            public Number parse(String text, ParsePosition parsePosition) {return null;}
2257935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        }
2267935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert        new StubNumberFormat().run();
2277935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert    }
2287935b1839a081ed19ae0d33029ad3c09632a2caaFredrik Roubert}
229