### Question:
UserAgent { public double getVersionNumber() { Matcher matcher = VERSION_NUMBER_REGEX.matcher(getVersion()); if (!matcher.matches()) { return -1; } String matched = matcher.group(1); return Double.parseDouble(matched); } UserAgent(Browser browser, String version); Browser getBrowser(); String getVersion(); double getVersionNumber();  }### Answer:
@Test public void testVersionNumberParsingStandard() { assertEquals(3D, getUaEntry("3").getVersionNumber(), 0); }
@Test public void testVersionNumberParsingStandardDecimal() { assertEquals(3.1415, getUaEntry("3.1415").getVersionNumber(), 0); }
@Test public void testVersionNumberParsingMultiPart() { assertEquals(3.1, getUaEntry("3.1.5").getVersionNumber(), 0); }
@Test public void testVersionNumberParsingAlphaSuffix() { assertEquals(4.5, getUaEntry("4.5beta2").getVersionNumber(), 0); }
@Test public void testVersionNumberParsingEmbeddedInTheMiddle() { assertEquals(1.5, getUaEntry("beta 1.5 rc 5").getVersionNumber(), 0); }
@Test public void testVersionNumberParsingNoMatch() { assertEquals(-1, getUaEntry("invalid").getVersionNumber(), 0); }