public void MultiValues_AnonymousType() { dynamic mv = MultiValues.Values(new { Int = 1, Double = 2.0, String = "Toto" }); Assert.AreEqual(1, mv.Int); Assert.AreEqual(2.0, mv.Double); Assert.AreEqual("Toto", mv.String); Assert.AreEqual(1, mv["Int"]); Assert.AreEqual(2.0, mv["Double"]); Assert.AreEqual("Toto", mv["String"]); }
public void MultiValues_Dictionary() { var values = new Dictionary <string, object>() { { "Int", 1 }, { "Double", 2.0 }, { "String", "Toto" } }; dynamic mv = MultiValues.Values(values); Assert.AreEqual(1, mv.Int); Assert.AreEqual(2.0, mv.Double); Assert.AreEqual("Toto", mv.String); Assert.AreEqual("Toto", mv.@String); }
public void MultiValues_CallingInvalidProperty() { dynamic mv = MultiValues.Values(new { Int = 1, Double = 2.0, String = "Toto" }); int v = mv.Bad; }
public void AddValue(double[] v) { MultiValues.Add(v); }
private bool ParseMultiValues(string input, TekBoard board, MultiValues mvType) { int row, col, value; TekField field = null; Regex pattern1 = null, pattern2 = null; switch (mvType) { case MultiValues.mvNotes: pattern1 = notesPattern1; pattern2 = notesPattern2; break; case MultiValues.mvExcludes: pattern1 = excludesPattern1; pattern2 = excludesPattern2; break; } Match match = pattern1.Match(input); if (match.Success) { if (field == null && Int32.TryParse(match.Groups["row"].Value, out row) && Int32.TryParse(match.Groups["col"].Value, out col)) { if (!board.IsInRange(row, col)) { ParseError("Invalid field in {0} line {1}: ({2},{3})", MultiValueString[(int)mvType], input, row, col); } field = board.Fields[row, col]; } if (field != null && Int32.TryParse(match.Groups["value"].Value, out value)) { switch (mvType) { case MultiValues.mvNotes: field.ToggleNote(value); break; case MultiValues.mvExcludes: field.ExcludeValue(value); break; } match = pattern2.Match(match.Groups["rest"].Value); while (match.Success) { if (Int32.TryParse(match.Groups["value"].Value, out value)) { switch (mvType) { case MultiValues.mvNotes: field.ToggleNote(value); break; case MultiValues.mvExcludes: field.ExcludeValue(value); break; } match = match.NextMatch(); } else { ParseError("Invalid value in {0} line {1}: ({2})", MultiValueString[(int)mvType], input, match.Groups["value"].Value); } } } } return(field != null); }