### Question:
OptionalBooleanArg extends OptionalNamedArg { @Override public String parse( Args parsedArgs ) { return Boolean.toString( parsedArgs.getBoolean( name, Boolean.parseBoolean( defaultValue ) ) ); } OptionalBooleanArg( String name, boolean defaultValue, String description ); @Override String usage(); @Override String parse( Args parsedArgs );  }### Answer:
@Test void parsesValues1() { OptionalBooleanArg arg = new OptionalBooleanArg( "foo", false, "" ); assertEquals( "false", arg.parse( Args.parse() ) ); assertEquals( "false", arg.parse( Args.parse( "--foo=false" ) ) ); assertEquals( "true", arg.parse( Args.parse( "--foo=true" ) ) ); assertEquals( "true", arg.parse( Args.parse( "--foo" ) ) ); }
@Test void parsesValues2() { OptionalBooleanArg arg = new OptionalBooleanArg( "foo", true, "" ); assertEquals( "true", arg.parse( Args.parse() ) ); assertEquals( "false", arg.parse( Args.parse( "--foo=false" ) ) ); assertEquals( "true", arg.parse( Args.parse( "--foo=true" ) ) ); assertEquals( "true", arg.parse( Args.parse( "--foo" ) ) ); }