44 DecimalFormatSymbolsProviderTest() {
45 availableLocalesTest();
46 objectValidityTest();
47 }
48
49 void availableLocalesTest() {
50 Set<Locale> localesFromAPI = new HashSet<>(availloc);
51 Set<Locale> localesExpected = new HashSet<>(jreloc);
52 localesExpected.addAll(providerloc);
53 if (localesFromAPI.equals(localesExpected)) {
54 System.out.println("availableLocalesTest passed.");
55 } else {
56 throw new RuntimeException("availableLocalesTest failed");
57 }
58 }
59
60 void objectValidityTest() {
61
62 for (Locale target: availloc) {
63 // pure JRE implementation
64 ResourceBundle rb = LocaleProviderAdapter.forJRE().getLocaleData().getNumberFormatData(target);
65 boolean jreSupportsLocale = jreimplloc.contains(target);
66
67 // JRE string arrays
68 String[] jres = new String[2];
69 if (jreSupportsLocale) {
70 try {
71 String[] tmp = rb.getStringArray("NumberElements");
72 jres[0] = tmp[9]; // infinity
73 jres[1] = tmp[10]; // NaN
74 } catch (MissingResourceException mre) {}
75 }
76
77 // result object
78 DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(target);
79 String[] result = new String[2];
80 result[0] = dfs.getInfinity();
81 result[1] = dfs.getNaN();
82
83 // provider's object (if any)
84 DecimalFormatSymbols providersDfs= null;
85 String[] providers = new String[2];
86 if (providerloc.contains(target)) {
87 providersDfs = dfsp.getInstance(target);
88 providers[0] = providersDfs.getInfinity();
89 providers[1] = providersDfs.getNaN();
90 }
91
92 for (int i = 0; i < result.length; i ++) {
93 checkValidity(target, jres[i], providers[i], result[i], jreSupportsLocale);
94 }
|
44 DecimalFormatSymbolsProviderTest() {
45 availableLocalesTest();
46 objectValidityTest();
47 }
48
49 void availableLocalesTest() {
50 Set<Locale> localesFromAPI = new HashSet<>(availloc);
51 Set<Locale> localesExpected = new HashSet<>(jreloc);
52 localesExpected.addAll(providerloc);
53 if (localesFromAPI.equals(localesExpected)) {
54 System.out.println("availableLocalesTest passed.");
55 } else {
56 throw new RuntimeException("availableLocalesTest failed");
57 }
58 }
59
60 void objectValidityTest() {
61
62 for (Locale target: availloc) {
63 // pure JRE implementation
64 Object[] data = LocaleProviderAdapter.forJRE().getLocaleResources(target).getDecimalFormatSymbolsData();
65 boolean jreSupportsLocale = jreimplloc.contains(target);
66
67 // JRE string arrays
68 String[] jres = new String[2];
69 if (jreSupportsLocale) {
70 String[] tmp = (String[]) data[0];
71 jres[0] = tmp[9]; // infinity
72 jres[1] = tmp[10]; // NaN
73 }
74
75 // result object
76 DecimalFormatSymbols dfs = DecimalFormatSymbols.getInstance(target);
77 String[] result = new String[2];
78 result[0] = dfs.getInfinity();
79 result[1] = dfs.getNaN();
80
81 // provider's object (if any)
82 DecimalFormatSymbols providersDfs= null;
83 String[] providers = new String[2];
84 if (providerloc.contains(target)) {
85 providersDfs = dfsp.getInstance(target);
86 providers[0] = providersDfs.getInfinity();
87 providers[1] = providersDfs.getNaN();
88 }
89
90 for (int i = 0; i < result.length; i ++) {
91 checkValidity(target, jres[i], providers[i], result[i], jreSupportsLocale);
92 }
|