test/java/util/PluggableLocale/DecimalFormatSymbolsProviderTest.java

Print this page
rev 6352 : imported patch 7162007


  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             }