### Question:
ParsedOptions implements CaliperOptions { public static ParsedOptions from(String[] args) throws InvalidCommandException { ParsedOptions options = new ParsedOptions(); CommandLineParser<ParsedOptions> parser = CommandLineParser.forClass(ParsedOptions.class); try { parser.parseAndInject(args, options); } catch (InvalidCommandException e) { e.setUsage(USAGE); throw e; } return options; } private  ParsedOptions(); static ParsedOptions from(String[] args); @Override boolean dryRun(); @Override ImmutableSet<String> benchmarkMethodNames(); @Override boolean verbose(); @Override boolean printConfiguration(); @Override int trialsPerScenario(); @Override ShortDuration timeLimit(); @Override String runName(); @Override ImmutableSet<String> vmNames(); @Override ImmutableSet<String> instrumentNames(); @Override ImmutableSetMultimap<String, String> userParameters(); @Override ImmutableSetMultimap<String, String> vmArguments(); @Override ImmutableMap<String, String> configProperties(); @Override File caliperDirectory(); @Override File caliperConfigFile(); @Override String benchmarkClassName(); @Override String toString();  }### Answer:
@Test public void testNoOptions() { try { ParsedOptions.from(new String[] {}); fail(); } catch (InvalidCommandException expected) { assertEquals("No benchmark class specified", expected.getMessage()); } }
@Test public void testHelp() throws InvalidCommandException { try { ParsedOptions.from(new String[] {"--help"}); fail(); } catch (DisplayUsageException expected) { } }