public static void main(String[] args) throws IOException {
DefaultOptionBuilder obuilder = new DefaultOptionBuilder();
ArgumentBuilder abuilder = new ArgumentBuilder();
GroupBuilder gbuilder = new GroupBuilder();
Option inputOpt = obuilder.withLongName("input").withRequired(true).withShortName("i").withArgument(
abuilder.withName("input").withMinimum(1).withMaximum(1).create()).withDescription(
"The Path for input data directory.").create();
Option labelOpt = obuilder.withLongName("label").withRequired(true).withShortName("l").withArgument(
abuilder.withName("index").withMinimum(1).withMaximum(1).create()).withDescription("label's index.")
.create();
Option thresholdOpt = obuilder.withLongName("threshold").withRequired(false).withShortName("t")
.withArgument(abuilder.withName("threshold").withMinimum(1).withMaximum(1).create()).withDescription(
"Condition activation threshold, default = 0.5.").create();
Option crosspntsOpt = obuilder.withLongName("crosspnts").withRequired(false).withShortName("cp")
.withArgument(abuilder.withName("points").withMinimum(1).withMaximum(1).create()).withDescription(
"Number of crossover points to use, default = 1.").create();
Option mutrateOpt = obuilder.withLongName("mutrate").withRequired(true).withShortName("m").withArgument(
abuilder.withName("true").withMinimum(1).withMaximum(1).create()).withDescription(
"Mutation rate (float).").create();
Option mutrangeOpt = obuilder.withLongName("mutrange").withRequired(false).withShortName("mr")
.withArgument(abuilder.withName("range").withMinimum(1).withMaximum(1).create()).withDescription(
"Mutation range, default = 0.1 (10%).").create();
Option mutprecOpt = obuilder.withLongName("mutprec").withRequired(false).withShortName("mp")
.withArgument(abuilder.withName("precision").withMinimum(1).withMaximum(1).create()).withDescription(
"Mutation precision, default = 2.").create();
Option popsizeOpt = obuilder.withLongName("popsize").withRequired(true).withShortName("p").withArgument(
abuilder.withName("size").withMinimum(1).withMaximum(1).create()).withDescription("Population size.")
.create();
Option gencntOpt = obuilder.withLongName("gencnt").withRequired(true).withShortName("g").withArgument(
abuilder.withName("count").withMinimum(1).withMaximum(1).create())
.withDescription("Generations count.").create();
Option helpOpt = DefaultOptionCreator.helpOption();
Group group = gbuilder.withName("Options").withOption(inputOpt).withOption(helpOpt).withOption(labelOpt)
.withOption(thresholdOpt).withOption(crosspntsOpt).withOption(mutrateOpt).withOption(mutrangeOpt)
.withOption(mutprecOpt).withOption(popsizeOpt).withOption(gencntOpt).create();