-
Notifications
You must be signed in to change notification settings - Fork 3
/
PatternTests.cs
59 lines (49 loc) · 1.64 KB
/
PatternTests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using RegexParser.Patterns;
namespace RegexParser.Tests.Patterns
{
[TestFixture]
public class PatternTests
{
[Test]
public void CharEscapePattern_Short()
{
BasePattern actual = BasePattern.CreatePattern("abc");
BasePattern expected = new GroupPattern(true, new BasePattern[] {
new CharEscapePattern('a'),
new CharEscapePattern('b'),
new CharEscapePattern('c')
});
Assert.AreEqual(expected, actual);
}
[Test]
public void CharEscapePattern_Empty()
{
BasePattern actual = BasePattern.CreatePattern("");
BasePattern expected = new GroupPattern(true, new BasePattern[] { });
Assert.AreEqual(expected, actual);
}
[Test]
public void GroupPattern()
{
string pattern = "t(h(in))g";
BasePattern actual = BasePattern.CreatePattern(pattern);
BasePattern expected = new GroupPattern(true, new BasePattern[] {
new CharEscapePattern('t'),
new GroupPattern(true, new BasePattern[] {
new CharEscapePattern('h'),
new GroupPattern(true, new BasePattern[] {
new CharEscapePattern('i'),
new CharEscapePattern('n')
}),
}),
new CharEscapePattern('g')
});
Assert.AreEqual(expected, actual, pattern);
}
}
}