### Question:
RvfReleaseDbSchemaNameGenerator { public static String generate(String releaseFilename) { if (releaseFilename != null && !releaseFilename.endsWith(".zip")) { return releaseFilename.replaceAll("-", "_"); } releaseFilename = releaseFilename.replace(".zip", ""); String[] splits = releaseFilename.split("_", -1); for (int i = 0; i < splits.length; i++) { splits[i] = splits[i].toLowerCase(); for (String word : REPLACEMENTS.keySet()) { if (splits[i].contains(word.toLowerCase())) { splits[i] = splits[i].replaceAll(word.toLowerCase(), REPLACEMENTS.get(word)); } } } StringBuilder builder = new StringBuilder(); for (String part : splits) { if (!part.trim().isEmpty()) { if (builder.length() > 0) { builder.append("_"); } builder.append(part); } } return "rvf_" + builder.toString(); }  static String generate(String releaseFilename);  }### Answer:
@Test public void testInternationalMemberRelase() { assertEquals("rvf_intrf2_member_20180731t120000z", generate("SnomedCT_InternationalRF2_MEMBER_20180731T120000Z.zip")); }
@Test public void testInternationalAlphaRelase() { assertEquals("rvf_intrf2_alpha_20180731t120000z", generate("xSnomedCT_InternationalRF2_ALPHA_20180731T120000Z.zip")); }
@Test public void testInternationalProductionRelase() { assertEquals("rvf_intrf2_prod_20180731t120000z", generate("SnomedCT_InternationalRF2_PRODUCTION_20180731T120000Z.zip")); }
@Test public void testTermServerMainExport() { assertEquals("rvf_prod_main_20180131_201802020832", generate("prod_main_20180131_201802020832.zip")); }
@Test public void testTermServerExportForExtension() { assertEquals("rvf_prodms_main_20180731_usfix_20180901_20180817104834", generate("prod-ms_main_2018-07-31_SNOMEDCT-USFIX_2018-09-01_20180817104834.zip")); }
@Test public void testExtensionRelease() { assertEquals("rvf_usextensionrf2_prod_20180301t120000z", generate("SnomedCT_USExtensionRF2_PRODUCTION_20180301T120000Z.zip")); }