### Question:
LoaderUtils { public static Optional<Currency> tryParseCurrency(String str) { if (str != null && str.length() == 3 && CURRENCY_MATCHER.matchesAllOf(str)) { try { return Optional.of(Currency.parse(str)); } catch (RuntimeException ex) { } } return Optional.empty(); } private  LoaderUtils(); static Index findIndex(String reference); static boolean parseBoolean(String str); static int parseInteger(String str); static double parseDouble(String str); static double parseDoublePercent(String str); static BigDecimal parseBigDecimal(String str); static BigDecimal parseBigDecimalPercent(String str); static LocalDate parseDate(String str, DateTimeFormatter... formatters); static LocalDate parseDate(String str); static YearMonth parseYearMonth(String str); static LocalTime parseTime(String str); static ZoneId parseZoneId(String str); static Period parsePeriod(String str); static Tenor parseTenor(String str); static Optional<Tenor> tryParseTenor(String str); static Frequency parseFrequency(String str); static Currency parseCurrency(String str); static Optional<Currency> tryParseCurrency(String str); static DayCount parseDayCount(String str); static BusinessDayConvention parseBusinessDayConvention(String str); static RollConvention parseRollConvention(String str); static BuySell parseBuySell(String str); static PayReceive parsePayReceive(String str); static PutCall parsePutCall(String str); static LongShort parseLongShort(String str); static final String DEFAULT_TRADE_SCHEME; static final String DEFAULT_POSITION_SCHEME; static final String DEFAULT_SECURITY_SCHEME; }### Answer:
@Test public void test_tryParseCurrency() { assertThat(LoaderUtils.tryParseCurrency("GBP")).isEqualTo(Optional.of(Currency.GBP)); assertThat(LoaderUtils.tryParseCurrency("123")).isEqualTo(Optional.empty()); assertThat(LoaderUtils.tryParseCurrency("G")).isEqualTo(Optional.empty()); assertThat(LoaderUtils.tryParseCurrency("")).isEqualTo(Optional.empty()); assertThat(LoaderUtils.tryParseCurrency(null)).isEqualTo(Optional.empty()); }