Skip to content

Commit 6a634d9

Browse files
AlexAlex
Alex
authored and
Alex
committed
· Add RepeatPrevious method.
1 parent 245a871 commit 6a634d9

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed

VerbalExpressions/VerbalExpressions.cs

+12
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,16 @@ public VerbalExpressions EndCapture()
350350
return Add(")", false);
351351
}
352352

353+
public VerbalExpressions RepeatPrevious(int n)
354+
{
355+
return Add("{" + n + "}", false);
356+
}
357+
358+
public VerbalExpressions RepeatPrevious(int n, int m)
359+
{
360+
return Add("{" + n + "," + m + "}", false);
361+
}
362+
353363
#endregion Expression Modifiers
354364

355365
#region Expression Options Modifiers
@@ -432,5 +442,7 @@ public VerbalExpressions WithOptions(RegexOptions options)
432442
#endregion Expression Options Modifiers
433443

434444
#endregion Public Methods
445+
446+
435447
}
436448
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using System.Text.RegularExpressions;
2+
using CSharpVerbalExpressions;
3+
using NUnit.Framework;
4+
5+
namespace VerbalExpressionsUnitTests
6+
{
7+
[TestFixture]
8+
public class RepeatPreviousTests
9+
{
10+
11+
[Test]
12+
public void RepeatPrevious_WhenThreeA_RegesIsAsExpected()
13+
{
14+
// Arrange
15+
VerbalExpressions verbEx = VerbalExpressions.DefaultExpression;
16+
17+
// Act
18+
verbEx.BeginCapture()
19+
.Add("A")
20+
.RepeatPrevious(3)
21+
.EndCapture();
22+
23+
// Assert
24+
Assert.AreEqual("(A{3})", verbEx.ToString());
25+
}
26+
27+
[Test]
28+
public void RepeatPrevious_WhenBetweenTwoAndFourA_RegesIsAsExpected()
29+
{
30+
// Arrange
31+
VerbalExpressions verbEx = VerbalExpressions.DefaultExpression;
32+
33+
// Act
34+
verbEx.BeginCapture()
35+
.Add("A")
36+
.RepeatPrevious(2,4)
37+
.EndCapture();
38+
39+
// Assert
40+
Assert.AreEqual("(A{2,4})", verbEx.ToString());
41+
}
42+
43+
}
44+
}

VerbalExpressionsUnitTests/VerbalExpressionsUnitTests.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
<Compile Include="AddModifierTests.cs" />
4444
<Compile Include="AddTests.cs" />
4545
<Compile Include="CaptureTests.cs" />
46+
<Compile Include="RepeatPreviousTest.cs" />
4647
<Compile Include="EndOfLineTests.cs" />
4748
<Compile Include="MaybeTests.cs" />
4849
<Compile Include="MultipleTests.cs" />

0 commit comments

Comments
 (0)