Skip to content

Commit 2e6edd6

Browse files
committed
Add TestExplicitCapture, TestCompiled, TestIgnorePatternWhitespace
1 parent cb92cfe commit 2e6edd6

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

src/PregexTests/Tests.cs

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,55 @@ public void TestSingleline()
565565
.Build();
566566
Assert.IsTrue(regex.IsMatch("test\nmore"));
567567
}
568+
569+
[Test]
570+
public void TestExplicitCapture()
571+
{
572+
var regex = RegexBuilder.Create()
573+
.Group(b => b.Digit().Exactly(3)) // Unnamed group - won't capture
574+
.Literal("-")
575+
.NamedGroup("last", b => b.Digit().Exactly(4)) // Named group - will capture
576+
.ExplicitCapture()
577+
.Build();
578+
579+
var match = regex.Match("123-4567");
580+
Assert.IsTrue(match.Success);
581+
582+
Assert.AreEqual("4567", match.Groups["last"].Value);
583+
584+
Assert.AreEqual(2, match.Groups.Count);
585+
}
586+
587+
[Test]
588+
public void TestCompiled()
589+
{
590+
var regex = RegexBuilder.Create()
591+
.Digit().OneOrMore()
592+
.Compiled()
593+
.Build();
594+
595+
// Test that it works and has the Compiled option
596+
Assert.IsTrue(regex.IsMatch("12345"));
597+
Assert.IsTrue(regex.Options.HasFlag(RegexOptions.Compiled));
598+
}
599+
600+
[Test]
601+
public void TestIgnorePatternWhitespace()
602+
{
603+
var builder = RegexBuilder.Create()
604+
.Digit().Exactly(3)
605+
.Literal("-")
606+
.Digit().Exactly(4)
607+
.IgnorePatternWhitespace();
608+
609+
var regex = builder.Build();
610+
611+
// Verify the option is set
612+
Assert.IsTrue(regex.Options.HasFlag(RegexOptions.IgnorePatternWhitespace));
613+
614+
// Pattern should still work normally
615+
Assert.IsTrue(regex.IsMatch("123-4567"));
616+
}
568617
#endregion
569618

570619
#region Pattern Building Tests

0 commit comments

Comments
 (0)