private static void CompareGroups(TestPattern pattern, PcreMatch actualMatch, ExpectedMatch expectedMatch) { var actualGroups = actualMatch.ToList(); var expectedGroups = expectedMatch.Groups.ToList(); Assert.That(actualGroups.Count, Is.GreaterThanOrEqualTo(expectedGroups.Count)); for (var groupIndex = 0; groupIndex < actualGroups.Count; ++groupIndex) { var actualGroup = actualGroups[groupIndex]; var expectedGroup = groupIndex < expectedGroups.Count ? expectedGroups[groupIndex] : ExpectedGroup.Unset; Assert.That(actualGroup.Success, Is.EqualTo(expectedGroup.IsMatch)); if (expectedGroup.IsMatch) { var expectedValue = pattern.SubjectLiteral ? expectedGroup.Value : expectedGroup.Value.UnescapeGroup(); Assert.That(actualGroup.Value, Is.EqualTo(expectedValue)); } } }
private static void CompareGroups(PcreMatch actualMatch, ExpectedMatch expectedMatch) { var actualGroups = actualMatch.ToList(); var expectedGroups = expectedMatch.Groups.ToList(); Assert.That(actualGroups.Count, Is.GreaterThanOrEqualTo(expectedGroups.Count)); for (var groupIndex = 0; groupIndex < actualGroups.Count; ++groupIndex) { var actualGroup = actualGroups[groupIndex]; var expectedGroup = groupIndex < expectedGroups.Count ? expectedGroups[groupIndex] : ExpectedGroup.Unset; Console.WriteLine(" Group #{0}: {1}", groupIndex, expectedGroup.Value); Assert.That(actualGroup.Success, Is.EqualTo(expectedGroup.IsMatch)); if (expectedGroup.IsMatch) { Assert.That(actualGroup.Value, Is.EqualTo(expectedGroup.Value.UnescapeGroup())); } } }