22 */ |
22 */ |
23 import java.text.*; |
23 import java.text.*; |
24 import java.text.spi.*; |
24 import java.text.spi.*; |
25 import java.util.*; |
25 import java.util.*; |
26 import java.util.spi.*; |
26 import java.util.spi.*; |
|
27 import java.util.stream.IntStream; |
27 import sun.util.locale.provider.LocaleProviderAdapter; |
28 import sun.util.locale.provider.LocaleProviderAdapter; |
28 |
29 |
29 public class LocaleProviders { |
30 public class LocaleProviders { |
30 |
31 |
31 private static final boolean IS_WINDOWS = System.getProperty("os.name").startsWith("Windows"); |
32 private static final boolean IS_WINDOWS = System.getProperty("os.name").startsWith("Windows"); |
325 "provider is not HOST: " + type + ", or\n" + |
330 "provider is not HOST: " + type + ", or\n" + |
326 "Language is not Japanese: " + lang + ", or\n" + |
331 "Language is not Japanese: " + lang + ", or\n" + |
327 "native calendar is not JapaneseCalendar: " + calType); |
332 "native calendar is not JapaneseCalendar: " + calType); |
328 } |
333 } |
329 } |
334 } |
|
335 |
|
336 static void bug8232860Test() { |
|
337 var inputList = List.of(123, 123.4); |
|
338 var nfExpectedList = List.of("123", "123.4"); |
|
339 var ifExpectedList = List.of("123", "123"); |
|
340 |
|
341 var type = LocaleProviderAdapter.getAdapter(CalendarNameProvider.class, Locale.US) |
|
342 .getAdapterType(); |
|
343 if (type == LocaleProviderAdapter.Type.HOST && (IS_WINDOWS || IS_MAC)) { |
|
344 final var numf = NumberFormat.getNumberInstance(Locale.US); |
|
345 final var intf = NumberFormat.getIntegerInstance(Locale.US); |
|
346 |
|
347 IntStream.range(0, inputList.size()) |
|
348 .forEach(i -> { |
|
349 var input = inputList.get(i); |
|
350 var nfExpected = nfExpectedList.get(i); |
|
351 var result = numf.format(input); |
|
352 if (!result.equals(nfExpected)) { |
|
353 throw new RuntimeException("Incorrect number format. " + |
|
354 "input: " + input + ", expected: " + |
|
355 nfExpected + ", result: " + result); |
|
356 } |
|
357 |
|
358 var ifExpected = ifExpectedList.get(i); |
|
359 result = intf.format(input); |
|
360 if (!result.equals(ifExpected)) { |
|
361 throw new RuntimeException("Incorrect integer format. " + |
|
362 "input: " + input + ", expected: " + |
|
363 ifExpected + ", result: " + result); |
|
364 } |
|
365 }); |
|
366 System.out.println("bug8232860Test succeeded."); |
|
367 } else { |
|
368 System.out.println("Test ignored. Either :-\n" + |
|
369 "OS is neither macOS/Windows, or\n" + |
|
370 "provider is not HOST: " + type); |
|
371 } |
|
372 } |
330 } |
373 } |