### Question:
LocaleParser { @Nullable public static BigDecimal parseBigDecimal (@Nullable final String sStr, @Nonnull final Locale aParseLocale) { return parseBigDecimal (sStr, aParseLocale, (BigDecimal) null); } private  LocaleParser(); @Nullable static Number parse(final String sStr, @Nonnull final Locale aParseLocale); @Nullable static Number parse(final String sStr, @Nonnull final Locale aParseLocale, @Nullable final Number aDefault); @Nullable static Number parse(@Nullable final String sStr, @Nonnull final NumberFormat aNF); @Nullable static Number parse(@Nullable final String sStr, @Nonnull final NumberFormat aNF, @Nullable final Number aDefault); static float parseFloat(@Nullable final String sStr, @Nonnull final Locale aParseLocale, final float fDefault); static float parseFloat(@Nullable final String sStr, @Nonnull final NumberFormat aNF, final float fDefault); static double parseDouble(@Nullable final String sStr, @Nonnull final Locale aParseLocale, final double dDefault); static double parseDouble(@Nullable final String sStr, @Nonnull final NumberFormat aNF, final double dDefault); static byte parseByte(@Nullable final String sStr, @Nonnull final Locale aParseLocale, final byte nDefault); static byte parseByte(@Nullable final String sStr, @Nonnull final NumberFormat aNF, final byte nDefault); static int parseInt(@Nullable final String sStr, @Nonnull final Locale aParseLocale, final int nDefault); static int parseInt(@Nullable final String sStr, @Nonnull final NumberFormat aNF, final int nDefault); static long parseLong(@Nullable final String sStr, @Nonnull final Locale aParseLocale, final long nDefault); static long parseLong(@Nullable final String sStr, @Nonnull final NumberFormat aNF, final long nDefault); static short parseShort(@Nullable final String sStr, @Nonnull final Locale aParseLocale, final short nDefault); static short parseShort(@Nullable final String sStr, @Nonnull final NumberFormat aNF, final short nDefault); @Nullable static BigDecimal parseBigDecimal(@Nullable final String sStr, @Nonnull final Locale aParseLocale); @Nullable static BigDecimal parseBigDecimal(@Nullable final String sStr,
                                            @Nonnull final Locale aParseLocale,
                                            @Nullable final BigDecimal aDefault); @Nullable static BigDecimal parseBigDecimal(@Nullable final String sStr, @Nonnull final DecimalFormat aNF); @Nullable static BigDecimal parseBigDecimal(@Nullable final String sStr,
                                            @Nonnull final DecimalFormat aNF,
                                            @Nullable final BigDecimal aDefault); @Nullable static BigDecimal parseBigDecimal(@Nullable final String sStr, @Nonnull final NumberFormat aNF); @Nullable static BigDecimal parseBigDecimal(@Nullable final String sStr,
                                            @Nonnull final NumberFormat aNF,
                                            @Nullable final BigDecimal aDefault);  }### Answer:
@Test public void testParseBigDecimal () { final BigDecimal aBD1M = StringParser.parseBigDecimal ("1000000"); assertEquals (aBD1M, LocaleParser.parseBigDecimal ("1.000.000", L_DE, CGlobal.BIGDEC_MINUS_ONE)); assertEquals (aBD1M, LocaleParser.parseBigDecimal ("1,000,000", L_EN, CGlobal.BIGDEC_MINUS_ONE)); assertEquals (aBD1M, LocaleParser.parseBigDecimal ("1,000,000", (DecimalFormat) NumberFormat.getInstance (L_EN))); assertEquals (new BigDecimal ("1234567.8901"), LocaleParser.parseBigDecimal ("1.234.567,8901", L_DE, CGlobal.BIGDEC_MINUS_ONE)); assertEquals (CGlobal.BIGDEC_MINUS_ONE, LocaleParser.parseBigDecimal ("... und denken", L_EN, CGlobal.BIGDEC_MINUS_ONE)); final ChoiceFormat aCF = new ChoiceFormat ("-1#negative|0#zero|1.0#one"); assertEquals (BigDecimal.valueOf (0.0), LocaleParser.parseBigDecimal ("zero", aCF, CGlobal.BIGDEC_MINUS_ONE)); try { LocaleParser.parseBigDecimal ("0", (DecimalFormat) null); fail (); } catch (final NullPointerException ex) {} }