private (string Name, string Author, List <EngineOption> Options) ParseUciHeader(string uciHeader) { string idName = null; string idAuthor = null; var options = new List <EngineOption>(); var lines = uciHeader.Split('\n'); foreach (var l in lines) { if (l.StartsWith("id name")) { idName = string.Join(' ', l.Split(' ').Skip(2)); } else if (l.StartsWith("id author")) { idAuthor = string.Join(' ', l.Split(' ').Skip(2)); } else if (l.StartsWith("option")) { options.Add(OptionParser.ParseOptionLine(l)); } } return(idName, idAuthor, options); }
public void ParsesStringOption() { var option = OptionParser.ParseOptionLine(StringOption); Assert.Equal("SyzygyPath", option.Name); Assert.Equal(string.Empty, option.DefaultValue.TextValue !); Assert.Equal(OptionType.Text, option.Type); }
public void ParsesCheckBoxOption() { var option = OptionParser.ParseOptionLine(CheckBoxOption); Assert.Equal("Syzygy50MoveRule", option.Name); Assert.Equal(true, option.DefaultValue.BooleanValue !); Assert.Equal(OptionType.Boolean, option.Type); }
public void ParsesSpinnerOption() { var option = OptionParser.ParseOptionLine(SpinnerOption); Assert.Equal("UCI_Elo", option.Name); Assert.Equal(1350, option.Minimum !); Assert.Equal(2850, option.Maximum !); Assert.Equal(1350, option.DefaultValue.IntegerValue !); Assert.Equal(OptionType.NumberRange, option.Type); }
public void ParsesComboOptionWithDefault() { var option = OptionParser.ParseOptionLine(ComboOption); Assert.Equal(OptionType.MultipleChoice, option.Type); Assert.Equal("Analysis Contempt", option.Name); Assert.Equal("Both", option.DefaultValue.TextValue); Assert.Equal(4, option.ValidValues.Count); Assert.Equal("Off", option.ValidValues[0]); Assert.Equal("White", option.ValidValues[1]); Assert.Equal("Black", option.ValidValues[2]); Assert.Equal("Both", option.ValidValues[3]); }