(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / class / System / Test / System.Text.RegularExpressions / RegexTest.cs
blob1b222fb9161e73ed7199405f0efa22b8da037711
1 //
2 // assembly: System_test
3 // namespace: MonoTests.System.Text.RegularExpressions
4 // file: RegexTest.cs
5 //
6 // Authors:
7 // Juraj Skripsky (juraj@hotfeet.ch)
8 //
9 // (c) 2003 Juraj Skripsky
11 using System;
12 using System.Text.RegularExpressions;
14 using NUnit.Framework;
16 namespace MonoTests.System.Text.RegularExpressions {
18 [TestFixture]
19 public class RegexTest : Assertion {
21 [Test]
22 public void Simple () {
23 char[] c = { (char)32, (char)8212, (char)32 };
24 string s = new String(c);
25 Assertion.AssertEquals ("char", true, Regex.IsMatch(s, s));
28 [Test]
29 public void Unescape () {
30 string inString = @"\a\b\t\r\v\f\n\e\02400\x231\cC\ufffff\*";
31 char [] c = { (char)7, (char)8, (char)9, (char)13,
32 (char)11, (char)12, (char)10, (char)27,
33 (char)160, (char)48, (char)35, (char)49,
34 (char)3, (char)65535, (char)102, (char)42
36 string expectedString = new String(c);
37 string outString = Regex.Unescape(inString);
39 Assertion.AssertEquals("unescape", outString, expectedString);
42 [Test]
43 public void Match1 ()
45 Regex email = new Regex ("(?<user>[^@]+)@(?<domain>.+)");
46 Match m;
48 m = email.Match ("mono@go-mono.com");
50 Assert ("#m01", m.Success);
51 AssertEquals ("#m02", "mono", m.Groups ["user"].Value);
52 AssertEquals ("#m03", "go-mono.com", m.Groups ["domain"].Value);
54 m = email.Match ("mono.bugs@go-mono.com");
55 Assert ("#m04", m.Success);
56 AssertEquals ("#m05", "mono.bugs", m.Groups ["user"].Value);
57 AssertEquals ("#m06", "go-mono.com", m.Groups ["domain"].Value);
60 [Test]
61 public void Matches1 ()
63 Regex words = new Regex ("(?<word>\\w+)");
65 MatchCollection mc = words.Matches ("the fat cat ate the rat");
67 AssertEquals ("#m01", 6, mc.Count);
68 AssertEquals ("#m02", "the", mc [0].Value);
69 AssertEquals ("#m03", "fat", mc [1].Value);
70 AssertEquals ("#m04", "cat", mc [2].Value);
71 AssertEquals ("#m05", "ate", mc [3].Value);
72 AssertEquals ("#m06", "the", mc [4].Value);
73 AssertEquals ("#m07", "rat", mc [5].Value);
76 [Test]
77 public void Matches2 ()
79 Regex words = new Regex ("(?<word>\\w+)", RegexOptions.RightToLeft);
81 MatchCollection mc = words.Matches ("the fat cat ate the rat");
83 AssertEquals ("#m01", 6, mc.Count);
84 AssertEquals ("#m02", "the", mc [5].Value);
85 AssertEquals ("#m03", "fat", mc [4].Value);
86 AssertEquals ("#m04", "cat", mc [3].Value);
87 AssertEquals ("#m05", "ate", mc [2].Value);
88 AssertEquals ("#m06", "the", mc [1].Value);
89 AssertEquals ("#m07", "rat", mc [0].Value);
92 [Test]
93 public void Matches3 ()
95 Regex digits = new Regex ("(?<digit>\\d+)");
97 MatchCollection mc = digits.Matches ("0 1 2 3 4 5 6a7b8c9d10");
99 AssertEquals ("#m01", 11, mc.Count);
100 AssertEquals ("#m02", "0", mc [0].Value);
101 AssertEquals ("#m03", "1", mc [1].Value);
102 AssertEquals ("#m04", "2", mc [2].Value);
103 AssertEquals ("#m05", "3", mc [3].Value);
104 AssertEquals ("#m06", "4", mc [4].Value);
105 AssertEquals ("#m07", "5", mc [5].Value);
106 AssertEquals ("#m08", "6", mc [6].Value);
107 AssertEquals ("#m09", "7", mc [7].Value);
108 AssertEquals ("#m10", "8", mc [8].Value);
109 AssertEquals ("#m11", "9", mc [9].Value);
110 AssertEquals ("#m12", "10", mc [10].Value);
113 [Test]
114 public void Matches4 ()
116 Regex digits = new Regex ("(?<digit>\\d+)", RegexOptions.RightToLeft);
118 MatchCollection mc = digits.Matches ("0 1 2 3 4 5 6a7b8c9d10");
120 AssertEquals ("#m01", 11, mc.Count);
121 AssertEquals ("#m02", "0", mc [10].Value);
122 AssertEquals ("#m03", "1", mc [9].Value);
123 AssertEquals ("#m04", "2", mc [8].Value);
124 AssertEquals ("#m05", "3", mc [7].Value);
125 AssertEquals ("#m06", "4", mc [6].Value);
126 AssertEquals ("#m07", "5", mc [5].Value);
127 AssertEquals ("#m08", "6", mc [4].Value);
128 AssertEquals ("#m09", "7", mc [3].Value);
129 AssertEquals ("#m10", "8", mc [2].Value);
130 AssertEquals ("#m11", "9", mc [1].Value);
131 AssertEquals ("#m12", "10", mc [0].Value);
134 [Test]
135 public void Matches5 ()
137 Regex lines = new Regex ("(?<line>.+)");
139 MatchCollection mc = lines.Matches (story);
141 AssertEquals ("#m01", 5, mc.Count);
142 AssertEquals ("#m02", "Two little dragons lived in the forest", mc [0].Value);
143 AssertEquals ("#m03", "They spent their days collecting honey suckle,",
144 mc [1].Value);
145 AssertEquals ("#m04", "And eating curds and whey", mc [2].Value);
146 AssertEquals ("#m05", "Until an evil sorcer came along", mc [3].Value);
147 AssertEquals ("#m06", "And chased my dragon friends away", mc [4].Value);
150 [Test]
151 public void Matches6 ()
153 Regex lines = new Regex ("(?<line>.+)", RegexOptions.RightToLeft);
155 MatchCollection mc = lines.Matches (story);
157 AssertEquals ("#m01", 5, mc.Count);
158 AssertEquals ("#m02", "Two little dragons lived in the forest", mc [4].Value);
159 AssertEquals ("#m03", "They spent their days collecting honey suckle,",
160 mc [3].Value);
161 AssertEquals ("#m04", "And eating curds and whey", mc [2].Value);
162 AssertEquals ("#m05", "Until an evil sorcer came along", mc [1].Value);
163 AssertEquals ("#m06", "And chased my dragon friends away", mc [0].Value);
166 string story = "Two little dragons lived in the forest\n" +
167 "They spent their days collecting honey suckle,\n" +
168 "And eating curds and whey\n" +
169 "Until an evil sorcer came along\n" +
170 "And chased my dragon friends away";
172 [Test]
173 public void Matches7 ()
175 Regex nonwhite = new Regex ("(?<nonwhite>\\S+)");
177 MatchCollection mc = nonwhite.Matches ("ab 12 cde 456 fghi .,\niou");
179 AssertEquals ("#m01", 7, mc.Count);
180 AssertEquals ("#m02", "ab", mc [0].Value);
181 AssertEquals ("#m03", "12", mc [1].Value);
182 AssertEquals ("#m04", "cde", mc [2].Value);
183 AssertEquals ("#m05", "456", mc [3].Value);
184 AssertEquals ("#m06", "fghi", mc [4].Value);
185 AssertEquals ("#m07", ".,", mc [5].Value);
186 AssertEquals ("#m08", "iou", mc [6].Value);
189 [Test]
190 public void Matches8 ()
192 Regex nonwhite = new Regex ("(?<nonwhite>\\S+)", RegexOptions.RightToLeft);
194 MatchCollection mc = nonwhite.Matches ("ab 12 cde 456 fghi .,\niou");
196 AssertEquals ("#m01", 7, mc.Count);
197 AssertEquals ("#m02", "ab", mc [6].Value);
198 AssertEquals ("#m03", "12", mc [5].Value);
199 AssertEquals ("#m04", "cde", mc [4].Value);
200 AssertEquals ("#m05", "456", mc [3].Value);
201 AssertEquals ("#m06", "fghi", mc [2].Value);
202 AssertEquals ("#m07", ".,", mc [1].Value);
203 AssertEquals ("#m08", "iou", mc [0].Value);
206 [Test]
207 public void Matches9 ()
209 Regex nondigit = new Regex ("(?<nondigit>\\D+)");
211 MatchCollection mc = nondigit.Matches ("ab0cd1ef2");
213 AssertEquals ("#m01", 3, mc.Count);
214 AssertEquals ("#m02", "ab", mc [0].Value);
215 AssertEquals ("#m02", "cd", mc [1].Value);
216 AssertEquals ("#m02", "ef", mc [2].Value);
220 [Test]
221 public void Matches10 ()
223 Regex nondigit = new Regex ("(?<nondigit>\\D+)", RegexOptions.RightToLeft);
225 MatchCollection mc = nondigit.Matches ("ab0cd1ef2");
227 AssertEquals ("#m01", 3, mc.Count);
228 AssertEquals ("#m02", "ab", mc [2].Value);
229 AssertEquals ("#m02", "cd", mc [1].Value);
230 AssertEquals ("#m02", "ef", mc [0].Value);