public void TestSerialization_MatchIncorrectSurrogatePair() { var regex1 = new System.Text.RegularExpressions.Regex(@"[\uDC00-\uDFFF][\uD800-\uDBFF]" , System.Text.RegularExpressions.RegexOptions.IgnoreCase ); var matcher1 = regex1.Compile(); matcher1.Serialize("badsurrogatepair.bin"); var matcher2 = RegexMatcher.Deserialize("badsurrogatepair.bin"); string input = "_\uDD03\uD809_"; var res1 = matcher1.Matches(input); var res2 = matcher2.Matches(input); Assert.IsTrue(res1[0].Item1 == 1 && res1[0].Item2 == 2); Assert.AreEqual(res1.Length, res2.Length); Assert.IsTrue(res1[0].Equals(res2[0])); }
public void TestCA_IsMatch_PosAndNeg() { var regex = new System.Text.RegularExpressions.Regex("^ab{4,10}c$"); var sr = (SymbolicRegex <ulong>)regex.Compile(false, false); var pos_samples = regex.GenerateRandomDataSet(10); var neg_samples = regex.Complement().GenerateRandomDataSet(10); var ca = sr.Pattern.CreateCountingAutomaton(); foreach (var str in pos_samples) { Assert.IsTrue(ca.IsMatch(str)); Assert.IsTrue(regex.IsMatch(str)); } foreach (var str in neg_samples) { Assert.IsFalse(ca.IsMatch(str)); Assert.IsFalse(regex.IsMatch(str)); } }
public void TestSerialization_IgnoreCase_BugFix() { var regex1 = new System.Text.RegularExpressions.Regex(@"[aA][bB][cC]?[dD]" , System.Text.RegularExpressions.RegexOptions.IgnoreCase ); var matcher1 = regex1.Compile(); matcher1.Serialize("test.bin"); var matcher2 = RegexMatcher.Deserialize("test.bin"); string input = @"xabdx"; var res1 = matcher1.Matches(input); var res2 = matcher2.Matches(input); Assert.IsTrue(res1[0].Item1 == 1 && res1[0].Item2 == 3); Assert.AreEqual(res1.Length, res2.Length); Assert.IsTrue(res1[0].Equals(res2[0])); }