public void Range() { var samples = new[] { Tuple.Create('a', 'e', 'c', true), Tuple.Create('a', 'e', 'e', true), Tuple.Create('a', 'e', 'a', true), Tuple.Create('a', 'e', 'f', false), Tuple.Create('b', 'e', 'a', false), Tuple.Create('b', 'e', 'C', false) }; for (int i = 0; i != samples.Length; ++i) { var first = samples[i].Item1; var last = samples[i].Item2; var test = samples[i].Item3; var isSuccess = samples[i].Item4; var rule = new RangeRule("Range", null, first, last) as IRule; var match = rule.Match(new ExplorerContext(test.ToString())).FirstOrDefault(); if (isSuccess) { Assert.IsNotNull(match, $"Success - {i}"); Assert.AreEqual(rule.RuleName, match.Rule.RuleName, $"Rule - {i}"); Assert.AreEqual(1, match.Text.Length, $"MatchLength - {i}"); } else { Assert.IsNull(match, $"Failure - {i}"); } } }