public void LeadingPrefix(string pattern, RegexOptions options, int expectedMode, string expectedPrefix) { RegexFindOptimizations opts = ComputeOptimizations(pattern, options); Assert.Equal((FindNextStartingPositionMode)expectedMode, opts.FindMode); Assert.Equal(expectedPrefix, opts.LeadingCaseSensitivePrefix); }
public void TrailingAnchor(string pattern, RegexOptions options, int expectedMode, int expectedLength, int trailingAnchor) { RegexFindOptimizations opts = ComputeOptimizations(pattern, options); Assert.Equal((FindNextStartingPositionMode)expectedMode, opts.FindMode); Assert.Equal(expectedLength, opts.MaxPossibleLength); Assert.Equal((RegexNodeKind)trailingAnchor, opts.TrailingAnchor); }
public void FixedDistanceString(string pattern, RegexOptions options, int expectedMode, string expectedString, int distance) { RegexFindOptimizations opts = ComputeOptimizations(pattern, options); Assert.Equal((FindNextStartingPositionMode)expectedMode, opts.FindMode); Assert.Equal(expectedString, opts.FixedDistanceLiteral.String); Assert.Equal(distance, opts.FixedDistanceLiteral.Distance); }
public void LiteralAfterLoop(string pattern, RegexOptions options, int expectedMode, string?expectedString, char expectedChar) { RegexFindOptimizations opts = ComputeOptimizations(pattern, options); Assert.Equal((FindNextStartingPositionMode)expectedMode, opts.FindMode); Assert.NotNull(opts.LiteralAfterLoop); Assert.Equal(expectedString, opts.LiteralAfterLoop.Value.Literal.String); Assert.Equal(expectedChar, opts.LiteralAfterLoop.Value.Literal.Char); }
public void LeadingSet(string pattern, RegexOptions options, int expectedMode, string expectedChars) { RegexFindOptimizations opts = ComputeOptimizations(pattern, options); Assert.Equal((FindNextStartingPositionMode)expectedMode, opts.FindMode); Assert.Equal(1, opts.FixedDistanceSets.Count); Assert.Equal(0, opts.FixedDistanceSets[0].Distance); Assert.Equal(expectedChars, new string(opts.FixedDistanceSets[0].Chars)); }