public void ParseCommandline_ValidInput()
        {
            //string command = "cmd -v --version -s OLD --length=20 -- -my-file your-file";
            string command = "cmd -v  -s OLD --length=20 -- -my-file your-file";

            var expected_plainArgs = new List <string>()
            {
                "OLD", "-my-file", "your-file"
            };
            ParseResult expected = new ParseResult(db);

            foreach (var arg in expected_plainArgs)
            {
                expected.AddPlainArgument(arg);
            }
            expected.CommandName = "cmd";
            expected.AddParsedOption(new OptionParsed("v", null, true, null));
            //.AddParsedOption(new OptionParsed("version", null, false, null));
            expected.AddParsedOption(new OptionParsed("s", null, true, null));
            expected.AddParsedOption(new OptionParsed("length", "20", false, new IntegerParser()));

            ParseResult result = Parser.ParseCommandLine(command, db);

            Assert.AreEqual(expected.CommandName, result.CommandName);
            CollectionAssert.AreEqual(expected_plainArgs, result.PlainArguments.ToList());
            CollectionAssert.AreEqual(expected.ParsedOptions.ToList(), result.ParsedOptions.ToList());
            Assert.AreEqual(expected, result);
        }